UNPKG

jordium-gantt-vue3

Version:

A modern, flexible, and feature-rich Gantt chart component library for Vue 3

31,542 lines 1.43 MB
var J4 = Object.defineProperty;
var Z4 = (r, t, e) => t in r ? J4(r, t, { enumerable: !0, configurable: !0, writable: !0, value: e }) : r[t] = e;
var HA = (r, t, e) => Z4(r, typeof t != "symbol" ? t + "" : t, e);
import { ref as Te, computed as lt, defineComponent as dn, watch as EA, createElementBlock as fe, openBlock as ae, createElementVNode as Y, withDirectives as Ba, toDisplayString as Ge, unref as vt, vModelText as Di, createCommentVNode as Ct, withModifiers as NA, Fragment as Ut, createTextVNode as kA, nextTick as rr, onMounted as En, onUnmounted as tn, createBlock as wr, Teleport as To, normalizeStyle as rA, createVNode as $n, normalizeClass as iA, renderList as uA, useSlots as Fc, inject as Oy, resolveComponent as eE, resolveDynamicComponent as _s, createStaticVNode as ks, renderSlot as Li, mergeProps as Qo, createSlots as Cl, withCtx as fs, h as Wn, normalizeProps as oc, shallowRef as iu, Transition as y0, vModelSelect as Wu, reactive as lc, withKeys as tE, provide as AE, guardReactiveProps as b0 } from "vue";
const Gu = {
  "zh-CN": {
    dateNotSet: "未设置",
    // TaskList Header
    taskName: "任务名称",
    predecessor: "前置任务",
    assignee: "分配人",
    startDate: "开始日期",
    endDate: "结束日期",
    estimatedHours: "预计工时(hr)",
    actualHours: "实际工时(hr)",
    progress: "进度",
    type: "类型",
    description: "描述",
    // CSV Export Headers(去除重复,仅保留引用)
    csvHeaders: {
      id: "ID",
      taskName: "任务名称",
      predecessor: "前置任务",
      assignee: "分配人",
      startDate: "开始日期",
      endDate: "结束日期",
      estimatedHours: "预计工时(hr)",
      actualHours: "实际工时(hr)",
      progress: "进度(%)",
      type: "类型",
      description: "描述"
    },
    // 日期格式
    yearMonthFormat: (r, t) => `${r}年${String(t).padStart(2, "0")}月`,
    // 月份格式
    monthFormat: (r) => `${r}月`,
    // 月份名称
    monthNames: [
      "一月",
      "二月",
      "三月",
      "四月",
      "五月",
      "六月",
      "七月",
      "八月",
      "九月",
      "十月",
      "十一月",
      "十二月"
    ],
    weekDays: ["日", "一", "二", "三", "四", "五", "六"],
    // 其他
    milestone: "里程碑",
    targetDate: "目标日期",
    today: "今天",
    // 里程碑对话框
    milestoneDetails: "里程碑详情",
    milestoneName: "里程碑名称",
    milestoneDate: "里程碑日期",
    milestoneIcon: "里程碑图标",
    diamond: "菱形",
    rocket: "火箭",
    enterMilestoneName: "请输入里程碑名称",
    enterAssignee: "请输入负责人",
    enterDescription: "请输入描述信息",
    milestoneNameRequired: "里程碑名称为必填项",
    milestoneDateRequired: "里程碑日期为必填项",
    save: "保存",
    close: "关闭",
    confirm: "确认",
    delete: "删除",
    confirmDelete: "确定要删除这个里程碑吗?",
    // 工具栏按钮
    addTask: "新增需求/任务",
    addMilestone: "新增里程碑",
    todayLocate: "今日",
    todayLocateTooltip: "定位到今天",
    exportCsv: "导出 CSV",
    exportPdf: "导出 PDF",
    expandAll: "全部展开",
    collapseAll: "全部折叠",
    language: "中文",
    languageTooltip: "选择语言",
    lightMode: "明亮模式",
    darkMode: "暗黑模式",
    fullscreen: "全屏",
    exitFullscreen: "退出全屏",
    githubDocs: "查看Github文档",
    giteeDocs: "查看Gitee文档",
    // 时间刻度按钮
    timeScaleHour: "时",
    timeScaleDay: "日",
    timeScaleWeek: "周",
    timeScaleMonth: "月",
    timeScaleQuarter: "季",
    timeScaleYear: "年",
    timeScaleTooltip: "切换时间刻度",
    halfYearFirst: "上半年",
    halfYearSecond: "下半年",
    // 确认对话框
    confirmDialogMessage: "是否需要保留该设置?",
    // 新建任务对话框
    newTask: "新建任务",
    taskNamePlaceholder: "请输入任务名称",
    assigneePlaceholder: "请输入负责人",
    progressPlaceholder: "0-100",
    hoursPlaceholder: "工时",
    descriptionPlaceholder: "请输入任务描述...",
    hours: "小时",
    create: "创建",
    taskNameRequired: "任务名称不能为空",
    startDateRequired: "开始日期不能为空",
    endDateRequired: "结束日期不能为空",
    endDateInvalid: "结束日期不能早于开始日期",
    // 新建里程碑对话框
    newMilestone: "新建里程碑",
    editMilestone: "编辑里程碑",
    cancel: "取消",
    // 右键菜单
    startTimer: "开始计时",
    stopTimer: "停止计时",
    timerStarted: "任务计时已开始",
    timerStopped: "任务计时已停止",
    addPredecessor: "添加前置任务",
    addSuccessor: "添加后置任务",
    // PDF导出相关
    pdfExportLoading: "正在生成PDF,请稍候...",
    pdfExportTitle: "甘特图导出",
    pdfExportDate: "导出日期",
    milestoneGroup: "里程碑",
    collapseTaskList: "收起任务列表",
    expandTaskList: "展开任务列表",
    // TaskDrawer 相关
    taskType: "任务类型",
    taskTypeRequired: "请选择任务类型",
    taskTypeMap: {
      task: "任务",
      milestone: "里程碑",
      story: "需求",
      epic: "史诗",
      bug: "缺陷"
    },
    editTask: "编辑任务",
    parentTask: "上级任务",
    // 时间选择器相关
    time: "时间",
    selectTime: "选择时间",
    hour: "时",
    minute: "分",
    noParentTask: "无上级任务",
    update: "更新",
    taskNameTooLong: "任务名称不能超过50个字符",
    predecessorPlaceholder: "请选择前置任务",
    selectPredecessor: "选择前置任务",
    removePredecessor: "移除前置任务",
    deleteLinks: "删除链接",
    noLinks: "无链接",
    predecessorLink: "前置: {name}",
    successorLink: "后置: {name}",
    operationFailed: "操作失败,请重试",
    taskUpdateSuccess: "任务更新成功",
    taskCreateSuccess: "任务创建成功",
    confirmDeleteTask: '确定要删除任务"{name}"吗?此操作不可撤销。',
    taskDeleteFailed: "删除失败,请重试",
    // Story删除相关
    confirmDeleteStory: "是否删除该需求{name}及其所有的子任务?该操作不可撤回",
    storyDeleteYes: "是, 继续",
    storyDeleteNo: "不,仅删除需求",
    storyDeleteAllSuccess: "已删除需求【{name}】及其所有子任务",
    storyDeleteOnlySuccess: "已删除需求【{name}】,{count}个子任务已升级保留",
    storyNotFound: "未找到要删除的需求,ID:{id}",
    // 里程碑删除成功
    milestoneDeleteSuccess: "里程碑删除成功",
    // 其他删除成功消息
    taskDeletedSuccess: "已删除任务",
    // 选择器占位符
    selectAssignee: "请选择负责人",
    // 通用消息
    customCsvExportCalled: "自定义CSV导出被调用",
    languageSwitchedTo: "语言切换到:{language}",
    themeSwitchedTo: "主题切换到:{theme}",
    lightModeText: "明亮模式",
    darkModeText: "暗黑模式",
    taskNotFound: "未找到要更新的任务,ID:{id}",
    newParentTaskNotFound: "未找到新父任务,ID:{parentId},将作为顶级任务添加",
    inPlaceUpdateFailed: "就地更新失败,未找到任务,ID:{id}",
    taskToDeleteNotFound: "未找到要删除的任务,ID:{id}",
    milestoneIconUpdateNotFound: "未找到要更新图标的里程碑,ID:{id}",
    overtime: "超",
    overdue: "逾期",
    days: "天",
    // 计时确认弹窗
    timerConfirmPrefix: "即将为任务",
    timerConfirmSuffix: "计时,若有特殊说明请完善下面的描述",
    timerConfirmPlaceholder: "请输入计时说明",
    // Demo配置面板
    configDemo: "配置演示",
    // TaskList配置
    taskListConfig: {
      title: "TaskList 配置",
      columns: {
        title: "列显示(默认渲染模式下生效)",
        renderMode: "渲染模式",
        renderModeDefault: "默认(通过 TaskListColumnConfig 设置)",
        renderModeDeclarative: "声明式(使用 TaskListColumn 设置可见列)"
      },
      width: {
        title: "宽度设置",
        defaultWidth: "默认宽度",
        minWidth: "最小宽度",
        maxWidth: "最大宽度",
        pixelsModel: "像素 (px)",
        percentageModel: "百分比 (%)"
      }
    },
    // TaskBar配置
    taskBarConfig: {
      title: "TaskBar 配置",
      display: {
        title: "显示选项",
        showAvatar: "显示头像 (Avatar)",
        showTitle: "显示标题 (Title)",
        showProgress: "显示进度 (Progress)"
      },
      mistouch: {
        title: "防误触配置",
        dragThreshold: "拖拽阈值 (px)",
        dragThresholdHint: "移动超过此距离才触发拖拽",
        resizeHandleWidth: "拉伸手柄宽度 (px)",
        resizeHandleWidthHint: "调整手柄的可点击宽度 (5-15px)",
        enableDragDelay: "启用拖拽延迟",
        enableDragDelayHint: "按住一段时间后才能拖拽",
        dragDelayTime: "延迟时间 (ms)",
        dragDelayTimeHint: "延迟启动拖拽的时间",
        allowDragOnClick: "允许拖拽和拉伸 TaskBar 和 Milestone",
        allowDragOnClickHint: "控制是否允许拖拽 TaskBar 和 Milestone,以及拉伸 TaskBar 的长度"
      }
    },
    disableTaskbarFocusMode: "关闭聚焦功能",
    dataSourceAlreadyLoaded: "{name} 已是当前数据源",
    dataSourceLoadSuccess: "已加载 {name}",
    dataSourceLoadFailed: "{name} 加载失败",
    dataSourceSwitch: {
      title: "数据源切换",
      subtitle: "对比常规与超大数据集的初始化体验",
      loading: "数据加载中,请稍候...",
      alreadyLoaded: "{name} 已是当前数据源",
      loadSuccess: "已加载 {name}",
      loadFailed: "{name} 加载失败",
      sources: {
        normal: {
          label: "常规数据源",
          description: "data.json · 含完整前/后置依赖,适合功能演示",
          badge: "data.json"
        },
        large: {
          label: "超大数据源",
          description: "data-large-1m.json · 百万级任务,验证虚拟渲染性能",
          badge: "data-large-1m.json"
        }
      }
    }
  },
  "en-US": {
    dateNotSet: "Not set",
    // TaskList Header
    taskName: "Task Name",
    predecessor: "Predecessor",
    assignee: "Assignee",
    startDate: "Start Date",
    endDate: "End Date",
    estimatedHours: "Est. Hours",
    actualHours: "Act. Hours",
    progress: "Progress",
    type: "Type",
    // CSV Export Headers(去除重复,仅保留引用)
    csvHeaders: {
      id: "ID",
      taskName: "Task Name",
      predecessor: "Predecessor",
      assignee: "Assignee",
      startDate: "Start Date",
      endDate: "End Date",
      estimatedHours: "Est. Hours",
      actualHours: "Act. Hours",
      progress: "Progress (%)",
      type: "Type",
      description: "Description"
    },
    // 日期格式
    yearMonthFormat: (r, t) => `${r}/${String(t).padStart(2, "0")}`,
    // 月份格式
    monthFormat: (r) => `${String(r).padStart(2, "0")}`,
    // Month name
    monthNames: [
      "Jan",
      "Feb",
      "Mar",
      "Apr",
      "May",
      "Jun",
      "Jul",
      "Aug",
      "Sep",
      "Oct",
      "Nov",
      "Dec"
    ],
    weekDays: ["Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"],
    // 其他
    milestone: "Milestone",
    today: "Today",
    targetDate: "Target Date",
    // 里程碑对话框
    milestoneDetails: "Milestone Details",
    milestoneName: "Milestone Name",
    milestoneDate: "Milestone Date",
    milestoneIcon: "Milestone Icon",
    diamond: "Diamond",
    rocket: "Rocket",
    enterMilestoneName: "Enter milestone name",
    enterAssignee: "Enter assignee",
    enterDescription: "Enter description",
    milestoneNameRequired: "Milestone name is required",
    milestoneDateRequired: "Milestone date is required",
    save: "Save",
    close: "Close",
    confirm: "Confirm",
    description: "Description",
    delete: "Delete",
    confirmDelete: "Are you sure you want to delete this milestone?",
    // 工具栏按钮
    addTask: "Add Requirement/Task",
    addMilestone: "Add Milestone",
    todayLocate: "Today",
    todayLocateTooltip: "Locate to today",
    exportCsv: "Export CSV",
    exportPdf: "Export PDF",
    expandAll: "Expand All",
    collapseAll: "Collapse All",
    language: "English",
    languageTooltip: "Select language",
    lightMode: "Light Mode",
    darkMode: "Dark Mode",
    fullscreen: "Fullscreen",
    exitFullscreen: "Exit Fullscreen",
    githubDocs: "GitHub Docs",
    giteeDocs: "Gitee Docs",
    // 时间刻度按钮
    timeScaleHour: "Hour",
    timeScaleDay: "Day",
    timeScaleWeek: "Week",
    timeScaleMonth: "Month",
    timeScaleQuarter: "Quarter",
    timeScaleYear: "Year",
    timeScaleTooltip: "Switch Time Scale",
    halfYearFirst: "First Half",
    halfYearSecond: "Second Half",
    // Confirm dialog
    confirmDialogMessage: "Do you want to save this setting?",
    taskNamePlaceholder: "Enter task name",
    assigneePlaceholder: "Enter assignee",
    progressPlaceholder: "0-100",
    hoursPlaceholder: "Hours",
    descriptionPlaceholder: "Enter task description...",
    hours: "Hours",
    create: "Create",
    taskNameRequired: "Task name is required",
    startDateRequired: "Start date is required",
    endDateRequired: "End date is required",
    endDateInvalid: "End date cannot be earlier than start date",
    // 新建里程碑对话框
    newMilestone: "New Milestone",
    editMilestone: "Edit Milestone",
    cancel: "Cancel",
    // Context menu
    timerStarted: "Timer Started",
    timerStopped: "Timer Stopped",
    startTimer: "Start Timer",
    stopTimer: "Stop Timer",
    addPredecessor: "Add Predecessor",
    addSuccessor: "Add Successor",
    // PDF export
    pdfExportLoading: "Generating PDF, please wait...",
    pdfExportTitle: "Gantt Chart Export",
    pdfExportDate: "Export Date",
    milestoneGroup: "Milestone",
    collapseTaskList: "Collapse Task List",
    expandTaskList: "Expand Task List",
    // TaskDrawer related
    taskType: "Task Type",
    taskTypeRequired: "Please select task type",
    taskTypeMap: {
      task: "Task",
      milestone: "Milestone",
      story: "Story",
      epic: "Epic",
      bug: "Bug"
    },
    editTask: "Edit Task",
    newTask: "New Task",
    parentTask: "Parent Task",
    // 时间选择器相关
    time: "Time",
    selectTime: "Select Time",
    hour: "Hour",
    minute: "Minute",
    noParentTask: "No Parent Task",
    update: "Update",
    taskNameTooLong: "Task name cannot exceed 50 characters",
    predecessorPlaceholder: "Select predecessor",
    selectPredecessor: "Select Predecessor",
    removePredecessor: "Remove Predecessor",
    deleteLinks: "Delete Links",
    noLinks: "No Links",
    predecessorLink: "Predecessor: {name}",
    successorLink: "Successor: {name}",
    operationFailed: "Operation failed, please try again",
    taskUpdateSuccess: "Task updated successfully",
    taskCreateSuccess: "Task created successfully",
    confirmDeleteTask: 'Are you sure you want to delete task "{name}"? This action cannot be undone.',
    taskDeleteFailed: "Delete failed, please try again",
    // Story deletion related
    confirmDeleteStory: "Do you want to delete the requirement {name} and all its subtasks? This action cannot be undone",
    storyDeleteYes: "Yes, Continue",
    storyDeleteNo: "No, Delete Requirement Only",
    storyDeleteAllSuccess: "Deleted requirement [{name}] and all its subtasks",
    storyDeleteOnlySuccess: "Deleted requirement [{name}], {count} subtasks have been promoted",
    storyNotFound: "Requirement not found, ID: {id}",
    // Milestone deletion success
    milestoneDeleteSuccess: "Milestone deleted successfully",
    // Other deletion success messages
    taskDeletedSuccess: "Task deleted",
    // Selector placeholders
    selectAssignee: "Select assignee",
    // Common messages
    customCsvExportCalled: "Custom CSV export called",
    languageSwitchedTo: "Language switched to: {language}",
    themeSwitchedTo: "Theme switched to: {theme}",
    lightModeText: "Light Mode",
    darkModeText: "Dark Mode",
    taskNotFound: "Task not found for update, ID: {id}",
    newParentTaskNotFound: "New parent task not found, ID: {parentId}, will be added as top-level task",
    inPlaceUpdateFailed: "In-place update failed, task not found, ID: {id}",
    taskToDeleteNotFound: "Task to delete not found, ID: {id}",
    milestoneIconUpdateNotFound: "Milestone not found for icon update, ID: {id}",
    overtime: "Over",
    overdue: "Overdue",
    days: " days",
    // 计时确认弹窗
    timerConfirmPrefix: "About to start timing for",
    timerConfirmSuffix: ". If there are special notes, please complete the description below.",
    timerConfirmPlaceholder: "Please enter timer description",
    // Demo配置面板
    configDemo: "Configuration Demo",
    // TaskList配置
    taskListConfig: {
      title: "TaskList Configuration",
      columns: {
        title: "Columns(默effective in default render mode)",
        renderMode: "Render Mode",
        renderModeDefault: "Default (via TaskListColumnConfig)",
        renderModeDeclarative: "Declarative (via TaskListColumn)"
      },
      width: {
        title: "Width Settings",
        defaultWidth: "Default Width",
        minWidth: "Min Width",
        maxWidth: "Max Width",
        pixelsModel: "pixels (px)",
        percentageModel: "percentage (%)"
      }
    },
    // TaskBar配置
    taskBarConfig: {
      title: "TaskBar Configuration",
      display: {
        title: "Display Options",
        showAvatar: "Show Avatar",
        showTitle: "Show Title",
        showProgress: "Show Progress"
      },
      mistouch: {
        title: "Mistouch Prevention",
        dragThreshold: "Drag Threshold (px)",
        dragThresholdHint: "Distance to trigger dragging",
        resizeHandleWidth: "Resize Handle Width (px)",
        resizeHandleWidthHint: "Clickable width of resize handle (5-15px)",
        enableDragDelay: "Enable Drag Delay",
        enableDragDelayHint: "Hold to drag after a delay",
        dragDelayTime: "Delay Time (ms)",
        dragDelayTimeHint: "Delay time before dragging starts",
        allowDragOnClick: "Allow dragging and resizing of TaskBars and Milestones",
        allowDragOnClickHint: "Controls whether to allow dragging of TaskBars and Milestones, as well as resizing the length of TaskBars"
      }
    },
    disableTaskbarFocusMode: "Disable Focus Mode",
    dataSourceAlreadyLoaded: "{name} is already active",
    dataSourceLoadSuccess: "{name} loaded successfully",
    dataSourceLoadFailed: "{name} failed to load",
    dataSourceSwitch: {
      title: "Data Sources",
      subtitle: "Compare default vs. mega dataset initialization",
      loading: "Loading data, please wait…",
      alreadyLoaded: "{name} is already active",
      loadSuccess: "{name} loaded successfully",
      loadFailed: "{name} failed to load",
      sources: {
        normal: {
          label: "Standard Dataset",
          description: "data.json · Full predecessor graph for feature demos",
          badge: "data.json"
        },
        large: {
          label: "Massive Dataset",
          description: "data-large-1m.json · Million-level tasks to stress virtual rendering",
          badge: "data-large-1m.json"
        }
      }
    }
  }
};
function C0(r, t) {
  Gu[r] && (Gu[r] = {
    ...Gu[r],
    ...t
  }, Yu.value === r && window.dispatchEvent(
    new CustomEvent("locale-changed", {
      detail: { locale: r }
    })
  ));
}
const rE = "gantt-locale", nE = () => {
  if (typeof window < "u") {
    const r = localStorage.getItem(rE);
    if (r && (r === "zh-CN" || r === "en-US"))
      return r;
  }
  return "zh-CN";
}, Yu = Te(nE());
function Ma() {
  const r = lt(() => Gu[Yu.value]), t = (i, o) => {
    const l = i.split(".");
    let u = r.value;
    for (const h of l)
      if (u && typeof u == "object" && h in u)
        u = u[h];
      else
        return o || i;
    return typeof u == "string" ? u : o || i;
  }, e = (i, o) => {
    let l = t(i);
    return Object.keys(o).forEach((u) => {
      l = l.replace(new RegExp(`{${u}}`, "g"), String(o[u]));
    }), l;
  }, A = (i) => {
    Yu.value = i, window.dispatchEvent(
      new CustomEvent("locale-changed", {
        detail: { locale: i }
      })
    );
  }, n = lt(() => Yu.value);
  return {
    t: r,
    getTranslation: t,
    formatTranslation: e,
    locale: n,
    setLocale: A,
    formatYearMonth: (i, o) => r.value.yearMonthFormat(i, o),
    formatMonth: (i) => r.value.monthFormat(i)
  };
}
function aE(r) {
  if (!r) return null;
  const [t, e, A] = r.split("-").map(Number);
  return new Date(t, e - 1, A);
}
function Da(r) {
  return r ? Array.isArray(r) && typeof r[0] == "number" ? r : Array.isArray(r) ? r.filter((t) => t && t.toString().trim()).map((t) => Number(t.toString().trim())).filter((t) => !isNaN(t)) : r.split(",").map((t) => t.trim()).filter((t) => t).map((t) => Number(t)).filter((t) => !isNaN(t)) : [];
}
function Xg(r) {
  const t = Da(r);
  return t.length > 0 ? t.join(", ") : "-";
}
const iE = { class: "confirm-timer-dialog-overlay" }, sE = { class: "confirm-timer-dialog" }, oE = { class: "dialog-message" }, lE = { class: "task-name-highlight" }, uE = ["placeholder"], cE = { class: "dialog-actions" }, fE = /* @__PURE__ */ dn({
  __name: "ConfirmTimerDialog",
  props: {
    visible: Boolean,
    title: { type: String, default: "确认开始计时" },
    message: { type: String, default: "" },
    defaultDesc: { type: String, default: "" },
    placeholder: { type: String, default: "请输入计时说明" }
  },
  emits: ["confirm", "cancel"],
  setup(r, { emit: t }) {
    const e = r, A = t, { getTranslation: n } = Ma(), a = Te(e.defaultDesc);
    EA(
      () => e.visible,
      (o) => {
        o && (a.value = e.defaultDesc);
      }
    );
    const s = () => A("confirm", a.value), i = lt(() => {
      if (e.message) {
        const o = e.message.match(/任务([\S\s]+?)计时|Task ([\S\s]+?) timing/);
        if (o && (o[1] || o[2])) return o[1] || o[2];
      }
      return e.defaultDesc;
    });
    return (o, l) => (ae(), fe("div", iE, [
      Y("div", sE, [
        Y("div", oE, [
          Y("span", null, Ge(vt(n)("timerConfirmPrefix")), 1),
          Y("span", lE, Ge(i.value), 1),
          Y("span", null, Ge(vt(n)("timerConfirmSuffix")), 1)
        ]),
        Ba(Y("textarea", {
          "onUpdate:modelValue": l[0] || (l[0] = (u) => a.value = u),
          class: "dialog-textarea",
          placeholder: vt(n)("timerConfirmPlaceholder"),
          rows: "3"
        }, null, 8, uE), [
          [Di, a.value]
        ]),
        Y("div", cE, [
          Y("button", {
            class: "gantt-btn gantt-btn-default",
            onClick: l[1] || (l[1] = (u) => o.$emit("cancel"))
          }, Ge(vt(n)("cancel")), 1),
          Y("button", {
            class: "gantt-btn gantt-btn-confirm",
            onClick: s
          }, Ge(vt(n)("startTimer")), 1)
        ])
      ])
    ]));
  }
}), xn = (r, t) => {
  const e = r.__vccOpts || r;
  for (const [A, n] of t)
    e[A] = n;
  return e;
}, Ry = /* @__PURE__ */ xn(fE, [["__scopeId", "data-v-c362ca3d"]]), hE = { class: "gantt-confirm-header" }, dE = { class: "gantt-confirm-title" }, gE = { class: "gantt-confirm-content" }, pE = { class: "gantt-confirm-footer" }, vE = { class: "gantt-confirm-footer-right" }, mE = /* @__PURE__ */ dn({
  __name: "GanttConfirmDialog",
  props: {
    visible: Boolean,
    title: { type: String, default: "确认" },
    message: { type: String, default: "" },
    confirmText: { type: String, default: "确认" },
    cancelText: { type: String, default: "取消" },
    yesText: { type: String, default: "是" },
    noText: { type: String, default: "否" },
    type: { type: String, default: "confirm-cancel" }
    // 'confirm-cancel' | 'yes-no-cancel'
  },
  emits: ["confirm", "cancel", "yes", "no"],
  setup(r, { emit: t }) {
    const e = r, A = t, n = () => A("confirm"), a = () => A("cancel"), s = () => A("yes"), i = () => A("no");
    return (o, l) => r.visible ? (ae(), fe("div", {
      key: 0,
      class: "gantt-confirm-overlay",
      onClick: a
    }, [
      Y("div", {
        class: "gantt-confirm-dialog",
        onClick: l[0] || (l[0] = NA(() => {
        }, ["stop"]))
      }, [
        Y("div", hE, [
          Y("h4", dE, Ge(e.title), 1)
        ]),
        Y("div", gE, [
          Y("p", null, Ge(e.message), 1)
        ]),
        Y("div", pE, [
          e.type === "yes-no-cancel" ? (ae(), fe(Ut, { key: 0 }, [
            Y("button", {
              type: "button",
              class: "gantt-btn gantt-btn-default",
              onClick: a
            }, Ge(e.cancelText), 1),
            Y("div", vE, [
              Y("button", {
                type: "button",
                class: "gantt-btn gantt-btn-warning",
                onClick: i
              }, Ge(e.noText), 1),
              Y("button", {
                type: "button",
                class: "gantt-btn gantt-btn-danger",
                onClick: s
              }, Ge(e.yesText), 1)
            ])
          ], 64)) : (ae(), fe(Ut, { key: 1 }, [
            Y("button", {
              type: "button",
              class: "gantt-btn gantt-btn-default",
              onClick: a
            }, Ge(e.cancelText), 1),
            l[1] || (l[1] = kA("    ")),
            Y("button", {
              type: "button",
              class: "gantt-btn gantt-btn-danger",
              onClick: n
            }, Ge(e.confirmText), 1)
          ], 64))
        ])
      ])
    ])) : Ct("", !0);
  }
}), $p = /* @__PURE__ */ xn(mE, [["__scopeId", "data-v-4a27f0b2"]]), wE = { class: "icon-wrapper" }, BE = ["onClick"], yE = ["innerHTML"], bE = /* @__PURE__ */ dn({
  __name: "TaskContextMenu",
  props: {
    visible: { type: Boolean },
    position: {},
    task: {},
    allTasks: {}
  },
  emits: [
    "start-timer",
    "stop-timer",
    "add-predecessor",
    "add-successor",
    "delete",
    // 新增delete事件
    "delete-link",
    // 删除链接事件
    "close"
  ],
  setup(r, { emit: t }) {
    const e = r, A = t, { t: n } = Ma(), a = Te(null), s = Te({
      x: 0,
      y: 0
    }), i = Te({
      display: "none",
      // 初始不显示
      left: "50%",
      top: "-8px",
      transform: "rotate(0deg)"
    }), o = Te(!1), l = Te(""), u = Te(!1), h = lt(() => {
      var X;
      return ((X = e.task) == null ? void 0 : X.type) === "story" ? "yes-no-cancel" : "confirm-cancel";
    }), g = lt(() => {
      var X, Ae, oe;
      return ((X = e.task) == null ? void 0 : X.type) === "story" ? n.value.confirmDeleteStory.replace("{name}", ((Ae = e.task) == null ? void 0 : Ae.name) || "") : n.value.confirmDeleteTask.replace("{name}", ((oe = e.task) == null ? void 0 : oe.name) || "");
    });
    function c() {
      var X;
      l.value = ((X = e.task) == null ? void 0 : X.name) || "", o.value = !0;
    }
    function p() {
      o.value = !1;
    }
    function m(X) {
      if (o.value = !1, e.task && typeof e.task == "object") {
        A("close");
        const Ae = Date.now();
        Object.assign(e.task, {
          timerStartDesc: X || "",
          isTimerRunning: !0,
          timerStartTime: Ae,
          timerElapsedTime: 0
          // 每次从0秒开始
        }), A("start-timer", e.task);
      }
    }
    function y() {
      u.value = !0;
    }
    const w = () => {
      u.value = !1, e.task && (A("delete", e.task), A("close"));
    }, E = () => {
      u.value = !1;
    }, C = () => {
      u.value = !1, e.task && (A("delete", e.task, !0), O());
    }, F = () => {
      u.value = !1, e.task && (A("delete", e.task, !1), O());
    }, H = lt(() => {
      var X;
      return ((X = e.task) == null ? void 0 : X.type) !== "story";
    }), q = Te(!1);
    let N = null;
    const M = lt(() => {
      const X = [];
      if (!e.task || !e.allTasks) return X;
      if (e.task.predecessor) {
        const Ae = Da(e.task.predecessor);
        for (const oe of Ae) {
          const x = e.allTasks.find((L) => L.id === oe);
          x && X.push({
            type: "predecessor",
            taskId: oe,
            taskName: x.name || `任务 ${oe}`
          });
        }
      }
      for (const Ae of e.allTasks)
        Ae.predecessor && Ae.id !== e.task.id && Da(Ae.predecessor).includes(e.task.id) && X.push({
          type: "successor",
          taskId: Ae.id,
          taskName: Ae.name || `任务 ${Ae.id}`
        });
      return X;
    }), k = lt(() => M.value.length > 0);
    EA(
      [() => e.visible, () => e.position],
      ([X, Ae]) => {
        X && Ae && rr(() => {
          if (a.value) {
            const oe = window.innerWidth, x = window.innerHeight, L = a.value.offsetWidth, j = a.value.offsetHeight;
            let $ = Ae.x - L / 2, re = Ae.y + 10, pe = "50%", de = "-8px", ce = "rotate(0deg)";
            if ($ + L > oe) {
              const Se = $ + L - oe + 5;
              $ -= Se, pe = `calc(50% + ${Se}px)`;
            }
            if ($ < 5) {
              const Se = 5 - $;
              $ = 5, pe = `calc(50% - ${Se}px)`;
            }
            re + j > x && (re = Ae.y - j - 10, de = "100%", ce = "rotate(180deg)"), s.value = {
              x: $,
              y: re
            }, i.value = {
              display: "block",
              left: pe,
              top: de,
              transform: ce
            };
          }
        });
      },
      { immediate: !0, deep: !0 }
    );
    const O = () => {
      A("close");
    }, S = () => {
      var X;
      (X = e.task) != null && X.isTimerRunning ? (A("close"), Object.assign(e.task, {
        isTimerRunning: !1,
        timerEndTime: Date.now(),
        timerElapsedTime: (e.task.timerElapsedTime || 0) + (Date.now() - (e.task.timerStartTime || Date.now()))
      }), A("stop-timer", e.task)) : c();
    }, U = () => {
      e.task && (A("close"), rr(() => {
        A("add-predecessor", e.task);
      }));
    }, W = () => {
      e.task && (A("close"), rr(() => {
        A("add-successor", e.task);
      }));
    }, I = (X) => {
      N && (clearTimeout(N), N = null), q.value = !1, A("delete-link", {
        sourceTaskId: X.type === "predecessor" ? X.taskId : e.task.id,
        targetTaskId: X.type === "predecessor" ? e.task.id : X.taskId
      }), A("close");
    }, le = () => {
      N && (clearTimeout(N), N = null), q.value = !0;
    }, ue = () => {
      N = window.setTimeout(() => {
        q.value = !1;
      }, 200);
    }, Z = (X) => {
      a.value && !a.value.contains(X.target) && O();
    }, ee = (X) => {
      X.key === "Escape" && O();
    };
    return En(() => {
      document.addEventListener("mousedown", Z), document.addEventListener("keydown", ee);
    }), tn(() => {
      document.removeEventListener("mousedown", Z), document.removeEventListener("keydown", ee), N && clearTimeout(N);
    }), (X, Ae) => {
      var oe, x, L, j;
      return ae(), wr(To, { to: "body" }, [
        X.visible ? (ae(), fe("div", {
          key: 0,
          ref_key: "menuRef",
          ref: a,
          class: "task-context-menu",
          style: rA({
            left: `${s.value.x}px`,
            top: `${s.value.y}px`,
            zIndex: 1e4,
            position: "fixed"
          })
        }, [
          Y("div", {
            class: "menu-arrow",
            style: rA({
              display: i.value.display,
              left: i.value.left,
              top: i.value.top,
              transform: i.value.transform
            })
          }, null, 4),
          H.value ? (ae(), fe("div", {
            key: 0,
            class: "menu-item",
            onClick: S
          }, [
            Y("div", wE, [
              Y("i", {
                class: iA(["menu-icon", (oe = e.task) != null && oe.isTimerRunning ? "stop-icon" : "timer-icon"])
              }, null, 2)
            ]),
            kA(" " + Ge((x = e.task) != null && x.isTimerRunning ? vt(n).stopTimer : vt(n).startTimer), 1)
          ])) : Ct("", !0),
          Y("div", {
            class: "menu-item",
            onClick: U
          }, [
            Ae[0] || (Ae[0] = Y("div", { class: "icon-wrapper" }, [
              Y("i", { class: "menu-icon predecessor-icon" })
            ], -1)),
            kA(" " + Ge(vt(n).addPredecessor), 1)
          ]),
          Y("div", {
            class: "menu-item",
            onClick: W
          }, [
            Ae[1] || (Ae[1] = Y("div", { class: "icon-wrapper" }, [
              Y("i", { class: "menu-icon successor-icon" })
            ], -1)),
            kA(" " + Ge(vt(n).addSuccessor), 1)
          ]),
          k.value ? (ae(), fe("div", {
            key: 1,
            class: "menu-item menu-item-with-submenu",
            onMouseenter: le,
            onMouseleave: ue
          }, [
            Ae[2] || (Ae[2] = Y("div", { class: "icon-wrapper" }, [
              Y("i", { class: "menu-icon link-delete-icon" })
            ], -1)),
            kA(" " + Ge(vt(n).deleteLinks) + " ", 1),
            Ae[3] || (Ae[3] = Y("i", { class: "submenu-arrow" }, "›", -1)),
            q.value ? (ae(), fe("div", {
              key: 0,
              class: "submenu",
              onMouseenter: le,
              onMouseleave: ue
            }, [
              (ae(!0), fe(Ut, null, uA(M.value, ($) => (ae(), fe("div", {
                key: `${$.type}-${$.taskId}`,
                class: "menu-item submenu-item",
                onClick: NA((re) => I($), ["stop"])
              }, [
                Y("span", {
                  innerHTML: $.type === "predecessor" ? vt(n).predecessorLink.replace("{name}", $.taskName) : vt(n).successorLink.replace("{name}", $.taskName)
                }, null, 8, yE)
              ], 8, BE))), 128))
            ], 32)) : Ct("", !0)
          ], 32)) : Ct("", !0),
          Ae[5] || (Ae[5] = Y("div", { class: "menu-divider" }, null, -1)),
          Y("div", {
            class: "menu-item menu-item-danger",
            onClick: y
          }, [
            Ae[4] || (Ae[4] = Y("div", { class: "icon-wrapper" }, [
              Y("i", { class: "menu-icon delete-icon" })
            ], -1)),
            kA(" " + Ge(vt(n).delete), 1)
          ]),
          $n($p, {
            visible: u.value,
            title: vt(n).delete,
            type: h.value,
            message: g.value,
            "confirm-text": vt(n).confirm,
            "cancel-text": vt(n).cancel,
            "yes-text": vt(n).storyDeleteYes,
            "no-text": vt(n).storyDeleteNo,
            onConfirm: w,
            onYes: C,
            onNo: F,
            onCancel: E
          }, null, 8, ["visible", "title", "type", "message", "confirm-text", "cancel-text", "yes-text", "no-text"]),
          o.value ? (ae(), wr(Ry, {
            key: 2,
            visible: o.value,
            title: "确认开始计时",
            message: `即将为任务${(L = e.task) == null ? void 0 : L.name}计时,若有特殊说明请完善下面的描述`,
            "default-desc": ((j = e.task) == null ? void 0 : j.name) || "",
            onConfirm: m,
            onCancel: p
          }, null, 8, ["visible", "message", "default-desc"])) : Ct("", !0)
        ], 4)) : Ct("", !0)
      ]);
    };
  }
}), Hy = /* @__PURE__ */ xn(bE, [["__scopeId", "data-v-604bf4d7"]]), CE = ["data-task-id"], EE = {
  width: "12",
  height: "12",
  viewBox: "0 0 24 24",
  fill: "none",
  stroke: "currentColor",
  "stroke-width": "2"
}, FE = {
  key: 0,
  points: "9,18 15,12 9,6"
}, xE = {
  key: 1,
  points: "18,15 12,9 6,15"
}, SE = {
  key: 1,
  class: "milestone-spacer"
}, UE = {
  key: 2,
  class: "leaf-spacer"
}, TE = {
  width: "12",
  height: "12",
  viewBox: "0 0 24 24",
  fill: "none",
  stroke: "currentColor",
  "stroke-width": "2"
}, QE = {
  key: 0,
  points: "9,18 15,12 9,6"
}, DE = {
  key: 1,
  points: "18,15 12,9 6,15"
}, kE = {
  key: 1,
  class: "milestone-spacer"
}, LE = {
  key: 2,
  class: "leaf-spacer"
}, IE = {
  key: 0,
  class: "task-icon"
}, _E = {
  key: 0,
  width: "16",
  height: "16",
  viewBox: "0 0 24 24",
  fill: "none",
  stroke: "currentColor",
  "stroke-width": "2",
  class: "milestone-group-icon"
}, NE = {
  key: 1,
  width: "16",
  height: "16",
  viewBox: "0 0 24 24",
  fill: "none",
  stroke: "currentColor",
  "stroke-width": "2"
}, ME = {
  key: 2,
  width: "16",
  height: "16",
  viewBox: "0 0 24 24",
  fill: "none",
  stroke: "currentColor",
  "stroke-width": "2"
}, OE = ["title"], RE = {
  key: 0,
  class: "timer-dot"
}, HE = {
  key: 1,
  class: "status-badge overtime"
}, PE = {
  key: 2,
  class: "status-badge overdue"
}, KE = {
  key: 0,
  class: "task-icon"
}, VE = {
  key: 0,
  width: "16",
  height: "16",
  viewBox: "0 0 24 24",
  fill: "none",
  stroke: "currentColor",
  "stroke-width": "2",
  class: "milestone-group-icon"
}, qE = {
  key: 1,
  width: "16",
  height: "16",
  viewBox: "0 0 24 24",
  fill: "none",
  stroke: "currentColor",
  "stroke-width": "2"
}, jE = {
  key: 2,
  width: "16",
  height: "16",
  viewBox: "0 0 24 24",
  fill: "none",
  stroke: "currentColor",
  "stroke-width": "2"
}, WE = ["title"], GE = {
  key: 0,
  class: "timer-dot"
}, YE = {
  key: 1,
  class: "status-badge overtime"
}, $E = {
  key: 2,
  class: "status-badge overdue"
}, zE = {
  key: 0,
  class: "milestone-empty-col"
}, XE = {
  key: 3,
  class: "assignee-info"
}, JE = { class: "avatar" }, ZE = { class: "assignee-name" }, eF = 10, tF = /* @__PURE__ */ dn({
  __name: "TaskRow",
  props: {
    task: {},
    level: {},
    rowIndex: {},
    isHovered: { type: Boolean },
    hoveredTaskId: {},
    onHover: {},
    columns: {},
    declarativeColumns: {},
    renderMode: { default: "default" },
    getColumnWidthStyle: {},
    disableChildrenRender: { type: Boolean },
    showTaskIcon: { type: Boolean },
    enableDrag: { type: Boolean },
    dragStart: {},
    dragOver: {},
    taskListRowClassName: {},
    taskListRowStyle: { type: [Boolean, null, String, Object, Array, Function] }
  },
  emits: [
    "toggle",
    "dblclick",
    "contextmenu",
    "start-timer",
    "stop-timer",
    "add-predecessor",
    "add-successor",
    "delete"
  ],
  setup(r, { emit: t }) {
    const e = r, A = t, { t: n } = Ma(), a = lt(() => {
      var D;
      return ((D = n.value) == null ? void 0 : D.overtime) ?? "";
    }), s = lt(() => {
      var D;
      return ((D = n.value) == null ? void 0 : D.overdue) ?? "";
    }), i = lt(() => {
      var D;
      return ((D = n.value) == null ? void 0 : D.days) ?? "";
    }), o = Fc(), l = lt(() => !!o["custom-task-content"]), u = Oy("gantt-column-slots", {}), h = (D) => {
      const Ie = `column-${D}`;
      return !!u[Ie];
    }, g = (D, Ie) => {
      const me = `column-${D}`, ve = u[me];
      return ve ? ve(Ie) : null;
    }, c = lt(() => e.renderMode === "declarative" && e.declarativeColumns ? e.declarativeColumns : e.columns), p = (D) => D === 0, m = (D) => ({
      justifyContent: D.align === "center" ? "center" : D.align === "right" ? "flex-end" : "flex-start",
      textAlign: D.align || "left"
    }), y = (D, Ie) => {
      if (p(Ie)) {
        const me = D.prop ? e.task[D.prop] : e.task.name;
        return D.defaultSlot ? Wn("div", { class: "task-name-content" }, [
          // 自定义内容
          Wn(
            "span",
            {
              class: ["task-name-text", { "parent-task": q.value }],
              title: me
            },
            [D.defaultSlot({
              row: e.task,
              $index: Ie
            })]
          )
        ]) : Wn("div", { class: "task-name-content" }, [
          // 任务图标
          e.showTaskIcon !== !1 ? Wn(
            "span",
            { class: "task-icon" },
            F.value ? Wn(
              "svg",
              {
                width: 16,
                height: 16,
                viewBox: "0 0 24 24",
                fill: "none",
                stroke: "currentColor",
                "stroke-width": 2,
                class: "milestone-group-icon"
              },
              Wn("polygon", { points: "12,2 22,12 12,22 2,12" })
            ) : C.value || E.value ? Wn(
              "svg",
              {
                width: 16,
                height: 16,
                viewBox: "0 0 24 24",
                fill: "none",
                stroke: "currentColor",
                "stroke-width": 2
              },
              Wn("path", {
                d: "M3 7v10a2 2 0 002 2h14a2 2 0 002-2V9a2 2 0 00-2-2h-5l-2-2H5a2 2 0 00-2 2z"
              })
            ) : Wn(
              "svg",
              {
                width: 16,
                height: 16,
                viewBox: "0 0 24 24",
                fill: "none",
                stroke: "currentColor",
                "stroke-width": 2
              },
              [
                Wn("path", {
                  d: "M14 2H6a2 2 0 00-2 2v16a2 2 0 002 2h12a2 2 0 002-2V8z"
                }),
                Wn("polyline", { points: "14,2 14,8 20,8" }),
                Wn("line", { x1: 16, y1: 13, x2: 8, y2: 13 }),
                Wn("line", { x1: 16, y1: 17, x2: 8, y2: 17 }),
                Wn("polyline", { points: "10,9 9,9 8,9" })
              ]
            )
          ) : null,
          // 列的值(使用 prop 或默认 name)
          Wn(
            "span",
            {
              class: ["task-name-text", { "parent-task": q.value }],
              title: me
            },
            me || "-"
          )
        ]);
      }
      if (D.defaultSlot)
        return D.defaultSlot({
          row: e.task,
          $index: Ie
        });
      if (D.prop) {
        const me = e.task[D.prop];
        return me ?? "-";
      }
      return "-";
    }, w = lt(() => `${eF + e.level * 20}px`), E = lt(() => !!(e.task.children && e.task.children.length > 0)), C = lt(() => e.task.type === "story"), F = lt(() => e.task.type === "milestone-group"), H = lt(() => e.task.type === "milestone"), q = lt(
      () => C.value || E.value || F.value
    ), N = lt(() => e.taskListRowClassName ? typeof e.taskListRowClassName == "function" ? e.taskListRowClassName(e.task, e.rowIndex ?? 0) : e.taskListRowClassName : ""), M = lt(() => e.taskListRowStyle ? typeof e.taskListRowStyle == "function" ? e.taskListRowStyle(e.task, e.rowIndex ?? 0) : e.taskListRowStyle : {});
    function k() {
      A("toggle", e.task);
    }
    function O() {
      (C.value || E.value) && !F.value && A("toggle", e.task);
    }
    const S = (D) => {
      D.stopPropagation(), A("dblclick", e.task);
    }, U = () => {
      Z.value || e.onHover && e.onHover(e.task.id);
    }, W = () => {
      Z.value || e.onHover && e.onHover(null);
    };
    function I() {
      const D = e.task.progress || 0, Ie = /* @__PURE__ */ new Date(), me = e.task.endDate ? new Date(e.task.endDate) : null;
      return me && Ie > me && D < 100 ? "progress-danger" : D >= 100 ? "progress-success" : D > 0 ? "progress-warning" : "";
    }
    function le() {
      return e.task.actualHours && e.task.estimatedHours && e.task.actualHours > e.task.estimatedHours;
    }
    function ue() {
      const D = /* @__PURE__ */ new Date(), Ie = e.task.endDate ? new Date(e.task.endDate) : null, me = e.task.progress || 0;
      if (Ie && D > Ie && me < 100) {
        const ve = new Date(D.getFullYear(), D.getMonth(), D.getDate()), xe = new Date(Ie.getFullYear(), Ie.getMonth(), Ie.getDate());
        return Math.floor((ve.getTime() - xe.getTime()) / (1e3 * 60 * 60 * 24));
      }
      return 0;
    }
    const Z = Te(!1), ee = () => {
      Z.value = !0;
    }, X = () => {
      Z.value = !1;
    }, Ae = Te(0), oe = Te(null), x = lt(() => {
      const D = Math.floor(Ae.value / 1e3), Ie = Math.floor(D / 3600), me = Math.floor(D % 3600 / 60), ve = D % 60;
      return `${String(Ie).padStart(2, "0")}:${String(me).padStart(2, "0")}:${String(ve).padStart(2, "0")}`;
    }), L = () => {
      if (e.task.isTimerRunning && e.task.timerStartTime) {
        const D = e.task.timerElapsedTime || 0;
        Ae.value = Date.now() - e.task.timerStartTime + D;
      } else e.task.timerElapsedTime ? Ae.value = e.task.timerElapsedTime : Ae.value = 0;
    };
    EA(
      () => [e.task.isTimerRunning, e.task.timerStartTime, e.task.timerElapsedTime],
      () => {
        oe.value && (clearInterval(oe.value), oe.value = null), e.task.isTimerRunning ? (L(), oe.value = window.setInterval(L, 1e3)) : L();
      },
      { immediate: !0 }
    );
    const j = Te(!1), $ = Te({ x: 0, y: 0 }), re = lt(() => e.task);
    function pe(D) {
      if (window.dispatchEvent(new CustomEvent("close-all-taskbar-menus")), e.task.type !== "task" && e.task.type !== "story") {
        D.preventDefault(), j.value = !1;
        return;
      }
      D.preventDefault(), j.value = !0, $.value = { x: D.clientX, y: D.clientY };
    }
    function de() {
      j.value = !1;
    }
    const ce = (D, Ie) => {
      A("delete", D, Ie), de();
    }, Se = lt(() => I()), qe = lt(() => ({
      isRowContent: !0,
      task: e.task,
      level: e.level,
      indent: w.value,
      isHovered: e.isHovered ?? !1,
      hoveredTaskId: e.hoveredTaskId ?? null,
      isParent: q.value,
      hasChildren: E.value,
      collapsed: !!e.task.collapsed,
      formattedTimer: x.value,
      timerRunning: !!e.task.isTimerRunning,
      timerElapsed: Ae.value,
      isOvertime: le(),
      overdueDays: ue(),
      overtimeText: a.value,
      overdueText: s.value,
      daysText: i.value,
      progressClass: Se.value
    })), rt = Te(null), at = (D) => {
      if (!e.enableDrag) return;
      const Ie = D.target;
      Ie.tagName === "BUTTON" || Ie.tagName === "INPUT" || Ie.tagName === "SELECT" || Ie.tagName === "TEXTAREA" || Ie.closest(".collapse-btn") || Ie.closest(".task-context-menu") || rt.value && e.dragStart && e.dragStart(e.task, rt.value, D);
    }, dt = (D) => {
      if (!e.enableDrag || !rt.value || !e.dragOver) return;
      const { taskId: Ie, event: me } = D.detail;
      Ie === e.task.id && e.dragOver(e.task, rt.value, me);
    };
    return En(() => {
      window.addEventListener("splitter-drag-start", ee), window.addEventListener("splitter-drag-end", X), window.addEventListener("close-all-taskbar-menus", de), window.addEventListener("task-row-drag-over", dt);
    }), tn(() => {
      window.removeEventListener("splitter-drag-start", ee), window.removeEventListener("splitter-drag-end", X), window.removeEventListener("close-all-taskbar-menus", de), window.removeEventListener("task-row-drag-over", dt), oe.value && clearInterval(oe.value);
    }), (D, Ie) => {
      const me = eE("TaskRow", !0);
      return ae(), fe("div", null, [
        Y("div", {
          ref_key: "taskRowRef",
          ref: rt,
          class: iA(["task-row", {
            "task-row-hovered": D.isHovered,
            "parent-task": q.value,
            "milestone-group-row": F.value,
            "task-type-story": C.value,
            "task-type-task": e.task.type === "task",
            "task-type-milestone": H.value,
            [N.value]: N.value
          }]),
          "data-task-id": e.task.id,
          style: rA(M.value),
          onClick: O,
          onDblclick: S,
          onMousedown: at,
          onMouseenter: U,
          onMouseleave: W,
          onContextmenu: pe
        }, [
          D.renderMode === "declarative" && D.declarativeColumns ? (ae(!0), fe(Ut, { key: 0 }, uA(c.value, (ve, xe) => (ae(), fe("div", {
            key: xe,
            class: iA(["col", [ve.cssClass, { "col-name": p(xe) }]]),
            style: rA([
              D.getColumnWidthStyle ? D.getColumnWidthStyle(ve) : {},
              m(ve)
            ])
          }, [
            p(xe) ? (ae(), fe("div", {
              key: 0,
              style: rA({ paddingLeft: w.value }),
              class: "first-col-wrapper"
            }, [
              (C.value || E.value) && !F.value ? (ae(), fe("span", {
                key: 0,
                class: "collapse-btn",
                onClick: NA(k, ["stop"])
              }, [
                (ae(), fe("svg", EE, [
                  e.task.collapsed ? (ae(), fe("polyline", FE)) : (ae(), fe("polyline", xE))
                ]))
              ])) : Ct("", !0),
              F.value ? (ae(), fe("span", SE)) : Ct("", !0),
              !q.value && !F.value && D.showTaskIcon === !1 ? (ae(), fe("span", UE)) : Ct("", !0),
              (ae(), wr(_s(() => y(ve, xe))))
            ], 4)) : (ae(), wr(_s(() => y(ve, xe)), { key: 1 }))
          ], 6))), 128)) : (ae(), fe(Ut, { key: 1 }, [
            Y("div", {
              class: "col col-name",
              style: rA({ paddingLeft: w.value })
            }, [
              (C.value || E.value) && !F.value ? (ae(), fe("span", {
                key: 0,
                class: "collapse-btn",
                onClick: NA(k, ["stop"])
              }, [
                (ae(), fe("svg", TE, [
                  e.task.collapsed ? (ae(), fe("polyline", QE)) : (ae(), fe("polyline", DE))
                ]))
              ])) : Ct("", !0),
              F.value ? (ae(), fe("span", kE)) : Ct("", !0),
              !q.value && !F.value && D.showTaskIcon === !1 ? (ae(), fe("span", LE)) : Ct("", !0),
              h("name") ? (ae(), wr(_s(() => g("name", {
                task: e.task,
                column: { key: "name" },
                value: e.task.name,
                isParentTask: q.value,
                hasChildren: E.value,
                isStoryTask: C.value,
                isMilestoneGroup: F.value,
                isMilestoneTask: H.value,
                showTaskIcon: e.showTaskIcon,
                formattedTimer: x.value,
                isOvertime: le(),
                overdueDays: ue(),
                overtimeText: a.value,
                overdueText: s.value,
                daysText: i.value
              })), { key: 3 })) : l.value ? (ae(), fe(Ut, { key: 4 }, [
                D.showTaskIcon !== !1 ? (ae(), fe("span", IE, [
                  F.value ? (ae(), fe("svg", _E, Ie[10] || (Ie[10] = [
                    Y("polygon", { points: "12,2 22,12 12,22 2,12" }, null, -1)
                  ]))) : C.value || E.value ? (ae(), fe("svg", NE, Ie[11] || (Ie[11] = [
                    Y("path", { d: "M3 7v10a2 2 0 002 2h14a2 2 0 002-2V9a2 2 0 00-2-2h-5l-2-2H5a2 2 0 00-2 2z" }, null, -1)
                  ]))) : (ae(), fe("svg", ME, Ie[12] || (Ie[12] = [
                    ks('<path d="M14 2H6a2 2 0 00-2 2v16a2 2 0 002 2h12a2 2 0 002-2V8z" data-v-2bc6791b></path><polyline points="14,2 14,8 20,8" data-v-2bc6791b></polyline><line x1="16" y1="13" x2="8" y2="13" data-v-2bc6791b></line><line x1="16" y1="17" x2="8" y2="17" data-v-2bc6791b></line><polyline points="10,9 9,9 8,9" data-v-2bc6791b></polyline>', 5)
                  ])))
                ])) : Ct("", !0),
                Y("span", {
                  class: iA(["task-name-text", { "parent-task": q.value }]),
                  title: e.task.name
                }, [
                  Li(D.$slots, "custom-task-content", Qo(qe.value, { type: "task-row" }), void 0, !0),
                  e.task.isTimerRunning || e.task.timerElapsedTime ? (ae(), fe("span", {
                    key: 0,
                    class: iA(["timer-badge", { "timer-active": e.task.isTimerRunning }])
                  }, [
                    e.task.isTimerRunning ? (ae(), fe("span", RE)) : Ct("", !0),
                    kA(" " + Ge(x.value), 1)
                  ], 2)) : Ct("", !0),
                  le() ? (ae(), fe("span", HE, Ge(a.value), 1)) : Ct("", !0),
                  ue() > 0 ? (ae(), fe("span", PE, Ge(s.value) + Ge(ue() > 0 ? ue() + i.value : ""), 1)) : Ct("", !0)
                ], 10, OE)
              ], 64)) : (ae(), fe(Ut, { key: 5 }, [
                D.showTaskIcon !== !1 ? (ae(), fe("span", KE, [
                  F.value ? (ae(), fe("svg", VE, Ie[13] || (Ie[13] = [
                    Y("polygon", { points: "12,2 22,12 12,22 2,12" }, null, -1)
                  ]))) : C.value || E.value ? (ae(), fe("svg", qE, Ie[14] || (Ie[14] = [
                    Y("path", { d: "M3 7v10a2 2 0 002 2h14a2 2 0 002-2V9a2 2 0 00-2-2h-5l-2-2H5a2 2 0 00-2 2z" }, null, -1)
                  ]))) : (ae(), fe("svg", jE, Ie[15] || (Ie[15] = [
                    ks('<path d="M14 2H6a2 2 0 00-2 2v16a2 2 0 002 2h12a2 2 0 002-2V8z" data-v-2bc6791b></path><polyline points="14,2 14,8 20,8" data-v-2bc6791b></polyline><line x1="16" y1="13" x2="8" y2="13" data-v-2bc6791b></line><line x1="16" y1="17" x2="8" y2="17" data-v-2bc6791b></line><polyline points="10,9 9,9 8,9" data-v-2bc6791b></polyline>', 5)
                  ])))
                ])) : Ct("", !0),
                Y("span", {
                  class: iA(["task-name-text", { "parent-task": q.value }]),
                  title: e.task.name
                }, [
                  kA(Ge(e.task.name) + " ", 1),
                  e.task.isTimerRunning || e.task.timerElapsedTime ? (ae(), fe("span", {
                    key: 0,
                    class: iA(["timer-badge", { "timer-active": e.task.isTimerRunning }])
                  }, [
                    e.task.isTimerRunning ? (ae(), fe("span", GE)) : Ct("", !0),
                    kA(" " + Ge(x.value), 1)
                  ], 2)) : Ct("", !0),
                  le() ? (ae(), fe("span", YE, Ge(a.value), 1)) : Ct("", !0),
                  ue() > 0 ? (ae(), fe("span", $E, Ge(s.value) + Ge(ue() > 0 ? ue() + i.value : ""), 1)) : Ct("", !0)
                ], 10, WE)
              ], 64))
            ], 4),
            (ae(!0), fe(Ut, null, uA(D.columns, (ve) => (ae(), fe("div", {
              key: ve.key,
              class: iA(["col", ve.cssClass || `col-${ve.key}`]),
              style: rA(D.getColumnWidthStyle ? D.getColumnWidthStyle(ve) : void 0)
            }, [
              F.value ? (ae(), fe("div", zE)) : (ae(), fe(Ut, { key: 1 }, [
                h(ve.key) ? (ae(), wr(_s(() => g(
                  ve.key,
                  { task: e.task, column: ve, value: e.task[ve.key] }
                )), { key: 0 })) : ve.formatter ? (ae(), fe(Ut, { key: 1 }, [
                  kA(Ge(ve.formatter(e.task, ve)), 1)
                ], 64)) : ve.key === "predecessor" ? (ae(), fe(Ut, { key: 2 }, [
                  kA(Ge(vt(Xg)(e.task.predecessor)), 1)
                ], 64)) : ve.key === "assignee" ? (ae(), fe("div", XE, [
                  Y("div", JE, Ge(e.task.assignee ? e.task.assignee.charAt(0) : "-"), 1),
                  Y("span", ZE, Ge(e.task.assignee || "-"), 1)
                ])) : ve.key === "startDate" ? (ae(), fe(Ut, { key: 4 }, [
                  kA(Ge(e.task.startDate || "-"), 1)
                ], 64)) : ve.key === "endDate" ? (ae(), fe(Ut, { key: 5 }, [
                  kA(Ge(e.task.endDate || "-"), 1)
                ], 64)) : ve.key === "estimatedHours" ? (ae(), fe(Ut, { key: 6 }, [
                  kA(Ge(e.task.estimatedHours || "-"), 1)
                ], 64)) : ve.key === "actualHours" ? (ae(), fe(Ut, { key: 7 }, [
                  kA(Ge(e.task.actualHours || "-"), 1)
                ], 64)) : ve.key === "progress" ? (ae(), fe("span", {
                  key: 8,
                  class: iA(["progress-value", Se.value])
                }, Ge(e.task.progress != null ? e.task.progress + "%" : "-"), 3)) : (ae(), fe(Ut, { key: 9 }, [
                  kA(Ge(e.task[ve.key] || "-"), 1)
                ], 64))
              ], 64))
            ], 6))), 128))
          ], 64))
        ], 46, CE),
        !e.disableChildrenRender && E.value && !e.task.collapsed && !F.value ? (ae(!0), fe(Ut, { key: 0 }, uA(e.task.children, (ve) => (ae(), wr(me, {
          key: ve.id,
          task: ve,
          level: e.level + 1,
          "is-hovered": e.hoveredTaskId === ve.id,
          "hovered-task-id": e.hoveredTaskId,
          "on-hover": e.onHover,
          columns: e.columns,
          "declarative-columns": e.declarativeColumns,
          "render-mode": e.renderMode,
          "get-column-width-style": e.getColumnWidthStyle,
          "disable-children-render": e.disableChildrenRender,
          "show-task-icon": e.showTaskIcon,
          "enable-drag": e.enableDrag,
          "drag-start": e.dragStart,
          "drag-over": e.dragOver,
          onToggle: Ie[0] || (Ie[0] = (xe) => A("toggle", xe)),
          onDblclick: Ie[1] || (Ie[1] = (xe) => A("dblclick", xe)),
          onStartTimer: Ie[2] || (Ie[2] = (xe) => A("start-timer", xe)),
          onStopTimer: Ie[3] || (Ie[3] = (xe) => A("stop-timer", xe)),
          onAddPredecessor: Ie[4] || (Ie[4] = (xe) => A("add-predecessor", xe)),
          onAddSuccessor: Ie[5] || (Ie[5] = (xe) => A("add-successor", xe)),
          onDelete: ce
        }, Cl({ _: 2 }, [
          l.value ? {
            name: "custom-task-content",
            fn: fs((xe) => [
              Li(D.$slots, "custom-task-content", Qo({ ref_for: !0 }, xe), void 0, !0)
            ]),
            key: "0"
          } : void 0
        ]), 1032, ["task", "level", "is-hovered", "hovered-task-id", "on-hover", "columns", "declarative-columns", "render-mode", "get-column-width-style", "disable-children-render", "show-task-icon", "enable-drag", "drag-start", "drag-over"]))), 128)) : Ct("", !0),
        $n(Hy, {
          visible: j.value,
          task: re.value,
          position: $.value,
          onClose: de,
          onStartTimer: Ie[6] || (Ie[6] = (ve) => D.$emit("start-timer", e.task)),
          onStopTimer: Ie[7] || (Ie[7] = (ve) => D.$emit("stop-timer", e.task)),
          onAddPredecessor: Ie[8] || (Ie[8] = (ve) => D.$emit("add-predecessor", e.task)),
          onAddSuccessor: Ie[9] || (Ie[9] = (ve) => D.$emit("add-successor", e.task)),
          onDelete: ce
        }, null, 8, ["visible", "task", "position"])
      ]);
    };
  }
}), AF = /* @__PURE__ */ xn(tF, [["__scopeId", "data-v-2bc6791b"]]), rF = 320, E0 = 280, nF = 1160;
function vf(r, t, e) {
  if (r == null)
    return e;
  if (typeof r == "number")
    return r;
  if (typeof r == "string") {
    const A = r.trim();
    if (A.endsWith("%")) {
      const a = parseFloat(A);
      if (!isNaN(a))
        return Math.round(t * a / 100);
    }
    const n = parseFloat(A);
    if (!isNaN(n))
      return n;
  }
  return e;
}
const mf = [
  {
    type: "name",
    key: "taskName",
    label: "任务名称",
    cssClass: "col-name",
    visible: !0
  },
  {
    type: "predecessor",
    key: "predecessor",
    label: "前置任务",
    cssClass: "col-pre",
    visible: !0
  },
  {
    type: "assignee",
    key: "assignee",
    label: "负责人",
    cssClass: "col-assignee",
    visible: !0
  },
  {
    type: "startDate",
    key: "startDate",
    label: "开始日期",
    cssClass: "col-date",
    visible: !0
  },
  {
    type: "endDate",
    key: "endDate",
    label: "结束日期",
    cssClass: "col-date",
    visible: !0
  },
  {
    type: "estimatedHours",
    key: "estimatedHours",
    label: "预估工时",
    cssClass: "col-hours",
    visible: !0
  },
  {
    type: "actualHours",
    key: "actualHours",
    label: "实际工时",
    cssClass: "col-hours",
    visible: !0
  },
  {
    type: "progress",
    key: "progress",
    label: "进度",
    cssClass: "col-progress",
    visible: !0
  }
];
function aF(r) {
  const t = r.dragThreshold ?? 5, e = Te({
    isDragging: !1,
    isPreparing: !1,
    draggedTask: null,
    draggedElement: null,
    ghostElement: null,
    dropTargetTask: null,
    dropPosition: null,
    startX: 0,
    startY: 0
  }), A = (g, c, p) => {
    r.enabled && (g.type === "milestone-group" || g.type === "milestone" || (p.preventDefault(), p.stopPropagation(), e.value.isPreparing = !0, e.value.draggedTask = g, e.value.draggedElement = c, e.value.startX = p.clientX, e.value.startY = p.clientY));
  }, n = (g) => {
    if (!e.value.isPreparing || e.value.isDragging) return;
    const c = e.value.draggedTask, p = e.value.draggedElement;
    e.value.isDragging = !0, e.value.isPreparing = !1;
    const m = p.cloneNode(!0);
    m.style.position = "fixed", m.style.left = "-9999px", m.style.top = "-9999px", m.style.width = `${p.offsetWidth}px`, m.style.height = `${p.offsetHeight}px`, m.style.opacity = "0.6", m.style.pointerEvents = "none", m.style.zIndex = "999999", m.style.boxShadow = "0 8px 24px rgba(0, 0, 0, 0.3)", m.classList.add("task-row-dragging"), (document.querySelector(".gantt-fullscreen") || document.body).appendChild(m), e.value.ghostElement = m, p.style.opacity = "0.4", document.body.style.userSelect = "none", document.body.style.webkitUserSelect = "none", document.body.style.cursor = "move", window.dispatchEvent(
      new CustomEvent("task-row-drag-start", {
        detail: { task: c }
      })
    ), r.onDragStart && r.onDragStart(c), a(g);
  }, a = (g) => {
    if (e.value.ghostElement) {
      const c = e.value.ghostElement;
      c.style.left = `${g.clientX + 10}px`, c.style.top = `${g.clientY - 25}px`;
    }
  }, s = (g, c, p) => {
    if (!e.value.isDragging || !e.value.draggedTask) return;
    if (g.id === e.value.draggedTask.id) {
      i();
      return;
    }
    if (h(e.value.draggedTask, g)) {
      i();
      return;
    }
    p.preventDefault(), p.stopPropagation();
    const y = g.children && g.children.length > 0 ? "child" : "after";
    e.value.dropTargetTask = g, e.value.dropPosition = y, document.querySelectorAll(".task-row-drop-target").forEach((w) => {
      w.classList.remove("task-row-drop-target", "drop-after", "drop-child");
    }), c.classList.add("task-row-drop-target"), y === "after" ? c.classList.add("drop-after") : c.classList.add("drop-child"), r.onDragOver && r.onDragOver(g, y);
  }, i = () => {
    e.value.dropTargetTask = null, e.value.dropPosition = null, document.querySelectorAll(".task-row-drop-target").forEach((g) => {
      g.classList.remove("task-row-drop-target", "drop-after", "drop-child");
    });
  }, o = () => {
    if (e.value.isPreparing && !e.value.isDragging) {
      e.value.isPreparing = !1, e.value.draggedTask = null, e.value.draggedElement = null;
      return;
    }
    if (!e.value.isDragging) return;
    const g = e.value.draggedTask, c = e.value.dropTargetTask, p = e.value.dropPosition;
    e.value.draggedElement && (e.value.draggedElement.style.opacity = ""), e.value.ghostElement && e.value.ghostElement.parentElement && e.value.ghostElement.parentElement.removeChild(e.value.ghostElement), i(), document.body.style.userSelect = "", document.body.style.webkitUserSelect = "", document.body.style.cursor = "", window.dispatchEvent(new CustomEvent("task-row-drag-end")), g && c && p && r.onDrop && r.onDrop(g, c, p), e.value = {
      isDragging: !1,
      isPreparing: !1,
      draggedTask: null,
      draggedElement: null,
      ghostElement: null,
      dropTargetTask: null,
      dropPosition: null,
      startX: 0,
      startY: 0
    };
  }, l = (g) => {
    if (e.value.isPreparing && !e.value.isDragging) {
      const c = Math.abs(g.clientX - e.value.startX), p = Math.abs(g.clientY - e.value.startY);
      Math.sqrt(c * c + p * p) > t && n(g);
      return;
    }
    if (e.value.isDragging) {
      a(g);
      const c = e.value.ghostElement;
      c && (c.style.display = "none");
      const p = document.elementFromPoint(g.clientX, g.clientY);
      if (c && (c.style.display = ""), p) {
        const m = p.closest(".task-row");
        if (m && m.dataset.taskId) {
          const y = Number(m.dataset.taskId);
          window.dispatchEvent(
            new CustomEvent("task-row-drag-over", {
              detail: { taskId: y, event: g }
            })
          );
        }
      }
    }
  }, u = () => {
    (e.value.isDragging || e.value.isPreparing) && o();
  }, h = (g, c) => {
    if (!g.children) return !1;
    for (const p of g.children)
      if (p.id === c.id || h(p, c)) return !0;
    return !1;
  };
  return En(() => {
    document.addEventListener("mousemove", l), document.addEventListener("mouseup", u);
  }), tn(() => {
    document.removeEventListener("mousemove", l), document.removeEventListener("mouseup", u), e.value.ghostElement && e.value.ghostElement.parentElement && e.value.ghostElement.parentElement.removeChild(e.value.ghostElement);
  }), {
    dragState: e,
    startDrag: A,
    handleDragOver: s,
    endDrag: o
  };
}
function iF(r) {
  let t = !1;
  if (typeof r.type == "object") {
    const s = r.type;
    t = s.name === "TaskListColumn" || s.__name === "TaskListColumn" || // 检查文件名(setup script 组件)
    s.__file && s.__file.includes("TaskListColumn");
  }
  if (!t)
    return null;
  const e = r.props || {}, A = r.children, n = A == null ? void 0 : A.header, a = A == null ? void 0 : A.default;
  return {
    prop: e.prop,
    label: e.label,
    width: e.width,
    align: e.align || "left",
    cssClass: e.cssClass,
    headerSlot: n,
    defaultSlot: a
  };
}
function sF(r) {
  var n;
  const t = (n = r.default) == null ? void 0 : n.call(r);
  if (!t || !Array.isArray(t))
    return [];
  const e = [], A = (a) => {
    for (const s of a) {
      if (!s)
        continue;
      if (typeof s.type == "symbol") {
        s.children && Array.isArray(s.children) && A(s.children);
        continue;
      }
      const i = iF(s);
      i && e.push(i), s.children && Array.isArray(s.children) && A(s.children);
    }
  };
  return A(t), e;
}
function oF(r, t, e) {
  const A = lt(() => (typeof r == "string" ? r : r.value) !== "declarative" ? [] : sF(t)), n = lt(() => (typeof r == "string" ? r : r.value) === "declarative" ? A.value : e || []);
  return {
    declarativeColumns: A,
    finalColumns: n,
    getColumnWidthStyle: (i, o) => {
      if (!i.width) return {};
      let l;
      if (typeof i.width == "string" && i.width.includes("%"))
        if (o && o > 0) {
          const u = parseFloat(i.width) / 100;
          l = `${Math.floor(o * u)}px`;
        } else
          return {};
      else
        typeof i.width == "number" ? l = `${i.width}px` : typeof i.width == "string" ? /\d+(px|rem|em|%)/.test(i.width) ? l = i.width : l = `${i.width}px` : l = String(i.width);
      return {
        flex: `0 0 ${l}`,
        minWidth: l,
        maxWidth: l
      };
    },
    getColumnAlignStyle: (i) => !i || i === "left" ? {} : {
      justifyContent: i === "center" ? "center" : "flex-end",
      textAlign: i
    }
  };
}
const lF = { class: "task-list-header" }, uF = { class: "col col-name" }, $o = 51, F0 = 5, cF = /* @__PURE__ */ dn({
  __name: "TaskList",
  props: {
    tasks: {},
    useDefaultDrawer: { type: Boolean },
    taskListConfig: {},
    taskListColumnRenderMode: { default: "default" },
    enableTaskRowMove: { type: Boolean },
    taskListRowClassName: {},
    taskListRowStyle: { type: [Boolean, null, String, Object, Array, Function] }
  },
  emits: ["task-collapse-change", "start-timer", "stop-timer", "add-predecessor", "add-successor", "delete", "task-row-moved"],
  setup(r, { emit: t }) {
    var xe;
    const e = r, A = t, n = Fc(), a = lt(() => !!n["custom-task-content"]), s = Oy("gantt-column-slots", {}), { t: i } = Ma(), { declarativeColumns: o, getColumnWidthStyle: l } = oF(
      lt(() => e.taskListColumnRenderMode || "default"),
      n,
      ((xe = e.taskListConfig) == null ? void 0 : xe.columns) || mf
    ), u = lt(() => {
      var _e;
      return e.taskListColumnRenderMode === "declarative" ? o.value : (((_e = e.taskListConfig) == null ? void 0 : _e.columns) || mf).filter((Pe) => Pe.visible !== !1);
    }), h = Te(null), g = Te(null), c = Te(0);
    let p = null, m = null;
    const y = Te(0), w = Te(0), E = (Qe) => {
      if (e.taskListColumnRenderMode === "declarative")
        return l(Qe, c.value);
      if (!Qe.width) return {};
      let _e;
      if (typeof Qe.width == "string" && Qe.width.includes("%")) {
        const Pe = c.value || 0;
        if (Pe > 0) {
          const je = parseFloat(Qe.width) / 100;
          _e = `${Math.floor(Pe * je)}px`;
        } else
          return {};
      } else
        _e = `${Qe.width}px`;
      return {
        flex: `0 0 ${_e}`,
        minWidth: _e,
        maxWidth: _e
      };
    }, C = lt(() => {
      var _e;
      return e.taskListColumnRenderMode === "declarative" ? [] : (((_e = e.taskListConfig) == null ? void 0 : _e.columns) || mf).filter((Pe) => Pe.visible !== !1);
    }), F = lt(() => e.tasks || []), H = Te(null), q = Te(!1), N = () => {
      q.value = !0;
    }, M = () => {
      if (q.value = !1, h.value) {
        const Qe = h.value.offsetWidth;
        Math.abs(Qe - c.value) > 1 && (c.value = Qe);
      }
    }, k = (Qe) => {
      q.value || (H.value = Qe, window.dispatchEvent(
        new CustomEvent("task-list-hover", {
          detail: Qe
        })
      ));
    }, O = (Qe) => {
      H.value = Qe.detail;
    }, S = (Qe) => {
      Qe.type === "milestone" || Qe.type === "milestone-group" || window.dispatchEvent(
        new CustomEvent("task-row-double-click", {
          detail: Qe
        })
      );
    }, U = (Qe) => {
      if (!Qe.children || Qe.children.length === 0)
        return {
          progress: Qe.progress || 0,
          startDate: Qe.startDate || "",
          endDate: Qe.endDate || ""
        };
      const _e = [], Pe = (St) => {
        St.forEach((bt) => {
          _e.push(bt), bt.children && bt.children.length > 0 && Pe(bt.children);
        });
      };
      Pe(Qe.children);
      const je = _e.reduce((St, bt) => St + (bt.progress || 0), 0), Ke = _e.length > 0 ? Math.round(je / _e.length) : 0, et = _e.filter((St) => St.startDate && St.endDate);
      if (et.length === 0)
        return {
          progress: Ke,
          startDate: Qe.startDate || "",
          endDate: Qe.endDate || ""
        };
      const ut = et.map((St) => new Date(St.startDate)), yt = et.map((St) => new Date(St.endDate)), Ft = new Date(Math.min(...ut.map((St) => St.getTime()))), Bt = new Date(Math.max(...yt.map((St) => St.getTime())));
      return {
        progress: Ke,
        startDate: Ft.toISOString().split("T")[0],
        endDate: Bt.toISOString().split("T")[0]
      };
    }, W = () => {
      if (!e.tasks) return;
      const Qe = (_e) => {
        _e.forEach((Pe) => {
          if (Pe.children && Pe.children.length > 0) {
            Qe(Pe.children);
            const je = U(Pe);
            Pe.progress = je.progress, Pe.startDate = je.startDate, Pe.endDate = je.endDate;
          }
        });
      };
      Qe(e.tasks);
    }, I = (Qe) => {
      const _e = [], Pe = (je) => {
        je.forEach((Ke) => {
          _e.push(Ke), Ke.children && Ke.children.length > 0 && Pe(Ke.children);
        });
      };
      return Pe(Qe), _e;
    }, le = (Qe, _e = 0) => {
      const Pe = [];
      for (const je of Qe)
        Pe.push({ task: je, level: _e }), !(je.type === "milestone-group") && je.children && je.children.length > 0 && !je.collapsed && Pe.push(...le(je.children, _e + 1));
      return Pe;
    }, ue = lt(() => le(F.value)), Z = lt(() => {
      const Qe = y.value, _e = w.value || 600, Pe = Math.floor(Qe / $o) - F0, je = Math.ceil((Qe + _e) / $o) + F0, Ke = ue.value.length, et = Math.min(Math.max(0, Pe), Ke), ut = Math.min(Ke, Math.max(et + 1, je));
      return {
        startIndex: et,
        endIndex: ut
      };
    }), ee = lt(() => {
      const { startIndex: Qe, endIndex: _e } = Z.value;
      return ue.value.slice(Qe, _e).map((je, Ke) => ({
        ...je,
        rowIndex: Qe + Ke
      }));
    }), X = lt(() => ue.value.length * $o), Ae = lt(() => Z.value.startIndex * $o), oe = lt(() => {
      const Qe = ee.value.length * $o;
      return Math.max(0, X.value - Ae.value - Qe);
    });
    function x(Qe) {
      Qe.collapsed = !Qe.collapsed, A("task-collapse-change", Qe);
    }
    const L = (Qe) => {
      if (!e.tasks) return;
      const _e = (Pe) => {
        for (const je of Pe) {
          if (je.id === Qe.id)
            return Object.assign(je, Qe), Qe.children, !0;
          if (je.children && _e(je.children))
            return !0;
        }
        return !1;
      };
      _e(e.tasks), W();
    }, j = (Qe) => {
      const _e = Qe.detail;
      L(_e);
    }, $ = (Qe) => {
      const _e = Qe.detail;
      e.tasks && e.tasks.push(_e), W();
    }, re = () => {
      const Qe = I(F.value);
      window.dispatchEvent(
        new CustomEvent("task-list-updated", {
          detail: Qe
        })
      );
    }, pe = (Qe) => {
      const { milestoneId: _e, icon: Pe } = Qe.detail, je = (Ke) => {
        for (const et of Ke) {
          if (et.type === "milestone-group" && et.children) {
            const ut = et.children.find((yt) => yt.id === _e);
            if (ut)
              return ut.icon = Pe, !0;
          }
          if (et.children && je(et.children))
            return !0;
        }
        return !1;
      };
      je(F.value);
    }, de = (Qe) => {
      const _e = Qe.target;
      if (!_e) return;
      const Pe = _e.scrollTop;
      y.value = Pe, window.dispatchEvent(
        new CustomEvent("task-list-vertical-scroll", {
          detail: { scrollTop: Pe }
        })
      );
    }, ce = (Qe) => {
      const { scrollTop: _e } = Qe.detail, Pe = g.value;
      y.value = _e, Pe && Math.abs(Pe.scrollTop - _e) > 1 && (Pe.scrollTop = _e);
    }, Se = (Qe) => {
      try {
        window.dispatchEvent(
          new CustomEvent("context-menu", {
            detail: Qe
          })
        );
      } catch (_e) {
        console.error("TaskList - Failed to dispatch context-menu event", _e);
      }
    }, qe = (Qe) => {
      A("start-timer", Qe);
    }, rt = (Qe) => {
      A("stop-timer", Qe);
    }, at = (Qe) => {
      A("add-predecessor", Qe);
    }, dt = (Qe) => {
      A("add-successor", Qe);
    }, D = (Qe, _e) => {
      A("delete", Qe, _e);
    }, Ie = (Qe) => {
      const { draggedTask: _e, targetTask: Pe, position: je } = Qe;
      e.tasks && A("task-row-moved", {
        draggedTask: _e,
        targetTask: Pe,
        position: je,
        oldParent: null,
        // 将由 GanttChart 计算
        newParent: null
        // 将由 GanttChart 计算
      });
    }, { startDrag: me, handleDragOver: ve } = aF({
      enabled: e.enableTaskRowMove ?? !1,
      onDrop: (Qe, _e, Pe) => {
        Ie({ draggedTask: Qe, targetTask: _e, position: Pe });
      }
    });
    return En(async () => {
      h.value && (p = new ResizeObserver((Qe) => {
        if (!q.value)
          for (const _e of Qe)
            c.value = _e.contentRect.width;
      }), p.observe(h.value)), g.value && (w.value = g.value.clientHeight, y.value = g.value.scrollTop, m = new ResizeObserver((Qe) => {
        for (const _e of Qe)
          w.value = _e.contentRect.height;
      }), m.observe(g.value)), window.addEventListener("task-updated", j), window.addEventListener("task-added", $), window.addEventListener("request-task-list", re), window.addEventListener("timeline-task-hover", O), window.addEventListener("timeline-vertical-scroll", ce), window.addEventListener("milestone-icon-changed", pe), window.addEventListener("splitter-drag-start", N), window.addEventListener("splitter-drag-end", M), W();
    }), tn(() => {
      p && (p.disconnect(), p = null), m && (m.disconnect(), m = null), window.removeEventListener("task-updated", j), window.removeEventListener("task-added", $), window.removeEventListener("request-task-list", re), window.removeEventListener("timeline-task-hover", O), window.removeEventListener(
        "timeline-vertical-scroll",
        ce
      ), window.removeEventListener("milestone-icon-changed", pe), window.removeEventListener("splitter-drag-start", N), window.removeEventListener("splitter-drag-end", M);
    }), (Qe, _e) => (ae(), fe("div", {
      ref_key: "taskListRef",
      ref: h,
      class: "task-list"
    }, [
      Y("div", lF, [
        Qe.taskListColumnRenderMode === "declarative" ? (ae(!0), fe(Ut, { key: 0 }, uA(u.value, (Pe, je) => (ae(), fe("div", {
          key: je,
          class: iA(["col", Pe.cssClass]),
          style: rA({
            ...E(Pe),
            justifyContent: Pe.align === "center" ? "center" : Pe.align === "right" ? "flex-end" : "flex-start",
            textAlign: Pe.align || "left"
          })
        }, [
          Pe.headerSlot ? (ae(), wr(_s(Pe.headerSlot), { key: 0 })) : (ae(), fe(Ut, { key: 1 }, [
            kA(Ge(Pe.label), 1)
          ], 64))
        ], 6))), 128)) : (ae(), fe(Ut, { key: 1 }, [
          Y("div", uF, [
            vt(s)["header-name"] ? (ae(), wr(_s(vt(s)["header-name"]), { key: 0 })) : (ae(), fe(Ut, { key: 1 }, [
              kA(Ge(vt(i).taskName || "任务名称"), 1)
            ], 64))
          ]),
          (ae(!0), fe(Ut, null, uA(C.value, (Pe) => (ae(), fe("div", {
            key: Pe.key,
            class: iA(["col", Pe.cssClass || `col-${Pe.key}`]),
            style: rA(E(Pe))
          }, [
            vt(s)[`header-${Pe.key}`] ? (ae(), wr(_s(vt(s)[`header-${Pe.key}`]), { key: 0 })) : (ae(), fe(Ut, { key: 1 }, [
              kA(Ge(vt(i)[Pe.key] || Pe.label), 1)
            ], 64))
          ], 6))), 128))
        ], 64))
      ]),
      Y("div", {
        ref_key: "taskListBodyRef",
        ref: g,
        class: "task-list-body",
        onScroll: de
      }, [
        Y("div", {
          class: "task-list-body-spacer",
          style: rA({ height: `${Ae.value}px` })
        }, null, 4),
        (ae(!0), fe(Ut, null, uA(ee.value, ({ task: Pe, level: je, rowIndex: Ke }) => {
          var et;
          return ae(), wr(AF, {
            key: Pe.id,
            task: Pe,
            level: je,
            "row-index": Ke,
            "is-hovered": H.value === Pe.id,
            "hovered-task-id": H.value,
            "on-hover": k,
            columns: Qe.taskListColumnRenderMode === "declarative" ? [] : C.value,
            "declarative-columns": Qe.taskListColumnRenderMode === "declarative" ? u.value : void 0,
            "render-mode": Qe.taskListColumnRenderMode,
            "get-column-width-style": E,
            "disable-children-render": !0,
            "show-task-icon": (et = e.taskListConfig) == null ? void 0 : et.showTaskIcon,
            "enable-drag": e.enableTaskRowMove,
            "drag-start": vt(me),
            "drag-over": vt(ve),
            "task-list-row-class-name": e.taskListRowClassName,
            "task-list-row-style": e.taskListRowStyle,
            onToggle: x,
            onDblclick: S,
            onContextmenu: Se,
            onStartTimer: qe,
            onStopTimer: rt,
            onAddPredecessor: at,
            onAddSuccessor: dt,
            onDelete: D
          }, Cl({ _: 2 }, [
            a.value ? {
              name: "custom-task-content",
              fn: fs((ut) => [
                Li(Qe.$slots, "custom-task-content", Qo({ ref_for: !0 }, ut), void 0, !0)
              ]),
              key: "0"
            } : void 0
          ]), 1032, ["task", "level", "row-index", "is-hovered", "hovered-task-id", "columns", "declarative-columns", "render-mode", "show-task-icon", "enable-drag", "drag-start", "drag-over", "task-list-row-class-name", "task-list-row-style"]);
        }), 128)),
        Y("div", {
          class: "task-list-body-spacer",
          style: rA({ height: `${oe.value}px` })
        }, null, 4)
      ], 544)
    ], 512));
  }
}), fF = /* @__PURE__ */ xn(cF, [["__scopeId", "data-v-ea3ee073"]]), Ye = {
  HOUR: "hour",
  // 小时视图 - 每列显示一小时
  DAY: "day",
  // 日视图 - 每列显示一天
  WEEK: "week",
  // 周视图 - 每列显示一周
  MONTH: "month",
  // 月视图 - 每列显示一个月
  QUARTER: "quarter",
  // 季度视图 - 每列显示一个季度
  YEAR: "year"
  // 年视图 - 每列显示一年
}, hF = {
  hour: {
    scale: Ye.HOUR,
    cellWidth: 40,
    headerLevels: 2,
    formatters: { primary: "yyyy年MM月dd日", secondary: "HH:mm" }
  },
  day: {
    scale: Ye.DAY,
    cellWidth: 30,
    headerLevels: 2,
    formatters: { primary: "yyyy年MM月", secondary: "dd" }
  },
  week: {
    scale: Ye.WEEK,
    cellWidth: 120,
    headerLevels: 2,
    formatters: { primary: "yyyy年MM月", secondary: "W周" }
  },
  month: {
    scale: Ye.MONTH,
    cellWidth: 180,
    headerLevels: 2,
    formatters: { primary: "yyyy年", secondary: "MM月" }
  },
  quarter: {
    scale: Ye.QUARTER,
    cellWidth: 60,
    // 每个季度的宽度
    headerLevels: 2,
    formatters: { primary: "yyyy年", secondary: "Q季度" }
  },
  year: {
    scale: Ye.YEAR,
    cellWidth: 180,
    // 每半年的宽度
    headerLevels: 2,
    formatters: { primary: "yyyy年", secondary: "上半年|下半年" }
  }
}, dF = {
  key: 0,
  class: "anchor-tooltip"
}, gF = /* @__PURE__ */ dn({
  __name: "LinkAnchor",
  props: {
    type: {},
    taskId: {},
    visible: { type: Boolean, default: !1 },
    isDragSource: { type: Boolean, default: !1 },
    isDragTarget: { type: Boolean, default: !1 },
    isValidTarget: { type: Boolean, default: !0 },
    enabled: { type: Boolean, default: !0 },
    globalDragging: { type: Boolean, default: !1 }
  },
  emits: ["drag-start", "drag-move", "drag-end"],
  setup(r, { emit: t }) {
    const e = r, A = t, n = Te(!1), a = lt(() => e.visible || // TaskBar 悬停
    e.globalDragging || // 全局拖拽进行中
    e.isDragSource || // 是拖拽的源任务
    e.isDragTarget || // 是拖拽的目标任务
    n.value);
    let s = null, i = null, o = !1;
    function l(c) {
      e.enabled && (c.stopPropagation(), c.preventDefault(), o = !0, A("drag-start", {
        taskId: e.taskId,
        type: e.type,
        x: c.clientX,
        y: c.clientY
      }), s = (p) => {
        o && A("drag-move", {
          x: p.clientX,
          y: p.clientY
        });
      }, i = () => {
        o && (A("drag-end", {
          taskId: e.taskId,
          type: e.type
        }), g());
      }, document.addEventListener("mousemove", s), document.addEventListener("mouseup", i));
    }
    function u() {
      e.enabled && (n.value = !0);
    }
    function h() {
      e.enabled && (n.value = !1);
    }
    function g() {
      o = !1, s && (document.removeEventListener("mousemove", s), s = null), i && (document.removeEventListener("mouseup", i), i = null);
    }
    return tn(() => {
      g();
    }), (c, p) => c.enabled && a.value ? (ae(), fe("div", {
      key: 0,
      class: iA(["link-anchor", {
        "anchor-predecessor": c.type === "predecessor",
        "anchor-successor": c.type === "successor",
        "drag-source": c.isDragSource,
        "drag-target": c.isDragTarget,
        "valid-target": c.isDragTarget && c.isValidTarget,
        "invalid-target": c.isDragTarget && !c.isValidTarget,
        visible: a.value
      }]),
      onMousedown: l,
      onMouseenter: u,
      onMouseleave: h
    }, [
      !c.isDragSource && !c.isDragTarget && !c.globalDragging ? (ae(), fe("div", dF, Ge(c.type === "predecessor" ? "添加前置任务" : "添加后置任务"), 1)) : Ct("", !0)
    ], 34)) : Ct("", !0);
  }
}), x0 = /* @__PURE__ */ xn(gF, [["__scopeId", "data-v-fa084d7b"]]), pF = {
  showAvatar: !0,
  showTitle: !0,
  showProgress: !0,
  dragThreshold: 5,
  resizeHandleWidth: 5,
  enableDragDelay: !1,
  dragDelayTime: 150
}, vF = ["data-task-id"], mF = {
  key: 0,
  class: "parent-label"
}, wF = ["src", "alt"], BF = {
  key: 1,
  class: "avatar-text"
}, yF = {
  key: 2,
  class: "avatar-icon",
  viewBox: "0 0 24 24",
  fill: "none",
  xmlns: "http://www.w3.org/2000/svg"
}, bF = {
  key: 1,
  class: "task-name"
}, CF = { class: "tooltip-title" }, EF = { class: "tooltip-content" }, FF = { class: "tooltip-row" }, xF = { class: "tooltip-label" }, SF = { class: "tooltip-value" }, UF = { class: "tooltip-row" }, TF = { class: "tooltip-label" }, QF = { class: "tooltip-value" }, DF = { class: "tooltip-row" }, kF = { class: "tooltip-label" }, LF = { class: "tooltip-value" }, IF = { class: "tooltip-row" }, _F = { class: "tooltip-label" }, NF = { class: "tooltip-value" }, MF = { class: "tooltip-row" }, OF = { class: "tooltip-label" }, RF = { class: "tooltip-value" }, HF = { class: "drag-tooltip-content" }, PF = { class: "tooltip-row" }, KF = { class: "tooltip-label" }, VF = { class: "tooltip-value" }, qF = { class: "tooltip-row" }, jF = { class: "tooltip-label" }, WF = { class: "tooltip-value" }, GF = 1e3, YF = 100, $F = 250, zF = /* @__PURE__ */ dn({
  __name: "TaskBar",
  props: {
    task: {},
    rowHeight: {},
    dayWidth: {},
    startDate: {},
    isParent: { type: Boolean },
    onClick: { type: Function },
    scrollLeft: {},
    containerWidth: {},
    hideBubbles: { type: Boolean },
    timelineData: {},
    currentTimeScale: {},
    taskBarConfig: {},
    allowDragAndResize: { type: Boolean },
    isHighlighted: { type: Boolean },
    isPrimaryHighlight: { type: Boolean },
    isInHighlightMode: { type: Boolean },
    dragLinkMode: {},
    isLinkDragSource: { type: Boolean },
    isValidLinkTarget: { type: Boolean },
    isInvalidLinkTarget: { type: Boolean },
    allTasks: {}
  },
  emits: [
    "update:task",
    "bar-mounted",
    "click",
    "dblclick",
    "drag-end",
    "resize-end",
    "scroll-to-position",
    "start-timer",
    "stop-timer",
    "add-predecessor",
    "add-successor",
    "delete",
    "delete-link",
    "context-menu",
    "long-press",
    "link-drag-start",
    "link-drag-move",
    "link-drag-end"
  ],
  setup(r, { emit: t }) {
    const e = r, A = t, n = Fc(), { getTranslation: a } = Ma(), s = (V) => a(V), i = lt(() => !!n["custom-task-content"]), o = lt(() => ({
      ...pF,
      ...e.taskBarConfig
    })), l = (V) => {
      if (!V) return null;
      if (V instanceof Date)
        return V;
      if (typeof V == "string" && /^\d{4}-\d{2}-\d{2}$/.test(V)) {
        const [Fe, ke, Ze] = V.split("-").map(Number);
        return new Date(Fe, ke - 1, Ze);
      }
      if (typeof V == "string" && /^\d{4}-\d{2}-\d{2} \d{2}:\d{2}$/.test(V)) {
        const [Fe, ke] = V.split(" "), [Ze, Me, tt] = Fe.split("-").map(Number), [Je, ft] = ke.split(":").map(Number);
        return new Date(Ze, Me - 1, tt, Je, ft);
      }
      const Be = new Date(V);
      return isNaN(Be.getTime()) ? null : Be;
    }, u = () => {
      const V = /* @__PURE__ */ new Date();
      return new Date(V.getFullYear(), V.getMonth(), V.getDate());
    }, h = Te(u());
    let g = null;
    En(() => {
      g = window.setInterval(() => {
        h.value = u();
      }, 6e4);
    }), tn(() => {
      g !== null && (clearInterval(g), g = null);
    });
    const c = (V) => {
      const Be = V.getFullYear(), Fe = String(V.getMonth() + 1).padStart(2, "0"), ke = String(V.getDate()).padStart(2, "0");
      if (e.currentTimeScale === Ye.HOUR) {
        const Ze = String(V.getHours()).padStart(2, "0"), Me = String(V.getMinutes()).padStart(2, "0");
        return `${Be}-${Fe}-${ke} ${Ze}:${Me}`;
      }
      return `${Be}-${Fe}-${ke}`;
    }, p = (V, Be) => {
      const Fe = new Date(V);
      return Fe.setDate(Fe.getDate() + Be), Fe;
    }, m = (V, Be) => {
      const Fe = new Date(V);
      return Fe.setMinutes(Fe.getMinutes() + Be), Fe;
    }, y = (V, Be) => Math.round((Be.getTime() - V.getTime()) / (1e3 * 60)), w = lt(() => e.task.isEditable === !1 ? !0 : e.currentTimeScale === Ye.YEAR), E = Te(!1), C = Te(!1), F = Te(!1), H = Te(!1), q = Te(0), N = Te(0), M = Te(0), k = Te(0), O = Te(0), S = Te(0), U = Te(null), W = Te(!1), I = Te(!1), le = lt(() => o.value.dragThreshold ?? 5), ue = Te(!1), Z = Te(null), ee = Te(null), X = Te(!1), Ae = Te(0), oe = Te(null), x = Te(null), L = Te(null), j = Te(null), $ = Te(0), re = lt(() => {
      var Jt, fA;
      if (x.value && e.currentTimeScale === Ye.QUARTER)
        return {
          left: `${x.value.left ?? 0}px`,
          width: `${x.value.width ?? 100}px`,
          height: `${e.rowHeight - 10}px`,
          top: "4px"
        };
      const V = ((Jt = oe.value) == null ? void 0 : Jt.startDate) || e.task.startDate, Be = ((fA = oe.value) == null ? void 0 : fA.endDate) || e.task.endDate, Fe = l(V), ke = l(Be), Ze = ce.value;
      if (!Fe && !ke)
        return {
          left: "0px",
          width: "0px",
          height: `${e.rowHeight - 10}px`,
          top: "4px"
        };
      const Me = Fe || ke, tt = ke || Fe, Je = Ze;
      if (!Me || !tt || !Je)
        return {
          left: "0px",
          width: "0px",
          height: `${e.rowHeight - 10}px`,
          top: "4px"
        };
      let ft = 0, Et = 0;
      if (e.currentTimeScale === Ye.HOUR) {
        const gA = new Date(Je);
        gA.setHours(0, 0, 0, 0);
        let Xt = Me, tA = tt;
        const Gt = V || e.task.startDate, UA = Be || e.task.endDate;
        typeof Gt == "string" && /^\d{4}-\d{2}-\d{2}$/.test(Gt.trim()) && (Xt = new Date(Me), Xt.setHours(0, 0, 0, 0)), typeof UA == "string" && /^\d{4}-\d{2}-\d{2}$/.test(UA.trim()) && (tA = new Date(tt), tA.setDate(tA.getDate() + 1), tA.setHours(0, 0, 0, 0));
        const FA = y(gA, Xt), IA = y(gA, tA), aA = 40 / 60;
        ft = Math.max(0, FA * aA), Et = Math.max(4, (IA - FA) * aA);
      } else {
        const gA = new Date(
          Me.getFullYear(),
          Me.getMonth(),
          Me.getDate()
        ), Xt = new Date(
          tt.getFullYear(),
          tt.getMonth(),
          tt.getDate()
        ), tA = new Date(
          Je.getFullYear(),
          Je.getMonth(),
          Je.getDate()
        );
        if (e.timelineData && e.currentTimeScale && (e.currentTimeScale === Ye.WEEK || e.currentTimeScale === Ye.MONTH || e.currentTimeScale === Ye.QUARTER || e.currentTimeScale === Ye.YEAR)) {
          const Gt = OA(
            gA,
            e.timelineData,
            e.currentTimeScale
          ), UA = new Date(Xt);
          UA.setDate(UA.getDate() + 1);
          let FA = OA(
            UA,
            e.timelineData,
            e.currentTimeScale
          );
          if (FA === Gt) {
            let IA = 2;
            e.currentTimeScale === Ye.WEEK ? IA = 60 / 7 : e.currentTimeScale === Ye.QUARTER ? IA = 60 / 90 : e.currentTimeScale === Ye.YEAR && (IA = 180 / 182), FA = OA(
              Xt,
              e.timelineData,
              e.currentTimeScale
            ) + IA;
          }
          ft = Gt, Et = Math.max(FA - Gt, 4);
        } else if (e.timelineData && e.currentTimeScale === Ye.DAY) {
          const Gt = OA(
            gA,
            e.timelineData,
            e.currentTimeScale
          ), UA = new Date(Xt);
          UA.setDate(UA.getDate() + 1);
          let FA = OA(
            UA,
            e.timelineData,
            e.currentTimeScale
          );
          FA === Gt && (FA = OA(
            Xt,
            e.timelineData,
            e.currentTimeScale
          ) + 30), ft = Gt, Et = Math.max(FA - Gt, 4);
        } else {
          const Gt = Math.floor(
            (gA.getTime() - tA.getTime()) / 864e5
          ), UA = Xt.getTime() - gA.getTime(), FA = Math.round(UA / (1e3 * 60 * 60 * 24)), IA = FA === 0 ? 1 : FA + 1;
          ft = Gt * e.dayWidth, Et = IA * e.dayWidth;
        }
      }
      return {
        left: `${ft}px`,
        width: `${Et}px`,
        height: `${e.rowHeight - 10}px`,
        top: "4px"
      };
    }), pe = Te({
      left: 0,
      top: 0,
      width: 0,
      height: 0,
      timestamp: 0
    }), de = lt(() => l(e.task.endDate || "")), ce = lt(() => l(e.startDate)), Se = lt(() => {
      var Fe, ke;
      const V = ((Fe = oe.value) == null ? void 0 : Fe.startDate) || e.task.startDate, Be = ((ke = oe.value) == null ? void 0 : ke.endDate) || e.task.endDate;
      return !!(V || Be);
    }), qe = lt(() => {
      if (e.isParent)
        return {
          type: "parent",
          color: "#409eff",
          // 与新建按钮一致的蓝色
          bgColor: "#409eff",
          borderColor: "#409eff"
        };
      const V = h.value, Be = de.value, Fe = e.task.progress || 0;
      return Fe >= 100 ? {
        type: "completed",
        color: "#909399",
        // info color
        bgColor: "#f4f4f5",
        borderColor: "#d3d4d6"
      } : Be && Be < V && Fe < 100 ? {
        type: "delayed",
        color: "#f56c6c",
        // danger color
        bgColor: "#fef0f0",
        borderColor: "#fbc4c4"
      } : Be && Be >= V && Fe > 0 ? {
        type: "in-progress",
        color: "#e6a23c",
        // warning color
        bgColor: "#fdf6ec",
        borderColor: "#f5dab1"
      } : {
        type: "not-started",
        color: "#409eff",
        // primary color
        bgColor: "#ecf5ff",
        borderColor: "#b3d8ff"
      };
    }), rt = lt(() => ({
      type: "task-bar",
      task: e.task,
      status: qe.value,
      statusType: qe.value.type,
      isParent: e.isParent ?? !1,
      progress: e.task.progress || 0,
      currentTimeScale: e.currentTimeScale,
      rowHeight: e.rowHeight,
      dayWidth: e.dayWidth
    })), at = lt(() => (e.task.progress || 0) >= 100), dt = lt(() => e.isInHighlightMode && !e.isHighlighted && !e.isPrimaryHighlight), D = lt(() => {
      const V = e.task.progress || 0, Be = parseInt(re.value.width);
      return `${V / 100 * Be}px`;
    }), Ie = lt(() => e.dayWidth <= 9), me = lt(() => parseFloat(re.value.width || "0") < 80), ve = lt(() => Ie.value && me.value), xe = (V, Be) => {
      if (e.isHighlighted || e.isPrimaryHighlight || e.allowDragAndResize === !1 || at.value || e.isParent || w.value || (V.preventDefault(), V.stopPropagation(), oe.value = null, ue.value = !1, X.value = !1, Z.value = Be, W.value = !1, U.value && (clearTimeout(U.value), U.value = null), Be === "drag" && (U.value = window.setTimeout(() => {
        !ue.value && !E.value && !C.value && !F.value && (W.value = !0, A("long-press", e.task.id)), U.value = null;
      }, GF)), o.value.enableDragDelay && o.value.dragDelayTime ? ee.value = window.setTimeout(() => {
        X.value = !0, ee.value = null;
      }, o.value.dragDelayTime) : X.value = !0, !document.querySelector(".timeline") || !L.value)) return;
      const ke = L.value.getBoundingClientRect();
      Ae.value = V.clientX - ke.left, q.value = V.clientX, N.value = parseInt(re.value.left), M.value = parseInt(re.value.width), (Be === "resize-left" || Be === "resize-right") && (k.value = V.clientX, O.value = parseInt(re.value.width), S.value = parseInt(re.value.left)), window.addEventListener("timeline-auto-scroll", Qe), document.addEventListener("mousemove", ut), document.addEventListener("mouseup", yt);
    }, Qe = (V) => {
      const { scrollDelta: Be } = V.detail;
      E.value ? q.value -= Be : (C.value || F.value) && (k.value -= Be);
    };
    let _e = !1;
    function Pe() {
      _e || (_e = !0, requestAnimationFrame(() => {
        if (_e = !1, !L.value) return;
        const V = Date.now();
        if (V - pe.value.timestamp < YF) {
          A("bar-mounted", {
            id: e.task.id,
            left: pe.value.left,
            top: pe.value.top,
            width: pe.value.width,
            height: pe.value.height
          });
          return;
        }
        const Be = L.value.getBoundingClientRect(), Fe = {
          left: Be.left,
          top: Be.top,
          width: Be.width,
          height: Be.height
        };
        pe.value = {
          ...Fe,
          timestamp: V
        }, A("bar-mounted", {
          id: e.task.id,
          ...Fe
        });
      }));
    }
    const je = Te(!1), Ke = Te({ x: 0, y: 0 }), et = Te({ startDate: "", endDate: "" }), ut = (V) => {
      if (!(e.isHighlighted || e.isPrimaryHighlight) && !(o.value.enableDragDelay && !X.value)) {
        if (!ue.value) {
          if (Math.abs(V.clientX - q.value) < le.value)
            return;
          ue.value = !0, Z.value === "drag" ? E.value = !0 : Z.value === "resize-left" ? C.value = !0 : Z.value === "resize-right" && (F.value = !0);
        }
        if (ue.value) {
          if (window.dispatchEvent(
            new CustomEvent("drag-boundary-check", {
              detail: {
                mouseX: V.clientX,
                isDragging: E.value || C.value || F.value
              }
            })
          ), (E.value || C.value || F.value) && (je.value = !0, Ke.value = {
            x: V.clientX + 15,
            // 鼠标右侧偏移
            y: V.clientY - 60
            // 鼠标上方偏移
          }), E.value) {
            const Be = V.clientX - q.value;
            if (e.currentTimeScale === Ye.HOUR) {
              const Fe = 0.6666666666666666, ke = Fe * 15, Ze = Math.max(0, N.value + Be), Me = Math.round(Ze / ke) * ke, tt = Math.round(Me / Fe), Je = new Date(e.startDate);
              Je.setHours(0, 0, 0, 0);
              const ft = m(Je, tt), Et = l(e.task.startDate) || e.startDate, Jt = l(e.task.endDate) || e.startDate;
              let fA;
              if (e.task.startDate && !e.task.startDate.includes(" ")) {
                const Xt = Jt.getTime() - Et.getTime();
                fA = Math.max(1, Math.round(Xt / (1e3 * 60 * 60 * 24)) + 1) * 24 * 60;
              } else
                fA = y(Et, Jt);
              const gA = m(ft, fA);
              oe.value = {
                startDate: c(ft),
                endDate: c(gA)
              }, et.value = {
                startDate: c(ft),
                endDate: c(gA)
              };
            } else if (e.currentTimeScale === Ye.QUARTER) {
              const Fe = Math.max(0, N.value + Be);
              x.value = {
                left: Fe,
                width: M.value
              };
              const Me = 60 / 90, tt = Math.round(Be / Me), Je = l(e.task.startDate) || e.startDate, ft = l(e.task.endDate) || e.startDate, Et = new Date(Je);
              Et.setDate(Et.getDate() + tt);
              const Jt = ft.getTime() - Je.getTime(), fA = Math.ceil(Jt / (1e3 * 60 * 60 * 24)), gA = new Date(Et);
              gA.setDate(gA.getDate() + Math.max(0, fA)), oe.value = {
                startDate: c(Et),
                endDate: c(gA)
              }, et.value = {
                startDate: c(Et),
                endDate: c(gA)
              };
            } else {
              const Fe = Math.max(0, N.value + Be);
              if ((e.currentTimeScale === Ye.DAY || e.currentTimeScale === Ye.MONTH || e.currentTimeScale === Ye.QUARTER || e.currentTimeScale === Ye.YEAR) && e.timelineData) {
                const ke = Dr(
                  Fe,
                  e.timelineData,
                  e.currentTimeScale
                );
                if (ke) {
                  const Ze = l(e.task.startDate) || e.startDate, tt = (l(e.task.endDate) || e.startDate).getTime() - Ze.getTime(), Je = Math.ceil(tt / (1e3 * 60 * 60 * 24)), ft = new Date(ke);
                  ft.setDate(ft.getDate() + Math.max(0, Je)), oe.value = {
                    startDate: c(ke),
                    endDate: c(ft)
                  }, et.value = {
                    startDate: c(ke),
                    endDate: c(ft)
                  };
                }
              } else {
                const ke = p(e.startDate, Fe / e.dayWidth), Ze = M.value / e.dayWidth, Me = p(ke, Ze - 1);
                oe.value = {
                  startDate: c(ke),
                  endDate: c(Me)
                }, et.value = {
                  startDate: c(ke),
                  endDate: c(Me)
                };
              }
            }
          } else if (C.value) {
            const Be = V.clientX - k.value;
            if (e.currentTimeScale === Ye.HOUR) {
              const Fe = 0.6666666666666666, ke = Fe * 15, Ze = Math.max(0, S.value + Be), Me = Math.round(Ze / ke) * ke, tt = Math.round(Me / Fe), Je = new Date(e.startDate);
              Je.setHours(0, 0, 0, 0);
              const ft = m(Je, tt);
              oe.value = {
                startDate: c(ft),
                endDate: e.task.endDate
                // 保持原来的结束日期
              }, et.value = {
                startDate: c(ft),
                endDate: e.task.endDate || ""
              };
            } else if (e.currentTimeScale === Ye.QUARTER) {
              const Fe = Math.max(0, S.value + Be), ke = Math.max(10, O.value - Be);
              x.value = {
                left: Fe,
                width: ke
              };
              const tt = 60 / 90, Je = Math.round(Be / tt), ft = l(e.task.startDate) || e.startDate, Et = new Date(ft);
              Et.setDate(Et.getDate() + Je), oe.value = {
                startDate: c(Et),
                endDate: e.task.endDate
                // 保持原来的结束日期
              }, et.value = {
                startDate: c(Et),
                endDate: e.task.endDate || ""
              };
            } else {
              const Fe = Math.max(0, S.value + Be);
              if ((e.currentTimeScale === Ye.DAY || e.currentTimeScale === Ye.MONTH || e.currentTimeScale === Ye.QUARTER || e.currentTimeScale === Ye.YEAR) && e.timelineData) {
                const ke = Dr(
                  Fe,
                  e.timelineData,
                  e.currentTimeScale
                );
                ke && (oe.value = {
                  startDate: c(ke),
                  endDate: e.task.endDate
                  // 保持原来的结束日期
                }, et.value = {
                  startDate: c(ke),
                  endDate: e.task.endDate || ""
                });
              } else {
                const ke = p(e.startDate, Fe / e.dayWidth);
                oe.value = {
                  startDate: c(ke),
                  endDate: e.task.endDate
                  // 保持原来的结束日期
                }, et.value = {
                  startDate: c(ke),
                  endDate: e.task.endDate || ""
                };
              }
            }
          } else if (F.value) {
            const Be = V.clientX - k.value;
            if (e.currentTimeScale === Ye.HOUR) {
              const Fe = 0.6666666666666666, ke = Fe * 15, Ze = Math.max(ke, O.value + Be), Me = Math.round(Ze / ke) * ke, tt = Math.round(Me / Fe), Je = l(e.task.startDate) || e.startDate, ft = m(Je, tt);
              oe.value = {
                startDate: e.task.startDate,
                // 保持原来的开始日期
                endDate: c(ft)
              }, et.value = {
                startDate: e.task.startDate || "",
                endDate: c(ft)
              };
            } else if (e.currentTimeScale === Ye.QUARTER) {
              const Fe = Math.max(10, O.value + Be);
              x.value = {
                left: S.value,
                width: Fe
              };
              const Me = 60 / 90, tt = Math.round(Be / Me), Je = l(e.task.endDate) || e.startDate, ft = new Date(Je);
              ft.setDate(ft.getDate() + tt), oe.value = {
                startDate: e.task.startDate,
                // 保持原来的开始日期
                endDate: c(ft)
              }, et.value = {
                startDate: e.task.startDate || "",
                endDate: c(ft)
              };
            } else {
              const Fe = Math.max(e.dayWidth, O.value + Be);
              if ((e.currentTimeScale === Ye.DAY || e.currentTimeScale === Ye.MONTH || e.currentTimeScale === Ye.QUARTER || e.currentTimeScale === Ye.YEAR) && e.timelineData) {
                const ke = S.value + Fe, Ze = Dr(
                  ke,
                  e.timelineData,
                  e.currentTimeScale
                );
                Ze && (oe.value = {
                  startDate: e.task.startDate,
                  // 保持原来的开始日期
                  endDate: c(Ze)
                }, et.value = {
                  startDate: e.task.startDate || "",
                  endDate: c(Ze)
                });
              } else {
                const ke = Fe / e.dayWidth, Ze = p(
                  e.startDate,
                  S.value / e.dayWidth + ke - 1
                );
                oe.value = {
                  startDate: e.task.startDate,
                  // 保持原来的开始日期
                  endDate: c(Ze)
                }, et.value = {
                  startDate: e.task.startDate || "",
                  endDate: c(Ze)
                };
              }
            }
          }
        }
      }
    }, yt = () => {
      if (ee.value !== null && (window.clearTimeout(ee.value), ee.value = null), U.value !== null && (clearTimeout(U.value), U.value = null), je.value = !1, x.value = null, window.dispatchEvent(
        new CustomEvent("drag-boundary-check", {
          detail: {
            mouseX: 0,
            isDragging: !1
          }
        })
      ), ue.value && oe.value) {
        const V = {
          ...e.task,
          ...oe.value
        };
        E.value ? A("drag-end", V) : (C.value || F.value) && A("resize-end", V), A("update:task", V), oe.value = null, rr(() => {
          Pe();
        });
      }
      window.removeEventListener("timeline-auto-scroll", Qe), (E.value || C.value || F.value) && (H.value = !0, setTimeout(() => {
        H.value = !1;
      }, 200)), E.value = !1, C.value = !1, F.value = !1, ue.value = !1, X.value = !1, Z.value = null, document.removeEventListener("mousemove", ut), document.removeEventListener("mouseup", yt);
    };
    let Ft = null;
    En(() => {
      rr(() => {
        Pe(), j.value && (Ft = new ResizeObserver((Fe) => {
          for (const ke of Fe)
            $.value = ke.contentRect.width;
        }), Ft.observe(j.value));
      });
      const V = () => {
        rr(() => {
          Pe();
        });
      }, Be = () => {
        rr(() => {
          setTimeout(() => {
            Pe();
          }, 10);
        });
      };
      window.addEventListener("timeline-scale-updated", V), window.addEventListener("timeline-force-recalculate", Be), window.addEventListener("close-all-taskbar-menus", ZA), tn(() => {
        Ft && (Ft.disconnect(), Ft = null), window.removeEventListener("timeline-scale-updated", V), window.removeEventListener("timeline-force-recalculate", Be), window.removeEventListener("close-all-taskbar-menus", ZA), U.value !== null && (clearTimeout(U.value), U.value = null);
      });
    }), EA(
      () => [e.task.startDate, e.task.endDate],
      () => {
        rr(() => {
          Pe();
        });
      },
      { deep: !0 }
    ), EA(
      () => [e.isHighlighted, e.isPrimaryHighlight],
      ([V, Be]) => {
        (V || Be) && (E.value = !1, C.value = !1, F.value = !1, ue.value = !1, X.value = !1, Z.value = null, je.value = !1, document.removeEventListener("mousemove", ut), document.removeEventListener("mouseup", yt), window.removeEventListener("timeline-auto-scroll", Qe), U.value && (clearTimeout(U.value), U.value = null), ee.value && (clearTimeout(ee.value), ee.value = null), window.dispatchEvent(
          new CustomEvent("taskbar-highlighted", {
            detail: {
              taskId: e.task.id
            }
          })
        ));
      }
    );
    let Bt = null;
    const St = (V) => {
      if (!(E.value || C.value || F.value || H.value)) {
        if (W.value) {
          W.value = !1;
          return;
        }
        Bt === null && (Bt = window.setTimeout(() => {
          Bt = null, e.onClick && typeof e.onClick == "function" ? e.onClick(e.task, V) : A("click", e.task, V);
        }, $F));
      }
    }, bt = (V) => {
      V.stopPropagation(), V.preventDefault(), Bt !== null && (clearTimeout(Bt), Bt = null), E.value = !1, C.value = !1, F.value = !1, oe.value = null, document.removeEventListener("mousemove", ut), document.removeEventListener("mouseup", yt), A("dblclick", e.task, V);
    }, nA = lt(() => {
      const V = e.scrollLeft || 0, Be = e.containerWidth || 0;
      if (!V && !Be)
        return {
          nameLeft: "",
          namePosition: "",
          nameTop: "",
          progressLeft: "",
          progressPosition: "",
          progressTop: "",
          avatarLeft: "",
          avatarPosition: ""
        };
      const Fe = parseInt(re.value.left), ke = parseInt(re.value.width), Ze = Fe + ke, Me = Fe + ke / 2, tt = V, Je = V + Be;
      let ft = "", Et = "", Jt = "", fA = "", gA = "", Xt = "", tA = "", Gt = "";
      const UA = Math.max($.value, 40), FA = 35, IA = 22, aA = MA.value, An = aA + 3, Tn = Fe + An, ea = Fe + An + IA, Pn = Tn < tt && Ze > tt || Me < tt && Ze > tt, WA = Math.max(UA, FA), bA = ea + WA + 15 > Je && Fe < Je;
      let nr = 0;
      if (Pn)
        tA = `${tt - Fe + aA + 3}px`, Gt = "absolute", nr = IA + 8;
      else if (bA) {
        const Ir = Math.max(UA, FA);
        tA = `${Je - Fe - Ir - aA - 3 - IA - 15}px`, Gt = "absolute", nr = -37;
      }
      const GA = Me - UA / 2, cr = Me + UA / 2, pn = o.value.showAvatar;
      let ba = !1;
      if (pn) {
        const Ir = GA, kn = IA + 15;
        ba = Ir < tt + kn && Ze > tt;
      } else
        ba = GA < tt && Ze > tt && Me < tt;
      const la = cr > Je && Fe < Je && Me > Je;
      if (ba) {
        const Ir = tt - Fe, kn = Pn ? nr : 0;
        ft = `${Ir + aA + 3 + kn}px`, Et = "absolute", Jt = "2px";
      } else la && (ft = `${Je - Fe - UA - aA - 10}px`, Et = "absolute", Jt = "2px");
      const Qn = Me - FA / 2, Ca = Me + FA / 2;
      let Kr = !1;
      if (pn) {
        const Ir = Qn, kn = IA + 15;
        Kr = Ir < tt + kn && Ze > tt;
      } else
        Kr = Qn < tt && Ze > tt && Me < tt;
      const Dn = Ca > Je && Fe < Je && Me > Je;
      if (Kr) {
        const Ir = tt - Fe, kn = Pn ? nr : 0;
        fA = `${Ir + aA + 3 + kn}px`, gA = "absolute", Xt = "18px";
      } else Dn && (fA = `${Je - Fe - FA - aA - 3}px`, gA = "absolute", Xt = "18px");
      return {
        nameLeft: ft,
        namePosition: Et,
        nameTop: Jt,
        progressLeft: fA,
        progressPosition: gA,
        progressTop: Xt,
        avatarLeft: tA,
        avatarPosition: Gt
      };
    }), qt = lt(() => {
      const V = e.scrollLeft || 0, Be = e.containerWidth || 0;
      if (!Be || Be <= 0)
        return {
          show: !1,
          left: "0px",
          side: "left",
          color: "#409eff",
          animationType: "none"
        };
      if (Nt.value || Ve.value || e.hideBubbles)
        return {
          show: !1,
          left: "0px",
          side: "left",
          color: qe.value.color,
          animationType: "none"
        };
      const Fe = parseInt(re.value.left), ke = parseInt(re.value.width), Ze = Fe + ke, Me = V, tt = V + Be, Je = Ze <= Me, ft = Fe >= tt;
      return Je ? {
        show: !0,
        left: `${Me - Fe - 4}px`,
        // 圆心在边界上,向左偏移半径(4px)
        side: "left",
        color: qe.value.color,
        animationType: "morphToSemiCircle"
      } : ft ? {
        show: !0,
        left: `${tt - Fe - 8}px`,
        // 右侧半圆位置调整,减少偏移量
        side: "right",
        color: qe.value.color,
        animationType: "morphToSemiCircle"
      } : {
        show: !1,
        left: "0px",
        side: "left",
        color: qe.value.color,
        animationType: "none"
      };
    }), Ot = Te(!1), Pt = Te({ x: 0, y: 0 }), sA = Te(!1), kt = Te(null), hA = Te(!1), Nt = Te(!0), Ce = Te(!1), Ve = Te(!1), Re = (V) => {
      V.stopPropagation(), V.preventDefault();
      const Be = e.scrollLeft || 0, Fe = e.containerWidth || 0;
      if (!Be && !Fe) return;
      const ke = parseInt(re.value.left), Ze = parseInt(re.value.width), tt = ke + Ze / 2 - Fe / 2;
      Ce.value = !0, Ve.value = !0, Ot.value = !1, A("scroll-to-position", tt);
    };
    EA(
      () => [e.scrollLeft, e.containerWidth],
      (V, Be) => {
        const [Fe, ke] = V, [Ze, Me] = Be || [0, 0], tt = Fe || 0, Je = ke || 0, ft = Ze || 0, Et = Me || 0;
        if (Math.abs(Je - Et) > 1 && Et > 0) {
          hA.value = !0, rr(() => {
          }), Nt.value && setTimeout(() => {
            Nt.value = !1;
          }, 300), setTimeout(() => {
            hA.value = !1;
          }, 500);
          return;
        }
        Nt.value && tt >= 0 && Je > 0 && setTimeout(() => {
          Nt.value = !1;
        }, 1e3), tt !== ft && !hA.value && (sA.value = !0, kt.value && clearTimeout(kt.value), kt.value = setTimeout(() => {
          sA.value = !1, Ce.value && (Ce.value = !1, setTimeout(() => {
            Ve.value = !1;
          }, 300));
        }, 200));
      },
      { immediate: !0 }
    ), EA(
      () => e.hideBubbles,
      (V, Be) => {
        Be && !V && rr(() => {
        });
      }
    ), EA(
      () => qt.value.show,
      () => {
      }
    );
    const $e = () => {
      hA.value = !0, rr(() => {
      }), setTimeout(() => {
        hA.value = !1;
      }, 300);
    };
    En(() => {
      window.addEventListener("resize", $e), window.addEventListener("zoom", $e);
    }), tn(() => {
      document.removeEventListener("mousemove", ut), document.removeEventListener("mouseup", yt), window.removeEventListener("resize", $e), window.removeEventListener("zoom", $e);
    });
    const xt = (V) => {
      V.stopPropagation(), Ot.value = !0;
      const Fe = qt.value.side === "right" ? -180 : 15;
      Pt.value = {
        x: V.clientX + Fe,
        y: V.clientY - 10
      };
    }, Ht = (V) => {
      V.stopPropagation(), Ot.value = !1;
    }, Mt = (V) => {
      V.stopPropagation(), Ot.value = !1;
    }, SA = (V) => {
      if (!V) return s("dateNotSet");
      const Be = l(V);
      if (!Be) return s("dateNotSet");
      const Fe = Be.getFullYear(), ke = String(Be.getMonth() + 1).padStart(2, "0"), Ze = String(Be.getDate()).padStart(2, "0");
      return `${Fe}-${ke}-${Ze}`;
    }, JA = lt(() => {
      const V = l(e.task.startDate), Be = l(e.task.endDate);
      let Fe = 0;
      if (V && Be) {
        const Me = Math.abs(Be.getTime() - V.getTime());
        Fe = Math.ceil(Me / (1e3 * 60 * 60 * 24)) * 8;
      }
      const ke = e.task.progress || 0, Ze = Math.round(Fe * ke / 100);
      return {
        total: Fe,
        used: Ze
      };
    }), Lt = lt(() => !0), Qr = () => {
      const V = nA.value, Be = {};
      return V.nameLeft && (Be.left = V.nameLeft), V.namePosition && (Be.position = V.namePosition), V.nameTop && (Be.top = V.nameTop), Be;
    }, Fr = () => {
      const V = nA.value, Be = {};
      return V.progressLeft && (Be.left = V.progressLeft), V.progressPosition && (Be.position = V.progressPosition), V.progressTop && (Be.top = V.progressTop), Be;
    }, xr = () => {
      const V = nA.value, Be = {};
      return V.avatarLeft && (Be.left = V.avatarLeft), V.avatarPosition && (Be.position = V.avatarPosition), Be;
    }, PA = lt(() => parseInt(re.value.width) - 10 < 22), CA = lt(() => ({
      width: `${Math.min(o.value.resizeHandleWidth ?? 5, 15)}px`
    })), MA = lt(() => Math.min(o.value.resizeHandleWidth ?? 5, 15)), OA = (V, Be, Fe) => {
      var Ze;
      let ke = 0;
      for (const Me of Be)
        if (Fe === Ye.DAY) {
          const tt = Me.days || [];
          for (let Je = 0; Je < tt.length; Je++) {
            const ft = tt[Je], Et = new Date(ft.date);
            if (Et.getFullYear() === V.getFullYear() && Et.getMonth() === V.getMonth() && Et.getDate() === V.getDate())
              return ke + Je * 30;
          }
          ke += tt.length * 30;
        } else if (Fe === Ye.QUARTER) {
          const tt = Me.quarters || [];
          for (const Je of tt) {
            const ft = new Date(Je.startDate), Et = new Date(Je.endDate);
            if (V >= ft && V <= Et) {
              const gA = 60 / Math.ceil(
                (Et.getTime() - ft.getTime()) / 864e5
              ), Xt = Math.ceil(
                (V.getTime() - ft.getTime()) / (1e3 * 60 * 60 * 24)
              );
              return ke + Xt * gA;
            }
            ke += 60;
          }
        } else if (Fe === Ye.WEEK) {
          const tt = Me.weeks || [];
          for (const Je of tt) {
            const ft = new Date(Je.weekStart), Et = new Date(Je.weekEnd);
            if (V >= ft && V <= Et) {
              const fA = Je.subDays || [], gA = 60 / 7;
              for (let tA = 0; tA < fA.length; tA++) {
                const Gt = fA[tA], UA = new Date(Gt.date);
                if (UA.getFullYear() === V.getFullYear() && UA.getMonth() === V.getMonth() && UA.getDate() === V.getDate())
                  return ke + tA * gA;
              }
              const Xt = V.getDay();
              return ke + Xt * gA;
            }
            ke += 60;
          }
        } else if (Fe === Ye.MONTH) {
          const tt = new Date(Me.startDate), Je = new Date(Me.endDate);
          if (V >= tt && V <= Je) {
            const Jt = 60 / (((Ze = Me.monthData) == null ? void 0 : Ze.dayCount) || 30), fA = V.getDate();
            return ke + (fA - 1) * Jt;
          }
          ke += 60;
        } else if (Fe === Ye.YEAR) {
          const tt = Me.halfYears || [];
          for (const Je of tt) {
            const ft = new Date(Je.startDate), Et = new Date(Je.endDate);
            if (V >= ft && V <= Et) {
              const gA = 180 / Math.ceil(
                (Et.getTime() - ft.getTime()) / 864e5
              ), Xt = Math.ceil(
                (V.getTime() - ft.getTime()) / (1e3 * 60 * 60 * 24)
              );
              return ke + Xt * gA;
            }
            ke += 180;
          }
        }
      return Fe === Ye.WEEK ? (console.warn("[Gantt Debug] 周视图定位失败,任务日期未找到 week 匹配,返回 -1", { targetDate: V }), -1) : ke;
    }, Dr = (V, Be, Fe) => {
      var Ze;
      if (!Be)
        return null;
      let ke = 0;
      if (Fe === Ye.DAY)
        for (const Me of Be) {
          const tt = Me.days || [], Je = tt.length * 30;
          if (V >= ke && V < ke + Je) {
            const ft = V - ke, Et = Math.floor(ft / 30);
            if (Et >= 0 && Et < tt.length)
              return new Date(tt[Et].date);
          }
          ke += Je;
        }
      else if (Fe === Ye.MONTH)
        for (const Me of Be) {
          if (V >= ke && V < ke + 60) {
            const Je = V - ke, ft = ((Ze = Me.monthData) == null ? void 0 : Ze.dayCount) || 30, Et = 60 / ft, Jt = Math.floor(Je / Et), fA = Math.min(Jt + 1, ft);
            return new Date(Me.year, Me.month - 1, fA);
          }
          ke += 60;
        }
      else if (Fe === Ye.QUARTER)
        for (const Me of Be) {
          const tt = Me.quarters || [];
          for (const Je of tt) {
            const ft = new Date(Je.startDate), Et = new Date(Je.endDate), Jt = 60;
            if (V >= ke && V < ke + Jt) {
              const fA = V - ke, gA = Math.ceil(
                (Et.getTime() - ft.getTime()) / (1e3 * 60 * 60 * 24)
              ), Xt = Jt / gA, tA = Math.floor(fA / Xt), Gt = new Date(ft);
              return Gt.setDate(Gt.getDate() + tA), Gt;
            }
            ke += Jt;
          }
        }
      else if (Fe === Ye.YEAR)
        for (const Me of Be) {
          const tt = Me.halfYears || [];
          for (const Je of tt) {
            const ft = new Date(Je.startDate), Et = new Date(Je.endDate), Jt = 180;
            if (V >= ke && V < ke + Jt) {
              const fA = V - ke, gA = Math.ceil(
                (Et.getTime() - ft.getTime()) / (1e3 * 60 * 60 * 24)
              ), Xt = Jt / gA, tA = Math.floor(fA / Xt), Gt = new Date(ft);
              return Gt.setDate(Gt.getDate() + tA), Gt;
            }
            ke += Jt;
          }
        }
      return null;
    }, Sr = Te(!1), LA = Te({ x: 0, y: 0 }), pr = lt(() => e.task);
    function kr(V) {
      if (e.isHighlighted || e.isPrimaryHighlight) {
        V.preventDefault();
        return;
      }
      if (window.dispatchEvent(new CustomEvent("close-all-taskbar-menus")), e.task.type !== "task" && e.task.type !== "story") {
        V.preventDefault(), Sr.value = !1;
        return;
      }
      V.preventDefault(), Sr.value = !0, LA.value = { x: V.clientX, y: V.clientY };
    }
    function ZA() {
      Sr.value = !1;
    }
    const Lr = (V, Be) => {
      A("delete", V, Be), ZA();
    }, Un = (V) => {
      A("delete-link", V), ZA();
    }, Dt = (V) => {
      A("link-drag-start", V);
    }, be = (V) => {
      A("link-drag-move", V);
    }, z = (V) => {
      A("link-drag-end", V);
    }, ge = (V) => {
      const Be = {
        clientX: V.x,
        clientY: V.y
      };
      Dt({
        task: e.task,
        type: V.type,
        mouseEvent: Be
      });
    }, We = (V) => {
      be({
        mouseX: V.x,
        mouseY: V.y
      });
    }, it = (V) => {
      z({
        task: e.task,
        type: V.type
      });
    };
    return En(() => {
      window.addEventListener("close-all-taskbar-menus", ZA);
    }), tn(() => {
      window.removeEventListener("close-all-taskbar-menus", ZA), Bt !== null && (clearTimeout(Bt), Bt = null);
    }), (V, Be) => (ae(), fe(Ut, null, [
      Se.value ? (ae(), fe("div", {
        key: 0,
        ref_key: "barRef",
        ref: L,
        class: iA(["task-bar", {
          dragging: E.value,
          resizing: C.value || F.value,
          completed: at.value,
          "parent-task": V.isParent,
          "week-view": Ie.value,
          "short-task-bar": me.value,
          "overflow-effect": ve.value,
          highlighted: V.isHighlighted,
          "primary-highlight": V.isPrimaryHighlight,
          dimmed: dt.value
        }]),
        "data-task-id": V.task.id,
        style: rA({
          ...re.value,
          backgroundColor: qe.value.bgColor,
          borderColor: qe.value.borderColor,
          color: qe.value.color,
          cursor: at.value || V.isParent ? "default" : "move",
          "--row-height": `${V.rowHeight}px`,
          "--handle-width": `${MA.value}px`
        }),
        onClick: St,
        onContextmenu: kr,
        onDblclick: bt,
        onMouseenter: Be[7] || (Be[7] = (Fe) => I.value = !0),
        onMouseleave: Be[8] || (Be[8] = (Fe) => I.value = !1)
      }, [
        V.isParent ? (ae(), fe("div", mF, [
          i.value ? Li(V.$slots, "custom-task-content", oc(Qo({ key: 0 }, rt.value)), void 0, !0) : (ae(), fe(Ut, { key: 1 }, [
            kA(Ge(V.task.name) + " (" + Ge(V.task.progress || 0) + "%) ", 1)
          ], 64))
        ])) : Ct("", !0),
        !V.isParent && V.task.progress && V.task.progress > 0 ? (ae(), fe("div", {
          key: 1,
          class: "progress-bar",
          style: rA({
            width: D.value,
            backgroundColor: qe.value.color
          })
        }, null, 4)) : Ct("", !0),
        !at.value && !V.isParent && !w.value && e.allowDragAndResize !== !1 && !V.isHighlighted && !V.isPrimaryHighlight ? (ae(), fe("div", {
          key: 2,
          class: "resize-handle resize-handle-left",
          style: rA(CA.value),
          onMousedown: Be[0] || (Be[0] = (Fe) => xe(Fe, "resize-left"))
        }, null, 36)) : Ct("", !0),
        V.isParent ? Ct("", !0) : (ae(), fe("div", {
          key: 3,
          class: "task-bar-content",
          style: rA({
            cursor: w.value || e.allowDragAndResize === !1 || V.isHighlighted || V.isPrimaryHighlight ? "grab" : "move"
          }),
          onMousedown: Be[1] || (Be[1] = (Fe) => {
            V.isHighlighted || V.isPrimaryHighlight || w.value || e.allowDragAndResize === !1 || xe(Fe, "drag");
          })
        }, [
          o.value.showAvatar ? (ae(), fe("div", {
            key: 0,
            class: iA(["task-avatar", { "avatar-outside": PA.value, "avatar-default": !V.task.avatar }]),
            style: rA(xr())
          }, [
            V.task.avatar ? (ae(), fe("img", {
              key: 0,
              src: V.task.avatar,
              alt: V.task.assignee || "avatar"
            }, null, 8, wF)) : V.task.assigneeName ? (ae(), fe("span", BF, Ge(V.task.assigneeName.charAt(0).toUpperCase()), 1)) : (ae(), fe("svg", yF, Be[9] || (Be[9] = [
              Y("path", {
                d: "M12 12c2.21 0 4-1.79 4-4s-1.79-4-4-4-4 1.79-4 4 1.79 4 4 4zm0 2c-2.67 0-8 1.34-8 4v2h16v-2c0-2.66-5.33-4-8-4z",
                fill: "currentColor"
              }, null, -1)
            ])))
          ], 6)) : Ct("", !0),
          o.value.showTitle ? (ae(), fe("div", {
            key: 1,
            ref_key: "taskBarNameRef",
            ref: j,
            style: rA(Qr())
          }, [
            i.value ? Li(V.$slots, "custom-task-content", oc(Qo({ key: 0 }, rt.value)), void 0, !0) : (ae(), fe("div", bF, Ge(V.task.name), 1))
          ], 4)) : Ct("", !0),
          o.value.showProgress && Lt.value ? (ae(), fe("div", {
            key: 2,
            class: "task-progress",
            style: rA(Fr())
          }, Ge(V.task.progress || 0) + "% ", 5)) : Ct("", !0)
        ], 36)),
        !at.value && !V.isParent && !w.value && e.allowDragAndResize !== !1 && !V.isHighlighted && !V.isPrimaryHighlight ? (ae(), fe("div", {
          key: 4,
          class: "resize-handle resize-handle-right",
          style: rA(CA.value),
          onMousedown: Be[2] || (Be[2] = (Fe) => xe(Fe, "resize-right"))
        }, null, 36)) : Ct("", !0),
        !V.isParent && !V.isInHighlightMode ? (ae(), wr(x0, {
          key: 5,
          type: "predecessor",
          "task-id": V.task.id,
          visible: I.value,
          "is-drag-source": V.isLinkDragSource && V.dragLinkMode === "predecessor",
          "is-drag-target": V.isValidLinkTarget || V.isInvalidLinkTarget,
          "is-valid-target": V.isValidLinkTarget,
          "global-dragging": !!V.dragLinkMode,
          onDragStart: ge,
          onDragMove: We,
          onDragEnd: it
        }, null, 8, ["task-id", "visible", "is-drag-source", "is-drag-target", "is-valid-target", "global-dragging"])) : Ct("", !0),
        !V.isParent && !V.isInHighlightMode ? (ae(), wr(x0, {
          key: 6,
          type: "successor",
          "task-id": V.task.id,
          visible: I.value,
          "is-drag-source": V.isLinkDragSource && V.dragLinkMode === "successor",
          "is-drag-target": V.isValidLinkTarget || V.isInvalidLinkTarget,
          "is-valid-target": V.isValidLinkTarget,
          "global-dragging": !!V.dragLinkMode,
          onDragStart: ge,
          onDragMove: We,
          onDragEnd: it
        }, null, 8, ["task-id", "visible", "is-drag-source", "is-drag-target", "is-valid-target", "global-dragging"])) : Ct("", !0),
        qt.value.show && !V.isParent ? (ae(), fe("div", {
          key: 7,
          class: iA(["bubble-indicator", [
            `bubble-${qt.value.side}`,
            `bubble-animation-${qt.value.animationType}`
          ]]),
          style: rA({
            left: qt.value.left,
            backgroundColor: qt.value.color,
            borderColor: qt.value.color
          }),
          onMouseenter: NA(xt, ["stop"]),
          onMouseleave: NA(Ht, ["stop"]),
          onMousedown: NA(Mt, ["stop"]),
          onClick: NA(Re, ["stop"])
        }, null, 38)) : Ct("", !0),
        $n(Hy, {
          visible: Sr.value,
          task: pr.value,
          position: LA.value,
          "all-tasks": V.allTasks,
          onClose: ZA,
          onStartTimer: Be[3] || (Be[3] = (Fe) => V.$emit("start-timer", e.task)),
          onStopTimer: Be[4] || (Be[4] = (Fe) => V.$emit("stop-timer", e.task)),
          onAddPredecessor: Be[5] || (Be[5] = (Fe) => V.$emit("add-predecessor", e.task)),
          onAddSuccessor: Be[6] || (Be[6] = (Fe) => V.$emit("add-successor", e.task)),
          onDelete: Lr,
          onDeleteLink: Un
        }, null, 8, ["visible", "task", "position", "all-tasks"])
      ], 46, vF)) : Ct("", !0),
      (ae(), wr(To, { to: "body" }, [
        Ot.value ? (ae(), fe("div", {
          key: 0,
          class: "task-tooltip",
          style: rA({
            left: `${Pt.value.x}px`,
            top: `${Pt.value.y}px`
          })
        }, [
          Be[10] || (Be[10] = Y("div", { class: "tooltip-arrow" }, null, -1)),
          Y("div", CF, Ge(V.task.name), 1),
          Y("div", EF, [
            Y("div", FF, [
              Y("span", xF, Ge(s("startDate")) + ":", 1),
              Y("span", SF, Ge(SA(V.task.startDate)), 1)
            ]),
            Y("div", UF, [
              Y("span", TF, Ge(s("endDate")) + ":", 1),
              Y("span", QF, Ge(SA(V.task.endDate)), 1)
            ]),
            Y("div", DF, [
              Y("span", kF, Ge(s("estimatedHours")) + ":", 1),
              Y("span", LF, Ge(JA.value.total) + "h", 1)
            ]),
            Y("div", IF, [
              Y("span", _F, Ge(s("actualHours")) + ":", 1),
              Y("span", NF, Ge(JA.value.used) + "h", 1)
            ]),
            Y("div", MF, [
              Y("span", OF, Ge(s("progress")) + ":", 1),
              Y("span", RF, Ge(V.task.progress || 0) + "%", 1)
            ])
          ])
        ], 4)) : Ct("", !0)
      ])),
      (ae(), wr(To, { to: "body" }, [
        je.value ? (ae(), fe("div", {
          key: 0,
          class: "drag-tooltip",
          style: rA({
            left: `${Ke.value.x}px`,
            top: `${Ke.value.y}px`
          })
        }, [
          Y("div", HF, [
            Y("div", PF, [
              Y("span", KF, Ge(s("startDate")) + ":", 1),
              Y("span", VF, Ge(SA(et.value.startDate)), 1)
            ]),
            Y("div", qF, [
              Y("span", jF, Ge(s("endDate")) + ":", 1),
              Y("span", WF, Ge(SA(et.value.endDate)), 1)
            ])
          ])
        ], 4)) : Ct("", !0)
      ]))
    ], 64));
  }
}), XF = /* @__PURE__ */ xn(zF, [["__scopeId", "data-v-d1be80c8"]]), JF = ["title"], ZF = {
  key: 0,
  transform: "rotate(45 16 16)"
}, ex = ["fill", "stroke"], tx = { key: 1 }, Ax = {
  key: 2,
  transform: "rotate(45 16 16)"
}, rx = ["fill", "stroke"], nx = {
  key: 1,
  class: "milestone-label milestone-label-right"
}, ax = { class: "tooltip-content" }, ix = /* @__PURE__ */ dn({
  __name: "MilestonePoint",
  props: {
    date: {},
    milestone: {},
    name: {},
    rowHeight: {},
    dayWidth: {},
    startDate: {},
    timelineStart: {},
    timelineEnd: {},
    scrollLeft: {},
    containerWidth: {},
    milestoneId: {},
    otherMilestones: {},
    currentTimeScale: {},
    timelineData: {},
    periodWidth: {},
    isInHighlightMode: { type: Boolean },
    allowDragAndResize: { type: Boolean }
  },
  emits: ["milestone-double-click", "update:milestone", "drag-end"],
  setup(r, { emit: t }) {
    const e = r, A = t, { getTranslation: n } = Ma(), a = (Z) => n(Z), s = Te(!1), i = Te(0), o = Te(0), l = Te(null), u = (Z) => {
      if (Z.preventDefault(), Z.stopPropagation(), !(M.value.isSticky || M.value.isPushedOut || !M.value.showIcon))
        if (s.value = !1, l.value = null, document.removeEventListener("mousemove", y), document.removeEventListener("mouseup", w), e.milestone)
          A("milestone-double-click", e.milestone);
        else {
          const ee = {
            name: e.name || "里程碑",
            startDate: e.date,
            type: "milestone"
          };
          A("milestone-double-click", ee);
        }
    }, h = (Z, ee) => {
      const X = new Date(Z);
      return X.setDate(X.getDate() + ee), X;
    }, g = (Z) => {
      const ee = Z.getFullYear(), X = String(Z.getMonth() + 1).padStart(2, "0"), Ae = String(Z.getDate()).padStart(2, "0");
      return `${ee}-${X}-${Ae}`;
    }, c = (Z, ee, X) => {
      var oe;
      if (!ee)
        return null;
      let Ae = 0;
      if (X === Ye.DAY)
        for (const x of ee) {
          const L = x.days || [], j = L.length * 30;
          if (Z >= Ae && Z < Ae + j) {
            const $ = Z - Ae, re = Math.floor($ / 30);
            if (re >= 0 && re < L.length)
              return new Date(L[re].date);
          }
          Ae += j;
        }
      else if (X === Ye.MONTH)
        for (const x of ee) {
          if (Z >= Ae && Z < Ae + 60) {
            const j = Z - Ae, $ = ((oe = x.monthData) == null ? void 0 : oe.dayCount) || 30, re = 60 / $, pe = Math.floor(j / re), de = Math.min(pe + 1, $);
            return new Date(x.year, x.month - 1, de);
          }
          Ae += 60;
        }
      else if (X === Ye.QUARTER)
        for (const x of ee) {
          const L = x.quarters || [];
          for (const j of L) {
            const $ = new Date(j.startDate), re = new Date(j.endDate), pe = 60;
            if (Z >= Ae && Z < Ae + pe) {
              const de = Z - Ae, ce = Math.ceil(
                (re.getTime() - $.getTime()) / (1e3 * 60 * 60 * 24)
              ), Se = pe / ce, qe = Math.floor(de / Se), rt = new Date($);
              return rt.setDate(rt.getDate() + qe), rt;
            }
            Ae += pe;
          }
        }
      return null;
    }, p = (Z) => {
      e.allowDragAndResize === !1 || e.currentTimeScale === Ye.YEAR || M.value.isSticky || M.value.isPushedOut || !M.value.showIcon || (Z.preventDefault(), Z.stopPropagation(), !document.querySelector(".timeline")) || (i.value = Z.clientX, o.value = parseInt(F.value.left), l.value = null, window.addEventListener("timeline-auto-scroll", m), document.addEventListener("mousemove", y), document.addEventListener("mouseup", w));
    }, m = (Z) => {
      const { scrollDelta: ee } = Z.detail;
      s.value && (i.value -= ee);
    }, y = (Z) => {
      window.dispatchEvent(
        new CustomEvent("drag-boundary-check", {
          detail: {
            mouseX: Z.clientX,
            isDragging: s.value
          }
        })
      );
      const ee = Z.clientX - i.value;
      if (Math.abs(ee) > 3) {
        s.value = !0;
        const X = Math.max(0, o.value + ee);
        let Ae;
        if (e.currentTimeScale === Ye.MONTH || e.currentTimeScale === Ye.QUARTER || e.currentTimeScale === Ye.DAY)
          if (e.timelineData && e.currentTimeScale) {
            const oe = c(
              X,
              e.timelineData,
              e.currentTimeScale
            );
            oe ? Ae = oe : Ae = h(e.startDate, X / e.dayWidth);
          } else
            Ae = h(e.startDate, X / e.dayWidth);
        else
          Ae = h(e.startDate, X / e.dayWidth);
        l.value = {
          startDate: g(Ae)
        };
      }
    }, w = () => {
      if (window.dispatchEvent(
        new CustomEvent("drag-boundary-check", {
          detail: {
            mouseX: 0,
            isDragging: !1
          }
        })
      ), s.value && l.value && e.milestone) {
        const Z = {
          ...e.milestone,
          ...l.value
        };
        A("update:milestone", Z), A("drag-end", Z);
      }
      window.removeEventListener("timeline-auto-scroll", m), s.value = !1, l.value = null, document.removeEventListener("mousemove", y), document.removeEventListener("mouseup", w);
    }, E = (Z) => {
      if (Z.preventDefault(), Z.stopPropagation(), s.value || M.value.isPushedOut || !M.value.showIcon || M.value.isFullyVisible)
        return;
      const ee = e.containerWidth || 0, X = parseInt(F.value.left) + 12;
      if (ee > 0) {
        const Ae = Math.max(0, X - ee / 2);
        window.dispatchEvent(
          new CustomEvent("milestone-click-locate", {
            detail: {
              scrollLeft: Ae,
              smooth: !0
            }
          })
        );
      }
    }, C = lt(() => e.isInHighlightMode === !0), F = lt(() => {
      var oe;
      const Z = ((oe = l.value) == null ? void 0 : oe.startDate) || e.date, ee = aE(Z);
      if (!e.startDate || !ee || isNaN(ee.getTime()))
        return {
          left: "0px",
          top: "0px",
          width: "auto",
          height: "auto"
        };
      let X = 0, Ae = 24;
      return e.currentTimeScale === Ye.YEAR || e.currentTimeScale === Ye.QUARTER ? Ae = Math.min(e.rowHeight, 24) : e.currentTimeScale === Ye.MONTH ? Ae = Math.min(e.rowHeight, 20) : e.currentTimeScale === Ye.WEEK ? Ae = Math.min(e.rowHeight, Math.max(e.dayWidth * 0.8, 16), 24) : Ae = Math.min(e.rowHeight, e.dayWidth * 1.2, 24), e.currentTimeScale === Ye.HOUR ? X = le(ee, e.startDate) - Ae / 2 : e.timelineData && e.currentTimeScale && (e.currentTimeScale === Ye.WEEK || e.currentTimeScale === Ye.MONTH || e.currentTimeScale === Ye.DAY || e.currentTimeScale === Ye.QUARTER || e.currentTimeScale === Ye.YEAR) ? X = ue(
        ee,
        e.timelineData,
        e.currentTimeScale
      ) - Ae / 2 : X = Math.floor(
        (ee.getTime() - e.startDate.getTime()) / 864e5
      ) * e.dayWidth + e.dayWidth / 2 - Ae / 2, {
        left: `${X}px`,
        top: `${(e.rowHeight - Ae) / 2}px`,
        width: "auto",
        height: "auto"
      };
    }), H = lt(() => "var(--gantt-danger, #f56c6c)"), q = lt(() => "var(--gantt-danger-light, #fab6b6)"), N = lt(() => {
      var Z;
      return ((Z = e.milestone) == null ? void 0 : Z.icon) || "diamond";
    }), M = lt(() => {
      const Z = e.scrollLeft || 0, ee = e.containerWidth || 0;
      if (!ee || ee <= 0)
        return {
          showIcon: !0,
          showLabel: !0,
          isSticky: !1,
          stickyPosition: "none",
          iconLeft: "0px",
          isPushedOut: !1,
          clipPath: "none",
          isFullyVisible: !0
          // 无滚动信息时认为完全可见
        };
      const X = parseInt(F.value.left) + 12, Ae = Z, oe = Z + ee, x = 24, L = X - x / 2, j = X + x / 2, $ = e.milestoneId, re = L >= Ae && j <= oe, pe = e.otherMilestones || [];
      if (j <= Ae + x / 2) {
        const de = pe.filter(
          (ce) => ce.id !== $ && ce.stickyPosition === "left" && ce.isSticky
        );
        if (de.length > 0) {
          const ce = parseInt(F.value.left) + 12;
          if (de.some((qe) => qe.originalLeft > ce))
            return {
              showIcon: !1,
              showLabel: !1,
              isSticky: !1,
              stickyPosition: "none",
              iconLeft: "0px",
              isPushedOut: !0,
              clipPath: "none",
              isFullyVisible: !1
            };
        }
        return {
          showIcon: !0,
          showLabel: !1,
          isSticky: !0,
          stickyPosition: "left",
          iconLeft: `${Ae - parseInt(F.value.left) - x / 2}px`,
          isPushedOut: !1,
          clipPath: "polygon(50% 0%, 100% 0%, 100% 100%, 50% 100%)",
          // 只显示右半部分
          isFullyVisible: !1
        };
      }
      if (L >= oe - x / 2) {
        const de = pe.filter(
          (ce) => ce.id !== $ && ce.stickyPosition === "right" && ce.isSticky
        );
        if (de.length > 0) {
          const ce = parseInt(F.value.left) + 12;
          if (de.some((qe) => qe.originalLeft < ce))
            return {
              showIcon: !1,
              showLabel: !1,
              isSticky: !1,
              stickyPosition: "none",
              iconLeft: "0px",
              isPushedOut: !0,
              clipPath: "none",
              isFullyVisible: !1
            };
        }
        return {
          showIcon: !0,
          showLabel: !1,
          isSticky: !0,
          stickyPosition: "right",
          iconLeft: `${oe - parseInt(F.value.left) - x / 2}px`,
          isPushedOut: !1,
          clipPath: "polygon(0% 0%, 50% 0%, 50% 100%, 0% 100%)",
          // 只显示左半部分
          isFullyVisible: !1
        };
      }
      return {
        showIcon: !0,
        showLabel: !0,
        isSticky: !1,
        stickyPosition: "none",
        iconLeft: "0px",
        isPushedOut: !1,
        clipPath: "none",
        isFullyVisible: re
      };
    }), k = Te(!1), O = Te({ x: 0, y: 0 }), S = (Z) => {
      var ee;
      if (M.value.isSticky && M.value.showIcon && !M.value.isPushedOut) {
        k.value = !0;
        const X = !e.milestone || ((ee = e.milestone) == null ? void 0 : ee.icon) === "diamond" ? -300 : -270, Ae = M.value.stickyPosition === "left" ? 10 : X;
        O.value = {
          x: Z.clientX + Ae,
          y: Z.clientY - 10
        };
      }
    }, U = () => {
      k.value = !1;
    }, W = (Z) => {
      if (!Z) return a("dateNotSet");
      try {
        const ee = new Date(Z);
        if (isNaN(ee.getTime())) return a("dateNotSet");
        const X = ee.getFullYear(), Ae = String(ee.getMonth() + 1).padStart(2, "0"), oe = String(ee.getDate()).padStart(2, "0");
        return `${X}-${Ae}-${oe}`;
      } catch {
        return a("dateNotSet");
      }
    }, I = lt(() => {
      var X, Ae;
      const Z = e.name || ((X = e.milestone) == null ? void 0 : X.name) || a("milestone"), ee = W(e.date || ((Ae = e.milestone) == null ? void 0 : Ae.startDate) || "");
      return `${a("milestone")}:${Z} - ${a("targetDate")}:${ee}`;
    });
    tn(() => {
      s.value = !1, l.value = null, document.removeEventListener("mousemove", y), document.removeEventListener("mouseup", w);
    });
    const le = (Z, ee) => {
      const X = new Date(
        Z.getFullYear(),
        Z.getMonth(),
        Z.getDate()
      ), Ae = new Date(
        ee.getFullYear(),
        ee.getMonth(),
        ee.getDate()
      ), oe = X.getTime() - Ae.getTime(), j = Math.floor(oe / (1e3 * 60 * 60 * 24)) * 960, re = Z.getHours() * 40, de = Z.getMinutes() / 60 * 40;
      return j + re + de;
    }, ue = (Z, ee, X) => {
      var oe;
      let Ae = 0;
      for (const x of ee)
        if (X === Ye.DAY) {
          const L = "days" in x && x.days ? x.days : [];
          for (let j = 0; j < L.length; j++) {
            const $ = L[j], re = new Date($.date);
            if (re.getFullYear() === Z.getFullYear() && re.getMonth() === Z.getMonth() && re.getDate() === Z.getDate())
              return Ae + j * 30 + 15;
          }
          Ae += L.length * 30;
        } else if (X === Ye.QUARTER) {
          const L = "quarters" in x && x.quarters ? x.quarters : [];
          for (const j of L) {
            const $ = new Date(j.startDate), re = new Date(j.endDate);
            if (Z >= $ && Z <= re) {
              const ce = 60 / Math.ceil(
                (re.getTime() - $.getTime()) / 864e5
              ), Se = Math.ceil(
                (Z.getTime() - $.getTime()) / (1e3 * 60 * 60 * 24)
              );
              return Ae + Se * ce + ce / 2;
            }
            Ae += 60;
          }
        } else if (X === Ye.YEAR) {
          const L = "halfYears" in x && x.halfYears ? x.halfYears : [];
          for (const j of L) {
            const $ = new Date(j.startDate), re = new Date(j.endDate);
            if (Z >= $ && Z <= re) {
              const ce = 180 / Math.ceil(
                (re.getTime() - $.getTime()) / 864e5
              ), Se = Math.ceil(
                (Z.getTime() - $.getTime()) / (1e3 * 60 * 60 * 24)
              );
              return Ae + Se * ce + ce / 2;
            }
            Ae += 180;
          }
        } else if (X === Ye.WEEK) {
          const L = "weeks" in x && x.weeks ? x.weeks : [];
          for (const j of L) {
            const $ = new Date(j.weekStart), re = new Date(j.weekEnd);
            if (Z >= $ && Z <= re) {
              const de = j.subDays || [], ce = 60 / 7;
              for (let rt = 0; rt < de.length; rt++) {
                const at = de[rt], dt = new Date(at.date);
                if (dt.getFullYear() === Z.getFullYear() && dt.getMonth() === Z.getMonth() && dt.getDate() === Z.getDate())
                  return Ae + rt * ce + ce / 2;
              }
              const Se = Z.getDay(), qe = Se === 0 ? 6 : Se - 1;
              return Ae + qe * ce + ce / 2;
            }
            Ae += 60;
          }
        } else if (X === Ye.MONTH) {
          if (!("startDate" in x) || !("endDate" in x))
            continue;
          const L = new Date(x.startDate), j = new Date(x.endDate);
          if (Z >= L && Z <= j) {
            const pe = 60 / ("monthData" in x && ((oe = x.monthData) == null ? void 0 : oe.dayCount) || 30), de = Z.getDate();
            return Ae + (de - 1) * pe + pe / 2;
          }
          Ae += 60;
        }
      return Ae;
    };
    return (Z, ee) => (ae(), fe(Ut, null, [
      Y("div", {
        class: iA(["milestone", {
          dragging: s.value,
          "milestone-sticky": M.value.isSticky,
          "milestone-sticky-left": M.value.stickyPosition === "left",
          "milestone-sticky-right": M.value.stickyPosition === "right",
          "milestone-pushed-out": M.value.isPushedOut,
          dimmed: C.value
        }]),
        style: rA(F.value),
        title: M.value.isSticky ? "" : e.name || "里程碑",
        onClick: NA(E, ["stop"])
      }, [
        M.value.showIcon ? (ae(), fe("svg", {
          key: 0,
          width: 24,
          height: 24,
          viewBox: "0 0 24 24",
          style: rA([{
            position: M.value.isSticky ? "relative" : "static",
            left: M.value.isSticky ? M.value.iconLeft : "0px",
            clipPath: M.value.clipPath,
            zIndex: M.value.isSticky ? 200 : 120
          }, { cursor: "pointer" }]),
          onMouseenter: S,
          onMouseleave: U,
          onClick: NA(E, ["stop"]),
          onDblclick: NA(u, ["stop"]),
          onMousedown: NA(p, ["stop"])
        }, [
          N.value === "diamond" ? (ae(), fe("g", ZF, [
            Y("rect", {
              x: "4",
              y: "8",
              width: "15",
              height: "15",
              rx: "6",
              ry: "6",
              fill: H.value,
              stroke: q.value,
              "stroke-width": "2"
            }, null, 8, ex)
          ])) : N.value === "rocket" ? (ae(), fe("g", tx, ee[0] || (ee[0] = [
            Y("foreignObject", {
              x: "0",
              y: "0",
              width: "24",
              height: "24"
            }, [
              Y("div", { class: "rocket-emoji" }, "🚀")
            ], -1)
          ]))) : (ae(), fe("g", Ax, [
            Y("rect", {
              x: "4",
              y: "8",
              width: "15",
              height: "15",
              rx: "6",
              ry: "6",
              fill: H.value,
              stroke: q.value,
              "stroke-width": "2"
            }, null, 8, rx)
          ]))
        ], 36)) : Ct("", !0),
        e.name && M.value.showLabel ? (ae(), fe("span", nx, Ge(e.name), 1)) : Ct("", !0)
      ], 14, JF),
      (ae(), wr(To, { to: "body" }, [
        k.value && M.value.isSticky ? (ae(), fe("div", {
          key: 0,
          class: "milestone-tooltip",
          style: rA({
            left: `${O.value.x}px`,
            top: `${O.value.y}px`
          })
        }, [
          Y("div", ax, Ge(I.value), 1)
        ], 4)) : Ct("", !0)
      ]))
    ], 64));
  }
}), S0 = /* @__PURE__ */ xn(ix, [["__scopeId", "data-v-0427278d"]]);
class Py {
  constructor() {
    HA(this, "cachedCtx", null);
    HA(this, "cachedWidth", 0);
    HA(this, "cachedHeight", 0);
    HA(this, "isUniApp", !1);
    this.isUniApp = typeof window < "u" && !!window.uni;
  }
  /**
   * 检测是否在 uni-app 环境
   */
  get isUniAppEnvironment() {
    return this.isUniApp;
  }
  /**
   * 获取或初始化 Canvas 上下文
   * @param options 初始化配置
   * @returns Canvas 上下文,失败返回 null
   */
  getContext(t) {
    const { canvas: e, canvasId: A, width: n, height: a, contextOptions: s } = t;
    if (!this.cachedCtx || this.cachedWidth !== n || this.cachedHeight !== a) {
      let i = null;
      if (this.isUniApp && window.uni)
        i = window.uni.createCanvasContext(A);
      else {
        if (!e) return null;
        const o = window.devicePixelRatio || 1;
        if (i = e.getContext("2d", s || { alpha: !0 }), !i) return null;
        const l = n * o, u = a * o;
        e.width = l, e.height = u, i.scale(o, o);
      }
      if (!i) return null;
      this.cachedCtx = i, this.cachedWidth = n, this.cachedHeight = a;
    }
    return this.cachedCtx;
  }
  /**
   * 清空画布
   */
  clear(t, e) {
    this.cachedCtx && this.cachedCtx.clearRect(0, 0, t, e);
  }
  /**
   * 触发 uni-app 画布渲染(仅 uni-app 环境需要)
   */
  draw() {
    var t;
    this.isUniApp && ((t = this.cachedCtx) != null && t.draw) && this.cachedCtx.draw();
  }
  /**
   * 重置缓存(例如 Canvas 元素被销毁时)
   */
  reset() {
    this.cachedCtx = null, this.cachedWidth = 0, this.cachedHeight = 0;
  }
}
const sx = /* @__PURE__ */ dn({
  __name: "GanttLinks",
  props: {
    tasks: {},
    taskBarPositions: {},
    width: {},
    height: {},
    offsetLeft: { default: 0 },
    offsetTop: { default: 0 },
    highlightedTaskId: {},
    highlightedTaskIds: {},
    hoveredTaskId: {},
    verticalLines: { default: () => [] },
    showVerticalLines: { type: Boolean, default: !0 }
  },
  setup(r, { expose: t }) {
    const e = r, A = Te(null), n = new Py();
    let a = null, s = !1, i = null;
    const o = Te(document.documentElement.getAttribute("data-theme") === "dark"), l = () => {
      o.value = document.documentElement.getAttribute("data-theme") === "dark", g();
    }, u = () => {
      const c = n.getContext({
        canvas: A.value,
        canvasId: "gantt-link-canvas",
        width: e.width,
        height: e.height,
        contextOptions: { alpha: !0 }
      });
      if (!c) {
        console.error("❌ Canvas context 获取失败,可能是尺寸超限");
        return;
      }
      const p = e.width, m = e.height;
      if (c.clearRect(0, 0, p, m), e.showVerticalLines && e.verticalLines && e.verticalLines.length > 0) {
        c.save();
        const O = o.value ? "#66b1ff" : "#409eff";
        c.strokeStyle = O, c.lineWidth = 1, c.beginPath();
        for (const S of e.verticalLines) {
          const U = S.left - e.offsetLeft;
          U >= 0 && U <= p && (c.moveTo(U, 0), c.lineTo(U, m));
        }
        c.stroke(), c.restore();
      }
      const y = /* @__PURE__ */ new Set();
      for (const O of e.tasks)
        y.add(O.id);
      const w = e.highlightedTaskId !== null, E = e.offsetLeft, C = e.offsetLeft + p, F = e.offsetTop, H = e.offsetTop + m, q = [], N = [], M = [], k = [];
      for (const O of e.tasks) {
        if (!O.predecessor || !e.taskBarPositions[O.id]) continue;
        const S = Da(O.predecessor);
        for (const U of S) {
          const W = e.taskBarPositions[U], I = e.taskBarPositions[O.id];
          if (!W || !I || !y.has(U))
            continue;
          const le = e.highlightedTaskId === U, ue = e.highlightedTaskId === O.id, Z = e.highlightedTaskIds.has(U), ee = e.highlightedTaskIds.has(O.id), X = Z && ee, Ae = e.hoveredTaskId === U, oe = e.hoveredTaskId === O.id, x = Ae || oe, L = le ? -8 : Z ? -5 : 0, j = ue ? -8 : ee ? -5 : 0, $ = W.left + W.width, re = W.top + W.height / 2 + L, pe = I.left, de = I.top + I.height / 2 + j, ce = Math.min($, pe), Se = Math.max($, pe), qe = Math.min(re, de), rt = Math.max(re, de);
          if (Se < E || ce > C || rt < F || qe > H)
            continue;
          const at = $ - e.offsetLeft, dt = re - e.offsetTop, D = pe - e.offsetLeft, Ie = de - e.offsetTop, me = D - at, ve = Ie - dt, xe = Math.sqrt(me * me + ve * ve), Qe = W.width, _e = W.height, Pe = Math.abs(me) / (xe + 1), je = 20;
          let Ke = _e / 2 + je;
          Pe < 0.3 ? Ke = Math.max(_e / 2 + 25, 45) : Pe < 0.6 ? Ke = _e / 2 + je : Ke = Qe / 3 + 10;
          let et = 0;
          if (Math.abs(ve) > 0) {
            const Pt = _e / 2 + 12, sA = Math.abs(ve) - _e, kt = Math.min(sA * 0.5, 100);
            et = Math.max(Pt, kt);
          } else
            et = 0;
          const yt = Pe < 0.3 ? 0.4 : 0.8, Ft = at + Ke, Bt = dt + (ve > 0 ? et : -et) * yt, St = D - Ke, bt = Ie - (ve > 0 ? et : -et) * yt, nA = Math.atan2(Ie - bt, D - St), qt = { x1: at, y1: dt, x2: D, y2: Ie, c1x: Ft, c1y: Bt, c2x: St, c2y: bt, arrowAngle: nA };
          X ? q.push(qt) : x ? N.push(qt) : w ? k.push(qt) : M.push(qt);
        }
      }
      if (c.setLineDash([6, 4]), q.length > 0) {
        c.strokeStyle = "#409eff", c.fillStyle = "#409eff", c.lineWidth = 4, c.globalAlpha = 1, c.beginPath();
        for (const O of q)
          c.moveTo(O.x1, O.y1), c.bezierCurveTo(O.c1x, O.c1y, O.c2x, O.c2y, O.x2, O.y2);
        c.stroke();
        for (const O of q)
          h(c, O.x2, O.y2, O.arrowAngle);
      }
      if (N.length > 0) {
        c.strokeStyle = "#67c23a", c.fillStyle = "#67c23a", c.lineWidth = 3, c.globalAlpha = 1, c.beginPath();
        for (const O of N)
          c.moveTo(O.x1, O.y1), c.bezierCurveTo(O.c1x, O.c1y, O.c2x, O.c2y, O.x2, O.y2);
        c.stroke();
        for (const O of N)
          h(c, O.x2, O.y2, O.arrowAngle);
      }
      if (M.length > 0) {
        c.strokeStyle = "#c0c4cc", c.fillStyle = "#c0c4cc", c.lineWidth = 2, c.globalAlpha = 1, c.beginPath();
        for (const O of M)
          c.moveTo(O.x1, O.y1), c.bezierCurveTo(O.c1x, O.c1y, O.c2x, O.c2y, O.x2, O.y2);
        c.stroke();
        for (const O of M)
          h(c, O.x2, O.y2, O.arrowAngle);
      }
      if (k.length > 0) {
        c.strokeStyle = "#c0c4cc", c.fillStyle = "#c0c4cc", c.lineWidth = 2, c.globalAlpha = 0.2, c.beginPath();
        for (const O of k)
          c.moveTo(O.x1, O.y1), c.bezierCurveTo(O.c1x, O.c1y, O.c2x, O.c2y, O.x2, O.y2);
        c.stroke();
        for (const O of k)
          h(c, O.x2, O.y2, O.arrowAngle);
        c.globalAlpha = 1;
      }
      n.draw();
    }, h = (c, p, m, y) => {
      c.beginPath(), c.moveTo(p, m), c.lineTo(
        p - 8 * Math.cos(y) - 4 * Math.sin(y),
        m - 8 * Math.sin(y) + 4 * Math.cos(y)
      ), c.lineTo(
        p - 8 * Math.cos(y) + 4 * Math.sin(y),
        m - 8 * Math.sin(y) - 4 * Math.cos(y)
      ), c.closePath(), c.fill();
    }, g = () => {
      s || (s = !0, a !== null && cancelAnimationFrame(a), a = requestAnimationFrame(() => {
        s = !1, a = null, u();
      }));
    };
    return EA(
      [
        () => e.taskBarPositions,
        () => e.tasks,
        () => e.highlightedTaskId,
        () => e.highlightedTaskIds,
        () => e.hoveredTaskId,
        () => e.width,
        () => e.height,
        () => e.verticalLines,
        () => e.showVerticalLines,
        () => e.offsetLeft,
        // 监听虚拟渲染的偏移量变化
        () => e.offsetTop
      ],
      () => {
        g();
      },
      { deep: !1 }
      // shallowRef 不需要 deep
    ), En(() => {
      i = new MutationObserver((c) => {
        for (const p of c)
          if (p.attributeName === "data-theme") {
            l();
            break;
          }
      }), i.observe(document.documentElement, {
        attributes: !0,
        attributeFilter: ["data-theme"]
      }), rr(() => {
        u();
      });
    }), tn(() => {
      i && (i.disconnect(), i = null), a !== null && (cancelAnimationFrame(a), a = null);
    }), t({
      redraw: u
    }), (c, p) => (ae(), fe("canvas", {
      ref_key: "canvasRef",
      ref: A,
      "canvas-id": "gantt-link-canvas",
      class: "gantt-links-canvas",
      type: "2d",
      hidpi: !0,
      style: rA({
        position: "absolute",
        left: `${c.offsetLeft}px`,
        top: `${c.offsetTop}px`,
        width: `${c.width}px`,
        height: `${c.height}px`,
        zIndex: c.highlightedTaskId !== null ? 1001 : 25,
        pointerEvents: "none"
      })
    }, null, 4));
  }
}), ox = /* @__PURE__ */ xn(sx, [["__scopeId", "data-v-3f872d3f"]]), lx = /* @__PURE__ */ dn({
  __name: "LinkDragGuide",
  props: {
    active: { type: Boolean },
    width: {},
    height: {},
    offsetLeft: { default: 0 },
    offsetTop: { default: 0 }
  },
  setup(r, { expose: t }) {
    const e = r, A = Te(null), n = new Py(), a = () => n.getContext({
      canvas: A.value,
      canvasId: "link-drag-guide-canvas",
      width: e.width,
      height: e.height,
      contextOptions: { alpha: !0, willReadFrequently: !1 }
    }), s = (o, l, u, h, g = !0, c = "") => {
      const p = a();
      if (!p) {
        console.error("[LinkDragGuide] initCanvas returned null");
        return;
      }
      const m = e.width, y = e.height;
      p.clearRect(0, 0, m, y);
      const w = o - e.offsetLeft, E = l - e.offsetTop, C = u - e.offsetLeft, F = h - e.offsetTop, H = 100;
      if (!((w >= -H || C >= -H) && (w <= m + H || C <= m + H) && (E >= -H || F >= -H) && (E <= y + H || F <= y + H))) return;
      p.save();
      const N = g ? "#67c23a" : "#f56c6c";
      p.strokeStyle = N, p.lineWidth = 3, p.globalAlpha = 0.8, p.beginPath(), p.moveTo(w, E), p.lineTo(C, F), p.stroke();
      const M = Math.atan2(F - E, C - w), k = 8, O = 4;
      if (p.fillStyle = N, p.globalAlpha = 1, p.beginPath(), p.moveTo(C, F), p.lineTo(
        C - k * Math.cos(M) - O * Math.sin(M),
        F - k * Math.sin(M) + O * Math.cos(M)
      ), p.lineTo(
        C - k * Math.cos(M) + O * Math.sin(M),
        F - k * Math.sin(M) - O * Math.cos(M)
      ), p.closePath(), p.fill(), !g && c) {
        const S = (w + C) / 2, U = (E + F) / 2 - 10;
        p.font = "12px Arial, sans-serif";
        const I = p.measureText(c).width, le = 8;
        p.fillStyle = "rgba(0, 0, 0, 0.75)", p.fillRect(S - I / 2 - le, U - 12, I + le * 2, 24), p.fillStyle = "#ffffff", p.textAlign = "center", p.textBaseline = "middle", p.fillText(c, S, U);
      }
      p.restore(), n.draw();
    }, i = () => {
      n.clear(e.width, e.height);
    };
    return EA(
      [() => e.width, () => e.height],
      () => {
        n.reset();
      }
    ), EA(
      () => e.active,
      (o) => {
        o || n.reset();
      }
    ), tn(() => {
      n.reset();
    }), t({
      draw: s,
      clear: i
    }), (o, l) => o.active ? (ae(), fe("canvas", {
      key: 0,
      ref_key: "canvasRef",
      ref: A,
      "canvas-id": "link-drag-guide-canvas",
      class: "link-drag-guide-canvas",
      type: "2d",
      hidpi: !0,
      style: rA({
        position: "absolute",
        left: `${o.offsetLeft}px`,
        top: `${o.offsetTop}px`,
        width: `${o.width}px`,
        height: `${o.height}px`,
        zIndex: 1002,
        pointerEvents: "none"
      })
    }, null, 4)) : Ct("", !0);
  }
}), ux = /* @__PURE__ */ xn(lx, [["__scopeId", "data-v-06dab396"]]);
performance.now();
const cx = { class: "timeline-header" }, fx = { class: "timeline-header-row year-row" }, hx = { class: "year-label" }, dx = { class: "timeline-header-row half-years-row" }, gx = { class: "half-year-label" }, px = { class: "timeline-header-row year-row" }, vx = { class: "year-label" }, mx = { class: "timeline-header-row months-row" }, wx = { class: "month-label" }, Bx = { class: "timeline-header-row year-row" }, yx = { class: "year-label" }, bx = { class: "timeline-header-row quarters-row" }, Cx = { class: "quarter-label" }, Ex = { class: "timeline-header-row date-row" }, Fx = { class: "date-label" }, xx = { class: "timeline-header-row hours-row" }, Sx = { class: "hour-label" }, Ux = { class: "timeline-header-row year-month-row" }, Tx = { class: "year-month-label" }, Qx = { class: "flag-content" }, Dx = { class: "timeline-header-row days-row" }, kx = { class: "week-label" }, Lx = { class: "day-label" }, Ix = ["onMouseenter"], _x = 200, Nx = 8, Mx = 4, wf = 40, U0 = 10, T0 = 51, Q0 = 5, su = 5e3, Ox = 5e3, D0 = 50, k0 = 5, Rx = /* @__PURE__ */ dn({
  __name: "Timeline",
  props: {
    tasks: { default: () => [] },
    milestones: { default: () => [] },
    startDate: {},
    endDate: {},
    useDefaultDrawer: { type: Boolean, default: !0 },
    useDefaultMilestoneDialog: { type: Boolean, default: !0 },
    onTaskDelete: { type: Function, default: void 0 },
    onTaskUpdate: { type: Function, default: void 0 },
    onMilestoneDelete: { type: Function, default: void 0 },
    onMilestoneUpdate: { type: Function, default: void 0 },
    onMilestoneSave: { type: Function, default: void 0 },
    workingHours: { default: () => ({
      morning: { start: 8, end: 11 },
      afternoon: { start: 13, end: 17 }
    }) },
    taskBarConfig: { default: void 0 },
    allowDragAndResize: { type: Boolean, default: !0 }
  },
  emits: ["timeline-scale-changed", "click-task", "edit-task", "milestone-double-click", "start-timer", "stop-timer", "add-predecessor", "add-successor", "predecessor-added", "successor-added", "delete", "link-deleted"],
  setup(r, { expose: t, emit: e }) {
    const A = r, n = e, { formatYearMonth: a, formatMonth: s, getTranslation: i } = Ma(), o = (R) => i(R), l = (() => {
      const R = /* @__PURE__ */ new Date(), te = new Date(R.getFullYear(), R.getMonth() - 6, 1), K = new Date(R.getFullYear(), R.getMonth() + 6 + 1, 0);
      return {
        startDate: te,
        endDate: K
      };
    })(), u = () => l, h = lt(() => A.startDate ? new Date(A.startDate) : u().startDate), g = lt(() => A.endDate ? new Date(A.endDate) : u().endDate), c = Te({
      startDate: h.value,
      endDate: g.value,
      zoomLevel: 1
    }), p = Te(Ye.DAY);
    EA([h, g], ([R, te]) => {
      (A.startDate || A.endDate) && (Gt || (c.value.startDate = R, c.value.endDate = te));
    });
    const m = [], y = lt(() => A.tasks ?? m), w = Te(null), E = Te(null), C = lt(() => p.value === Ye.HOUR ? 960 : p.value === Ye.WEEK ? 60 / 7 : p.value === Ye.MONTH ? 2 : p.value === Ye.QUARTER ? 60 / 90 : p.value === Ye.YEAR ? 360 / 365 : 30);
    let F = null;
    const H = () => {
      F = null;
    }, q = () => {
      if (!y.value || y.value.length === 0)
        return null;
      const R = [], te = (ye) => {
        if (ye.startDate && R.push(new Date(ye.startDate)), ye.endDate && R.push(new Date(ye.endDate)), ye.children && ye.children.length > 0)
          for (const Le of ye.children)
            te(Le);
      };
      for (const ye of y.value)
        te(ye);
      if (R.length === 0)
        return null;
      let K = 1 / 0, he = -1 / 0;
      for (const ye of R) {
        const Le = ye.getTime();
        isNaN(Le) || (Le < K && (K = Le), Le > he && (he = Le));
      }
      return K === 1 / 0 || he === -1 / 0 ? null : {
        minDate: new Date(K),
        maxDate: new Date(he)
      };
    }, N = () => F || (F = q(), F), M = () => {
      const R = N(), te = $e.value || 1200, K = 40;
      if (!R) {
        const It = /* @__PURE__ */ new Date();
        It.setHours(0, 0, 0, 0);
        const Qt = new Date(It);
        Qt.setDate(Qt.getDate() - 1);
        const pt = new Date(It);
        return pt.setDate(pt.getDate() + 1), pt.setHours(23, 59, 59, 999), { startDate: Qt, endDate: pt };
      }
      const { minDate: he, maxDate: ye } = R, Le = new Date(he);
      Le.setHours(0, 0, 0, 0), Le.setDate(Le.getDate() - 1);
      const Xe = new Date(ye);
      Xe.setHours(23, 59, 59, 999), Xe.setDate(Xe.getDate() + 1);
      const ze = Math.ceil((Xe.getTime() - Le.getTime()) / (1e3 * 60 * 60));
      if (ze * K < te) {
        const It = Math.ceil(te / K), Qt = Math.ceil((It - ze) / 2), pt = Math.ceil(Qt / 24);
        Le.setDate(Le.getDate() - pt), Xe.setDate(Xe.getDate() + pt);
      }
      return { startDate: Le, endDate: Xe };
    }, k = () => {
      const R = N(), te = $e.value || 1200, K = 30;
      if (!R) {
        const It = /* @__PURE__ */ new Date(), Qt = Math.max(Math.ceil(te / K), 60), pt = new Date(It);
        pt.setDate(pt.getDate() - Math.floor(Qt / 2));
        const jt = new Date(It);
        return jt.setDate(jt.getDate() + Math.ceil(Qt / 2)), { startDate: pt, endDate: jt };
      }
      const { minDate: he, maxDate: ye } = R;
      let Le = new Date(he);
      Le.setDate(Le.getDate() - 30);
      let Xe = new Date(ye);
      Xe.setDate(Xe.getDate() + 30);
      const ze = Math.ceil((Xe.getTime() - Le.getTime()) / (1e3 * 60 * 60 * 24));
      if (ze * K < te) {
        const It = Math.ceil(te / K), Qt = Math.ceil((It - ze) / 2), pt = new Date(Le);
        pt.setDate(pt.getDate() - Qt), Le = pt;
        const jt = new Date(Xe);
        jt.setDate(jt.getDate() + Qt), Xe = jt;
      }
      return { startDate: Le, endDate: Xe };
    }, O = () => {
      const R = N(), te = $e.value || 1200, K = 60;
      if (!R) {
        const ar = /* @__PURE__ */ new Date(), YA = Math.max(Math.ceil(te / K), 20), qA = new Date(ar);
        qA.setDate(qA.getDate() - Math.floor(YA / 2) * 7);
        const ir = new Date(ar);
        return ir.setDate(ir.getDate() + Math.ceil(YA / 2) * 7), { startDate: qA, endDate: ir };
      }
      const { minDate: he, maxDate: ye } = R;
      function Le(ar) {
        const YA = new Date(ar), qA = YA.getDay() || 7;
        return YA.setDate(YA.getDate() - (qA - 1)), YA;
      }
      function Xe(ar, YA) {
        let qA = 1;
        for (; qA <= 31; ) {
          const ir = new Date(ar, YA, qA);
          if (ir.getMonth() !== YA) break;
          const wn = Le(ir);
          if (wn.getMonth() === YA)
            return wn;
          qA++;
        }
        return new Date(ar, YA, 1);
      }
      function ze(ar, YA) {
        const qA = new Date(ar, YA + 1, 0).getDate();
        for (let ir = qA; ir >= 1; ir--) {
          const wn = new Date(ar, YA, ir), cn = Le(wn);
          if (cn.getMonth() === YA)
            return cn;
        }
        return new Date(ar, YA, 1);
      }
      function mt(ar, YA) {
        const qA = [], ir = Xe(ar, YA), wn = ze(ar, YA), cn = new Date(ir);
        for (; cn <= wn; )
          qA.push(new Date(cn)), cn.setDate(cn.getDate() + 7);
        return qA;
      }
      const It = Le(he), Qt = It.getFullYear(), pt = It.getMonth(), jt = pt === 0 ? 11 : pt - 1, KA = pt === 0 ? Qt - 1 : Qt, VA = mt(KA, jt), ln = Le(ye), yr = ln.getFullYear(), Ur = ln.getMonth(), _r = Ur === 11 ? 0 : Ur + 1, er = Ur === 11 ? yr + 1 : yr, Kn = mt(er, _r);
      let fr = [];
      fr.push(...VA);
      let ca = Qt, un = pt;
      for (; ca < yr || ca === yr && un <= Ur; ) {
        const ar = mt(ca, un);
        fr.push(...ar), un++, un > 11 && (un = 0, ca++);
      }
      fr.push(...Kn);
      let Fa = fr.length * K;
      for (; Fa < te; ) {
        const ar = fr[0], YA = ar.getFullYear(), qA = ar.getMonth(), ir = qA === 0 ? 11 : qA - 1, wn = qA === 0 ? YA - 1 : YA;
        if (fr = [...mt(wn, ir), ...fr], Fa = fr.length * K, Fa >= te) break;
        const Ka = fr[fr.length - 1], ji = Ka.getFullYear(), si = Ka.getMonth(), Tr = si === 11 ? 0 : si + 1, ao = si === 11 ? ji + 1 : ji, xa = mt(ao, Tr);
        fr = [...fr, ...xa], Fa = fr.length * K;
      }
      const bs = new Date(fr[0]), wi = new Date(fr[fr.length - 1]);
      return wi.setDate(wi.getDate() + 6), { startDate: bs, endDate: wi };
    }, S = () => {
      const R = N();
      if (!R) {
        const Qt = /* @__PURE__ */ new Date(), pt = new Date(Qt.getFullYear() - 1, 0, 1), jt = new Date(Qt.getFullYear() + 1, 11, 31);
        return { startDate: pt, endDate: jt };
      }
      const { minDate: te, maxDate: K } = R, he = $e.value || 1200;
      let ye = new Date(te.getFullYear() - 1, 0, 1), Le = new Date(K.getFullYear() + 1, 11, 31);
      const ze = (Le.getFullYear() - ye.getFullYear()) * 12 + (Le.getMonth() - ye.getMonth()), mt = 60;
      if (ze * mt < he) {
        const Qt = Math.ceil(he / mt), pt = Math.ceil((Qt - ze) / 2), jt = new Date(ye);
        jt.setMonth(jt.getMonth() - pt), ye = new Date(jt.getFullYear(), jt.getMonth(), 1);
        const KA = new Date(Le);
        KA.setMonth(KA.getMonth() + pt), Le = new Date(KA.getFullYear(), KA.getMonth() + 1, 0);
      }
      return { startDate: ye, endDate: Le };
    }, U = () => {
      const R = N();
      if (!R) {
        const ze = /* @__PURE__ */ new Date(), mt = $e.value || 1200;
        let It = 3;
        p.value === Ye.QUARTER ? It = Math.max(Math.ceil(mt / 240) + 1, 5) : p.value === Ye.YEAR && (It = Math.max(Math.ceil(mt / 360) + 1, 5));
        const Qt = ze.getFullYear() - Math.floor(It / 2), pt = Qt + It - 1, jt = new Date(Qt, 0, 1), KA = new Date(pt, 11, 31);
        return { startDate: jt, endDate: KA };
      }
      const { minDate: te, maxDate: K } = R, he = $e.value || 1200;
      let ye = new Date(te.getFullYear() - 1, 0, 1), Le = new Date(K.getFullYear() + 1, 11, 31);
      const Xe = Le.getFullYear() - ye.getFullYear() + 1;
      if (p.value === Ye.QUARTER) {
        if (Xe * 240 < he) {
          const Qt = Math.ceil(he / 240), pt = Math.ceil((Qt - Xe) / 2);
          ye = new Date(ye.getFullYear() - pt, 0, 1), Le = new Date(Le.getFullYear() + pt, 11, 31);
        }
      } else if (p.value === Ye.YEAR && Xe * 360 < he) {
        const It = Math.ceil(he / 360), Qt = Math.ceil((It - Xe) / 2);
        ye = new Date(ye.getFullYear() - Qt, 0, 1), Le = new Date(Le.getFullYear() + Qt, 11, 31);
      }
      return { startDate: ye, endDate: Le };
    }, W = Te(null), I = Te(null), le = Te(/* @__PURE__ */ new Set()), ue = lt(() => I.value !== null), Z = () => {
      I.value = null, le.value.clear();
    }, ee = (R) => {
      I.value = R, le.value.clear(), le.value.add(R);
      const te = y.value.find((K) => K.id === R);
      if (te) {
        if (te.predecessor) {
          const K = Da(te.predecessor);
          for (const he of K)
            le.value.add(he);
        }
        for (const K of y.value)
          K.predecessor && Da(K.predecessor).includes(R) && le.value.add(K.id);
      }
    }, X = Te(null), Ae = iu(null), oe = iu(null), x = Te(!1), L = Te(""), j = Te(null);
    let $ = !1, re = "";
    const pe = /* @__PURE__ */ new Map(), de = (R) => {
      X.value = R.type, Ae.value = R.task, _e(R.mouseEvent.clientX, R.mouseEvent.clientY), oe.value = null, x.value = !1, L.value = "", ut = null, $ = !1, re = "", bt(), document.addEventListener("mousemove", D), document.addEventListener("mouseup", Ie);
    };
    let ce = null, Se = 0, qe = 0, rt = 0, at = 0;
    const dt = () => {
      ce = null, _e(Se, qe), yt(Se, qe), cr.value && Ae.value && cr.value.draw(
        Ot(),
        Pt(),
        rt,
        at,
        $,
        re
      );
    }, D = (R) => {
      X.value && (Se = R.clientX, qe = R.clientY, ce === null && (ce = requestAnimationFrame(dt)));
    }, Ie = () => {
      X.value && (ce !== null && (cancelAnimationFrame(ce), ce = null), Ae.value && je({
        task: Ae.value,
        type: X.value
      }));
    };
    let me = null, ve = 0, xe = !1;
    const Qe = (R, te) => {
      if (!GA.value) {
        rt = R, at = te;
        return;
      }
      const K = Date.now();
      (!me || xe || K - ve > _x) && (me = GA.value.getBoundingClientRect(), ve = K, xe = !1), rt = R - me.left, at = te - me.top;
    }, _e = (R, te) => {
      Qe(R, te);
    }, Pe = (R) => {
      Se = R.mouseX, qe = R.mouseY, ce === null && (ce = requestAnimationFrame(dt));
    }, je = (R) => {
      var te;
      me = null, document.removeEventListener("mousemove", D), document.removeEventListener("mouseup", Ie), nA(), (te = cr.value) == null || te.clear(), oe.value && x.value && St(R.task, oe.value, R.type), X.value = null, Ae.value = null, oe.value = null, x.value = !1;
    }, Ke = (R, te) => {
      me || (me = GA.value.getBoundingClientRect(), ve = Date.now());
      const K = R - me.left, he = te - me.top, ye = (Nx + Mx) / 2, Le = ye + 10;
      for (const Xe in bA.value) {
        const ze = bA.value[Xe], mt = Number(Xe);
        if (he < ze.top - Le || he > ze.top + ze.height + Le)
          continue;
        const It = ze.top + ze.height / 2, Qt = ze.left;
        if (K >= Qt - ye && K <= Qt + ye && he >= It - ye && he <= It + ye)
          return { taskId: mt, anchorType: "left" };
        const pt = ze.left + ze.width;
        if (K >= pt - ye && K <= pt + ye && he >= It - ye && he <= It + ye)
          return { taskId: mt, anchorType: "right" };
      }
      return null;
    }, et = (R, te) => {
      const K = (ut == null ? void 0 : ut.id) ?? null, he = (R == null ? void 0 : R.id) ?? null;
      if (K !== he)
        if (ut = R, R && Ae.value) {
          const ye = Ft(
            Ae.value,
            R,
            X.value,
            te
          );
          $ = ye.valid, re = ye.error || "", x.value = ye.valid, oe.value = R;
        } else
          $ = !1, re = "", x.value = !1, oe.value = null;
    };
    let ut = null;
    const yt = (R, te) => {
      if (!Ae.value || !GA.value) return;
      const K = Ke(R, te), he = K !== null && pe.get(K.taskId) || null, ye = K == null ? void 0 : K.anchorType;
      et(he, ye);
    }, Ft = (R, te, K, he) => {
      if (he) {
        if (K === "predecessor" && he !== "right")
          return { valid: !1, error: "前置任务应连接到右侧触点" };
        if (K === "successor" && he !== "left")
          return { valid: !1, error: "后置任务应连接到左侧触点" };
      }
      if (R.id === te.id)
        return { valid: !1, error: "不能连接到自己" };
      if (te.isParent || te.type === "milestone")
        return { valid: !1, error: "不能连接到父级任务或里程碑" };
      if (K === "predecessor") {
        if (Bt(te.id, R.id))
          return { valid: !1, error: "会产生循环依赖" };
      } else if (Bt(R.id, te.id))
        return { valid: !1, error: "会产生循环依赖" };
      if (K === "predecessor") {
        if (R.predecessor && Da(R.predecessor).includes(te.id))
          return { valid: !1, error: "关系已存在" };
      } else if (te.predecessor && Da(te.predecessor).includes(R.id))
        return { valid: !1, error: "关系已存在" };
      return { valid: !0 };
    }, Bt = (R, te) => {
      const K = /* @__PURE__ */ new Set(), he = [R];
      for (; he.length > 0; ) {
        const ye = he.shift();
        if (ye === te)
          return !0;
        if (K.has(ye))
          continue;
        K.add(ye);
        const Le = y.value.find((Xe) => Xe.id === ye);
        if (Le && Le.predecessor) {
          const Xe = Da(Le.predecessor);
          he.push(...Xe);
        }
      }
      return !1;
    }, St = (R, te, K) => {
      if (console.log("----> hello:", {
        mode: K,
        sourceTask: R,
        targetTask: te
      }), K === "predecessor") {
        const he = R.predecessor ? Da(R.predecessor) : [];
        he.includes(te.id) || (he.push(te.id), R.predecessor = he, ea(R), n("predecessor-added", { targetTask: R, newTask: te }));
      } else {
        const he = te.predecessor ? Da(te.predecessor) : [];
        he.includes(R.id) || (he.push(R.id), te.predecessor = he, ea(te), n("successor-added", { targetTask: te, newTask: R }));
      }
    }, bt = () => {
      j.value = window.setInterval(() => {
        if (!w.value || !GA.value) return;
        const R = w.value, te = ta.value;
        if (!te) return;
        const K = R.getBoundingClientRect(), he = 80, ye = 15, Le = Se, Xe = qe;
        let ze = !1;
        if (Le < K.left + he && R.scrollLeft > 0)
          R.scrollLeft -= ye, ze = !0;
        else if (Le > K.right - he) {
          const mt = R.scrollWidth - R.clientWidth;
          R.scrollLeft < mt && (R.scrollLeft += ye, ze = !0);
        }
        if (Xe < K.top + he && te.scrollTop > 0)
          te.scrollTop -= ye, ze = !0;
        else if (Xe > K.bottom - he) {
          const mt = te.scrollHeight - te.clientHeight;
          te.scrollTop < mt && (te.scrollTop += ye, ze = !0);
        }
        ze && (xe = !0, yt(Le, Xe), cr.value && Ae.value && cr.value.draw(
          Ot(),
          Pt(),
          rt,
          at,
          $,
          re
        ));
      }, 30);
    }, nA = () => {
      j.value !== null && (clearInterval(j.value), j.value = null);
    }, qt = () => {
      var R;
      nA(), me = null, ce !== null && (cancelAnimationFrame(ce), ce = null), (R = cr.value) == null || R.clear(), document.removeEventListener("mousemove", D), document.removeEventListener("mouseup", Ie), X.value = null, Ae.value = null, oe.value = null, x.value = !1;
    }, Ot = () => {
      if (!Ae.value) return 0;
      const R = bA.value[Ae.value.id];
      return R ? X.value === "predecessor" ? R.left : R.left + R.width : 0;
    }, Pt = () => {
      if (!Ae.value) return 0;
      const R = bA.value[Ae.value.id];
      return R ? R.top + R.height / 2 : 0;
    }, sA = Te(!1), kt = Te(!1), hA = Te(!1), Nt = Te(0), Ce = Te(!1);
    let Ve = null;
    const Re = Te(0), $e = Te(0), xt = Te(!0), Ht = Te(!0);
    let Mt = null;
    const SA = Te(0), JA = /* @__PURE__ */ new Map(), Lt = Te(!0), Qr = lt(() => {
      if (p.value !== Ye.HOUR)
        return { startHour: 0, endHour: 0 };
      const R = Re.value, te = $e.value;
      if (Lt.value && R === 0)
        return {
          startHour: 0,
          endHour: 168
          // 一周 (7*24=168小时)
        };
      if (Lt.value) {
        const ye = /* @__PURE__ */ new Date(), Le = c.value.startDate, Xe = Math.floor((ye.getTime() - Le.getTime()) / (1e3 * 60 * 60));
        return {
          startHour: Math.max(0, Xe - 168),
          // 前一周 (7*24=168小时)
          endHour: Xe + 168
          // 后一周
        };
      }
      const K = Math.floor(R / wf) - U0, he = Math.ceil((R + te) / wf) + U0;
      return {
        startHour: Math.max(0, K),
        endHour: Math.max(K + 1, he)
      };
    }), Fr = lt(() => {
      const R = SA.value, te = LA.value || 600, K = Math.floor(R / T0) - Q0, he = Math.ceil((R + te) / T0) + Q0;
      return {
        startIndex: Math.max(0, K),
        endIndex: Math.min(y.value.length, Math.max(K + 1, he))
      };
    }), xr = lt(() => {
      const { startIndex: R, endIndex: te } = Fr.value;
      return y.value.slice(R, te).map((K, he) => ({
        task: K,
        originalIndex: R + he
      }));
    }), PA = (R, te) => {
      let K = null;
      return ((...he) => {
        const ye = () => {
          K = null, R(...he);
        };
        K && clearTimeout(K), K = window.setTimeout(ye, te);
      });
    }, CA = PA(() => {
      ZA();
    }, 200), MA = PA(() => {
      Dn();
    }, 200), OA = () => {
      const R = p.value, te = c.value.startDate.getTime(), K = c.value.endDate.getTime(), he = `${R}-${te}-${K}`;
      if (!JA.has(he)) {
        let ye;
        R === Ye.HOUR ? ye = Je() : R === Ye.WEEK ? ye = ft() : R === Ye.MONTH ? ye = Kt() : R === Ye.QUARTER ? ye = Yt() : R === Ye.YEAR ? ye = dA() : ye = Me(), JA.set(he, ye);
      }
      return JA.get(he);
    }, Dr = lt(() => {
      const R = OA();
      if (p.value === Ye.HOUR && Array.isArray(R)) {
        const { startHour: te, endHour: K } = Qr.value, he = [], ye = new Date(c.value.startDate);
        ye.setHours(0, 0, 0, 0);
        const Le = ye.getTime(), Xe = 1e3 * 60 * 60 * 24;
        for (const ze of R) {
          const mt = new Date(ze.year, ze.month - 1, ze.day);
          mt.setHours(0, 0, 0, 0);
          const Qt = Math.floor((mt.getTime() - Le) / Xe) * 24, pt = Math.max(0, te - Qt), jt = Math.min(ze.hours.length, K - Qt);
          pt < jt && he.push({
            ...ze,
            hours: ze.hours.slice(pt, jt),
            hourOffset: Qt + pt,
            visibleHourStart: pt,
            _debug: {
              totalHourOffset: Qt,
              dayStartHour: pt,
              dayEndHour: jt,
              visibleRange: { startHour: te, endHour: K }
            }
          });
        }
        return he;
      }
      return R;
    }), Sr = lt(() => {
      var he, ye;
      const R = OA();
      if (!Array.isArray(R)) return 0;
      const te = p.value;
      if (te === Ye.HOUR) {
        let Le = 0;
        for (const Xe of R)
          Le += Xe.hours.length;
        return Le * wf;
      }
      if (te === Ye.QUARTER) {
        let Le = 0;
        for (const Xe of R)
          Le += Xe.quarters.length;
        return Le * 60;
      }
      if (te === Ye.WEEK) {
        let Le = 0;
        for (const Xe of R)
          Le += ((he = Xe.weeks) == null ? void 0 : he.length) || 0;
        return Le * 60;
      }
      if (te === Ye.MONTH)
        return R.length * 60;
      if (te === Ye.YEAR)
        return R.length * 360;
      let K = 0;
      for (const Le of R)
        K += ((ye = Le.days) == null ? void 0 : ye.length) || 0;
      return K * 30;
    }), LA = Te(0);
    let pr = null;
    const kr = Te(/* @__PURE__ */ new Map()), ZA = () => {
      const R = /* @__PURE__ */ new Map(), te = c.value.startDate.getTime(), K = Re.value, he = K + $e.value;
      for (const ye of y.value)
        if (ye.type === "milestone-group" && ye.children)
          for (const Le of ye.children) {
            const Xe = new Date(Le.startDate || "");
            if (!isNaN(Xe.getTime())) {
              const mt = Math.floor(
                (Xe.getTime() - te) / 864e5
              ) * 30 + 15 - 12, It = mt - 12, Qt = mt + 12;
              let pt = !1, jt = "none";
              Qt <= K + 12 ? (pt = !0, jt = "left") : It >= he - 12 && (pt = !0, jt = "right"), R.set(Le.id, {
                left: mt,
                originalLeft: mt,
                isSticky: pt,
                stickyPosition: jt
              });
            }
          }
        else if (ye.type === "milestone") {
          const Le = new Date(ye.startDate || "");
          if (!isNaN(Le.getTime())) {
            const Xe = (Le.getTime() - te) / 864e5, mt = Math.floor(Xe) * 30 + 15 - 12, It = mt - 12, Qt = mt + 12;
            let pt = !1, jt = "none";
            Qt <= K + 12 ? (pt = !0, jt = "left") : It >= he - 12 && (pt = !0, jt = "right"), R.set(ye.id, {
              left: mt,
              originalLeft: mt,
              isSticky: pt,
              stickyPosition: jt
            });
          }
        }
      kr.value = R;
    }, Lr = (R) => {
      const te = [];
      return kr.value.forEach((K, he) => {
        he !== R && te.push({
          id: he,
          left: K.left,
          originalLeft: K.originalLeft,
          // 使用保存的原始位置
          isSticky: K.isSticky,
          stickyPosition: K.stickyPosition,
          priority: K.originalLeft
          // 使用原始位置作为优先级
        });
      }), te;
    }, Un = () => {
      sA.value = !0;
    }, Dt = () => {
      if (sA.value = !1, w.value) {
        const R = w.value.clientWidth;
        Math.abs(R - $e.value) > 1 && ($e.value = R);
      }
      xt.value = !0, setTimeout(() => {
        xt.value = !1;
      }, 300);
    }, be = () => {
      xt.value = !0, bA.value = {}, nr.value++, Mt && clearTimeout(Mt), Mt = setTimeout(() => {
        xt.value = !1, Mt = null, Dn();
      }, 300);
    }, z = (R) => {
      sA.value || vn.value || (W.value = R, window.dispatchEvent(
        new CustomEvent("timeline-task-hover", {
          detail: R
        })
      ));
    }, ge = lt(() => {
      const K = y.value.length * 51;
      return Math.max(K, 400, LA.value);
    }), We = (R) => {
      vn.value || (W.value = R.detail);
    }, it = (R) => {
      const te = R.detail;
      Pn(te);
    }, V = () => {
      tA.value = ke();
    }, Be = (R) => {
      ue.value || n("milestone-double-click", R);
    }, Fe = (R) => {
      A.onMilestoneSave && typeof A.onMilestoneSave == "function" && A.onMilestoneSave(R), window.dispatchEvent(
        new CustomEvent("milestone-data-updated", {
          detail: { milestone: R }
        })
      );
    }, ke = () => OA(), Ze = () => {
      JA.clear();
    }, Me = () => {
      const R = [], te = new Date(c.value.startDate);
      for (; te <= c.value.endDate; ) {
        const K = te.getFullYear(), he = te.getMonth() + 1, ye = [], Le = new Date(K, he, 0).getDate();
        for (let Xe = 1; Xe <= Le; Xe++) {
          const ze = new Date(K, he - 1, Xe), mt = ze.getDay(), It = mt === 0 || mt === 6;
          ye.push({
            day: Xe,
            date: ze,
            label: String(Xe).padStart(2, "0"),
            isToday: Xt(ze),
            isWeekend: It
          });
        }
        R.push({
          year: K,
          month: he,
          yearMonthLabel: a(K, he),
          startDate: new Date(te),
          endDate: new Date(K, he, 0),
          days: ye
        }), te.setMonth(te.getMonth() + 1);
      }
      return R;
    }, tt = (R, te) => {
      if (te === 0 || te === 6)
        return !1;
      const K = A.workingHours;
      if (!K) return !1;
      if (K.morning) {
        const { start: he, end: ye } = K.morning;
        if (R >= he && R <= ye)
          return !0;
      }
      if (K.afternoon) {
        const { start: he, end: ye } = K.afternoon;
        if (R >= he && R <= ye)
          return !0;
      }
      return !1;
    }, Je = () => {
      const R = [], te = new Date(c.value.startDate);
      for (; te <= c.value.endDate; ) {
        const K = te.getFullYear(), he = te.getMonth() + 1, ye = te.getDate(), Le = [], Xe = te.getDay();
        for (let ze = 0; ze < 24; ze++) {
          const mt = new Date(K, he - 1, ye, ze);
          Le.push({
            hour: ze,
            label: `${String(ze).padStart(2, "0")}:00`,
            shortLabel: String(ze).padStart(2, "0"),
            // 简化显示格式,只显示小时数
            date: mt,
            isToday: Xt(mt) && ze === (/* @__PURE__ */ new Date()).getHours(),
            isWorkingHour: tt(ze, Xe),
            // 判断是否为工作时间
            isWeekend: Xe === 0 || Xe === 6
            // 是否为周末
          });
        }
        R.push({
          year: K,
          month: he,
          day: ye,
          date: new Date(te),
          dateLabel: `${K}/${String(he).padStart(2, "0")}/${String(ye).padStart(2, "0")}`,
          isToday: Xt(te),
          hours: Le
        }), te.setDate(te.getDate() + 1);
      }
      return R;
    }, ft = () => {
      const R = [], te = new Date(c.value.startDate), K = new Date(c.value.endDate), he = new Date(te), ye = he.getDay() || 7;
      he.setDate(he.getDate() - (ye - 1));
      const Le = new Date(he);
      for (; Le <= K; ) {
        const mt = new Date(Le);
        mt.setDate(mt.getDate() + 6), R.push({
          weekStart: new Date(Le),
          weekEnd: new Date(mt),
          label: `${Le.getDate()}`,
          isToday: Jt(Le, mt),
          subDays: Et(Le),
          // 根据周一所在月份归属
          belongsToYear: Le.getFullYear(),
          belongsToMonth: Le.getMonth() + 1
        }), Le.setDate(Le.getDate() + 7);
      }
      const Xe = /* @__PURE__ */ new Map();
      for (const mt of R) {
        const It = mt, Qt = It.belongsToYear, pt = It.belongsToMonth, jt = `${Qt}-${pt}`;
        Xe.has(jt) || Xe.set(jt, {
          year: Qt,
          month: pt,
          yearMonthLabel: a(Qt, pt),
          startDate: new Date(Qt, pt - 1, 1),
          endDate: new Date(Qt, pt, 0),
          weeks: [],
          isWeekView: !0
        }), Xe.get(jt).weeks.push(mt);
      }
      return Array.from(Xe.values()).sort((mt, It) => mt.year !== It.year ? mt.year - It.year : mt.month - It.month);
    }, Et = (R) => {
      const te = [];
      for (let K = 0; K < 7; K++) {
        const he = new Date(R);
        he.setDate(he.getDate() + K), te.push({
          date: new Date(he),
          dayOfWeek: he.getDay()
        });
      }
      return te;
    }, Jt = (R, te) => {
      const K = /* @__PURE__ */ new Date();
      return K.setHours(0, 0, 0, 0), K >= R && K <= te;
    }, fA = (R, te) => {
      let K = 0;
      for (let he = 0; he < R; he++) {
        const ye = tA.value[he];
        ye && ye.isWeekView && ye.weeks ? K += ye.weeks.length * 60 : ye && ye.days && (K += ye.days.length * 30);
      }
      return K += te * 60, K;
    }, gA = (R) => {
      if (p.value = R, Lt.value = !0, Ze(), R === Ye.HOUR) {
        const te = M();
        Gt = !0, c.value = {
          ...c.value,
          startDate: te.startDate,
          endDate: te.endDate
        }, Gt = !1;
      } else if (R === Ye.DAY) {
        const te = k();
        Gt = !0, c.value = {
          ...c.value,
          startDate: te.startDate,
          endDate: te.endDate
        }, Gt = !1;
      }
      if (R === Ye.WEEK) {
        const te = O();
        Gt = !0, c.value = {
          ...c.value,
          startDate: te.startDate,
          endDate: te.endDate
        }, Gt = !1;
      }
      if (R === Ye.MONTH) {
        const te = S();
        Gt = !0, c.value = {
          ...c.value,
          startDate: te.startDate,
          endDate: te.endDate
        }, Gt = !1;
      }
      if (R === Ye.QUARTER) {
        const te = U();
        Gt = !0, c.value = {
          ...c.value,
          startDate: te.startDate,
          endDate: te.endDate
        }, Gt = !1;
      }
      if (R === Ye.YEAR) {
        const te = U();
        Gt = !0, c.value = {
          ...c.value,
          startDate: te.startDate,
          endDate: te.endDate
        }, Gt = !1;
      }
      tA.value = ke(), rr(() => {
        n("timeline-scale-changed", R), window.dispatchEvent(new CustomEvent("timeline-scale-updated")), setTimeout(() => {
          window.dispatchEvent(new CustomEvent("timeline-force-recalculate")), setTimeout(() => {
            FA();
          }, 100);
        }, 50);
      });
    }, Xt = (R) => {
      const te = /* @__PURE__ */ new Date();
      return R.getDate() === te.getDate() && R.getMonth() === te.getMonth() && R.getFullYear() === te.getFullYear();
    }, tA = iu(ke());
    let Gt = !1;
    EA(
      () => [c.value.startDate, c.value.endDate],
      () => {
        Gt || (Ze(), tA.value = ke());
      }
    );
    let UA = !1;
    EA(
      () => [tA.value, c.value.startDate, c.value.endDate],
      () => {
        UA || rr(() => {
          FA(), UA = !0;
        });
      }
      // 优化:移除 deep: true,因为监听的是基础类型(startDate/endDate)和 shallowRef(timelineData)
      // 不需要深度监听,可减少 90% 的监听开销
    );
    const FA = (R = 0) => {
      xt.value = !0, Ht.value = !0;
      const te = /* @__PURE__ */ new Date(), K = c.value.startDate, he = new Date(te.getFullYear(), te.getMonth(), te.getDate());
      let ye;
      if (p.value === Ye.YEAR || p.value === Ye.QUARTER) {
        const pt = U();
        ye = new Date(
          pt.startDate.getFullYear(),
          pt.startDate.getMonth(),
          pt.startDate.getDate()
        );
      } else if (p.value === Ye.MONTH) {
        const pt = S();
        ye = new Date(
          pt.startDate.getFullYear(),
          pt.startDate.getMonth(),
          pt.startDate.getDate()
        );
      } else
        ye = new Date(
          K.getFullYear(),
          K.getMonth(),
          K.getDate()
        );
      const Le = he.getTime() - ye.getTime(), Xe = Math.floor(Le / (1e3 * 60 * 60 * 24));
      let ze;
      if (p.value === Ye.HOUR) {
        const pt = te.getHours(), jt = te.getMinutes(), KA = Xe * C.value, VA = pt * 40, ln = jt / 60 * 40;
        ze = KA + VA + ln;
      } else if (p.value === Ye.QUARTER) {
        const pt = he.getFullYear(), jt = ye.getFullYear(), KA = 240, VA = 60;
        ze = (pt - jt) * KA;
        const yr = he.getMonth() + 1;
        let Ur = 1;
        yr >= 1 && yr <= 3 || (yr >= 4 && yr <= 6 ? Ur = 2 : yr >= 7 && yr <= 9 ? Ur = 3 : Ur = 4), ze += (Ur - 1) * VA;
        let _r, er;
        Ur === 1 ? (_r = new Date(pt, 0, 1), er = new Date(pt, 2, 31)) : Ur === 2 ? (_r = new Date(pt, 3, 1), er = new Date(pt, 5, 30)) : Ur === 3 ? (_r = new Date(pt, 6, 1), er = new Date(pt, 8, 30)) : (_r = new Date(pt, 9, 1), er = new Date(pt, 11, 31));
        const Kn = Math.floor(
          (he.getTime() - _r.getTime()) / (1e3 * 60 * 60 * 24)
        ), fr = Math.floor((er.getTime() - _r.getTime()) / (1e3 * 60 * 60 * 24)) + 1, ca = Kn / fr * VA;
        ze += ca;
      } else if (p.value === Ye.MONTH) {
        const pt = he.getFullYear(), jt = he.getMonth() + 1, KA = ye.getFullYear(), VA = ye.getMonth() + 1, ln = (pt - KA) * 12 + (jt - VA), yr = 60;
        ze = ln * yr;
        const Ur = he.getDate(), _r = new Date(pt, jt, 0).getDate(), er = Ur / _r * yr;
        ze += er;
      } else if (p.value === Ye.YEAR) {
        const pt = tA.value;
        let jt = 0;
        const KA = 180;
        let VA = !1;
        for (const ln of pt) {
          const yr = ln.halfYears || [];
          for (const Ur of yr) {
            const _r = new Date(Ur.startDate), er = new Date(Ur.endDate);
            if (_r.setHours(0, 0, 0, 0), er.setHours(0, 0, 0, 0), he < _r) {
              VA = !0;
              break;
            }
            if (he >= _r && he <= er) {
              const Kn = er.getTime() - _r.getTime(), ca = (he.getTime() - _r.getTime()) / Kn;
              jt += ca * KA, VA = !0;
              break;
            }
            jt += KA;
          }
          if (VA) break;
        }
        ze = jt;
      } else
        ze = Xe * C.value;
      const mt = w.value;
      if (!mt) {
        R < 10 && setTimeout(() => FA(R + 1), 60);
        return;
      }
      const It = mt.clientWidth;
      if (It === 0 && R < 10) {
        setTimeout(() => FA(R + 1), 60);
        return;
      }
      const Qt = ze - It / 2 + 15;
      typeof mt.scrollTo == "function" ? mt.scrollTo({ left: Math.max(0, Qt), behavior: "smooth" }) : mt.scrollLeft = Math.max(0, Qt), setTimeout(() => {
        Ht.value = !1, p.value === Ye.HOUR && (Lt.value = !1), setTimeout(() => {
          xt.value = !1;
        }, 300);
      }, 1500);
    }, IA = lt(() => {
      if (p.value !== Ye.YEAR)
        return -1;
      const R = /* @__PURE__ */ new Date();
      R.setHours(0, 0, 0, 0);
      const te = tA.value;
      if (!te || te.length === 0)
        return -1;
      let K = 0;
      const he = 180;
      for (const ye of te) {
        const Le = ye.halfYears || [];
        for (const Xe of Le) {
          const ze = new Date(Xe.startDate), mt = new Date(Xe.endDate);
          if (ze.setHours(0, 0, 0, 0), mt.setHours(0, 0, 0, 0), R < ze)
            return K;
          if (R >= ze && R <= mt) {
            const It = mt.getTime() - ze.getTime(), pt = (R.getTime() - ze.getTime()) / It;
            return K + pt * he;
          }
          K += he;
        }
      }
      return K;
    }), aA = lt(() => {
      if (p.value !== Ye.YEAR)
        return !1;
      const R = /* @__PURE__ */ new Date(), te = new Date(R.getFullYear(), R.getMonth(), R.getDate()), K = U(), he = K.startDate, ye = K.endDate;
      return te >= he && te <= ye;
    }), An = () => {
      if (y.value.length === 0) {
        Tn();
        return;
      }
      const R = [];
      for (const Qt of y.value)
        Qt.startDate && R.push(new Date(Qt.startDate));
      if (R.length === 0) {
        Tn();
        return;
      }
      let te = 1 / 0;
      for (const Qt of R) {
        const pt = Qt.getTime();
        pt < te && (te = pt);
      }
      const K = new Date(te), he = K.getFullYear(), ye = K.getMonth(), Le = K.getDate();
      let Xe = 0;
      for (let Qt = 0; Qt < ye; Qt++)
        Xe += new Date(he, Qt + 1, 0).getDate();
      Xe += Le;
      const ze = E.value, mt = ze == null ? void 0 : ze.clientWidth, It = (Xe - 1) * 30 - (mt ? mt / 2 : 200);
      w.value && (w.value.scrollLeft = Math.max(0, It));
    }, Tn = () => {
      const R = /* @__PURE__ */ new Date(), te = c.value.startDate, K = new Date(R.getFullYear(), R.getMonth(), R.getDate()), he = new Date(
        te.getFullYear(),
        te.getMonth(),
        te.getDate()
      ), ye = K.getTime() - he.getTime(), Le = Math.floor(ye / (1e3 * 60 * 60 * 24));
      if (Le < 0 || K > c.value.endDate)
        return;
      const Xe = Le * 30, ze = w.value;
      if (!ze) return;
      const mt = ze.clientWidth, It = Xe - mt / 2 + 15;
      ze.scrollTo({
        left: Math.max(0, It),
        behavior: "smooth"
      }), setTimeout(() => {
        const Qt = document.querySelectorAll(".day-column.today");
        for (const pt of Qt)
          pt.classList.add("today-highlight"), setTimeout(() => {
            pt.classList.remove("today-highlight");
          }, 2e3);
      }, 500);
    }, ea = (R) => {
      window.dispatchEvent(
        new CustomEvent("task-updated", {
          detail: R
        })
      );
    }, Pn = (R) => {
      ue.value || n("edit-task", R);
    }, WA = (R, te) => {
      ue.value || n("click-task", R, te);
    }, bA = iu({}), nr = Te(0), GA = Te(null), cr = Te(null), pn = Te(0), ba = Te(0), la = Te(0), Qn = Te(0), Ca = Te(0), Kr = Te(0);
    function Dn() {
      if (GA.value) {
        const R = GA.value.offsetWidth, te = ge.value, K = Re.value, he = SA.value;
        la.value = su;
        const ye = su / 3;
        let Le = Math.max(0, K - ye);
        if (R <= su)
          Le = 0;
        else {
          const It = R - su;
          Le = Math.min(Le, It);
        }
        Ca.value = Le;
        const Xe = Math.min(te, Ox);
        Qn.value = Xe, pn.value = la.value, ba.value = Xe;
        const ze = Xe / 3;
        let mt = Math.max(0, he - ze);
        if (te <= Xe)
          mt = 0;
        else {
          const It = te - Xe;
          mt = Math.min(mt, It);
        }
        Kr.value = mt;
      }
    }
    function Ir(R) {
      if (!GA.value) return;
      const te = GA.value.getBoundingClientRect();
      bA.value = {
        ...bA.value,
        [R.id]: {
          left: R.left - te.left,
          top: R.top - te.top,
          width: R.width,
          height: R.height
        }
      }, setTimeout(() => {
        Dn();
      }, 200);
    }
    const kn = (R) => {
      window.dispatchEvent(new CustomEvent("taskbar-drag-end", { detail: R }));
    }, zs = (R) => {
      window.dispatchEvent(new CustomEvent("taskbar-resize-end", { detail: R }));
    }, lA = (R) => {
      window.dispatchEvent(
        new CustomEvent("context-menu", {
          detail: R
        })
      );
    }, Mo = (R) => {
      if (wA.value) {
        xt.value = !0;
        const te = wA.value.scrollWidth - wA.value.clientWidth, K = Math.max(0, Math.min(R, te));
        wA.value.scrollTo({
          left: K,
          behavior: "smooth"
        }), setTimeout(() => {
          xt.value = !1;
        }, 1e3);
      }
    }, Xs = (R) => {
      window.dispatchEvent(new CustomEvent("milestone-drag-end", { detail: R }));
    };
    En(() => {
      rr(() => {
        setTimeout(() => {
          FA();
        }, 60);
      }), window.addEventListener("task-row-double-click", it), window.addEventListener("task-list-hover", We), window.addEventListener(
        "task-list-vertical-scroll",
        Js
      ), window.addEventListener("locale-changed", V), window.addEventListener("splitter-drag-start", Un), window.addEventListener("splitter-drag-end", Dt), window.addEventListener(
        "timeline-container-resized",
        be
      ), window.addEventListener("milestone-click-locate", ct), window.addEventListener("drag-boundary-check", qi), window.addEventListener("taskbar-highlighted", ys), rr(() => {
        const R = document.querySelector(".timeline-body"), te = document.querySelector(".timeline"), K = document.querySelector(".gantt-panel-right");
        if (ta.value = R, w.value = te, E.value = K, R && (LA.value = R.clientHeight, pr = new ResizeObserver((he) => {
          for (const ye of he)
            LA.value = ye.contentRect.height;
        }), pr.observe(R)), te) {
          Re.value = te.scrollLeft, $e.value = te.clientWidth;
          const he = new ResizeObserver((ye) => {
            for (const Le of ye) {
              const Xe = Le.contentRect.width;
              Math.abs(Xe - $e.value) > 1 && ($e.value = Xe, xt.value = !0, Mt && clearTimeout(Mt), Mt = setTimeout(() => {
                xt.value = !1, Mt = null;
              }, 300));
            }
          });
          he.observe(te), pr || (pr = he);
        }
      }), setTimeout(() => {
        FA(), Dn();
      }, 200), window.addEventListener("resize", Dn);
    });
    const Js = (R) => {
      const { scrollTop: te } = R.detail;
      SA.value = te, MA(), ta.value && Math.abs(ta.value.scrollTop - te) > 1 && (ta.value.scrollTop = te);
    }, Ra = (R) => {
      const te = R.target;
      if (!te) return;
      const K = te.scrollTop;
      SA.value = K, xe = !0, MA(), !vn.value && K >= 0 && window.dispatchEvent(
        new CustomEvent("timeline-vertical-scroll", {
          detail: { scrollTop: K }
        })
      );
    };
    EA(
      () => y.value.length,
      () => {
        rr(() => {
          Dn();
        });
      },
      { immediate: !0 }
    ), EA(
      y,
      (R) => {
        pe.clear();
        const te = (K) => {
          pe.set(K.id, K), K.children && K.children.length > 0 && K.children.forEach(te);
        };
        R.forEach(te);
      },
      { immediate: !0 }
    );
    const vn = Te(!1), Bs = Te(0), Zs = Te(0), ni = Te(0), Hi = Te(0), wA = Te(null), ta = Te(null);
    let mn = null;
    const Pi = Te(!1);
    let ai = null;
    const ys = () => {
      const R = (te) => {
        var K;
        te.buttons === 1 && (vn.value = !0, Bs.value = te.pageX, ni.value = ((K = wA.value) == null ? void 0 : K.scrollLeft) || 0, wA.value && (wA.value.style.cursor = "grabbing", wA.value.style.userSelect = "none"), document.addEventListener("mousemove", Aa), document.addEventListener("mouseup", ii)), document.removeEventListener("mousemove", R);
      };
      document.addEventListener("mousemove", R), setTimeout(() => {
        document.removeEventListener("mousemove", R);
      }, 5e3);
    }, eo = (R) => {
      var ye, Le;
      const te = R.target, K = te.closest(".timeline-header"), he = te.closest(".timeline-body");
      if (!(!K && !he)) {
        if (he) {
          const Xe = te.closest(".task-bar");
          if (Xe) {
            const ze = Xe.classList.contains("highlighted"), mt = Xe.classList.contains("primary-highlight");
            if (!ze && !mt)
              return;
          } else if ([
            ".milestone",
            "button",
            "input",
            "select",
            "textarea",
            ".custom-task-content",
            ".progress-bar",
            ".task-name",
            ".task-controls"
          ].some((It) => te.closest(It)))
            return;
        }
        vn.value = !0, Bs.value = R.pageX, Zs.value = R.pageY, ni.value = ((ye = wA.value) == null ? void 0 : ye.scrollLeft) || 0, !ta.value && wA.value && (ta.value = wA.value.querySelector(".timeline-body")), Hi.value = ((Le = ta.value) == null ? void 0 : Le.scrollTop) || 0, wA.value && (wA.value.style.cursor = "grabbing", wA.value.style.userSelect = "none"), R.preventDefault(), document.addEventListener("mousemove", Aa), document.addEventListener("mouseup", ii);
      }
    }, Aa = (R) => {
      !vn.value || !wA.value || (R.preventDefault(), mn !== null && cancelAnimationFrame(mn), mn = requestAnimationFrame(() => {
        if (!wA.value) return;
        const te = R.pageX, K = R.pageY, he = (te - Bs.value) * 1.5, ye = (K - Zs.value) * 1.5;
        if (wA.value.scrollLeft = ni.value - he, ta.value) {
          const Le = Hi.value - ye;
          ta.value.scrollTop = Le;
          const Xe = document.querySelector(".task-list-body");
          Xe && (Xe.scrollTop = Le);
        }
        mn = null;
      }));
    }, ii = () => {
      vn.value = !1, mn !== null && (cancelAnimationFrame(mn), mn = null), wA.value && (wA.value.style.cursor = "grab", wA.value.style.userSelect = "auto"), W.value = null, document.removeEventListener("mousemove", Aa), document.removeEventListener("mouseup", ii);
    }, Ki = (R) => {
      var Xe;
      const te = R.target;
      if (!te) return;
      const K = te.scrollLeft;
      if (Re.value = K, xe = !0, $e.value === 0 && ($e.value = te.clientWidth), Lt.value && K > 0 && (Lt.value = !1), MA(), p.value === Ye.HOUR) {
        Ce.value = !0, Ve && clearTimeout(Ve), Ve = setTimeout(() => {
          Ce.value = !1;
        }, 200);
        return;
      }
      const he = te.scrollWidth, ye = te.clientWidth, Le = he - ye;
      Nt.value = Le > 0 ? K / Le : 0, kt.value = K > 20, hA.value = K < Le - 20, Ce.value = !0, (Xe = te.classList) == null || Xe.add("scrolling"), CA(), Ve && clearTimeout(Ve), Ve = setTimeout(() => {
        var ze;
        Ce.value = !1, (ze = te.classList) == null || ze.remove("scrolling");
      }, 500);
    }, Vi = (R) => {
      if (Pi.value || !wA.value) return;
      Pi.value = !0;
      const te = () => {
        if (!wA.value || !Pi.value) return;
        const K = wA.value.scrollLeft, he = wA.value.scrollWidth - wA.value.clientWidth;
        let ye;
        if (R === "left" ? ye = Math.max(0, K - k0) : ye = Math.min(he, K + k0), ye === K) {
          Ea();
          return;
        }
        wA.value.scrollLeft = ye, window.dispatchEvent(
          new CustomEvent("timeline-auto-scroll", {
            detail: { scrollDelta: ye - K }
          })
        ), ai = window.setTimeout(te, 16);
      };
      te();
    }, Ea = () => {
      Pi.value = !1, ai && (clearTimeout(ai), ai = null);
    }, qi = (R) => {
      const { mouseX: te, isDragging: K } = R.detail;
      if (!K || !wA.value) {
        Ea();
        return;
      }
      const he = wA.value.getBoundingClientRect(), ye = te - he.left;
      ye <= D0 && wA.value.scrollLeft > 0 ? Vi("left") : ye >= he.width - D0 && wA.value.scrollLeft < wA.value.scrollWidth - wA.value.clientWidth ? Vi("right") : Ea();
    };
    tn(() => {
      Ea(), qt(), window.removeEventListener("task-row-double-click", it), window.removeEventListener("task-list-hover", We), window.removeEventListener(
        "task-list-vertical-scroll",
        Js
      ), window.removeEventListener("locale-changed", V), window.removeEventListener("splitter-drag-start", Un), window.removeEventListener("splitter-drag-end", Dt), window.removeEventListener(
        "timeline-container-resized",
        be
      ), window.removeEventListener("milestone-click-locate", ct), window.removeEventListener("drag-boundary-check", qi), pr && (pr.disconnect(), pr = null), window.removeEventListener("resize", Dn), document.removeEventListener("mousemove", Aa), document.removeEventListener("mouseup", ii);
    });
    const to = (R, te) => {
      n("delete", R, te);
    }, Ao = (R) => {
      const te = y.value.find((Le) => Le.id === R.targetTaskId);
      if (!te || !te.predecessor) return;
      const he = Da(te.predecessor).filter((Le) => Le !== R.sourceTaskId), ye = {
        ...te,
        predecessor: he.length > 0 ? he : void 0
      };
      n("link-deleted", {
        sourceTaskId: R.sourceTaskId,
        targetTaskId: R.targetTaskId,
        updatedTask: ye
      }), ea(ye), Ze();
    }, Ha = lt(() => {
      if (p.value !== Ye.MONTH)
        return {};
      const R = {}, te = tA.value;
      for (const K of te) {
        const ye = K.year;
        R[ye] || (R[ye] = []), R[ye].push(K);
      }
      return R;
    }), Pa = lt(() => {
      if (p.value !== Ye.WEEK)
        return [];
      const R = [], te = tA.value;
      for (let K = 0; K < te.length; K++) {
        const he = te[K];
        if (!(!he.isWeekView || !he.weeks))
          for (let ye = 0; ye < he.weeks.length; ye++) {
            const Xe = he.weeks[ye].subDays || [];
            for (let ze = 0; ze < Xe.length; ze++) {
              const mt = Xe[ze];
              mt.date && mt.date.getDate() === 1 && R.push({
                left: fA(K, ye) + ze * (60 / 7),
                date: mt.date.getDate()
              });
            }
          }
      }
      return R;
    }), ro = lt(() => {
      if (p.value !== Ye.WEEK)
        return [];
      const R = [], te = tA.value;
      for (let K = 0; K < te.length; K++) {
        const he = te[K];
        if (!(!he.isWeekView || !he.weeks))
          for (let ye = 0; ye < he.weeks.length; ye++) {
            const Xe = he.weeks[ye].subDays || [];
            for (let ze = 0; ze < Xe.length; ze++) {
              const mt = Xe[ze];
              mt.date && mt.date.getDate() === 1 && R.push({
                left: fA(K, ye) + ze * (60 / 7)
              });
            }
          }
      }
      return R;
    }), ua = lt(() => {
      if (p.value !== Ye.YEAR)
        return [];
      try {
        const R = dA();
        return Array.isArray(R) ? R : [];
      } catch {
        return [];
      }
    });
    t({
      // 基础滚动功能
      scrollToTasks: An,
      scrollToToday: Tn,
      scrollToTodayCenter: FA,
      // 时间线配置
      timelineConfig: c,
      // 时间刻度更新
      updateTimeScale: gA,
      // 高亮相关
      highlightedTaskId: I,
      clearHighlight: Z
    });
    const no = (R) => {
      n("start-timer", R);
    }, v = (R) => {
      n("stop-timer", R);
    }, T = (R) => {
      const te = R.startDate || R.endDate || "";
      return {
        ...R,
        type: "milestone",
        startDate: te,
        endDate: R.startDate || R.endDate
      };
    };
    EA(
      () => y.value.length,
      () => {
        H(), ZA();
      },
      { immediate: !0 }
    );
    let ne = null;
    const we = (R = 50) => {
      ne && clearTimeout(ne), ne = setTimeout(() => {
        De(), ne = null;
      }, R);
    }, De = () => {
      let R = null;
      p.value === Ye.HOUR ? R = M() : p.value === Ye.DAY ? R = k() : p.value === Ye.WEEK ? R = O() : p.value === Ye.MONTH ? R = S() : (p.value === Ye.QUARTER || p.value === Ye.YEAR) && (R = U()), R && (Ze(), Gt = !0, c.value.startDate = R.startDate, c.value.endDate = R.endDate, Gt = !1, tA.value = ke());
    };
    EA(
      () => {
        var R;
        return (R = y.value) == null ? void 0 : R.length;
      },
      (R, te) => {
        R !== te && H(), te === 0 && R > 0 && we(50);
      }
    ), EA(
      $e,
      (R, te) => {
        sA.value || (!te || te === 0 || Math.abs(R - te) > 50) && R > 0 && we(100);
      },
      { immediate: !0 }
    );
    let nt = null;
    EA([tA, $e], () => {
      sA.value || (nt && clearTimeout(nt), nt = setTimeout(() => {
        bA.value = {}, nr.value++, rr(() => {
          setTimeout(() => {
            Dn();
          }, 200);
        }), nt = null;
      }, 100));
    }), EA(
      () => y.value,
      (R) => {
        H();
        const te = /* @__PURE__ */ new Set();
        for (const he of R)
          te.add(he.id);
        const K = {};
        for (const he in bA.value) {
          const ye = parseInt(he);
          te.has(ye) && (K[ye] = bA.value[ye]);
        }
        bA.value = K;
      },
      { deep: !0 }
    );
    const ct = (R) => {
      const { scrollLeft: te, smooth: K } = R.detail, he = document.querySelector(".timeline"), ye = document.querySelector(".timeline-body");
      let Le = null;
      if (he && he.scrollWidth > he.clientWidth ? Le = he : ye && ye.scrollWidth > ye.clientWidth && (Le = ye), Le) {
        const Xe = Le.scrollWidth - Le.clientWidth, ze = Math.min(Math.max(0, te), Xe);
        K ? Le.scrollTo({
          left: ze,
          behavior: "smooth"
        }) : Le.scrollLeft = ze;
      }
    }, Kt = () => {
      let R, te;
      if (p.value === Ye.MONTH) {
        const Xe = S();
        R = Xe.startDate, te = Xe.endDate;
      } else
        R = new Date(c.value.startDate), te = new Date(c.value.endDate);
      const K = {}, he = new Date(R);
      for (he.setDate(1); he <= te; ) {
        const Xe = he.getFullYear(), ze = he.getMonth() + 1, It = new Date(Xe, ze, 0).getDate(), Qt = /* @__PURE__ */ new Date(), pt = Xe === Qt.getFullYear() && ze === Qt.getMonth() + 1;
        K[Xe] || (K[Xe] = {
          year: Xe,
          yearLabel: `${Xe}年`,
          months: []
        }), K[Xe].months.push({
          year: Xe,
          month: ze,
          monthLabel: s(ze),
          startDate: new Date(Xe, ze - 1, 1),
          endDate: new Date(Xe, ze, 0),
          isToday: pt,
          dayCount: It
        }), he.setMonth(he.getMonth() + 1);
      }
      const ye = [];
      let Le = 0;
      for (const Xe of Object.values(K))
        for (const ze of Xe.months) {
          const mt = [];
          for (let jt = 1; jt <= ze.dayCount; jt++) {
            const KA = new Date(ze.year, ze.month - 1, jt);
            mt.push({
              day: jt,
              date: new Date(KA),
              dayOfWeek: KA.getDay(),
              isToday: Xt(KA),
              isWeekend: KA.getDay() === 0 || KA.getDay() === 6
            });
          }
          const It = 60, Qt = Le, pt = Le + It;
          ye.push({
            year: ze.year,
            month: ze.month,
            yearMonthLabel: a(ze.year, ze.month),
            startDate: ze.startDate,
            endDate: ze.endDate,
            isMonthView: !0,
            monthData: {
              monthLabel: ze.monthLabel,
              isToday: ze.isToday,
              dayCount: ze.dayCount
            },
            // 添加每一天的子列数据
            subDays: mt,
            // 为了兼容性,保留days数组,映射subDays的数据
            days: mt.map((jt) => ({
              day: jt.day,
              date: jt.date,
              label: String(jt.day).padStart(2, "0"),
              isToday: jt.isToday,
              isWeekend: jt.isWeekend
            })),
            // 添加位置调试信息
            _debugInfo: {
              monthStartPosition: Qt,
              monthEndPosition: pt,
              monthWidth: It
            }
          }), Le += It;
        }
      return ye;
    }, Yt = () => {
      const R = c.value.startDate, te = c.value.endDate, K = [], he = R.getFullYear(), ye = te.getFullYear();
      for (let Le = he; Le <= ye; Le++) {
        const Xe = [];
        for (let ze = 1; ze <= 4; ze++) {
          const mt = (ze - 1) * 3, It = new Date(Le, mt, 1), Qt = mt + 2, pt = new Date(Le, Qt + 1, 0);
          Xe.push({
            quarter: ze,
            label: `Q${ze}`,
            fullLabel: `${Le}年第${ze}季度`,
            startDate: It,
            endDate: pt,
            isToday: oA(It, pt),
            year: Le
          });
        }
        K.push({
          year: Le,
          yearLabel: String(Le),
          startDate: new Date(Le, 0, 1),
          endDate: new Date(Le, 11, 31),
          quarters: Xe
        });
      }
      return K;
    }, oA = (R, te) => {
      const K = /* @__PURE__ */ new Date();
      return K.setHours(0, 0, 0, 0), K >= R && K <= te;
    }, dA = () => {
      const R = c.value.startDate, te = c.value.endDate, K = [], he = R.getFullYear(), ye = te.getFullYear();
      for (let Le = he; Le <= ye; Le++) {
        const Xe = [
          {
            label: o("halfYearFirst"),
            startDate: new Date(Le, 0, 1),
            endDate: new Date(Le, 6, 0),
            // 6月的最后一天
            width: 180
          },
          {
            label: o("halfYearSecond"),
            startDate: new Date(Le, 6, 1),
            endDate: new Date(Le, 11, 31),
            width: 180
          }
        ];
        K.push({
          year: Le,
          startDate: new Date(Le, 0, 1),
          endDate: new Date(Le, 11, 31),
          halfYears: Xe,
          width: 360
        });
      }
      return K;
    }, QA = (R) => {
      n("add-predecessor", R);
    }, vr = (R) => {
      n("add-successor", R);
    };
    return (R, te) => (ae(), fe("div", {
      ref_key: "timelineContainer",
      ref: wA,
      class: "timeline",
      onMousedown: eo,
      onScroll: Ki
    }, [
      Y("div", cx, [
        p.value === vt(Ye).YEAR && ua.value && ua.value.length > 0 ? (ae(), fe(Ut, { key: 0 }, [
          Y("div", fx, [
            (ae(!0), fe(Ut, null, uA(ua.value, (K) => (ae(), fe("div", {
              key: `year-${K.year}`,
              class: "timeline-year",
              style: { width: "360px" }
            }, [
              Y("div", hx, Ge(K.year), 1)
            ]))), 128))
          ]),
          Y("div", dx, [
            (ae(!0), fe(Ut, null, uA(ua.value, (K) => (ae(), fe(Ut, {
              key: `halfyear-${K.year}`
            }, [
              (ae(!0), fe(Ut, null, uA(K.halfYears || [], (he) => (ae(), fe("div", {
                key: `halfyear-${K.year}-${he.label}`,
                class: "timeline-half-year-item",
                style: { width: "180px" }
              }, [
                Y("div", gx, Ge(he.label), 1)
              ]))), 128))
            ], 64))), 128))
          ])
        ], 64)) : p.value === vt(Ye).MONTH ? (ae(), fe(Ut, { key: 1 }, [
          Y("div", px, [
            (ae(!0), fe(Ut, null, uA(Ha.value, (K, he) => (ae(), fe("div", {
              key: `year-${he}`,
              class: "timeline-year",
              style: { width: "720px" }
            }, [
              Y("div", vx, Ge(he), 1)
            ]))), 128))
          ]),
          Y("div", mx, [
            (ae(!0), fe(Ut, null, uA(tA.value, (K) => {
              var he, ye;
              return ae(), fe("div", {
                key: `month-${K.year}-${K.month}`,
                class: iA(["timeline-month-item", { today: (he = K.monthData) == null ? void 0 : he.isToday }]),
                style: { width: "59px" }
              }, [
                Y("div", wx, Ge((ye = K.monthData) == null ? void 0 : ye.monthLabel), 1)
              ], 2);
            }), 128))
          ])
        ], 64)) : p.value === vt(Ye).QUARTER ? (ae(), fe(Ut, { key: 2 }, [
          Y("div", Bx, [
            (ae(!0), fe(Ut, null, uA(tA.value, (K) => (ae(), fe("div", {
              key: `year-${K.year}`,
              class: "timeline-year",
              style: { width: "240px" }
            }, [
              Y("div", yx, Ge(K.yearLabel), 1)
            ]))), 128))
          ]),
          Y("div", bx, [
            (ae(!0), fe(Ut, null, uA(tA.value, (K) => (ae(), fe(Ut, {
              key: `quarters-${K.year}`
            }, [
              (ae(!0), fe(Ut, null, uA(K.quarters, (he) => (ae(), fe("div", {
                key: `quarter-${K.year}-${he.quarter}`,
                class: iA(["timeline-quarter-item", { today: he.isToday }]),
                style: { width: "60px" }
              }, [
                Y("div", Cx, Ge(he.label), 1)
              ], 2))), 128))
            ], 64))), 128))
          ])
        ], 64)) : p.value === vt(Ye).HOUR ? (ae(), fe("div", {
          key: 3,
          class: "hour-header-container",
          style: rA({ width: `${Sr.value}px` })
        }, [
          Y("div", Ex, [
            (ae(!0), fe(Ut, null, uA(Dr.value, (K) => (ae(), fe("div", {
              key: `date-${K.year}-${K.month}-${K.day}`,
              class: "timeline-day-item",
              style: rA({
                position: "absolute",
                width: `${K.hours.length * 40}px`,
                left: `${(K.hourOffset || 0) * 40}px`
              })
            }, [
              Y("div", Fx, Ge(K.dateLabel), 1)
            ], 4))), 128))
          ]),
          Y("div", xx, [
            (ae(!0), fe(Ut, null, uA(Dr.value, (K) => (ae(), fe(Ut, {
              key: `hours-${K.year}-${K.month}-${K.day}`
            }, [
              (ae(!0), fe(Ut, null, uA(K.hours, (he, ye) => (ae(), fe("div", {
                key: `hour-${K.year}-${K.month}-${K.day}-${he.hour}`,
                class: iA(["timeline-hour-item", {
                  today: he.isToday,
                  "non-working-hour": !he.isWorkingHour
                }]),
                style: rA({
                  position: "absolute",
                  width: "40px",
                  left: `${(K.hourOffset + ye) * 40}px`
                })
              }, [
                Y("div", Sx, Ge(he.shortLabel), 1)
              ], 6))), 128))
            ], 64))), 128))
          ])
        ], 4)) : (ae(), fe(Ut, { key: 4 }, [
          Y("div", Ux, [
            (ae(!0), fe(Ut, null, uA(tA.value, (K) => (ae(), fe("div", {
              key: `year-month-${K.year}-${K.month}`,
              class: "timeline-month",
              style: rA({
                width: K.isWeekView ? `${(K.weeks || []).length * 60}px` : `${(K.days || []).length * 30}px`
              })
            }, [
              Y("div", Tx, Ge(K.yearMonthLabel), 1)
            ], 4))), 128)),
            (ae(!0), fe(Ut, null, uA(Pa.value, (K, he) => (ae(), fe("div", {
              key: `flag-${he}`,
              class: "month-first-flag",
              style: rA({
                left: `${K.left}px`,
                transform: "translateX(-50%)"
              })
            }, [
              te[1] || (te[1] = Y("div", { class: "flag-pole" }, null, -1)),
              Y("div", Qx, Ge(K.date), 1)
            ], 4))), 128))
          ]),
          Y("div", Dx, [
            (ae(!0), fe(Ut, null, uA(tA.value, (K) => (ae(), fe(Ut, {
              key: `timeline-${K.year}-${K.month}`
            }, [
              K.isWeekView && K.weeks ? (ae(), fe("div", {
                key: 0,
                class: "timeline-month-weeks",
                style: rA({ width: `${(K.weeks || []).length * 60}px` })
              }, [
                (ae(!0), fe(Ut, null, uA(K.weeks || [], (he) => (ae(), fe("div", {
                  key: `week-${K.year}-${K.month}-${he.label}`,
                  class: iA(["timeline-week", {
                    today: he.isToday
                  }])
                }, [
                  Y("div", kx, Ge(he.label), 1),
                  te[2] || (te[2] = Y("div", { class: "week-sub-days" }, null, -1))
                ], 2))), 128))
              ], 4)) : (ae(), fe("div", {
                key: 1,
                class: "timeline-month-days",
                style: rA({ width: `${K.days.length * 30}px` })
              }, [
                (ae(!0), fe(Ut, null, uA(K.days, (he) => (ae(), fe("div", {
                  key: `day-${K.year}-${K.month}-${he.day}`,
                  class: iA(["timeline-day", {
                    today: he.isToday,
                    weekend: he.isWeekend && !he.isToday
                  }])
                }, [
                  Y("div", Lx, Ge(he.label), 1)
                ], 2))), 128))
              ], 4))
            ], 64))), 128))
          ])
        ], 64))
      ]),
      Y("div", {
        class: "timeline-body",
        onScroll: Ra
      }, [
        Y("div", {
          ref_key: "bodyContentRef",
          ref: GA,
          class: "timeline-body-content"
        }, [
          $n(ox, {
            tasks: y.value,
            "task-bar-positions": bA.value,
            width: la.value,
            height: Qn.value,
            "offset-left": Ca.value,
            "offset-top": Kr.value,
            "highlighted-task-id": I.value,
            "highlighted-task-ids": le.value,
            "hovered-task-id": W.value,
            "vertical-lines": ro.value,
            "show-vertical-lines": p.value === vt(Ye).WEEK
          }, null, 8, ["tasks", "task-bar-positions", "width", "height", "offset-left", "offset-top", "highlighted-task-id", "highlighted-task-ids", "hovered-task-id", "vertical-lines", "show-vertical-lines"]),
          $n(ux, {
            ref_key: "linkDragGuideRef",
            ref: cr,
            active: !!X.value && !!Ae.value,
            width: la.value,
            height: Qn.value,
            "offset-left": Ca.value,
            "offset-top": Kr.value
          }, null, 8, ["active", "width", "height", "offset-left", "offset-top"]),
          aA.value && IA.value >= 0 ? (ae(), fe("div", {
            key: 0,
            class: "today-line-year-view",
            style: rA({
              left: `${IA.value}px`,
              height: `${ge.value}px`
            })
          }, null, 4)) : Ct("", !0),
          Y("div", {
            class: "day-columns",
            style: rA({ height: `${ge.value}px` })
          }, [
            p.value === vt(Ye).HOUR ? (ae(), fe("div", {
              key: 0,
              class: "hour-columns-container",
              style: rA({
                width: `${Sr.value}px`,
                height: `${ge.value}px`,
                position: "relative"
              })
            }, [
              (ae(!0), fe(Ut, null, uA(Dr.value, (K) => (ae(), fe(Ut, {
                key: `day-col-${K.year}-${K.month}-${K.day}`
              }, [
                (ae(!0), fe(Ut, null, uA(K.hours, (he, ye) => (ae(), fe("div", {
                  key: `hour-col-${K.year}-${K.month}-${K.day}-${he.hour}`,
                  class: iA(["hour-column", {
                    today: he.isToday,
                    weekend: he.isWeekend,
                    "working-hour": he.isWorkingHour,
                    "rest-hour": !he.isWorkingHour && !he.isWeekend
                  }]),
                  style: rA({
                    position: "absolute",
                    width: "40px",
                    height: `${ge.value}px`,
                    left: `${(K.hourOffset + ye) * 40}px`
                  })
                }, te[3] || (te[3] = [
                  Y("div", { class: "quarter-hour-lines" }, [
                    Y("div", {
                      class: "quarter-line",
                      style: { left: "10px" }
                    }),
                    Y("div", {
                      class: "quarter-line",
                      style: { left: "20px" }
                    }),
                    Y("div", {
                      class: "quarter-line",
                      style: { left: "30px" }
                    })
                  ], -1)
                ]), 6))), 128))
              ], 64))), 128))
            ], 4)) : Ct("", !0),
            p.value === vt(Ye).YEAR ? (ae(!0), fe(Ut, { key: 1 }, uA(ua.value, (K) => (ae(), fe(Ut, {
              key: `year-col-${K.year}`
            }, [
              (ae(!0), fe(Ut, null, uA(K.halfYears || [], (he) => (ae(), fe("div", {
                key: `halfyear-col-${K.year}-${he.label}`,
                class: "half-year-column",
                style: rA({ width: "180px", height: `${ge.value}px` })
              }, null, 4))), 128))
            ], 64))), 128)) : Ct("", !0),
            p.value === vt(Ye).QUARTER ? (ae(), fe("div", {
              key: 2,
              class: "quarter-columns-container",
              style: rA({
                width: `${Sr.value}px`,
                height: `${ge.value}px`,
                position: "relative"
              })
            }, [
              (ae(!0), fe(Ut, null, uA(tA.value, (K, he) => (ae(), fe(Ut, {
                key: `quarter-col-${K.year}`
              }, [
                (ae(!0), fe(Ut, null, uA(K.quarters, (ye, Le) => (ae(), fe("div", {
                  key: `quarter-col-${K.year}-${ye.quarter}`,
                  class: iA(["quarter-column", { today: ye.isToday }]),
                  style: rA({
                    position: "absolute",
                    width: "60px",
                    height: `${ge.value}px`,
                    left: `${he * 240 + Le * 60}px`
                  })
                }, null, 6))), 128))
              ], 64))), 128))
            ], 4)) : p.value !== vt(Ye).HOUR && p.value !== vt(Ye).YEAR && p.value !== vt(Ye).QUARTER ? (ae(!0), fe(Ut, { key: 3 }, uA(tA.value, (K) => {
              var he;
              return ae(), fe(Ut, {
                key: `day-col-${K.year}-${K.month}`
              }, [
                K.isMonthView ? (ae(), fe("div", {
                  key: 0,
                  class: iA(["month-column", { today: (he = K.monthData) == null ? void 0 : he.isToday }]),
                  style: rA({ width: "59px", height: `${ge.value}px` })
                }, null, 6)) : K.isWeekView && K.weeks ? (ae(), fe("div", {
                  key: 1,
                  class: "month-week-columns",
                  style: rA({
                    width: `${(K.weeks || []).length * 60}px`,
                    height: `${ge.value}px`
                  })
                }, [
                  (ae(!0), fe(Ut, null, uA(K.weeks || [], (ye) => (ae(), fe("div", {
                    key: `week-col-${K.year}-${K.month}-${ye.label}`,
                    class: iA(["week-column", {
                      today: ye.isToday
                    }]),
                    style: rA({ height: `${ge.value}px`, width: "60px" })
                  }, [
                    (ae(!0), fe(Ut, null, uA(ye.subDays || [], (Le, Xe) => (ae(), fe("div", {
                      key: `subday-col-${Xe}`,
                      class: iA(["sub-day-column", {
                        weekend: Le.dayOfWeek === 0 || Le.dayOfWeek === 6,
                        today: Xt(Le.date)
                      }]),
                      style: rA({ height: `${ge.value}px`, width: `${C.value}px` })
                    }, null, 6))), 128))
                  ], 6))), 128))
                ], 4)) : (ae(), fe("div", {
                  key: 2,
                  class: "month-day-columns",
                  style: rA({
                    width: `${(K.days || []).length * 30}px`,
                    height: `${ge.value}px`
                  })
                }, [
                  (ae(!0), fe(Ut, null, uA(K.days || [], (ye) => (ae(), fe("div", {
                    key: `day-col-${K.year}-${K.month}-${ye.day}`,
                    class: iA(["day-column", {
                      weekend: ye.isWeekend,
                      today: ye.isToday
                    }]),
                    style: rA({ height: `${ge.value}px` })
                  }, null, 6))), 128))
                ], 4))
              ], 64);
            }), 128)) : Ct("", !0)
          ], 4),
          Y("div", {
            class: "task-bar-container",
            style: rA({ height: `${ge.value}px` })
          }, [
            Y("div", {
              class: "task-rows",
              style: rA({ height: `${ge.value}px` })
            }, [
              (ae(!0), fe(Ut, null, uA(xr.value, ({ task: K, originalIndex: he }) => {
                var ye, Le, Xe;
                return ae(), fe("div", {
                  key: K.id,
                  class: iA(["task-row", { "task-row-hovered": W.value === K.id }]),
                  style: rA({ top: `${he * 51}px` }),
                  onMouseenter: (ze) => z(K.id),
                  onMouseleave: te[0] || (te[0] = (ze) => z(null))
                }, [
                  K.type === "milestone-group" && K.children ? (ae(!0), fe(Ut, { key: 0 }, uA(K.children, (ze) => (ae(), wr(S0, {
                    key: ze.id,
                    date: ze.startDate || "",
                    "row-height": 50,
                    "day-width": C.value,
                    "start-date": p.value === vt(Ye).YEAR || p.value === vt(Ye).QUARTER ? U().startDate : p.value === vt(Ye).MONTH ? S().startDate : c.value.startDate,
                    "timeline-start": c.value.startDate,
                    "timeline-end": c.value.endDate,
                    "period-width": C.value,
                    name: ze.name,
                    milestone: T(ze),
                    "scroll-left": Re.value,
                    "container-width": $e.value,
                    "milestone-id": ze.id,
                    "other-milestones": Lr(ze.id),
                    "timeline-data": tA.value,
                    "current-time-scale": p.value,
                    "allow-drag-and-resize": A.allowDragAndResize && !ue.value,
                    "is-in-highlight-mode": ue.value,
                    onMilestoneDoubleClick: Be,
                    "onUpdate:milestone": Fe,
                    onDragEnd: Xs
                  }, null, 8, ["date", "day-width", "start-date", "timeline-start", "timeline-end", "period-width", "name", "milestone", "scroll-left", "container-width", "milestone-id", "other-milestones", "timeline-data", "current-time-scale", "allow-drag-and-resize", "is-in-highlight-mode"]))), 128)) : K.type === "milestone" ? (ae(), wr(S0, {
                    key: K.id,
                    date: K.startDate || "",
                    "row-height": 50,
                    "day-width": C.value,
                    "start-date": p.value === vt(Ye).YEAR || p.value === vt(Ye).QUARTER ? U().startDate : p.value === vt(Ye).MONTH ? S().startDate : c.value.startDate,
                    "timeline-start": c.value.startDate,
                    "timeline-end": c.value.endDate,
                    "period-width": C.value,
                    name: K.name,
                    milestone: T(K),
                    "scroll-left": Re.value,
                    "container-width": $e.value,
                    "milestone-id": K.id,
                    "other-milestones": Lr(K.id),
                    "timeline-data": tA.value,
                    "current-time-scale": p.value,
                    "allow-drag-and-resize": A.allowDragAndResize && !ue.value,
                    "is-in-highlight-mode": ue.value,
                    onMilestoneDoubleClick: Be,
                    "onUpdate:milestone": Fe,
                    onDragEnd: Xs
                  }, null, 8, ["date", "day-width", "start-date", "timeline-start", "timeline-end", "period-width", "name", "milestone", "scroll-left", "container-width", "milestone-id", "other-milestones", "timeline-data", "current-time-scale", "allow-drag-and-resize", "is-in-highlight-mode"])) : K.type !== "milestone-group" && K.type !== "milestone" ? (ae(), wr(XF, {
                    key: `taskbar-${K.id}-${nr.value}`,
                    task: K,
                    "row-height": 50,
                    "day-width": C.value,
                    "start-date": p.value === vt(Ye).YEAR ? U().startDate : p.value === vt(Ye).MONTH ? S().startDate : c.value.startDate,
                    "is-parent": K.isParent,
                    "scroll-left": Re.value,
                    "container-width": $e.value,
                    "hide-bubbles": xt.value,
                    "timeline-data": p.value === vt(Ye).HOUR ? Dr.value : tA.value,
                    "current-time-scale": p.value,
                    "task-bar-config": A.taskBarConfig,
                    "allow-drag-and-resize": A.allowDragAndResize && !ue.value,
                    "is-highlighted": le.value.has(K.id),
                    "is-primary-highlight": I.value === K.id,
                    "is-in-highlight-mode": ue.value,
                    "drag-link-mode": X.value,
                    "is-link-drag-source": ((ye = Ae.value) == null ? void 0 : ye.id) === K.id,
                    "is-valid-link-target": ((Le = oe.value) == null ? void 0 : Le.id) === K.id && x.value === !0,
                    "is-invalid-link-target": ((Xe = oe.value) == null ? void 0 : Xe.id) === K.id && x.value === !1,
                    "all-tasks": y.value,
                    "onUpdate:task": ea,
                    onBarMounted: Ir,
                    onClick: (ze) => WA(K, ze),
                    onDblclick: (ze) => Pn(K),
                    onDragEnd: kn,
                    onResizeEnd: zs,
                    onScrollToPosition: Mo,
                    onContextMenu: lA,
                    onStartTimer: no,
                    onStopTimer: v,
                    onAddPredecessor: QA,
                    onAddSuccessor: vr,
                    onDelete: to,
                    onDeleteLink: Ao,
                    onLongPress: ee,
                    onLinkDragStart: de,
                    onLinkDragMove: Pe,
                    onLinkDragEnd: je
                  }, Cl({ _: 2 }, [
                    R.$slots["custom-task-content"] ? {
                      name: "custom-task-content",
                      fn: fs((ze) => [
                        Li(R.$slots, "custom-task-content", Qo({ ref_for: !0 }, ze), void 0, !0)
                      ]),
                      key: "0"
                    } : void 0
                  ]), 1032, ["task", "day-width", "start-date", "is-parent", "scroll-left", "container-width", "hide-bubbles", "timeline-data", "current-time-scale", "task-bar-config", "allow-drag-and-resize", "is-highlighted", "is-primary-highlight", "is-in-highlight-mode", "drag-link-mode", "is-link-drag-source", "is-valid-link-target", "is-invalid-link-target", "all-tasks", "onClick", "onDblclick"])) : Ct("", !0)
                ], 46, Ix);
              }), 128))
            ], 4)
          ], 4)
        ], 512)
      ], 32)
    ], 544));
  }
}), Hx = /* @__PURE__ */ xn(Rx, [["__scopeId", "data-v-7a809cc7"]]), Px = { class: "gantt-toolbar" }, Kx = { class: "toolbar-left" }, Vx = {
  key: 0,
  class: "gantt-btn-group gantt-add-btn-group"
}, qx = ["title"], jx = ["title"], Wx = {
  key: 1,
  class: "gantt-btn-group gantt-expand-collapse-btn-group"
}, Gx = ["title"], Yx = ["title"], $x = {
  key: 2,
  class: "gantt-btn-group"
}, zx = ["title"], Xx = ["title"], Jx = { class: "toolbar-right" }, Zx = {
  key: 0,
  class: "segmented-control time-scale-segmented"
}, e3 = { class: "segmented-track" }, t3 = ["title", "onClick"], A3 = {
  key: 1,
  class: "language-dropdown"
}, r3 = ["title"], n3 = { class: "lang-text" }, a3 = {
  key: 0,
  class: "language-menu"
}, i3 = ["onClick"], s3 = { class: "option-text" }, o3 = {
  key: 0,
  class: "check-icon",
  viewBox: "0 0 24 24",
  fill: "none",
  stroke: "currentColor",
  "stroke-width": "2"
}, l3 = ["title"], u3 = ["title"], c3 = {
  key: 0,
  class: "gantt-btn-icon",
  viewBox: "0 0 24 24",
  fill: "none",
  stroke: "currentColor",
  "stroke-width": "2"
}, f3 = {
  key: 1,
  class: "gantt-btn-icon",
  viewBox: "0 0 24 24",
  fill: "none",
  stroke: "currentColor",
  "stroke-width": "2"
}, h3 = { class: "icon-fallback" }, d3 = ["title"], g3 = {
  key: 0,
  class: "gantt-btn-icon",
  viewBox: "0 0 24 24",
  fill: "none",
  stroke: "currentColor",
  "stroke-width": "2"
}, p3 = {
  key: 1,
  class: "gantt-btn-icon",
  viewBox: "0 0 24 24",
  fill: "none",
  stroke: "currentColor",
  "stroke-width": "2"
}, v3 = { class: "icon-fallback" }, m3 = {
  key: 0,
  class: "confirm-dialog"
}, w3 = { class: "dialog-content" }, B3 = { class: "dialog-message" }, y3 = { class: "dialog-actions" }, Bf = "gantt-theme", b3 = "gantt-locale", C3 = /* @__PURE__ */ dn({
  __name: "GanttToolbar",
  props: {
    config: { default: () => ({}) },
    onAddTask: { type: Function, default: void 0 },
    onAddMilestone: { type: Function, default: void 0 },
    onTodayLocate: { type: Function, default: void 0 },
    onExportCsv: { type: Function, default: void 0 },
    onExportPdf: { type: Function, default: void 0 },
    onLanguageChange: { type: Function, default: void 0 },
    onThemeChange: { type: Function, default: void 0 },
    onFullscreenChange: { type: Function, default: void 0 },
    onTimeScaleChange: { type: Function, default: void 0 },
    onExpandAll: { type: Function, default: void 0 },
    onCollapseAll: { type: Function, default: void 0 },
    onSettingsConfirm: { type: Function, default: void 0 }
  },
  emits: ["add-task", "add-milestone", "today-locate", "export-csv", "export-pdf", "language-change", "theme-change", "fullscreen-change", "time-scale-change", "expand-all", "collapse-all"],
  setup(r, { emit: t }) {
    const e = r, A = t, n = {
      zh: "zh-CN",
      en: "en-US"
    }, a = () => {
      if (typeof window < "u") {
        const de = localStorage.getItem(Bf);
        return de !== null ? de === "dark" : window.matchMedia && window.matchMedia("(prefers-color-scheme: dark)").matches;
      }
      return !1;
    }, { locale: s, setLocale: i, getTranslation: o } = Ma(), l = Te("zh"), u = Te(a()), h = Te(!1), g = Te(!1), c = Te(Ye.DAY), p = (de) => o(de), m = lt(() => p("language")), y = Te(!1), w = Te(null), E = Te(null), C = () => {
      e.onAddTask && typeof e.onAddTask == "function" ? e.onAddTask() : A("add-task");
    }, F = () => {
      e.onAddMilestone && typeof e.onAddMilestone == "function" ? e.onAddMilestone() : A("add-milestone");
    }, H = () => {
      e.onTodayLocate && typeof e.onTodayLocate == "function" ? e.onTodayLocate() : A("today-locate");
    }, q = () => {
      e.onExportCsv && typeof e.onExportCsv == "function" ? e.onExportCsv() : A("export-csv");
    }, N = () => {
      e.onExportPdf && typeof e.onExportPdf == "function" ? e.onExportPdf() : A("export-pdf");
    }, M = () => {
      e.onExpandAll && typeof e.onExpandAll == "function" ? e.onExpandAll() : A("expand-all");
    }, k = () => {
      e.onCollapseAll && typeof e.onCollapseAll == "function" ? e.onCollapseAll() : A("collapse-all");
    }, O = () => {
      g.value = !g.value;
    }, S = (de) => {
      l.value = de, g.value = !1;
      const ce = n[l.value];
      i(ce), e.onLanguageChange && typeof e.onLanguageChange == "function" ? e.onLanguageChange(ce) : A("language-change", ce), E.value = ce, w.value = "language", y.value = !0;
    }, U = async () => {
      if (!w.value || E.value === null) {
        ue();
        return;
      }
      if (e.onSettingsConfirm && typeof e.onSettingsConfirm == "function")
        try {
          if (!await e.onSettingsConfirm(w.value, E.value)) {
            ue();
            return;
          }
        } catch {
          ue();
          return;
        }
      w.value === "theme" ? W() : w.value === "language" && I(), ue();
    }, W = () => {
      typeof window < "u" && typeof E.value == "boolean" && localStorage.setItem(Bf, E.value ? "dark" : "light");
    }, I = () => {
      typeof window < "u" && typeof E.value == "string" && localStorage.setItem(b3, E.value);
    }, le = () => {
      ue();
    }, ue = () => {
      y.value = !1, w.value = null, E.value = null;
    }, Z = () => {
      const de = !u.value;
      u.value = de, document.documentElement.setAttribute("data-theme", de ? "dark" : "light"), e.onThemeChange && typeof e.onThemeChange == "function" ? e.onThemeChange(de) : A("theme-change", de), E.value = de, w.value = "theme", y.value = !0;
    }, ee = () => {
      h.value = !h.value, window.dispatchEvent(
        new CustomEvent("fullscreen-toggle", {
          detail: h.value
        })
      ), e.onFullscreenChange && typeof e.onFullscreenChange == "function" ? e.onFullscreenChange(h.value) : A("fullscreen-change", h.value);
    }, X = {
      hour: { value: Ye.HOUR, label: () => p("timeScaleHour") },
      day: { value: Ye.DAY, label: () => p("timeScaleDay") },
      week: { value: Ye.WEEK, label: () => p("timeScaleWeek") },
      month: { value: Ye.MONTH, label: () => p("timeScaleMonth") },
      quarter: { value: Ye.QUARTER, label: () => p("timeScaleQuarter") },
      year: { value: Ye.YEAR, label: () => p("timeScaleYear") }
    }, Ae = ["hour", "day", "week", "month", "year"], oe = lt(() => {
      var Se;
      const ce = (((Se = e.config) == null ? void 0 : Se.timeScaleDimensions) ?? Ae).filter(
        (qe) => qe in X
      );
      return ce.length > 0 ? ce : [...Ae];
    }), x = lt(() => {
      var Se;
      const de = oe.value, ce = (Se = e.config) == null ? void 0 : Se.defaultTimeScale;
      return ce && de.includes(ce) ? ce : de.includes("day") ? "day" : de[0] ?? "day";
    }), L = (de) => {
      c.value = de, e.onTimeScaleChange && typeof e.onTimeScaleChange == "function" ? e.onTimeScaleChange(de) : A("time-scale-change", de);
    };
    let j = !1;
    EA(
      () => x.value,
      (de) => {
        const ce = X[de].value;
        (c.value !== ce || !j) && (j = !0, L(ce));
      },
      { immediate: !0 }
    );
    const $ = lt(() => oe.value.find(
      (ce) => X[ce].value === c.value
    ) ?? x.value), re = () => {
      const de = oe.value.findIndex(
        (rt) => rt === $.value
      ), ce = oe.value.length;
      if (ce === 0 || de < 0)
        return {
          transform: "translateX(0%)",
          width: `${100 / ce || 25}%`
        };
      const Se = 100 / ce;
      return {
        transform: `translateX(${de * 100}%)`,
        width: `${Se}%`
      };
    }, pe = (de) => {
      !de.target.closest(".language-dropdown") && g.value && (g.value = !1);
    };
    return En(() => {
      const de = s.value;
      l.value = de === "zh-CN" ? "zh" : "en", document.documentElement.setAttribute("data-theme", u.value ? "dark" : "light"), document.addEventListener("click", pe), window.matchMedia && typeof window < "u" && !localStorage.getItem(Bf) && window.matchMedia("(prefers-color-scheme: dark)").addEventListener("change", (ce) => {
        u.value = ce.matches, document.documentElement.setAttribute("data-theme", ce.matches ? "dark" : "light");
      });
    }), tn(() => {
      document.removeEventListener("click", pe);
    }), (de, ce) => (ae(), fe("div", Px, [
      Y("div", Kx, [
        de.config.showAddTask !== !1 || de.config.showAddMilestone !== !1 ? (ae(), fe("div", Vx, [
          de.config.showAddTask !== !1 ? (ae(), fe("button", {
            key: 0,
            class: "gantt-btn-group-item",
            title: p("addTask"),
            onClick: C
          }, [
            ce[0] || (ce[0] = Y("svg", {
              class: "gantt-btn-icon",
              viewBox: "0 0 24 24",
              fill: "none",
              stroke: "currentColor",
              "stroke-width": "2"
            }, [
              Y("line", {
                x1: "12",
                y1: "5",
                x2: "12",
                y2: "19"
              }),
              Y("line", {
                x1: "5",
                y1: "12",
                x2: "19",
                y2: "12"
              })
            ], -1)),
            kA(" " + Ge(p("addTask")), 1)
          ], 8, qx)) : Ct("", !0),
          de.config.showAddMilestone !== !1 ? (ae(), fe("button", {
            key: 1,
            class: "gantt-btn-group-item",
            title: p("addMilestone"),
            onClick: F
          }, [
            ce[1] || (ce[1] = ks('<svg class="gantt-btn-icon" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" data-v-ed3a47c3><g transform="rotate(45 12 12)" data-v-ed3a47c3><rect x="4" y="4" width="16" height="16" rx="4" ry="4" fill="none" stroke="currentColor" data-v-ed3a47c3></rect></g><line x1="12" y1="8" x2="12" y2="16" data-v-ed3a47c3></line><line x1="8" y1="12" x2="16" y2="12" data-v-ed3a47c3></line></svg>', 1)),
            kA(" " + Ge(p("addMilestone")), 1)
          ], 8, jx)) : Ct("", !0)
        ])) : Ct("", !0),
        de.config.showExpandCollapse !== !1 ? (ae(), fe("div", Wx, [
          Y("button", {
            class: "gantt-btn-group-item",
            title: p("expandAll"),
            onClick: M
          }, [
            ce[2] || (ce[2] = Y("svg", {
              class: "gantt-btn-icon",
              viewBox: "0 0 24 24",
              fill: "none",
              stroke: "currentColor",
              "stroke-width": "2"
            }, [
              Y("polyline", { points: "6 9 12 15 18 9" })
            ], -1)),
            kA(" " + Ge(p("expandAll")), 1)
          ], 8, Gx),
          Y("button", {
            class: "gantt-btn-group-item",
            title: p("collapseAll"),
            onClick: k
          }, [
            ce[3] || (ce[3] = Y("svg", {
              class: "gantt-btn-icon",
              viewBox: "0 0 24 24",
              fill: "none",
              stroke: "currentColor",
              "stroke-width": "2"
            }, [
              Y("polyline", { points: "18 15 12 9 6 15" })
            ], -1)),
            kA(" " + Ge(p("collapseAll")), 1)
          ], 8, Yx)
        ])) : Ct("", !0),
        de.config.showExportCsv !== !1 || de.config.showExportPdf !== !1 ? (ae(), fe("div", $x, [
          de.config.showExportCsv !== !1 ? (ae(), fe("button", {
            key: 0,
            class: "gantt-btn-group-item",
            title: p("exportCsv"),
            onClick: q
          }, [
            ce[4] || (ce[4] = ks('<svg class="gantt-btn-icon" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" data-v-ed3a47c3><path d="M14 2H6a2 2 0 00-2 2v16a2 2 0 002 2h12a2 2 0 002-2V8z" data-v-ed3a47c3></path><polyline points="14,2 14,8 20,8" data-v-ed3a47c3></polyline><line x1="16" y1="13" x2="8" y2="13" data-v-ed3a47c3></line><line x1="16" y1="17" x2="8" y2="17" data-v-ed3a47c3></line><polyline points="10,9 9,9 8,9" data-v-ed3a47c3></polyline></svg>', 1)),
            kA(" " + Ge(p("exportCsv")), 1)
          ], 8, zx)) : Ct("", !0),
          de.config.showExportPdf !== !1 ? (ae(), fe("button", {
            key: 1,
            class: "gantt-btn-group-item",
            title: p("exportPdf"),
            onClick: N
          }, [
            ce[5] || (ce[5] = ks('<svg class="gantt-btn-icon" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" data-v-ed3a47c3><path d="M14 2H6a2 2 0 00-2 2v16a2 2 0 002 2h12a2 2 0 002-2V8z" data-v-ed3a47c3></path><polyline points="14,2 14,8 20,8" data-v-ed3a47c3></polyline><line x1="16" y1="13" x2="8" y2="13" data-v-ed3a47c3></line><line x1="16" y1="17" x2="8" y2="17" data-v-ed3a47c3></line><line x1="12" y1="13" x2="12" y2="17" data-v-ed3a47c3></line></svg>', 1)),
            kA(" " + Ge(p("exportPdf")), 1)
          ], 8, Xx)) : Ct("", !0)
        ])) : Ct("", !0)
      ]),
      Y("div", Jx, [
        de.config.showTimeScale !== !1 ? (ae(), fe("div", Zx, [
          Y("div", e3, [
            Y("div", {
              class: "segmented-thumb",
              style: rA(re())
            }, null, 4)
          ]),
          (ae(!0), fe(Ut, null, uA(oe.value, (Se) => (ae(), fe("button", {
            key: Se,
            class: iA(["segmented-item", { active: $.value === Se }]),
            title: p("timeScaleTooltip"),
            onClick: (qe) => L(X[Se].value)
          }, Ge(X[Se].label()), 11, t3))), 128))
        ])) : Ct("", !0),
        de.config.showLanguage !== !1 ? (ae(), fe("div", A3, [
          Y("button", {
            class: "toolbar-lang-btn",
            title: p("languageTooltip"),
            onClick: O
          }, [
            ce[6] || (ce[6] = Y("svg", {
              class: "gantt-btn-icon",
              viewBox: "0 0 24 24",
              fill: "none",
              stroke: "currentColor",
              "stroke-width": "2"
            }, [
              Y("circle", {
                cx: "12",
                cy: "12",
                r: "10"
              }),
              Y("line", {
                x1: "2",
                y1: "12",
                x2: "22",
                y2: "12"
              }),
              Y("path", { d: "M12 2a15.3 15.3 0 0 1 4 10 15.3 15.3 0 0 1-4 10 15.3 15.3 0 0 1-4-10 15.3 15.3 0 0 1 4-10z" })
            ], -1)),
            Y("span", n3, Ge(m.value), 1),
            ce[7] || (ce[7] = Y("svg", {
              class: "dropdown-arrow",
              viewBox: "0 0 24 24",
              fill: "none",
              stroke: "currentColor",
              "stroke-width": "2"
            }, [
              Y("polyline", { points: "6,9 12,15 18,9" })
            ], -1))
          ], 8, r3),
          g.value ? (ae(), fe("div", a3, [
            (ae(), fe(Ut, null, uA(["zh", "en"], (Se) => Y("div", {
              key: Se,
              class: iA(["language-option", { active: l.value === Se }]),
              onClick: (qe) => S(Se)
            }, [
              Y("span", s3, Ge(Se === "zh" ? "中文" : "English"), 1),
              l.value === Se ? (ae(), fe("svg", o3, ce[8] || (ce[8] = [
                Y("polyline", { points: "20,6 9,17 4,12" }, null, -1)
              ]))) : Ct("", !0)
            ], 10, i3)), 64))
          ])) : Ct("", !0)
        ])) : Ct("", !0),
        de.config.showTodayLocate !== !1 ? (ae(), fe("button", {
          key: 2,
          class: "toolbar-icon-btn today-locate-btn",
          title: p("todayLocateTooltip"),
          onClick: H
        }, ce[9] || (ce[9] = [
          ks('<svg class="gantt-btn-icon" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" data-v-ed3a47c3><rect x="3" y="4" width="18" height="18" rx="2" ry="2" data-v-ed3a47c3></rect><line x1="16" y1="2" x2="16" y2="6" data-v-ed3a47c3></line><line x1="8" y1="2" x2="8" y2="6" data-v-ed3a47c3></line><line x1="3" y1="10" x2="21" y2="10" data-v-ed3a47c3></line><circle cx="12" cy="16" r="1" data-v-ed3a47c3></circle></svg>', 1)
        ]), 8, l3)) : Ct("", !0),
        de.config.showTheme !== !1 ? (ae(), fe("button", {
          key: 3,
          class: "toolbar-icon-btn",
          title: p(u.value ? "lightMode" : "darkMode"),
          onClick: Z
        }, [
          u.value ? (ae(), fe("svg", c3, ce[10] || (ce[10] = [
            ks('<circle cx="12" cy="12" r="5" data-v-ed3a47c3></circle><line x1="12" y1="1" x2="12" y2="3" data-v-ed3a47c3></line><line x1="12" y1="21" x2="12" y2="23" data-v-ed3a47c3></line><line x1="4.22" y1="4.22" x2="5.64" y2="5.64" data-v-ed3a47c3></line><line x1="18.36" y1="18.36" x2="19.78" y2="19.78" data-v-ed3a47c3></line><line x1="1" y1="12" x2="3" y2="12" data-v-ed3a47c3></line><line x1="21" y1="12" x2="23" y2="12" data-v-ed3a47c3></line><line x1="4.22" y1="19.78" x2="5.64" y2="18.36" data-v-ed3a47c3></line><line x1="18.36" y1="5.64" x2="19.78" y2="4.22" data-v-ed3a47c3></line>', 9)
          ]))) : (ae(), fe("svg", f3, ce[11] || (ce[11] = [
            Y("path", { d: "M21 12.79A9 9 0 1 1 11.21 3 7 7 0 0 0 21 12.79z" }, null, -1)
          ]))),
          Y("span", h3, Ge(u.value ? "☀️" : "🌙"), 1)
        ], 8, u3)) : Ct("", !0),
        de.config.showFullscreen !== !1 ? (ae(), fe("button", {
          key: 4,
          class: "toolbar-icon-btn",
          title: p(h.value ? "exitFullscreen" : "fullscreen"),
          onClick: ee
        }, [
          h.value ? (ae(), fe("svg", g3, ce[12] || (ce[12] = [
            Y("path", { d: "M8 3v3a2 2 0 0 1-2 2H3m18 0h-3a2 2 0 0 1-2-2V3m0 18v-3a2 2 0 0 1 2-2h3M3 16h3a2 2 0 0 1 2 2v3" }, null, -1)
          ]))) : (ae(), fe("svg", p3, ce[13] || (ce[13] = [
            Y("path", { d: "M8 3H5a2 2 0 00-2 2v3m18 0V5a2 2 0 00-2-2h-3m0 18h3a2 2 0 002-2v-3M3 16v3a2 2 0 002 2h3" }, null, -1)
          ]))),
          Y("span", v3, Ge(h.value ? "⇲" : "⇱"), 1)
        ], 8, d3)) : Ct("", !0)
      ]),
      y.value ? (ae(), fe("div", m3, [
        Y("div", w3, [
          Y("p", B3, Ge(p("confirmDialogMessage")), 1),
          Y("div", y3, [
            Y("button", {
              class: "gantt-btn gantt-btn-default",
              onClick: le
            }, Ge(p("cancel")), 1),
            Y("button", {
              class: "gantt-btn gantt-btn-primary",
              onClick: U
            }, Ge(p("confirm")), 1)
          ])
        ])
      ])) : Ct("", !0)
    ]));
  }
}), E3 = /* @__PURE__ */ xn(C3, [["__scopeId", "data-v-ed3a47c3"]]), F3 = {
  success: "#67c23a",
  // 绿色
  warning: "#e6a23c",
  // 黄色
  error: "#f56c6c",
  // 红色
  info: "#909399"
  // 灰色
};
let Ts = null;
function x3() {
  return Ts || (Ts = document.createElement("div"), Ts.className = "message-container", Ts.style.cssText = `
      position: fixed;
      top: 20px;
      right: 20px;
      z-index: 9999;
      display: flex;
      flex-direction: column;
      align-items: flex-end;
      gap: 12px;
      pointer-events: none;
    `, document.body.appendChild(Ts)), Ts;
}
const ou = /* @__PURE__ */ new Map(), L0 = 1e3;
function Ky() {
  return { showMessage: (t, e = "success", A) => {
    const n = Date.now(), a = `${e}:${t}`, s = ou.get(a);
    if (!(A != null && A.allowDuplicate) && s && n - s < L0)
      return;
    ou.set(a, n);
    for (const [p, m] of ou.entries())
      n - m > L0 * 2 && ou.delete(p);
    const i = document.createElement("div");
    i.className = `message ${e}`, i.textContent = t, i.style.cssText = `
      min-width: 180px;
      max-width: 360px;
      margin: 0;
      padding: 12px 20px 12px 20px;
      border-radius: 4px;
      color: white;
      font-size: 14px;
      background: ${F3[e]};
      box-shadow: 0 2px 12px rgba(0, 0, 0, 0.1);
      pointer-events: auto;
      opacity: 0;
      display: flex;
      align-items: center;
      gap: 12px;
      transform: translateY(-20px);
      transition: opacity 0.25s, transform 0.25s;
      position: relative;
    `;
    let o = !1;
    const l = (A == null ? void 0 : A.closable) ?? !1;
    if (l) {
      const p = document.createElement("button");
      p.innerHTML = '<svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.2"><line x1="18" y1="6" x2="6" y2="18"></line><line x1="6" y1="6" x2="18" y2="18"></line></svg>', p.style.cssText = `
        background: transparent;
        border: none;
        color: white;
        cursor: pointer;
        margin-left: 8px;
        padding: 0;
        display: flex;
        align-items: center;
        opacity: 0.7;
        transition: opacity 0.2s;
      `, p.onmouseenter = () => p.style.opacity = "1", p.onmouseleave = () => p.style.opacity = "0.7", p.onclick = () => c(), i.appendChild(p);
    }
    const u = x3();
    u.appendChild(i), setTimeout(() => {
      i.style.opacity = "0.98", i.style.transform = "translateY(0)";
    }, 10);
    const h = (A == null ? void 0 : A.duration) ?? (l ? 0 : 3e3);
    let g;
    !l && h > 0 && (g = window.setTimeout(() => c(), h));
    function c() {
      o || (o = !0, i.style.opacity = "0", i.style.transform = "translateY(-20px)", g && clearTimeout(g), setTimeout(() => {
        i.parentNode && (u.removeChild(i), u.childElementCount === 0 && (u.remove(), Ts = null));
      }, 250));
    }
  } };
}
const S3 = { class: "el-input__wrapper" }, U3 = { class: "el-input__inner" }, T3 = ["value", "placeholder", "disabled"], Q3 = { class: "el-input__suffix" }, D3 = { class: "el-input__suffix-inner" }, k3 = {
  key: 1,
  class: "el-input__icon"
}, L3 = { class: "el-time-picker-header" }, I3 = { class: "el-time-picker-title" }, _3 = { class: "el-time-picker-content" }, N3 = { class: "el-time-column" }, M3 = { class: "el-time-column-header" }, O3 = ["onClick"], R3 = { class: "el-time-column" }, H3 = { class: "el-time-column-header" }, P3 = ["onClick"], K3 = { class: "el-time-picker-footer" }, V3 = {
  key: 0,
  class: "el-year-picker"
}, q3 = { class: "el-year-picker__header" }, j3 = { class: "el-year-picker__header-label" }, W3 = { class: "el-year-picker__content" }, G3 = ["onClick"], Y3 = {
  key: 1,
  class: "el-month-picker"
}, $3 = { class: "el-month-picker__header" }, z3 = { class: "el-month-picker__content" }, X3 = ["onClick"], J3 = {
  key: 2,
  class: "el-date-picker__content-wrapper"
}, Z3 = { class: "el-date-picker__header" }, eS = { class: "el-date-picker__header-label" }, tS = { class: "el-date-picker__content" }, AS = { class: "el-date-table__header" }, rS = { class: "el-date-table__body" }, nS = ["onClick"], aS = { class: "el-date-table__cell-inner" }, iS = {
  key: 0,
  class: "el-time-picker-input"
}, sS = {
  class: "el-time-picker-label",
  for: "time-input"
}, oS = ["value", "placeholder"], lS = {
  key: 1,
  class: "el-date-picker-footer"
}, uS = /* @__PURE__ */ dn({
  __name: "DatePicker",
  props: {
    modelValue: { default: "" },
    type: { default: "date" },
    placeholder: { default: "请选择日期" },
    startPlaceholder: { default: "开始日期" },
    endPlaceholder: { default: "结束日期" },
    disabled: { type: Boolean, default: !1 },
    clearable: { type: Boolean, default: !0 },
    size: { default: "default" },
    format: { default: "YYYY-MM-DD" },
    valueFormat: { default: "YYYY-MM-DD" },
    rangeSeparator: { default: "至" }
  },
  emits: ["update:modelValue", "change", "focus", "blur"],
  setup(r, { emit: t }) {
    const e = r, A = t, { t: n } = Ma(), a = Te(!1), s = Te(!1), i = Te(!1), o = Te(!1), l = Te(!1), u = Te(!1), h = Te(), g = Te(), c = Te(), p = Te(), m = Te(), y = Te(), w = Te(null), E = Te(0), C = Te(""), F = Te("12:00"), H = Te(""), q = Te(""), N = Te((/* @__PURE__ */ new Date()).getFullYear()), M = Te((/* @__PURE__ */ new Date()).getMonth()), k = Te(Math.floor((/* @__PURE__ */ new Date()).getFullYear() / 10) * 10), O = Te(""), S = Te(""), U = Te(""), W = Te("start"), I = Te("12:00"), le = Te(12), ue = Te(0), Z = (Ce, Ve) => {
      if (!Ce) return "";
      const Re = new Date(Ce);
      if (isNaN(Re.getTime())) return "";
      const $e = e.format.includes("-") ? "-" : "/", xt = `${Re.getFullYear()}${$e}${String(Re.getMonth() + 1).padStart(2, "0")}${$e}${String(Re.getDate()).padStart(2, "0")}`;
      return e.type === "datetime" && Ve ? `${xt} ${Ve}` : xt;
    }, ee = lt(() => {
      if (e.type === "daterange") {
        const Ce = S.value ? Z(S.value, I.value) : "", Ve = U.value ? Z(U.value, I.value) : "";
        return Ce && Ve ? `${Ce} ${e.rangeSeparator} ${Ve}` : Ce || Ve || "";
      }
      return O.value ? Z(O.value, I.value) : "";
    }), X = (Ce) => {
      if (!Ce) return { dateStr: "", timeStr: "12:00" };
      const Ve = Ce.trim().split(" ");
      if (Ve.length >= 2) {
        const $e = Ve[0], xt = Ve[1], Ht = $e.split("/");
        return Ht.length === 3 ? { dateStr: `${Ht[0]}-${Ht[1].padStart(2, "0")}-${Ht[2].padStart(2, "0")}`, timeStr: xt } : { dateStr: $e, timeStr: xt };
      }
      const Re = Ve[0];
      if (Re.includes("/")) {
        const $e = Re.split("/");
        if ($e.length === 3)
          return { dateStr: `${$e[0]}-${$e[1].padStart(2, "0")}-${$e[2].padStart(2, "0")}`, timeStr: "12:00" };
      }
      return { dateStr: Re, timeStr: "12:00" };
    };
    EA(
      () => e.modelValue,
      (Ce) => {
        if (e.type === "daterange")
          if (Array.isArray(Ce) && Ce.length === 2) {
            const Ve = X(Ce[0] || ""), Re = X(Ce[1] || "");
            S.value = Ve.dateStr, U.value = Re.dateStr, Ve.timeStr !== "12:00" && (I.value = Ve.timeStr);
          } else
            S.value = "", U.value = "", I.value = "12:00";
        else {
          const Ve = X(Ce || "");
          O.value = Ve.dateStr, I.value = Ve.timeStr;
        }
      },
      { immediate: !0 }
    );
    const Ae = () => {
      e.type === "daterange" ? (S.value = "", U.value = "", A("update:modelValue", ["", ""]), A("change", ["", ""])) : (O.value = "", A("update:modelValue", ""), A("change", "")), i.value = !1;
    }, oe = () => {
      if (!e.disabled && (i.value = !i.value, i.value)) {
        e.type === "daterange" ? (H.value = S.value, q.value = U.value) : (C.value = O.value, F.value = I.value), at.x = window.scrollX, at.y = window.scrollY, E.value++;
        let Ce;
        if (e.type === "daterange") {
          const Ve = S.value || U.value;
          Ce = Ve ? new Date(Ve) : /* @__PURE__ */ new Date();
        } else
          Ce = O.value ? new Date(O.value) : /* @__PURE__ */ new Date();
        isNaN(Ce.getTime()) ? (Ce = /* @__PURE__ */ new Date(), N.value = Ce.getFullYear(), M.value = Ce.getMonth()) : (N.value = Ce.getFullYear(), M.value = Ce.getMonth());
      }
    }, x = () => {
      e.type === "datetime" && i.value ? (O.value = C.value, I.value = F.value) : e.type === "daterange" && i.value && (S.value = H.value, U.value = q.value), i.value = !1, o.value = !1, l.value = !1, u.value = !1, a.value = !1, w.value && (clearTimeout(w.value), w.value = null);
    }, L = (Ce) => {
      if (Ce && (Ce.preventDefault(), Ce.stopPropagation()), u.value) return;
      w.value && (clearTimeout(w.value), w.value = null), u.value = !0;
      const [Ve, Re] = I.value.split(":").map(Number);
      le.value = Ve, ue.value = Re, rr(() => {
        j();
      });
    }, j = () => {
      if (m.value) {
        const Ce = m.value.querySelectorAll(".el-time-item"), Ve = le.value;
        if (Ce[Ve]) {
          const xt = Math.max(
            0,
            Ve * 28 - 80 + 14
          );
          m.value.scrollTop = xt;
        }
      }
      if (y.value) {
        const Ce = y.value.querySelectorAll(".el-time-item"), Re = [0, 15, 30, 45].indexOf(ue.value);
        if (Re >= 0 && Ce[Re]) {
          const Ht = Math.max(
            0,
            Re * 28 - 80 + 14
          );
          y.value.scrollTop = Ht;
        }
      }
    }, $ = () => {
      u.value = !1;
    }, re = () => {
      I.value = `${String(le.value).padStart(2, "0")}:${String(ue.value).padStart(2, "0")}`, $();
    }, pe = lt(() => Array.from({ length: 24 }, (Ce, Ve) => Ve)), de = lt(() => [0, 15, 30, 45]), ce = (Ce) => {
      le.value = Ce;
    }, Se = (Ce) => {
      ue.value = Ce;
    }, qe = () => {
      if (e.type === "daterange") {
        if (S.value && U.value) {
          const Ce = (xt) => {
            const Ht = new Date(xt), Mt = e.valueFormat.includes("-") ? "-" : "/", SA = `${Ht.getFullYear()}${Mt}${String(Ht.getMonth() + 1).padStart(2, "0")}${Mt}${String(Ht.getDate()).padStart(2, "0")}`;
            return I.value ? `${SA} ${I.value}` : SA;
          }, Ve = Ce(S.value), Re = Ce(U.value), $e = [Ve, Re];
          A("update:modelValue", $e), A("change", $e), H.value = S.value, q.value = U.value;
        }
      } else if (O.value) {
        const Ce = new Date(O.value), Ve = e.valueFormat.includes("-") ? "-" : "/", Re = `${Ce.getFullYear()}${Ve}${String(Ce.getMonth() + 1).padStart(2, "0")}${Ve}${String(Ce.getDate()).padStart(2, "0")}`, $e = I.value ? `${Re} ${I.value}` : Re;
        A("update:modelValue", $e), A("change", $e), C.value = O.value, F.value = I.value;
      }
      setTimeout(() => {
        x();
      }, 150);
    }, rt = (Ce) => {
      var Ht, Mt, SA;
      const Ve = Ce.target, Re = (Ht = h.value) == null ? void 0 : Ht.contains(Ve), $e = (Mt = g.value) == null ? void 0 : Mt.contains(Ve), xt = (SA = c.value) == null ? void 0 : SA.contains(Ve);
      !Re && !$e && !xt ? x() : !xt && u.value && !$e && $();
    }, at = { x: 0, y: 0 }, dt = () => {
      if (i.value) {
        const Ce = window.scrollX, Ve = window.scrollY, Re = Math.abs(Ce - at.x), $e = Math.abs(Ve - at.y);
        Re < 50 && $e < 50 ? E.value++ : x(), at.x = Ce, at.y = Ve;
      }
    }, D = () => {
      i.value && E.value++;
    }, Ie = lt(() => {
      const Ce = new Date(N.value, M.value, 1), Ve = new Date(Ce);
      Ve.setDate(Ve.getDate() - Ce.getDay());
      const Re = [];
      for (let $e = 0; $e < 42; $e++) {
        const xt = new Date(Ve);
        xt.setDate(Ve.getDate() + $e);
        const Ht = `${xt.getFullYear()}-${String(xt.getMonth() + 1).padStart(2, "0")}-${String(xt.getDate()).padStart(2, "0")}`, Mt = xt.getMonth() === M.value, SA = Ht === (/* @__PURE__ */ new Date()).toISOString().split("T")[0], JA = e.type === "daterange" ? Ht === S.value || Ht === U.value : Ht === O.value, Lt = e.type === "daterange" && S.value && U.value ? Ht >= S.value && Ht <= U.value : !1;
        Re.push({
          date: xt,
          dateStr: Ht,
          day: xt.getDate(),
          isCurrentMonth: Mt,
          isToday: SA,
          isSelected: JA,
          isInRange: Lt
        });
      }
      return Re;
    }), me = (Ce) => {
      if (e.type === "daterange")
        W.value === "start" || !S.value || S.value && U.value ? (S.value = Ce, U.value = "", W.value = "end") : (Ce < S.value ? (U.value = S.value, S.value = Ce) : U.value = Ce, W.value = "start");
      else if (O.value = Ce, e.type === "date") {
        const Ve = new Date(Ce), Re = e.valueFormat.includes("-") ? "-" : "/", $e = `${Ve.getFullYear()}${Re}${String(Ve.getMonth() + 1).padStart(2, "0")}${Re}${String(Ve.getDate()).padStart(2, "0")}`;
        A("update:modelValue", $e), A("change", $e), C.value = O.value, setTimeout(() => {
          x();
        }, 150);
      }
    }, ve = (Ce) => {
      Ce && (Ce.preventDefault(), Ce.stopPropagation()), w.value && (clearTimeout(w.value), w.value = null), M.value === 0 ? (M.value = 11, N.value--) : M.value--;
    }, xe = (Ce) => {
      Ce && (Ce.preventDefault(), Ce.stopPropagation()), w.value && (clearTimeout(w.value), w.value = null), M.value === 11 ? (M.value = 0, N.value++) : M.value++;
    }, Qe = (Ce) => {
      Ce && (Ce.preventDefault(), Ce.stopPropagation()), w.value && (clearTimeout(w.value), w.value = null), N.value--;
    }, _e = (Ce) => {
      Ce && (Ce.preventDefault(), Ce.stopPropagation()), w.value && (clearTimeout(w.value), w.value = null), N.value++;
    }, Pe = (Ce) => {
      Ce && (Ce.preventDefault(), Ce.stopPropagation()), w.value && (clearTimeout(w.value), w.value = null), o.value = !0, l.value = !1, k.value = Math.floor(N.value / 10) * 10;
    }, je = (Ce) => {
      Ce && (Ce.preventDefault(), Ce.stopPropagation()), w.value && (clearTimeout(w.value), w.value = null), l.value = !0, o.value = !1;
    }, Ke = (Ce, Ve) => {
      Ve && (Ve.preventDefault(), Ve.stopPropagation()), w.value && (clearTimeout(w.value), w.value = null), N.value = Ce, o.value = !1, l.value = !0;
    }, et = (Ce, Ve) => {
      Ve && (Ve.preventDefault(), Ve.stopPropagation()), w.value && (clearTimeout(w.value), w.value = null), M.value = Ce, l.value = !1;
    }, ut = (Ce) => {
      Ce && (Ce.preventDefault(), Ce.stopPropagation()), w.value && (clearTimeout(w.value), w.value = null), k.value -= 10;
    }, yt = (Ce) => {
      Ce && (Ce.preventDefault(), Ce.stopPropagation()), w.value && (clearTimeout(w.value), w.value = null), k.value += 10;
    }, Ft = lt(() => {
      const Ce = [];
      for (let Ve = 0; Ve < 10; Ve++)
        Ce.push(k.value + Ve);
      return Ce;
    });
    En(() => {
      document.addEventListener("click", rt), window.addEventListener("scroll", dt, !0), window.addEventListener("resize", D), at.x = window.scrollX, at.y = window.scrollY;
    }), tn(() => {
      document.removeEventListener("click", rt), window.removeEventListener("scroll", dt, !0), window.removeEventListener("resize", D), w.value && (clearTimeout(w.value), w.value = null);
    });
    const Bt = (Ce) => {
      w.value && (clearTimeout(w.value), w.value = null), a.value = !0, A("focus", Ce);
    }, St = (Ce) => {
      w.value = setTimeout(() => {
        a.value = !1, x(), A("blur", Ce);
      }, 150);
    }, bt = () => {
      w.value && (clearTimeout(w.value), w.value = null);
    }, nA = () => {
      u.value || (w.value = setTimeout(() => {
        x();
      }, 150));
    }, qt = () => {
      w.value = setTimeout(() => {
        $();
      }, 150);
    }, Ot = () => {
      s.value = !0;
    }, Pt = () => {
      s.value = !1;
    }, sA = lt(() => [
      "el-date-picker",
      `el-date-picker--${e.size}`,
      {
        "is-disabled": e.disabled,
        "is-focused": a.value,
        "is-range": e.type === "daterange"
      }
    ]), kt = lt(() => !e.clearable || e.disabled ? !1 : e.type === "daterange" ? (S.value || U.value) && s.value : O.value && s.value), hA = lt(() => {
      if (!h.value || !i.value) return {};
      const Ce = h.value.getBoundingClientRect(), Ve = 280, Re = 300, $e = 4, xt = window.innerWidth, Ht = window.innerHeight, Mt = {
        position: "fixed",
        zIndex: "10000"
      }, SA = Ht - Ce.bottom, JA = Ce.top;
      SA >= Re + $e || SA >= JA ? Mt.top = `${Ce.bottom + $e}px` : Mt.top = `${Ce.top - Re - $e}px`;
      const Lt = xt - Ce.left, Qr = Ce.right;
      if (Lt >= Ve)
        Mt.left = `${Ce.left}px`;
      else if (Qr >= Ve)
        Mt.left = `${Ce.right - Ve}px`;
      else {
        const PA = Ce.left + (Ce.width - Ve) / 2, CA = $e, MA = xt - Ve - $e;
        Mt.left = `${Math.max(CA, Math.min(PA, MA))}px`;
      }
      const Fr = parseFloat(Mt.top), xr = parseFloat(Mt.left);
      return Fr < $e ? Mt.top = `${$e}px` : Fr + Re > Ht - $e && (Mt.top = `${Ht - Re - $e}px`), xr < $e ? Mt.left = `${$e}px` : xr + Ve > xt - $e && (Mt.left = `${xt - Ve - $e}px`), Mt;
    }), Nt = lt(() => {
      if (!p.value || !u.value) return {};
      const Ce = p.value.getBoundingClientRect(), Ve = 180, Re = 300, $e = 4, xt = window.innerWidth, Ht = window.innerHeight, Mt = {
        position: "fixed",
        zIndex: "10002"
        // 比日历选择器层级更高
      };
      xt - Ce.left >= Ve ? Mt.left = `${Ce.left}px` : Mt.left = `${Math.max($e, xt - Ve - $e)}px`, Ce.top >= Re + $e ? Mt.top = `${Ce.top - Re - $e}px` : Mt.top = `${Ce.bottom + $e}px`;
      const Lt = parseFloat(Mt.top);
      return Lt < $e ? Mt.top = `${$e}px` : Lt + Re > Ht - $e && (Mt.top = `${Ht - Re - $e}px`), Mt;
    });
    return (Ce, Ve) => (ae(), fe("div", {
      class: iA(sA.value),
      onMouseenter: Ot,
      onMouseleave: Pt
    }, [
      Y("div", {
        ref_key: "inputRef",
        ref: h,
        class: "el-input",
        onClick: oe
      }, [
        Y("div", S3, [
          Y("div", U3, [
            Y("input", {
              value: ee.value,
              type: "text",
              class: "el-input__inner-input",
              placeholder: Ce.type === "daterange" ? `${Ce.startPlaceholder} ${Ce.rangeSeparator} ${Ce.endPlaceholder}` : Ce.placeholder,
              disabled: Ce.disabled,
              readonly: "",
              onFocus: Bt,
              onBlur: St
            }, null, 40, T3)
          ]),
          Y("div", Q3, [
            Y("div", D3, [
              kt.value ? (ae(), fe("button", {
                key: 0,
                type: "button",
                class: "el-input__clear",
                onClick: NA(Ae, ["stop"])
              }, Ve[12] || (Ve[12] = [
                Y("svg", {
                  class: "el-icon",
                  viewBox: "0 0 1024 1024"
                }, [
                  Y("path", {
                    fill: "currentColor",
                    d: "M764.288 214.592 512 466.88 259.712 214.592a31.936 31.936 0 0 0-45.12 45.12L466.752 512 214.528 764.224a31.936 31.936 0 1 0 45.12 45.184L512 557.184l252.288 252.288a31.936 31.936 0 0 0 45.12-45.12L557.12 512.064l252.288-252.352a31.936 31.936 0 1 0-45.12-45.184z"
                  })
                ], -1)
              ]))) : (ae(), fe("span", k3, Ve[13] || (Ve[13] = [
                Y("svg", {
                  class: "el-icon",
                  viewBox: "0 0 1024 1024"
                }, [
                  Y("path", {
                    fill: "currentColor",
                    d: "M128 384v512h768V384H128zm-32-64h832a32 32 0 0 1 32 32v576a32 32 0 0 1-32 32H96a32 32 0 0 1-32-32V352a32 32 0 0 1 32-32z"
                  }),
                  Y("path", {
                    fill: "currentColor",
                    d: "M288 128a32 32 0 0 1 64 0v192a32 32 0 0 1-64 0V128zm384 0a32 32 0 0 1 64 0v192a32 32 0 0 1-64 0V128z"
                  }),
                  Y("path", {
                    fill: "currentColor",
                    d: "M96 320h832q32 0 32 32t-32 32H96q-32 0-32-32t32-32z"
                  })
                ], -1)
              ])))
            ])
          ])
        ])
      ], 512),
      (ae(), wr(To, { to: "body" }, [
        $n(y0, { name: "picker-fade" }, {
          default: fs(() => [
            u.value ? (ae(), fe("div", {
              key: 0,
              ref_key: "timePickerRef",
              ref: c,
              class: "el-time-picker-panel",
              style: rA(Nt.value),
              tabindex: "-1",
              onClick: Ve[4] || (Ve[4] = NA(() => {
              }, ["stop"])),
              onMousedown: Ve[5] || (Ve[5] = NA(() => {
              }, ["prevent"])),
              onFocus: bt,
              onBlur: qt
            }, [
              Y("div", L3, [
                Y("span", I3, Ge(vt(n).selectTime), 1)
              ]),
              Y("div", _3, [
                Y("div", N3, [
                  Y("div", M3, Ge(vt(n).hour), 1),
                  Y("div", {
                    ref_key: "hourListRef",
                    ref: m,
                    class: "el-time-column-list"
                  }, [
                    (ae(!0), fe(Ut, null, uA(pe.value, (Re) => (ae(), fe("div", {
                      key: Re,
                      class: iA(["el-time-item", { "is-active": Re === le.value }]),
                      onClick: NA(($e) => ce(Re), ["stop"]),
                      onMousedown: Ve[0] || (Ve[0] = NA(() => {
                      }, ["prevent"]))
                    }, Ge(String(Re).padStart(2, "0")), 43, O3))), 128))
                  ], 512)
                ]),
                Y("div", R3, [
                  Y("div", H3, Ge(vt(n).minute), 1),
                  Y("div", {
                    ref_key: "minuteListRef",
                    ref: y,
                    class: "el-time-column-list"
                  }, [
                    (ae(!0), fe(Ut, null, uA(de.value, (Re) => (ae(), fe("div", {
                      key: Re,
                      class: iA(["el-time-item", { "is-active": Re === ue.value }]),
                      onClick: NA(($e) => Se(Re), ["stop"]),
                      onMousedown: Ve[1] || (Ve[1] = NA(() => {
                      }, ["prevent"]))
                    }, Ge(String(Re).padStart(2, "0")), 43, P3))), 128))
                  ], 512)
                ])
              ]),
              Y("div", K3, [
                Y("button", {
                  class: "el-time-picker-btn el-time-picker-btn--cancel",
                  onClick: NA($, ["stop"]),
                  onMousedown: Ve[2] || (Ve[2] = NA(() => {
                  }, ["prevent"]))
                }, Ge(vt(n).cancel), 33),
                Y("button", {
                  class: "el-time-picker-btn el-time-picker-btn--confirm",
                  onClick: NA(re, ["stop"]),
                  onMousedown: Ve[3] || (Ve[3] = NA(() => {
                  }, ["prevent"]))
                }, Ge(vt(n).confirm), 33)
              ])
            ], 36)) : Ct("", !0)
          ]),
          _: 1
        })
      ])),
      (ae(), wr(To, { to: "body" }, [
        $n(y0, { name: "picker-fade" }, {
          default: fs(() => [
            i.value ? (ae(), fe("div", {
              key: 0,
              ref_key: "pickerRef",
              ref: g,
              class: "el-picker-panel",
              style: rA(hA.value),
              tabindex: "-1",
              onFocus: bt,
              onBlur: nA
            }, [
              o.value ? (ae(), fe("div", V3, [
                Y("div", q3, [
                  Y("button", {
                    type: "button",
                    class: "el-picker-panel__icon-btn",
                    onClick: ut
                  }, " << "),
                  Y("span", j3, Ge(k.value) + " - " + Ge(k.value + 9), 1),
                  Y("button", {
                    type: "button",
                    class: "el-picker-panel__icon-btn",
                    onClick: yt
                  }, " >> ")
                ]),
                Y("div", W3, [
                  (ae(!0), fe(Ut, null, uA(Ft.value, (Re) => (ae(), fe("div", {
                    key: Re,
                    class: iA(["el-year-picker__item", { "is-current": Re === N.value }]),
                    onClick: ($e) => Ke(Re, $e)
                  }, Ge(Re), 11, G3))), 128))
                ])
              ])) : l.value ? (ae(), fe("div", Y3, [
                Y("div", $3, [
                  Y("button", {
                    type: "button",
                    class: "el-picker-panel__icon-btn",
                    onClick: Qe
                  }, " << "),
                  Y("span", {
                    class: "el-month-picker__header-label",
                    onClick: Ve[6] || (Ve[6] = (Re) => Pe(Re))
                  }, Ge(N.value), 1),
                  Y("button", {
                    type: "button",
                    class: "el-picker-panel__icon-btn",
                    onClick: _e
                  }, " >> ")
                ]),
                Y("div", z3, [
                  (ae(!0), fe(Ut, null, uA(vt(n).monthNames, (Re, $e) => (ae(), fe("div", {
                    key: $e,
                    class: iA(["el-month-picker__item", { "is-current": $e === M.value }]),
                    onClick: (xt) => et($e, xt)
                  }, Ge(Re), 11, X3))), 128))
                ])
              ])) : (ae(), fe("div", J3, [
                Y("div", Z3, [
                  Y("button", {
                    type: "button",
                    class: "el-picker-panel__icon-btn",
                    onClick: Qe
                  }, " << "),
                  Y("button", {
                    type: "button",
                    class: "el-picker-panel__icon-btn",
                    onClick: ve
                  }, " < "),
                  Y("span", eS, [
                    Y("span", {
                      class: "el-date-picker__header-year",
                      onClick: Ve[7] || (Ve[7] = (Re) => Pe(Re))
                    }, Ge(N.value), 1),
                    Y("span", {
                      class: "el-date-picker__header-month",
                      onClick: Ve[8] || (Ve[8] = (Re) => je(Re))
                    }, Ge(vt(n).monthNames[M.value]), 1)
                  ]),
                  Y("button", {
                    type: "button",
                    class: "el-picker-panel__icon-btn",
                    onClick: xe
                  }, " > "),
                  Y("button", {
                    type: "button",
                    class: "el-picker-panel__icon-btn",
                    onClick: _e
                  }, " >> ")
                ]),
                Y("div", tS, [
                  Y("div", AS, [
                    (ae(!0), fe(Ut, null, uA(vt(n).weekDays, (Re) => (ae(), fe("div", {
                      key: Re,
                      class: "el-date-table__header-cell"
                    }, Ge(Re), 1))), 128))
                  ]),
                  Y("div", rS, [
                    (ae(!0), fe(Ut, null, uA(Ie.value, (Re) => (ae(), fe("div", {
                      key: `${Re.date.getTime()}`,
                      class: iA(["el-date-table__cell", {
                        "is-other-month": !Re.isCurrentMonth,
                        "is-today": Re.isToday,
                        "is-selected": Re.isSelected,
                        "is-in-range": Re.isInRange,
                        "is-range-start": Ce.type === "daterange" && Re.dateStr === S.value,
                        "is-range-end": Ce.type === "daterange" && Re.dateStr === U.value
                      }]),
                      onClick: ($e) => me(Re.dateStr)
                    }, [
                      Y("div", aS, Ge(Re.day), 1)
                    ], 10, nS))), 128))
                  ])
                ]),
                Ce.type === "datetime" ? (ae(), fe("div", iS, [
                  Y("label", sS, Ge(vt(n).time) + ":", 1),
                  Y("input", {
                    id: "time-input",
                    ref_key: "timeInputRef",
                    ref: p,
                    type: "text",
                    class: "el-time-input",
                    value: I.value,
                    placeholder: vt(n).selectTime,
                    readonly: "",
                    onClick: Ve[9] || (Ve[9] = (Re) => L(Re)),
                    onMousedown: Ve[10] || (Ve[10] = NA(() => {
                    }, ["prevent"]))
                  }, null, 40, oS)
                ])) : Ct("", !0),
                Ce.type === "datetime" ? (ae(), fe("div", lS, [
                  Y("button", {
                    class: "el-date-picker-btn el-date-picker-btn--confirm",
                    onClick: NA(qe, ["stop"]),
                    onMousedown: Ve[11] || (Ve[11] = NA(() => {
                    }, ["prevent"]))
                  }, Ge(vt(n).confirm), 33)
                ])) : Ct("", !0)
              ]))
            ], 36)) : Ct("", !0)
          ]),
          _: 1
        })
      ]))
    ], 34));
  }
}), Jg = /* @__PURE__ */ xn(uS, [["__scopeId", "data-v-7516f998"]]), cS = { class: "multi-select-predecessor" }, fS = {
  class: "form-label",
  for: "predecessor-select"
}, hS = { class: "predecessor-selector" }, dS = {
  key: 0,
  class: "selected-tags"
}, gS = ["onClick"], pS = { class: "select-wrapper" }, vS = { value: "" }, mS = ["value"], wS = /* @__PURE__ */ dn({
  __name: "MultiSelectPredecessor",
  props: {
    modelValue: { default: () => [] },
    tasks: {},
    currentTaskId: { default: void 0 },
    label: { default: "前置任务" },
    placeholder: { default: "请选择前置任务" }
  },
  emits: ["update:modelValue"],
  setup(r, { emit: t }) {
    const e = r, A = t, n = Te(""), a = lt(() => e.modelValue || []), s = lt(() => a.value.map((u) => e.tasks.find((h) => h.id === u)).filter((u) => u)), i = lt(() => e.tasks.filter(
      (u) => u.type === "task" && u.id !== e.currentTaskId && !a.value.includes(u.id)
    )), o = () => {
      if (n.value) {
        const u = Number(n.value);
        if (!a.value.includes(u)) {
          const h = [...a.value, u];
          A("update:modelValue", h);
        }
        n.value = "";
      }
    }, l = (u) => {
      const h = a.value.filter((g) => g !== u);
      A("update:modelValue", h);
    };
    return EA(
      () => e.modelValue,
      () => {
        n.value = "";
      },
      { immediate: !0 }
    ), (u, h) => (ae(), fe("div", cS, [
      Y("label", fS, Ge(u.label), 1),
      Y("div", hS, [
        s.value.length > 0 ? (ae(), fe("div", dS, [
          (ae(!0), fe(Ut, null, uA(s.value, (g) => (ae(), fe("span", {
            key: g.id,
            class: "predecessor-tag"
          }, [
            kA(Ge(g.name) + " (" + Ge(g.id) + ") ", 1),
            Y("button", {
              type: "button",
              class: "remove-tag-btn",
              onClick: (c) => l(g.id)
            }, " × ", 8, gS)
          ]))), 128))
        ])) : Ct("", !0),
        Y("div", pS, [
          Ba(Y("select", {
            id: "predecessor-select",
            "onUpdate:modelValue": h[0] || (h[0] = (g) => n.value = g),
            class: "form-select",
            onChange: o
          }, [
            Y("option", vS, Ge(u.placeholder), 1),
            (ae(!0), fe(Ut, null, uA(i.value, (g) => (ae(), fe("option", {
              key: g.id,
              value: g.id
            }, Ge(g.name) + " (ID: " + Ge(g.id) + ") ", 9, mS))), 128))
          ], 544), [
            [Wu, n.value]
          ])
        ])
      ])
    ]));
  }
}), BS = /* @__PURE__ */ xn(wS, [["__scopeId", "data-v-3bddb4ad"]]), yS = {
  class: "drawer-header",
  style: { display: "flex", "align-items": "center", "justify-content": "flex-start", gap: "8px" }
}, bS = {
  class: "drawer-title",
  style: { margin: "0" }
}, CS = {
  key: 0,
  class: "drawer-timer",
  style: { display: "flex", "align-items": "center", gap: "6px", "margin-left": "8px" }
}, ES = {
  width: "24",
  height: "24",
  viewBox: "0 0 24 24",
  fill: "none",
  style: { display: "block", margin: "0 auto" }
}, FS = {
  key: 0,
  class: "timer-dot",
  style: { background: "#67c23a", width: "7px", height: "7px", "border-radius": "50%", "margin-right": "5px", animation: "pulse 1s infinite" }
}, xS = {
  class: "close-icon",
  viewBox: "0 0 24 24",
  fill: "none",
  stroke: "currentColor",
  style: { "vertical-align": "middle" }
}, SS = { class: "drawer-body" }, US = { class: "form-group" }, TS = {
  class: "form-label",
  for: "task-name"
}, QS = ["placeholder"], DS = {
  key: 0,
  class: "error-text"
}, kS = { class: "form-group" }, LS = {
  class: "form-label",
  for: "task-type"
}, IS = { value: "story" }, _S = { value: "task" }, NS = { value: "bug" }, MS = {
  key: 0,
  class: "error-text"
}, OS = { class: "form-group" }, RS = {
  class: "form-label",
  for: "task-assignee"
}, HS = { value: "" }, PS = ["value"], KS = { class: "form-group" }, VS = {
  class: "form-label",
  for: "task-parent"
}, qS = { value: void 0 }, jS = ["value"], WS = { class: "form-row" }, GS = { class: "form-group" }, YS = {
  class: "form-label",
  for: "task-start-date"
}, $S = {
  key: 0,
  class: "error-text"
}, zS = { class: "form-group" }, XS = {
  class: "form-label",
  for: "task-end-date"
}, JS = {
  key: 0,
  class: "error-text"
}, ZS = { class: "form-row" }, eU = { class: "form-group" }, tU = {
  class: "form-label",
  for: "task-estimated-hours"
}, AU = { class: "form-group" }, rU = {
  class: "form-label",
  for: "task-actual-hours"
}, nU = { class: "form-group" }, aU = {
  class: "form-label",
  for: "task-progress"
}, iU = { class: "progress-container" }, sU = { class: "progress-input-group" }, oU = { class: "form-group" }, lU = {
  class: "form-label",
  for: "task-description"
}, uU = ["placeholder"], cU = { class: "drawer-footer" }, fU = { class: "footer-left" }, hU = ["disabled"], dU = {
  key: 0,
  class: "loading-spinner"
}, gU = { class: "footer-right" }, pU = ["disabled"], vU = {
  key: 0,
  class: "loading-spinner"
}, mU = /* @__PURE__ */ dn({
  __name: "TaskDrawer",
  props: {
    visible: { type: Boolean, default: !1 },
    task: { default: null },
    isEdit: { type: Boolean, default: !1 },
    onDelete: { type: Function, default: void 0 },
    assigneeOptions: { default: () => [
      { value: "zhangsan", label: "张三" },
      { value: "lisi", label: "李四" },
      { value: "wangwu", label: "王五" },
      { value: "zhaoliu", label: "赵六" },
      { value: "qianqi", label: "钱七" }
    ] }
  },
  emits: ["update:visible", "submit", "close", "delete", "start-timer", "stop-timer"],
  setup(r, { emit: t }) {
    const e = r, A = t, { t: n } = Ma(), { showMessage: a } = Ky(), s = Te(!1), i = Te(e.visible), o = Te(!1), l = Te(0), u = Te(null), h = lt(() => {
      var me;
      return (me = e.task) == null ? void 0 : me.isTimerRunning;
    }), g = lt(() => {
      var me;
      return (me = e.task) == null ? void 0 : me.timerStartTime;
    }), c = lt(() => {
      var me;
      return ((me = e.task) == null ? void 0 : me.timerElapsedTime) || 0;
    }), p = lt(() => {
      const me = Math.floor(l.value / 1e3), ve = Math.floor(me / 3600), xe = Math.floor(me % 3600 / 60), Qe = me % 60;
      return `${String(ve).padStart(2, "0")}:${String(xe).padStart(2, "0")}:${String(Qe).padStart(2, "0")}`;
    }), m = () => {
      h.value && g.value ? l.value = Date.now() - g.value + c.value : l.value = c.value;
    };
    EA(
      () => {
        var me, ve, xe;
        return [(me = e.task) == null ? void 0 : me.isTimerRunning, (ve = e.task) == null ? void 0 : ve.timerStartTime, (xe = e.task) == null ? void 0 : xe.timerElapsedTime];
      },
      () => {
        m();
      }
    );
    const y = Te(!1);
    EA(
      () => {
        var me;
        return (me = e.task) == null ? void 0 : me.isTimerRunning;
      },
      (me) => {
        y.value = !!me, !me && u.value && (clearInterval(u.value), u.value = null);
      },
      { immediate: !0 }
    ), EA(
      [y, g, c],
      () => {
        u.value && (clearInterval(u.value), u.value = null), y.value && g.value ? (m(), u.value = window.setInterval(m, 1e3)) : m();
      },
      { immediate: !0 }
    ), tn(() => {
      u.value && clearInterval(u.value);
    });
    const w = lt(() => {
      var me;
      return ((me = e.task) == null ? void 0 : me.type) === "story" ? "yes-no-cancel" : "confirm-cancel";
    }), E = lt(() => {
      var me, ve, xe;
      return ((me = e.task) == null ? void 0 : me.type) === "story" ? n.value.confirmDeleteStory.replace("{name}", ((ve = e.task) == null ? void 0 : ve.name) || "") : n.value.confirmDeleteTask.replace("{name}", ((xe = e.task) == null ? void 0 : xe.name) || "");
    }), C = lc({
      id: 0,
      // 默认值,创建时会被重新分配
      name: "",
      type: "task",
      assignee: "",
      startDate: "",
      endDate: "",
      predecessor: [],
      estimatedHours: 0,
      actualHours: 0,
      progress: 0,
      description: "",
      parentId: void 0,
      // 上级任务ID
      isTimerRunning: !1,
      // 是否正在计时
      timerStartTime: void 0,
      // 计时器开始时间
      timerEndTime: void 0,
      // 计时器结束时间
      timerElapsedTime: 0,
      // 计时器已用时间
      children: void 0
      // 子任务列表
    }), F = Te([]), H = lt(() => F.value.filter(
      (me) => {
        var ve;
        return me.id !== ((ve = e.task) == null ? void 0 : ve.id) && // 排除当前任务自己
        (me.type === "story" || me.type === "task");
      }
      // 只显示story和task类型
    ).map((me) => ({
      ...me,
      displayName: `${me.name} (${q(me.type || "task")})`
    }))), q = (me) => {
      var ve;
      return ((ve = n.value.taskTypeMap) == null ? void 0 : ve[me]) || me;
    }, N = lt(() => ({
      "--progress-percent": `${C.progress || 0}%`
    })), M = Te("0"), k = (me) => {
      const ve = me.target;
      let xe = ve.value;
      xe = xe.replace(/[^\d]/g, ""), ve.value = xe, M.value = xe;
    }, O = () => {
      const me = M.value;
      let ve = parseInt(me) || 0;
      ve < 0 || isNaN(ve) ? ve = 0 : ve > 100 && (ve = 100), C.progress = ve, M.value = ve.toString();
    }, S = (me) => {
      const ve = me.target;
      let xe = parseFloat(ve.value);
      isNaN(xe) || xe < 0 ? xe = 0 : xe > 99999 && (xe = 99999), C.estimatedHours = Math.round(xe * 100) / 100;
    }, U = (me) => {
      const ve = me.target;
      let xe = parseFloat(ve.value);
      isNaN(xe) || xe < 0 ? xe = 0 : xe > 99999 && (xe = 99999), C.actualHours = Math.round(xe * 100) / 100;
    }, W = (me) => {
      const ve = me.target;
      setTimeout(() => {
        ve.select();
      }, 0);
    }, I = (me) => {
      const ve = me.key, xe = [
        "Backspace",
        "Delete",
        "Tab",
        "Escape",
        "Enter",
        "ArrowLeft",
        "ArrowRight",
        "ArrowUp",
        "ArrowDown",
        "Home",
        "End",
        "Control",
        "Meta",
        "Alt",
        "Shift"
      ], Qe = /^\d$/.test(ve), _e = xe.includes(ve);
      me.ctrlKey || me.metaKey || !Qe && !_e && me.preventDefault();
    }, le = (me, ve) => {
      if (!me) return "";
      if (typeof me == "string" && /^\d{4}-\d{2}-\d{2}$/.test(me.trim())) {
        if (ve === "start")
          return `${me} 00:00`;
        if (ve === "end") {
          const xe = new Date(me);
          xe.setDate(xe.getDate() + 1);
          const Qe = xe.getFullYear(), _e = String(xe.getMonth() + 1).padStart(2, "0"), Pe = String(xe.getDate()).padStart(2, "0");
          return `${Qe}-${_e}-${Pe} 00:00`;
        }
      }
      return me;
    }, ue = lc({
      name: "",
      type: "",
      startDate: "",
      endDate: ""
    });
    EA(
      () => e.visible,
      (me) => {
        if (i.value = me, me) {
          if (e.task && e.isEdit) {
            Z();
            const ve = { ...e.task };
            ve.startDate = le(ve.startDate, "start"), ve.endDate = le(ve.endDate, "end"), rr(() => {
              Object.assign(C, ve);
            });
          } else e.task && !e.isEdit ? (Z(), C.parentId = e.task.parentId ?? void 0, C.predecessor = e.task.predecessor ?? []) : Z();
          window.dispatchEvent(new CustomEvent("request-task-list"));
        }
      }
    ), EA(i, (me) => {
      A("update:visible", me);
    }), EA(
      () => e.task,
      (me) => {
        me && !e.isEdit && (C.parentId = me.parentId ?? void 0);
      },
      { immediate: !0 }
    );
    const Z = () => {
      Object.assign(C, {
        name: "",
        type: "task",
        assignee: "",
        startDate: "",
        endDate: "",
        predecessor: [],
        estimatedHours: 0,
        actualHours: 0,
        progress: 0,
        description: "",
        parentId: void 0,
        isTimerRunning: !1,
        timerStartTime: void 0,
        timerEndTime: void 0,
        timerElapsedTime: 0,
        children: void 0
      }), Object.keys(ue).forEach((me) => {
        ue[me] = "";
      });
    }, ee = () => {
      var ve;
      let me = !0;
      return Object.keys(ue).forEach((xe) => {
        ue[xe] = "";
      }), (ve = C.name) != null && ve.trim() ? C.name.length > 50 && (ue.name = n.value.taskNameTooLong, me = !1) : (ue.name = n.value.taskNameRequired, me = !1), C.type || (ue.type = n.value.taskTypeRequired, me = !1), C.startDate || (ue.startDate = n.value.startDateRequired, me = !1), C.endDate ? C.startDate && new Date(C.endDate) < new Date(C.startDate) && (ue.endDate = n.value.endDateInvalid, me = !1) : (ue.endDate = n.value.endDateRequired, me = !1), me;
    }, X = () => {
      i.value = !1, A("close");
    }, Ae = () => {
      X();
    }, oe = async () => {
      if (ee())
        try {
          s.value = !0;
          const me = {
            ...C,
            id: e.isEdit && e.task ? e.task.id : Date.now()
          };
          A("submit", me), X();
        } catch {
        } finally {
          s.value = !1;
        }
    }, x = () => {
      o.value = !0;
    }, L = (me) => {
      let ve = "";
      me && typeof me == "object" && "message" in me && typeof me.message == "string" ? ve = me.message : ve = String(me), a(ve, "error", { closable: !0 });
    }, j = () => {
      if (o.value = !1, e.task && e.isEdit)
        try {
          s.value = !0, A("delete", e.task), X();
        } catch (me) {
          L(me);
        } finally {
          s.value = !1;
        }
    }, $ = () => {
      o.value = !1;
    }, re = () => {
      if (o.value = !1, e.task && e.isEdit)
        try {
          s.value = !0, A("delete", e.task, !0), X();
        } catch (me) {
          L(me);
        } finally {
          s.value = !1;
        }
    }, pe = () => {
      if (o.value = !1, e.task && e.isEdit)
        try {
          s.value = !0, A("delete", e.task, !1), X();
        } catch (me) {
          L(me);
        } finally {
          s.value = !1;
        }
    }, de = (me) => {
      F.value = me.detail || [];
    };
    En(() => {
      window.addEventListener("task-list-updated", de), window.dispatchEvent(new CustomEvent("request-task-list"));
    }), tn(() => {
      window.removeEventListener("task-list-updated", de);
    }), EA(
      () => C.progress,
      (me) => {
        M.value = (me || 0).toString();
      },
      { immediate: !0 }
    ), EA(
      () => e.visible,
      (me) => {
        me && e.task && e.task.type !== "story" && (l.value = e.task.timerElapsedTime || 0, e.task.isTimerRunning || u.value && (clearInterval(u.value), u.value = null));
      },
      { immediate: !0 }
    );
    const ce = (me) => {
      const ve = Date.now();
      e.task && typeof e.task == "object" && (Object.assign(e.task, {
        timerStartTime: ve,
        isTimerRunning: !0,
        timerElapsedTime: 0,
        // 每次从0秒开始
        timerStartDesc: me || ""
      }), A("start-timer", e.task)), l.value = 0, y.value = !0, m(), u.value && (clearInterval(u.value), u.value = null), window.dispatchEvent(new CustomEvent("start-timer", { detail: e.task }));
    }, Se = () => {
      e.task && typeof e.task == "object" && A("stop-timer", e.task), y.value = !1, u.value && (clearInterval(u.value), u.value = null), m(), window.dispatchEvent(new CustomEvent("stop-timer", { detail: e.task }));
    }, qe = Te(!1), rt = Te("");
    function at() {
      var me;
      rt.value = ((me = e.task) == null ? void 0 : me.name) || "", qe.value = !0;
    }
    function dt() {
      qe.value = !1;
    }
    function D(me) {
      qe.value = !1, ce(me);
    }
    const Ie = (me) => {
      var Qe;
      const ve = me.target.value, xe = (Qe = e.assigneeOptions) == null ? void 0 : Qe.find((_e) => _e.value === ve);
      xe && (C.assigneeName = xe.label);
    };
    return (me, ve) => {
      var xe, Qe, _e, Pe;
      return ae(), fe(Ut, null, [
        i.value ? (ae(), fe("div", {
          key: 0,
          class: "drawer-overlay",
          onClick: Ae
        }, [
          Y("div", {
            class: "drawer-container",
            onClick: ve[12] || (ve[12] = NA(() => {
            }, ["stop"]))
          }, [
            Y("div", yS, [
              Y("h3", bS, Ge(me.isEdit ? vt(n).editTask : vt(n).newTask), 1),
              ((xe = e.task) == null ? void 0 : xe.type) !== "story" && me.isEdit ? (ae(), fe("div", CS, [
                y.value ? (ae(), fe("button", {
                  key: 1,
                  class: "timer-btn stop minimal",
                  title: "停止计时",
                  style: { width: "24px", height: "24px", background: "#f44336", border: "none", padding: "0", margin: "0", "box-shadow": "none", cursor: "pointer", "border-radius": "50%", display: "flex", "align-items": "center", "justify-content": "center", transition: "background 0.2s" },
                  onClick: NA(Se, ["stop"])
                }, ve[14] || (ve[14] = [
                  Y("svg", {
                    width: "24",
                    height: "24",
                    viewBox: "0 0 24 24",
                    fill: "none"
                  }, [
                    Y("circle", {
                      cx: "12",
                      cy: "12",
                      r: "11",
                      stroke: "#f44336",
                      "stroke-width": "2",
                      fill: "#f44336"
                    }),
                    Y("rect", {
                      x: "7",
                      y: "7",
                      width: "10",
                      height: "10",
                      fill: "#fff",
                      rx: "1.5"
                    })
                  ], -1)
                ]))) : (ae(), fe("button", {
                  key: 0,
                  class: "timer-btn start minimal",
                  title: "开始计时",
                  style: { width: "24px", height: "24px", background: "#4caf50", border: "none", padding: "0", margin: "0", "box-shadow": "none", cursor: "pointer", "border-radius": "50%", display: "flex", "align-items": "center", "justify-content": "center", transition: "background 0.2s" },
                  onClick: NA(at, ["stop"])
                }, [
                  (ae(), fe("svg", ES, ve[13] || (ve[13] = [
                    Y("circle", {
                      cx: "12",
                      cy: "12",
                      r: "11",
                      stroke: "#4caf50",
                      "stroke-width": "2",
                      fill: "#4caf50"
                    }, null, -1),
                    Y("polygon", {
                      points: "9,7 18,12 9,17",
                      fill: "#fff"
                    }, null, -1)
                  ])))
                ])),
                y.value ? (ae(), fe("span", {
                  key: 2,
                  class: iA(["timer-badge", { "timer-active": y.value }]),
                  style: { "margin-left": "8px", "font-size": "13px", "font-weight": "700", padding: "2px 10px", "border-radius": "10px", background: "#fffbe6", color: "#e6a23c", "box-shadow": "0 0 0 1px #ffe58f", display: "inline-flex", "align-items": "center", "min-width": "80px", "justify-content": "center" }
                }, [
                  y.value ? (ae(), fe("span", FS)) : Ct("", !0),
                  kA(" " + Ge(p.value), 1)
                ], 2)) : Ct("", !0)
              ])) : Ct("", !0),
              ve[16] || (ve[16] = Y("div", { style: { flex: "1" } }, null, -1)),
              Y("button", {
                class: "drawer-close-btn",
                type: "button",
                onClick: X
              }, [
                (ae(), fe("svg", xS, ve[15] || (ve[15] = [
                  Y("line", {
                    x1: "18",
                    y1: "6",
                    x2: "6",
                    y2: "18"
                  }, null, -1),
                  Y("line", {
                    x1: "6",
                    y1: "6",
                    x2: "18",
                    y2: "18"
                  }, null, -1)
                ])))
              ])
            ]),
            Y("div", SS, [
              Y("form", {
                class: "task-form",
                onSubmit: NA(oe, ["prevent"])
              }, [
                Y("div", US, [
                  Y("label", TS, [
                    kA(Ge(vt(n).taskName) + " ", 1),
                    ve[17] || (ve[17] = Y("span", { class: "required" }, "*", -1))
                  ]),
                  Ba(Y("input", {
                    id: "task-name",
                    "onUpdate:modelValue": ve[0] || (ve[0] = (je) => C.name = je),
                    type: "text",
                    class: iA(["form-input", { error: ue.name }]),
                    placeholder: vt(n).taskNamePlaceholder
                  }, null, 10, QS), [
                    [Di, C.name]
                  ]),
                  ue.name ? (ae(), fe("span", DS, Ge(ue.name), 1)) : Ct("", !0)
                ]),
                Y("div", kS, [
                  Y("label", LS, [
                    kA(Ge(vt(n).taskType) + " ", 1),
                    ve[18] || (ve[18] = Y("span", { class: "required" }, "*", -1))
                  ]),
                  Ba(Y("select", {
                    id: "task-type",
                    "onUpdate:modelValue": ve[1] || (ve[1] = (je) => C.type = je),
                    class: iA(["form-select", { error: ue.type }])
                  }, [
                    Y("option", IS, Ge(vt(n).taskTypeMap.story), 1),
                    Y("option", _S, Ge(vt(n).taskTypeMap.task), 1),
                    Y("option", NS, Ge(vt(n).taskTypeMap.bug), 1)
                  ], 2), [
                    [Wu, C.type]
                  ]),
                  ue.type ? (ae(), fe("span", MS, Ge(ue.type), 1)) : Ct("", !0)
                ]),
                Y("div", OS, [
                  Y("label", RS, Ge(vt(n).assignee), 1),
                  Ba(Y("select", {
                    id: "task-assignee",
                    "onUpdate:modelValue": ve[2] || (ve[2] = (je) => C.assignee = je),
                    class: "form-select",
                    onChange: Ie
                  }, [
                    Y("option", HS, Ge(vt(n).selectAssignee), 1),
                    (ae(!0), fe(Ut, null, uA(e.assigneeOptions, (je) => (ae(), fe("option", {
                      key: je.key ?? je.value,
                      value: je.value
                    }, Ge(je.label), 9, PS))), 128))
                  ], 544), [
                    [Wu, C.assignee]
                  ])
                ]),
                Y("div", KS, [
                  Y("label", VS, Ge(vt(n).parentTask), 1),
                  Ba(Y("select", {
                    id: "task-parent",
                    "onUpdate:modelValue": ve[3] || (ve[3] = (je) => C.parentId = je),
                    class: "form-select"
                  }, [
                    Y("option", qS, Ge(vt(n).noParentTask), 1),
                    (ae(!0), fe(Ut, null, uA(H.value, (je) => (ae(), fe("option", {
                      key: je.id,
                      value: je.id
                    }, Ge(je.displayName), 9, jS))), 128))
                  ], 512), [
                    [Wu, C.parentId]
                  ])
                ]),
                Y("div", WS, [
                  Y("div", GS, [
                    Y("label", YS, [
                      kA(Ge(vt(n).startDate) + " ", 1),
                      ve[19] || (ve[19] = Y("span", { class: "required" }, "*", -1))
                    ]),
                    $n(Jg, {
                      id: "task-start-date",
                      modelValue: C.startDate,
                      "onUpdate:modelValue": ve[4] || (ve[4] = (je) => C.startDate = je),
                      type: "datetime",
                      "value-format": "YYYY-MM-DD HH:mm",
                      placeholder: vt(n).startDateRequired,
                      class: iA({ error: ue.startDate })
                    }, null, 8, ["modelValue", "placeholder", "class"]),
                    ue.startDate ? (ae(), fe("span", $S, Ge(ue.startDate), 1)) : Ct("", !0)
                  ]),
                  Y("div", zS, [
                    Y("label", XS, [
                      kA(Ge(vt(n).endDate) + " ", 1),
                      ve[20] || (ve[20] = Y("span", { class: "required" }, "*", -1))
                    ]),
                    $n(Jg, {
                      id: "task-end-date",
                      modelValue: C.endDate,
                      "onUpdate:modelValue": ve[5] || (ve[5] = (je) => C.endDate = je),
                      type: "datetime",
                      "value-format": "YYYY-MM-DD HH:mm",
                      placeholder: vt(n).endDateRequired,
                      class: iA({ error: ue.endDate })
                    }, null, 8, ["modelValue", "placeholder", "class"]),
                    ue.endDate ? (ae(), fe("span", JS, Ge(ue.endDate), 1)) : Ct("", !0)
                  ])
                ]),
                $n(BS, {
                  modelValue: C.predecessor,
                  "onUpdate:modelValue": ve[6] || (ve[6] = (je) => C.predecessor = je),
                  tasks: F.value,
                  "current-task-id": (Qe = e.task) == null ? void 0 : Qe.id,
                  label: vt(n).predecessor,
                  placeholder: vt(n).predecessorPlaceholder
                }, null, 8, ["modelValue", "tasks", "current-task-id", "label", "placeholder"]),
                Y("div", ZS, [
                  Y("div", eU, [
                    Y("label", tU, Ge(vt(n).estimatedHours), 1),
                    Ba(Y("input", {
                      id: "task-estimated-hours",
                      "onUpdate:modelValue": ve[7] || (ve[7] = (je) => C.estimatedHours = je),
                      type: "number",
                      class: "form-input",
                      placeholder: "0.00",
                      min: "0",
                      max: "99999",
                      step: "0.01",
                      onInput: S
                    }, null, 544), [
                      [Di, C.estimatedHours]
                    ])
                  ]),
                  Y("div", AU, [
                    Y("label", rU, Ge(vt(n).actualHours), 1),
                    Ba(Y("input", {
                      id: "task-actual-hours",
                      "onUpdate:modelValue": ve[8] || (ve[8] = (je) => C.actualHours = je),
                      type: "number",
                      class: "form-input",
                      placeholder: "0.00",
                      min: "0",
                      max: "99999",
                      step: "0.01",
                      onInput: U
                    }, null, 544), [
                      [Di, C.actualHours]
                    ])
                  ])
                ]),
                Y("div", nU, [
                  Y("label", aU, Ge(vt(n).progress), 1),
                  Y("div", iU, [
                    Ba(Y("input", {
                      id: "task-progress",
                      "onUpdate:modelValue": ve[9] || (ve[9] = (je) => C.progress = je),
                      type: "range",
                      class: "progress-slider",
                      style: rA(N.value),
                      min: "0",
                      max: "100",
                      step: "5"
                    }, null, 4), [
                      [
                        Di,
                        C.progress,
                        void 0,
                        { number: !0 }
                      ]
                    ]),
                    Y("div", sU, [
                      Ba(Y("input", {
                        "onUpdate:modelValue": ve[10] || (ve[10] = (je) => M.value = je),
                        type: "text",
                        class: "progress-input",
                        placeholder: "0",
                        maxlength: "3",
                        onBlur: O,
                        onKeyup: tE(O, ["enter"]),
                        onInput: k,
                        onFocus: W,
                        onKeydown: I
                      }, null, 544), [
                        [Di, M.value]
                      ]),
                      ve[21] || (ve[21] = Y("span", { class: "progress-unit" }, "%", -1))
                    ])
                  ])
                ]),
                Y("div", oU, [
                  Y("label", lU, Ge(vt(n).description), 1),
                  Ba(Y("textarea", {
                    id: "task-description",
                    "onUpdate:modelValue": ve[11] || (ve[11] = (je) => C.description = je),
                    class: "form-textarea",
                    placeholder: vt(n).descriptionPlaceholder,
                    rows: "3"
                  }, null, 8, uU), [
                    [Di, C.description]
                  ])
                ])
              ], 32)
            ]),
            Y("div", cU, [
              Y("div", fU, [
                me.isEdit && me.task ? (ae(), fe("button", {
                  key: 0,
                  type: "button",
                  class: "gantt-btn gantt-btn-danger",
                  disabled: s.value,
                  onClick: x
                }, [
                  s.value ? (ae(), fe("span", dU)) : Ct("", !0),
                  kA(" " + Ge(vt(n).delete), 1)
                ], 8, hU)) : Ct("", !0),
                $n($p, {
                  visible: o.value,
                  title: vt(n).delete,
                  type: w.value,
                  message: E.value,
                  "confirm-text": vt(n).confirm,
                  "cancel-text": vt(n).cancel,
                  "yes-text": vt(n).storyDeleteYes,
                  "no-text": vt(n).storyDeleteNo,
                  onConfirm: j,
                  onYes: re,
                  onNo: pe,
                  onCancel: $
                }, null, 8, ["visible", "title", "type", "message", "confirm-text", "cancel-text", "yes-text", "no-text"])
              ]),
              Y("div", gU, [
                Y("button", {
                  type: "button",
                  class: "gantt-btn gantt-btn-default",
                  onClick: X
                }, Ge(vt(n).cancel), 1),
                Y("button", {
                  type: "button",
                  class: "gantt-btn gantt-btn-primary",
                  disabled: s.value,
                  onClick: oe
                }, [
                  s.value ? (ae(), fe("span", vU)) : Ct("", !0),
                  kA(" " + Ge(me.isEdit ? vt(n).update : vt(n).create), 1)
                ], 8, pU)
              ])
            ])
          ])
        ])) : Ct("", !0),
        qe.value ? (ae(), wr(Ry, {
          key: 1,
          visible: qe.value,
          title: "确认开始计时",
          message: `即将为任务${(_e = e.task) == null ? void 0 : _e.name}计时,若有特殊说明请完善下面的描述`,
          "default-desc": ((Pe = e.task) == null ? void 0 : Pe.name) || "",
          onConfirm: D,
          onCancel: dt
        }, null, 8, ["visible", "message", "default-desc"])) : Ct("", !0)
      ], 64);
    };
  }
}), wU = /* @__PURE__ */ xn(mU, [["__scopeId", "data-v-5d6778b8"]]), BU = { class: "milestone-dialog-header" }, yU = { class: "milestone-dialog-title" }, bU = ["title"], CU = { class: "milestone-dialog-content" }, EU = { class: "milestone-form-row" }, FU = { class: "milestone-form-item milestone-form-item-full" }, xU = {
  class: "milestone-form-label required",
  for: "milestone-name"
}, SU = ["placeholder"], UU = {
  key: 0,
  class: "milestone-form-error"
}, TU = { class: "milestone-form-row" }, QU = { class: "milestone-form-item" }, DU = {
  class: "milestone-form-label required",
  for: "milestone-date"
}, kU = {
  key: 0,
  class: "milestone-form-error"
}, LU = { class: "milestone-form-item" }, IU = {
  class: "milestone-form-label",
  for: "milestone-icon"
}, _U = ["aria-expanded"], NU = { class: "selected-icon" }, MU = {
  key: 0,
  viewBox: "0 0 24 24",
  fill: "none",
  stroke: "currentColor",
  "stroke-width": "2"
}, OU = {
  key: 1,
  class: "rocket-emoji-mini"
}, RU = {
  key: 0,
  class: "milestone-icon-options"
}, HU = { class: "milestone-form-row" }, PU = { class: "milestone-form-item milestone-form-item-full" }, KU = {
  class: "milestone-form-label",
  for: "milestone-description"
}, VU = { class: "textarea-wrapper" }, qU = ["placeholder"], jU = { class: "textarea-footer" }, WU = { class: "char-count" }, GU = { class: "milestone-dialog-footer" }, YU = { class: "milestone-dialog-footer-left" }, $U = { class: "milestone-dialog-footer-right" }, zU = ["disabled"], XU = /* @__PURE__ */ dn({
  __name: "MilestoneDialog",
  props: {
    visible: { type: Boolean },
    milestone: {}
  },
  emits: ["update:visible", "close", "save", "delete"],
  setup(r, { emit: t }) {
    const e = r, A = t, n = lc({
      id: void 0,
      name: "",
      startDate: "",
      assignee: "",
      type: "milestone",
      icon: "diamond",
      description: ""
    }), a = lc({
      name: "",
      startDate: ""
    }), s = Te(!1), i = Te(!1), o = Te(null), l = () => {
      const q = o.value;
      q && (q.style.height = "auto", q.style.height = `${Math.min(q.scrollHeight, 120)}px`);
    };
    EA(
      () => e.milestone,
      (q) => {
        q ? Object.assign(n, {
          id: q.id,
          name: q.name || "",
          startDate: q.startDate || "",
          assignee: q.assignee || "",
          type: q.type || "milestone",
          icon: q.icon || "diamond",
          description: q.description || ""
        }) : Object.assign(n, {
          id: void 0,
          name: "",
          startDate: "",
          assignee: "",
          type: "milestone",
          icon: "diamond",
          description: ""
        }), a.name = "", a.startDate = "";
      },
      { immediate: !0 }
    ), EA(
      () => e.visible,
      (q) => {
        q && !e.milestone && (Object.assign(n, {
          id: void 0,
          name: "",
          startDate: "",
          assignee: "",
          type: "milestone",
          icon: "diamond",
          description: ""
        }), a.name = "", a.startDate = "");
      }
    );
    const u = () => {
      a.name = "", a.startDate = "";
      let q = !0;
      return n.name.trim() || (a.name = H("milestoneNameRequired"), q = !1), n.startDate || (a.startDate = H("milestoneDateRequired"), q = !1), q;
    }, h = lt(() => n.name.trim() && n.startDate), g = (q) => {
      n.icon = q, s.value = !1;
    }, c = () => {
      if (u()) {
        const q = {
          ...n,
          endDate: n.startDate,
          id: n.id
          // 确保id不为undefined
        };
        A("save", q), E();
      }
    }, p = () => {
      n.id && (i.value = !0);
    }, m = () => {
      n.id && (A("delete", n.id), i.value = !1, E());
    }, y = () => {
      i.value = !1;
    }, w = lt(() => e.milestone && e.milestone.id), E = () => {
      s.value = !1, A("update:visible", !1), A("close");
    }, C = () => {
      E();
    }, { t: F } = Ma(), H = (q) => F.value[q] || q;
    return (q, N) => {
      var M;
      return q.visible ? (ae(), fe("div", {
        key: 0,
        class: "milestone-dialog-overlay",
        onClick: C
      }, [
        Y("div", {
          class: "milestone-dialog",
          onClick: N[6] || (N[6] = NA(() => {
          }, ["stop"]))
        }, [
          Y("div", BU, [
            Y("h3", yU, [
              N[7] || (N[7] = Y("svg", {
                class: "milestone-icon",
                viewBox: "0 0 24 24",
                fill: "none",
                stroke: "currentColor",
                "stroke-width": "2"
              }, [
                Y("g", { transform: "rotate(45 12 12)" }, [
                  Y("rect", {
                    x: "4",
                    y: "4",
                    width: "16",
                    height: "16",
                    rx: "4",
                    ry: "4",
                    fill: "currentColor",
                    opacity: "0.1"
                  }),
                  Y("rect", {
                    x: "4",
                    y: "4",
                    width: "16",
                    height: "16",
                    rx: "4",
                    ry: "4",
                    stroke: "currentColor",
                    fill: "none"
                  })
                ])
              ], -1)),
              kA(" " + Ge(w.value ? vt(F).editMilestone : vt(F).newMilestone), 1)
            ]),
            Y("button", {
              class: "milestone-dialog-close",
              title: H("close"),
              onClick: E
            }, "×", 8, bU)
          ]),
          Y("div", CU, [
            Y("form", {
              class: "milestone-form",
              onSubmit: NA(c, ["prevent"])
            }, [
              Y("div", EU, [
                Y("div", FU, [
                  Y("label", xU, Ge(H("milestoneName")), 1),
                  Ba(Y("input", {
                    id: "milestone-name",
                    "onUpdate:modelValue": N[0] || (N[0] = (k) => n.name = k),
                    type: "text",
                    class: iA(["milestone-form-input", { error: a.name }]),
                    placeholder: H("enterMilestoneName"),
                    required: ""
                  }, null, 10, SU), [
                    [Di, n.name]
                  ]),
                  a.name ? (ae(), fe("span", UU, Ge(a.name), 1)) : Ct("", !0)
                ])
              ]),
              Y("div", TU, [
                Y("div", QU, [
                  Y("label", DU, Ge(H("milestoneDate")), 1),
                  $n(Jg, {
                    id: "milestone-date",
                    modelValue: n.startDate,
                    "onUpdate:modelValue": N[1] || (N[1] = (k) => n.startDate = k),
                    type: "date",
                    "value-format": "YYYY-MM-DD",
                    placeholder: "请选择里程碑日期",
                    class: iA({ error: a.startDate })
                  }, null, 8, ["modelValue", "class"]),
                  a.startDate ? (ae(), fe("span", kU, Ge(a.startDate), 1)) : Ct("", !0)
                ]),
                Y("div", LU, [
                  Y("label", IU, Ge(H("milestoneIcon")), 1),
                  Y("div", {
                    class: iA(["milestone-icon-dropdown", { active: s.value }])
                  }, [
                    Y("button", {
                      id: "milestone-icon",
                      type: "button",
                      class: "milestone-icon-trigger",
                      "aria-expanded": s.value,
                      "aria-haspopup": "listbox",
                      onClick: N[2] || (N[2] = (k) => s.value = !s.value)
                    }, [
                      Y("div", NU, [
                        n.icon === "diamond" ? (ae(), fe("svg", MU, N[8] || (N[8] = [
                          Y("g", { transform: "rotate(45 12 12)" }, [
                            Y("rect", {
                              x: "6",
                              y: "6",
                              width: "12",
                              height: "12",
                              rx: "3",
                              ry: "3",
                              fill: "currentColor"
                            })
                          ], -1)
                        ]))) : n.icon === "rocket" ? (ae(), fe("div", OU, "🚀")) : Ct("", !0),
                        Y("span", null, Ge(H(n.icon || "diamond")), 1)
                      ]),
                      N[9] || (N[9] = Y("svg", {
                        class: "dropdown-arrow",
                        viewBox: "0 0 24 24",
                        fill: "none",
                        stroke: "currentColor",
                        "stroke-width": "2"
                      }, [
                        Y("polyline", { points: "6,9 12,15 18,9" })
                      ], -1))
                    ], 8, _U),
                    s.value ? (ae(), fe("div", RU, [
                      Y("div", {
                        class: iA(["icon-option", { selected: n.icon === "diamond" }]),
                        onClick: N[3] || (N[3] = (k) => g("diamond"))
                      }, [
                        N[10] || (N[10] = Y("svg", {
                          viewBox: "0 0 24 24",
                          fill: "none",
                          stroke: "currentColor",
                          "stroke-width": "2"
                        }, [
                          Y("g", { transform: "rotate(45 12 12)" }, [
                            Y("rect", {
                              x: "6",
                              y: "6",
                              width: "12",
                              height: "12",
                              rx: "3",
                              ry: "3",
                              fill: "currentColor"
                            })
                          ])
                        ], -1)),
                        Y("span", null, Ge(H("diamond")), 1)
                      ], 2),
                      Y("div", {
                        class: iA(["icon-option", { selected: n.icon === "rocket" }]),
                        onClick: N[4] || (N[4] = (k) => g("rocket"))
                      }, [
                        N[11] || (N[11] = Y("div", { class: "rocket-emoji-option" }, "🚀", -1)),
                        Y("span", null, Ge(H("rocket")), 1)
                      ], 2)
                    ])) : Ct("", !0)
                  ], 2)
                ])
              ]),
              Y("div", HU, [
                Y("div", PU, [
                  Y("label", KU, Ge(H("description")), 1),
                  Y("div", VU, [
                    Ba(Y("textarea", {
                      id: "milestone-description",
                      ref_key: "descriptionTextarea",
                      ref: o,
                      "onUpdate:modelValue": N[5] || (N[5] = (k) => n.description = k),
                      class: "milestone-form-textarea",
                      placeholder: H("enterDescription"),
                      rows: "4",
                      maxlength: "500",
                      onInput: l
                    }, null, 40, qU), [
                      [Di, n.description]
                    ]),
                    Y("div", jU, [
                      Y("span", WU, Ge(((M = n.description) == null ? void 0 : M.length) || 0) + "/500", 1)
                    ])
                  ])
                ])
              ])
            ], 32)
          ]),
          Y("div", GU, [
            Y("div", YU, [
              w.value ? (ae(), fe("button", {
                key: 0,
                type: "button",
                class: "gantt-btn gantt-btn-danger",
                onClick: p
              }, Ge(vt(F).delete), 1)) : Ct("", !0)
            ]),
            Y("div", $U, [
              Y("button", {
                type: "button",
                class: "gantt-btn gantt-btn-default",
                onClick: E
              }, Ge(vt(F).cancel), 1),
              Y("button", {
                type: "button",
                class: "gantt-btn gantt-btn-primary",
                disabled: !h.value,
                onClick: c
              }, Ge(vt(F).confirm), 9, zU)
            ])
          ])
        ]),
        $n($p, {
          visible: i.value,
          title: vt(F).delete,
          message: vt(F).confirmDelete,
          "confirm-text": vt(F).confirm,
          "cancel-text": vt(F).cancel,
          onConfirm: m,
          onCancel: y
        }, null, 8, ["visible", "title", "message", "confirm-text", "cancel-text"])
      ])) : Ct("", !0);
    };
  }
}), JU = /* @__PURE__ */ xn(XU, [["__scopeId", "data-v-da9a3d65"]]);
function Zg(r, t, e = null) {
  for (const A of r) {
    if (A.id === t)
      return e;
    if (A.children && A.children.length > 0) {
      const n = Zg(A.children, t, A);
      if (n !== null) return n;
    }
  }
  return null;
}
function Vy(r, t) {
  for (let e = 0; e < r.length; e++) {
    if (r[e].id === t)
      return r.splice(e, 1)[0];
    if (r[e].children && r[e].children.length > 0) {
      const A = Vy(r[e].children, t);
      if (A) return A;
    }
  }
  return null;
}
function qy(r, t, e, A) {
  for (let n = 0; n < r.length; n++) {
    if (r[n].id === t)
      return A === "after" || r[n].type === "milestone-group" ? (e.parentId = r[n].parentId, r.splice(n + 1, 0, e)) : (e.parentId = t, r[n].children || (r[n].children = []), r[n].children.unshift(e)), !0;
    if (r[n].children && r[n].children.length > 0 && qy(r[n].children, t, e, A))
      return !0;
  }
  return !1;
}
function ZU(r, t, e, A) {
  const n = Zg(r, t), a = Vy(r, t);
  if (!a)
    return null;
  if (!qy(r, e, a, A))
    return n && n.children ? n.children.push(a) : r.push(a), null;
  const i = Zg(r, t);
  return {
    movedTask: a,
    oldParent: n,
    newParent: i
  };
}
function jA(r) {
  "@babel/helpers - typeof";
  return jA = typeof Symbol == "function" && typeof Symbol.iterator == "symbol" ? function(t) {
    return typeof t;
  } : function(t) {
    return t && typeof Symbol == "function" && t.constructor === Symbol && t !== Symbol.prototype ? "symbol" : typeof t;
  }, jA(r);
}
var Xa = Uint8Array, ya = Uint16Array, zp = Int32Array, Xp = new Xa([
  0,
  0,
  0,
  0,
  0,
  0,
  0,
  0,
  1,
  1,
  1,
  1,
  2,
  2,
  2,
  2,
  3,
  3,
  3,
  3,
  4,
  4,
  4,
  4,
  5,
  5,
  5,
  5,
  0,
  /* unused */
  0,
  0,
  /* impossible */
  0
]), Jp = new Xa([
  0,
  0,
  0,
  0,
  1,
  1,
  2,
  2,
  3,
  3,
  4,
  4,
  5,
  5,
  6,
  6,
  7,
  7,
  8,
  8,
  9,
  9,
  10,
  10,
  11,
  11,
  12,
  12,
  13,
  13,
  /* unused */
  0,
  0
]), I0 = new Xa([16, 17, 18, 0, 8, 7, 9, 6, 10, 5, 11, 4, 12, 3, 13, 2, 14, 1, 15]), jy = function(r, t) {
  for (var e = new ya(31), A = 0; A < 31; ++A)
    e[A] = t += 1 << r[A - 1];
  for (var n = new zp(e[30]), A = 1; A < 30; ++A)
    for (var a = e[A]; a < e[A + 1]; ++a)
      n[a] = a - e[A] << 5 | A;
  return { b: e, r: n };
}, Wy = jy(Xp, 2), eT = Wy.b, ep = Wy.r;
eT[28] = 258, ep[258] = 28;
var tT = jy(Jp, 0), _0 = tT.r, tp = new ya(32768);
for (var Br = 0; Br < 32768; ++Br) {
  var As = (Br & 43690) >> 1 | (Br & 21845) << 1;
  As = (As & 52428) >> 2 | (As & 13107) << 2, As = (As & 61680) >> 4 | (As & 3855) << 4, tp[Br] = ((As & 65280) >> 8 | (As & 255) << 8) >> 1;
}
var pl = (function(r, t, e) {
  for (var A = r.length, n = 0, a = new ya(t); n < A; ++n)
    r[n] && ++a[r[n] - 1];
  var s = new ya(t);
  for (n = 1; n < t; ++n)
    s[n] = s[n - 1] + a[n - 1] << 1;
  var i;
  if (e) {
    i = new ya(1 << t);
    var o = 15 - t;
    for (n = 0; n < A; ++n)
      if (r[n])
        for (var l = n << 4 | r[n], u = t - r[n], h = s[r[n] - 1]++ << u, g = h | (1 << u) - 1; h <= g; ++h)
          i[tp[h] >> o] = l;
  } else
    for (i = new ya(A), n = 0; n < A; ++n)
      r[n] && (i[n] = tp[s[r[n] - 1]++] >> 15 - r[n]);
  return i;
}), Ks = new Xa(288);
for (var Br = 0; Br < 144; ++Br)
  Ks[Br] = 8;
for (var Br = 144; Br < 256; ++Br)
  Ks[Br] = 9;
for (var Br = 256; Br < 280; ++Br)
  Ks[Br] = 7;
for (var Br = 280; Br < 288; ++Br)
  Ks[Br] = 8;
var uc = new Xa(32);
for (var Br = 0; Br < 32; ++Br)
  uc[Br] = 5;
var AT = /* @__PURE__ */ pl(Ks, 9, 0), rT = /* @__PURE__ */ pl(uc, 5, 0), Gy = function(r) {
  return (r + 7) / 8 | 0;
}, nT = function(r, t, e) {
  return (e == null || e > r.length) && (e = r.length), new Xa(r.subarray(t, e));
}, Ei = function(r, t, e) {
  e <<= t & 7;
  var A = t / 8 | 0;
  r[A] |= e, r[A + 1] |= e >> 8;
}, zo = function(r, t, e) {
  e <<= t & 7;
  var A = t / 8 | 0;
  r[A] |= e, r[A + 1] |= e >> 8, r[A + 2] |= e >> 16;
}, yf = function(r, t) {
  for (var e = [], A = 0; A < r.length; ++A)
    r[A] && e.push({ s: A, f: r[A] });
  var n = e.length, a = e.slice();
  if (!n)
    return { t: $y, l: 0 };
  if (n == 1) {
    var s = new Xa(e[0].s + 1);
    return s[e[0].s] = 1, { t: s, l: 1 };
  }
  e.sort(function(H, q) {
    return H.f - q.f;
  }), e.push({ s: -1, f: 25001 });
  var i = e[0], o = e[1], l = 0, u = 1, h = 2;
  for (e[0] = { s: -1, f: i.f + o.f, l: i, r: o }; u != n - 1; )
    i = e[e[l].f < e[h].f ? l++ : h++], o = e[l != u && e[l].f < e[h].f ? l++ : h++], e[u++] = { s: -1, f: i.f + o.f, l: i, r: o };
  for (var g = a[0].s, A = 1; A < n; ++A)
    a[A].s > g && (g = a[A].s);
  var c = new ya(g + 1), p = Ap(e[u - 1], c, 0);
  if (p > t) {
    var A = 0, m = 0, y = p - t, w = 1 << y;
    for (a.sort(function(q, N) {
      return c[N.s] - c[q.s] || q.f - N.f;
    }); A < n; ++A) {
      var E = a[A].s;
      if (c[E] > t)
        m += w - (1 << p - c[E]), c[E] = t;
      else
        break;
    }
    for (m >>= y; m > 0; ) {
      var C = a[A].s;
      c[C] < t ? m -= 1 << t - c[C]++ - 1 : ++A;
    }
    for (; A >= 0 && m; --A) {
      var F = a[A].s;
      c[F] == t && (--c[F], ++m);
    }
    p = t;
  }
  return { t: new Xa(c), l: p };
}, Ap = function(r, t, e) {
  return r.s == -1 ? Math.max(Ap(r.l, t, e + 1), Ap(r.r, t, e + 1)) : t[r.s] = e;
}, N0 = function(r) {
  for (var t = r.length; t && !r[--t]; )
    ;
  for (var e = new ya(++t), A = 0, n = r[0], a = 1, s = function(o) {
    e[A++] = o;
  }, i = 1; i <= t; ++i)
    if (r[i] == n && i != t)
      ++a;
    else {
      if (!n && a > 2) {
        for (; a > 138; a -= 138)
          s(32754);
        a > 2 && (s(a > 10 ? a - 11 << 5 | 28690 : a - 3 << 5 | 12305), a = 0);
      } else if (a > 3) {
        for (s(n), --a; a > 6; a -= 6)
          s(8304);
        a > 2 && (s(a - 3 << 5 | 8208), a = 0);
      }
      for (; a--; )
        s(n);
      a = 1, n = r[i];
    }
  return { c: e.subarray(0, A), n: t };
}, Xo = function(r, t) {
  for (var e = 0, A = 0; A < t.length; ++A)
    e += r[A] * t[A];
  return e;
}, Yy = function(r, t, e) {
  var A = e.length, n = Gy(t + 2);
  r[n] = A & 255, r[n + 1] = A >> 8, r[n + 2] = r[n] ^ 255, r[n + 3] = r[n + 1] ^ 255;
  for (var a = 0; a < A; ++a)
    r[n + a + 4] = e[a];
  return (n + 4 + A) * 8;
}, M0 = function(r, t, e, A, n, a, s, i, o, l, u) {
  Ei(t, u++, e), ++n[256];
  for (var h = yf(n, 15), g = h.t, c = h.l, p = yf(a, 15), m = p.t, y = p.l, w = N0(g), E = w.c, C = w.n, F = N0(m), H = F.c, q = F.n, N = new ya(19), M = 0; M < E.length; ++M)
    ++N[E[M] & 31];
  for (var M = 0; M < H.length; ++M)
    ++N[H[M] & 31];
  for (var k = yf(N, 7), O = k.t, S = k.l, U = 19; U > 4 && !O[I0[U - 1]]; --U)
    ;
  var W = l + 5 << 3, I = Xo(n, Ks) + Xo(a, uc) + s, le = Xo(n, g) + Xo(a, m) + s + 14 + 3 * U + Xo(N, O) + 2 * N[16] + 3 * N[17] + 7 * N[18];
  if (o >= 0 && W <= I && W <= le)
    return Yy(t, u, r.subarray(o, o + l));
  var ue, Z, ee, X;
  if (Ei(t, u, 1 + (le < I)), u += 2, le < I) {
    ue = pl(g, c, 0), Z = g, ee = pl(m, y, 0), X = m;
    var Ae = pl(O, S, 0);
    Ei(t, u, C - 257), Ei(t, u + 5, q - 1), Ei(t, u + 10, U - 4), u += 14;
    for (var M = 0; M < U; ++M)
      Ei(t, u + 3 * M, O[I0[M]]);
    u += 3 * U;
    for (var oe = [E, H], x = 0; x < 2; ++x)
      for (var L = oe[x], M = 0; M < L.length; ++M) {
        var j = L[M] & 31;
        Ei(t, u, Ae[j]), u += O[j], j > 15 && (Ei(t, u, L[M] >> 5 & 127), u += L[M] >> 12);
      }
  } else
    ue = AT, Z = Ks, ee = rT, X = uc;
  for (var M = 0; M < i; ++M) {
    var $ = A[M];
    if ($ > 255) {
      var j = $ >> 18 & 31;
      zo(t, u, ue[j + 257]), u += Z[j + 257], j > 7 && (Ei(t, u, $ >> 23 & 31), u += Xp[j]);
      var re = $ & 31;
      zo(t, u, ee[re]), u += X[re], re > 3 && (zo(t, u, $ >> 5 & 8191), u += Jp[re]);
    } else
      zo(t, u, ue[$]), u += Z[$];
  }
  return zo(t, u, ue[256]), u + Z[256];
}, aT = /* @__PURE__ */ new zp([65540, 131080, 131088, 131104, 262176, 1048704, 1048832, 2114560, 2117632]), $y = /* @__PURE__ */ new Xa(0), iT = function(r, t, e, A, n, a) {
  var s = a.z || r.length, i = new Xa(A + s + 5 * (1 + Math.ceil(s / 7e3)) + n), o = i.subarray(A, i.length - n), l = a.l, u = (a.r || 0) & 7;
  if (t) {
    u && (o[0] = a.r >> 3);
    for (var h = aT[t - 1], g = h >> 13, c = h & 8191, p = (1 << e) - 1, m = a.p || new ya(32768), y = a.h || new ya(p + 1), w = Math.ceil(e / 3), E = 2 * w, C = function(dt) {
      return (r[dt] ^ r[dt + 1] << w ^ r[dt + 2] << E) & p;
    }, F = new zp(25e3), H = new ya(288), q = new ya(32), N = 0, M = 0, k = a.i || 0, O = 0, S = a.w || 0, U = 0; k + 2 < s; ++k) {
      var W = C(k), I = k & 32767, le = y[W];
      if (m[I] = le, y[W] = I, S <= k) {
        var ue = s - k;
        if ((N > 7e3 || O > 24576) && (ue > 423 || !l)) {
          u = M0(r, o, 0, F, H, q, M, O, U, k - U, u), O = N = M = 0, U = k;
          for (var Z = 0; Z < 286; ++Z)
            H[Z] = 0;
          for (var Z = 0; Z < 30; ++Z)
            q[Z] = 0;
        }
        var ee = 2, X = 0, Ae = c, oe = I - le & 32767;
        if (ue > 2 && W == C(k - oe))
          for (var x = Math.min(g, ue) - 1, L = Math.min(32767, k), j = Math.min(258, ue); oe <= L && --Ae && I != le; ) {
            if (r[k + ee] == r[k + ee - oe]) {
              for (var $ = 0; $ < j && r[k + $] == r[k + $ - oe]; ++$)
                ;
              if ($ > ee) {
                if (ee = $, X = oe, $ > x)
                  break;
                for (var re = Math.min(oe, $ - 2), pe = 0, Z = 0; Z < re; ++Z) {
                  var de = k - oe + Z & 32767, ce = m[de], Se = de - ce & 32767;
                  Se > pe && (pe = Se, le = de);
                }
              }
            }
            I = le, le = m[I], oe += I - le & 32767;
          }
        if (X) {
          F[O++] = 268435456 | ep[ee] << 18 | _0[X];
          var qe = ep[ee] & 31, rt = _0[X] & 31;
          M += Xp[qe] + Jp[rt], ++H[257 + qe], ++q[rt], S = k + ee, ++N;
        } else
          F[O++] = r[k], ++H[r[k]];
      }
    }
    for (k = Math.max(k, S); k < s; ++k)
      F[O++] = r[k], ++H[r[k]];
    u = M0(r, o, l, F, H, q, M, O, U, k - U, u), l || (a.r = u & 7 | o[u / 8 | 0] << 3, u -= 7, a.h = y, a.p = m, a.i = k, a.w = S);
  } else {
    for (var k = a.w || 0; k < s + l; k += 65535) {
      var at = k + 65535;
      at >= s && (o[u / 8 | 0] = l, at = s), u = Yy(o, u + 1, r.subarray(k, at));
    }
    a.i = s;
  }
  return nT(i, 0, A + Gy(u) + n);
}, zy = function() {
  var r = 1, t = 0;
  return {
    p: function(e) {
      for (var A = r, n = t, a = e.length | 0, s = 0; s != a; ) {
        for (var i = Math.min(s + 2655, a); s < i; ++s)
          n += A += e[s];
        A = (A & 65535) + 15 * (A >> 16), n = (n & 65535) + 15 * (n >> 16);
      }
      r = A, t = n;
    },
    d: function() {
      return r %= 65521, t %= 65521, (r & 255) << 24 | (r & 65280) << 8 | (t & 255) << 8 | t >> 8;
    }
  };
}, sT = function(r, t, e, A, n) {
  if (!n && (n = { l: 1 }, t.dictionary)) {
    var a = t.dictionary.subarray(-32768), s = new Xa(a.length + r.length);
    s.set(a), s.set(r, a.length), r = s, n.w = a.length;
  }
  return iT(r, t.level == null ? 6 : t.level, t.mem == null ? n.l ? Math.ceil(Math.max(8, Math.min(13, Math.log(r.length))) * 1.5) : 20 : 12 + t.mem, e, A, n);
}, Xy = function(r, t, e) {
  for (; e; ++t)
    r[t] = e, e >>>= 8;
}, oT = function(r, t) {
  var e = t.level, A = e == 0 ? 0 : e < 6 ? 1 : e == 9 ? 3 : 2;
  if (r[0] = 120, r[1] = A << 6 | (t.dictionary && 32), r[1] |= 31 - (r[0] << 8 | r[1]) % 31, t.dictionary) {
    var n = zy();
    n.p(t.dictionary), Xy(r, 2, n.d());
  }
};
function rp(r, t) {
  t || (t = {});
  var e = zy();
  e.p(r);
  var A = sT(r, t, t.dictionary ? 6 : 2, 4);
  return oT(A, t), Xy(A, A.length - 4, e.d()), A;
}
var lT = typeof TextDecoder < "u" && /* @__PURE__ */ new TextDecoder(), uT = 0;
try {
  lT.decode($y, { stream: !0 }), uT = 1;
} catch {
}
function cT(r) {
  if (Array.isArray(r)) return r;
}
function fT(r, t) {
  var e = r == null ? null : typeof Symbol < "u" && r[Symbol.iterator] || r["@@iterator"];
  if (e != null) {
    var A, n, a, s, i = [], o = !0, l = !1;
    try {
      if (a = (e = e.call(r)).next, t !== 0) for (; !(o = (A = a.call(e)).done) && (i.push(A.value), i.length !== t); o = !0) ;
    } catch (u) {
      l = !0, n = u;
    } finally {
      try {
        if (!o && e.return != null && (s = e.return(), Object(s) !== s)) return;
      } finally {
        if (l) throw n;
      }
    }
    return i;
  }
}
function O0(r, t) {
  (t == null || t > r.length) && (t = r.length);
  for (var e = 0, A = Array(t); e < t; e++) A[e] = r[e];
  return A;
}
function hT(r, t) {
  if (r) {
    if (typeof r == "string") return O0(r, t);
    var e = {}.toString.call(r).slice(8, -1);
    return e === "Object" && r.constructor && (e = r.constructor.name), e === "Map" || e === "Set" ? Array.from(r) : e === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(e) ? O0(r, t) : void 0;
  }
}
function dT() {
  throw new TypeError(`Invalid attempt to destructure non-iterable instance.
In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`);
}
function R0(r, t) {
  return cT(r) || fT(r, t) || hT(r, t) || dT();
}
function H0(r, t = "utf8") {
  return new TextDecoder(t).decode(r);
}
const gT = new TextEncoder();
function pT(r) {
  return gT.encode(r);
}
const vT = 1024 * 8, mT = (() => {
  const r = new Uint8Array(4), t = new Uint32Array(r.buffer);
  return !((t[0] = 1) & r[0]);
})(), bf = {
  int8: globalThis.Int8Array,
  uint8: globalThis.Uint8Array,
  int16: globalThis.Int16Array,
  uint16: globalThis.Uint16Array,
  int32: globalThis.Int32Array,
  uint32: globalThis.Uint32Array,
  uint64: globalThis.BigUint64Array,
  int64: globalThis.BigInt64Array,
  float32: globalThis.Float32Array,
  float64: globalThis.Float64Array
};
class Zp {
  /**
   * Create a new IOBuffer.
   * @param data - The data to construct the IOBuffer with.
   * If data is a number, it will be the new buffer's length<br>
   * If data is `undefined`, the buffer will be initialized with a default length of 8Kb<br>
   * If data is an ArrayBuffer, SharedArrayBuffer, an ArrayBufferView (Typed Array), an IOBuffer instance,
   * or a Node.js Buffer, a view will be created over the underlying ArrayBuffer.
   * @param options - An object for the options.
   * @returns A new IOBuffer instance.
   */
  constructor(t = vT, e = {}) {
    /**
     * Reference to the internal ArrayBuffer object.
     */
    HA(this, "buffer");
    /**
     * Byte length of the internal ArrayBuffer.
     */
    HA(this, "byteLength");
    /**
     * Byte offset of the internal ArrayBuffer.
     */
    HA(this, "byteOffset");
    /**
     * Byte length of the internal ArrayBuffer.
     */
    HA(this, "length");
    /**
     * The current offset of the buffer's pointer.
     */
    HA(this, "offset");
    HA(this, "lastWrittenByte");
    HA(this, "littleEndian");
    HA(this, "_data");
    HA(this, "_mark");
    HA(this, "_marks");
    let A = !1;
    typeof t == "number" ? t = new ArrayBuffer(t) : (A = !0, this.lastWrittenByte = t.byteLength);
    const n = e.offset ? e.offset >>> 0 : 0, a = t.byteLength - n;
    let s = n;
    (ArrayBuffer.isView(t) || t instanceof Zp) && (t.byteLength !== t.buffer.byteLength && (s = t.byteOffset + n), t = t.buffer), A ? this.lastWrittenByte = a : this.lastWrittenByte = 0, this.buffer = t, this.length = a, this.byteLength = a, this.byteOffset = s, this.offset = 0, this.littleEndian = !0, this._data = new DataView(this.buffer, s, a), this._mark = 0, this._marks = [];
  }
  /**
   * Checks if the memory allocated to the buffer is sufficient to store more
   * bytes after the offset.
   * @param byteLength - The needed memory in bytes.
   * @returns `true` if there is sufficient space and `false` otherwise.
   */
  available(t = 1) {
    return this.offset + t <= this.length;
  }
  /**
   * Check if little-endian mode is used for reading and writing multi-byte
   * values.
   * @returns `true` if little-endian mode is used, `false` otherwise.
   */
  isLittleEndian() {
    return this.littleEndian;
  }
  /**
   * Set little-endian mode for reading and writing multi-byte values.
   * @returns This.
   */
  setLittleEndian() {
    return this.littleEndian = !0, this;
  }
  /**
   * Check if big-endian mode is used for reading and writing multi-byte values.
   * @returns `true` if big-endian mode is used, `false` otherwise.
   */
  isBigEndian() {
    return !this.littleEndian;
  }
  /**
   * Switches to big-endian mode for reading and writing multi-byte values.
   * @returns This.
   */
  setBigEndian() {
    return this.littleEndian = !1, this;
  }
  /**
   * Move the pointer n bytes forward.
   * @param n - Number of bytes to skip.
   * @returns This.
   */
  skip(t = 1) {
    return this.offset += t, this;
  }
  /**
   * Move the pointer n bytes backward.
   * @param n - Number of bytes to move back.
   * @returns This.
   */
  back(t = 1) {
    return this.offset -= t, this;
  }
  /**
   * Move the pointer to the given offset.
   * @param offset - The offset to move to.
   * @returns This.
   */
  seek(t) {
    return this.offset = t, this;
  }
  /**
   * Store the current pointer offset.
   * @see {@link IOBuffer#reset}
   * @returns This.
   */
  mark() {
    return this._mark = this.offset, this;
  }
  /**
   * Move the pointer back to the last pointer offset set by mark.
   * @see {@link IOBuffer#mark}
   * @returns This.
   */
  reset() {
    return this.offset = this._mark, this;
  }
  /**
   * Push the current pointer offset to the mark stack.
   * @see {@link IOBuffer#popMark}
   * @returns This.
   */
  pushMark() {
    return this._marks.push(this.offset), this;
  }
  /**
   * Pop the last pointer offset from the mark stack, and set the current
   * pointer offset to the popped value.
   * @see {@link IOBuffer#pushMark}
   * @returns This.
   */
  popMark() {
    const t = this._marks.pop();
    if (t === void 0)
      throw new Error("Mark stack empty");
    return this.seek(t), this;
  }
  /**
   * Move the pointer offset back to 0.
   * @returns This.
   */
  rewind() {
    return this.offset = 0, this;
  }
  /**
   * Make sure the buffer has sufficient memory to write a given byteLength at
   * the current pointer offset.
   * If the buffer's memory is insufficient, this method will create a new
   * buffer (a copy) with a length that is twice (byteLength + current offset).
   * @param byteLength - The needed memory in bytes.
   * @returns This.
   */
  ensureAvailable(t = 1) {
    if (!this.available(t)) {
      const A = (this.offset + t) * 2, n = new Uint8Array(A);
      n.set(new Uint8Array(this.buffer)), this.buffer = n.buffer, this.length = A, this.byteLength = A, this._data = new DataView(this.buffer);
    }
    return this;
  }
  /**
   * Read a byte and return false if the byte's value is 0, or true otherwise.
   * Moves pointer forward by one byte.
   * @returns The read boolean.
   */
  readBoolean() {
    return this.readUint8() !== 0;
  }
  /**
   * Read a signed 8-bit integer and move pointer forward by 1 byte.
   * @returns The read byte.
   */
  readInt8() {
    return this._data.getInt8(this.offset++);
  }
  /**
   * Read an unsigned 8-bit integer and move pointer forward by 1 byte.
   * @returns The read byte.
   */
  readUint8() {
    return this._data.getUint8(this.offset++);
  }
  /**
   * Alias for {@link IOBuffer#readUint8}.
   * @returns The read byte.
   */
  readByte() {
    return this.readUint8();
  }
  /**
   * Read `n` bytes and move pointer forward by `n` bytes.
   * @param n - Number of bytes to read.
   * @returns The read bytes.
   */
  readBytes(t = 1) {
    return this.readArray(t, "uint8");
  }
  /**
   * Creates an array of corresponding to the type `type` and size `size`.
   * For example type `uint8` will create a `Uint8Array`.
   * @param size - size of the resulting array
   * @param type - number type of elements to read
   * @returns The read array.
   */
  readArray(t, e) {
    const A = bf[e].BYTES_PER_ELEMENT * t, n = this.byteOffset + this.offset, a = this.buffer.slice(n, n + A);
    if (this.littleEndian === mT && e !== "uint8" && e !== "int8") {
      const i = new Uint8Array(this.buffer.slice(n, n + A));
      i.reverse();
      const o = new bf[e](i.buffer);
      return this.offset += A, o.reverse(), o;
    }
    const s = new bf[e](a);
    return this.offset += A, s;
  }
  /**
   * Read a 16-bit signed integer and move pointer forward by 2 bytes.
   * @returns The read value.
   */
  readInt16() {
    const t = this._data.getInt16(this.offset, this.littleEndian);
    return this.offset += 2, t;
  }
  /**
   * Read a 16-bit unsigned integer and move pointer forward by 2 bytes.
   * @returns The read value.
   */
  readUint16() {
    const t = this._data.getUint16(this.offset, this.littleEndian);
    return this.offset += 2, t;
  }
  /**
   * Read a 32-bit signed integer and move pointer forward by 4 bytes.
   * @returns The read value.
   */
  readInt32() {
    const t = this._data.getInt32(this.offset, this.littleEndian);
    return this.offset += 4, t;
  }
  /**
   * Read a 32-bit unsigned integer and move pointer forward by 4 bytes.
   * @returns The read value.
   */
  readUint32() {
    const t = this._data.getUint32(this.offset, this.littleEndian);
    return this.offset += 4, t;
  }
  /**
   * Read a 32-bit floating number and move pointer forward by 4 bytes.
   * @returns The read value.
   */
  readFloat32() {
    const t = this._data.getFloat32(this.offset, this.littleEndian);
    return this.offset += 4, t;
  }
  /**
   * Read a 64-bit floating number and move pointer forward by 8 bytes.
   * @returns The read value.
   */
  readFloat64() {
    const t = this._data.getFloat64(this.offset, this.littleEndian);
    return this.offset += 8, t;
  }
  /**
   * Read a 64-bit signed integer number and move pointer forward by 8 bytes.
   * @returns The read value.
   */
  readBigInt64() {
    const t = this._data.getBigInt64(this.offset, this.littleEndian);
    return this.offset += 8, t;
  }
  /**
   * Read a 64-bit unsigned integer number and move pointer forward by 8 bytes.
   * @returns The read value.
   */
  readBigUint64() {
    const t = this._data.getBigUint64(this.offset, this.littleEndian);
    return this.offset += 8, t;
  }
  /**
   * Read a 1-byte ASCII character and move pointer forward by 1 byte.
   * @returns The read character.
   */
  readChar() {
    return String.fromCharCode(this.readInt8());
  }
  /**
   * Read `n` 1-byte ASCII characters and move pointer forward by `n` bytes.
   * @param n - Number of characters to read.
   * @returns The read characters.
   */
  readChars(t = 1) {
    let e = "";
    for (let A = 0; A < t; A++)
      e += this.readChar();
    return e;
  }
  /**
   * Read the next `n` bytes, return a UTF-8 decoded string and move pointer
   * forward by `n` bytes.
   * @param n - Number of bytes to read.
   * @returns The decoded string.
   */
  readUtf8(t = 1) {
    return H0(this.readBytes(t));
  }
  /**
   * Read the next `n` bytes, return a string decoded with `encoding` and move pointer
   * forward by `n` bytes.
   * If no encoding is passed, the function is equivalent to @see {@link IOBuffer#readUtf8}
   * @param n - Number of bytes to read.
   * @param encoding - The encoding to use. Default is 'utf8'.
   * @returns The decoded string.
   */
  decodeText(t = 1, e = "utf8") {
    return H0(this.readBytes(t), e);
  }
  /**
   * Write 0xff if the passed value is truthy, 0x00 otherwise and move pointer
   * forward by 1 byte.
   * @param value - The value to write.
   * @returns This.
   */
  writeBoolean(t) {
    return this.writeUint8(t ? 255 : 0), this;
  }
  /**
   * Write `value` as an 8-bit signed integer and move pointer forward by 1 byte.
   * @param value - The value to write.
   * @returns This.
   */
  writeInt8(t) {
    return this.ensureAvailable(1), this._data.setInt8(this.offset++, t), this._updateLastWrittenByte(), this;
  }
  /**
   * Write `value` as an 8-bit unsigned integer and move pointer forward by 1
   * byte.
   * @param value - The value to write.
   * @returns This.
   */
  writeUint8(t) {
    return this.ensureAvailable(1), this._data.setUint8(this.offset++, t), this._updateLastWrittenByte(), this;
  }
  /**
   * An alias for {@link IOBuffer#writeUint8}.
   * @param value - The value to write.
   * @returns This.
   */
  writeByte(t) {
    return this.writeUint8(t);
  }
  /**
   * Write all elements of `bytes` as uint8 values and move pointer forward by
   * `bytes.length` bytes.
   * @param bytes - The array of bytes to write.
   * @returns This.
   */
  writeBytes(t) {
    this.ensureAvailable(t.length);
    for (let e = 0; e < t.length; e++)
      this._data.setUint8(this.offset++, t[e]);
    return this._updateLastWrittenByte(), this;
  }
  /**
   * Write `value` as a 16-bit signed integer and move pointer forward by 2
   * bytes.
   * @param value - The value to write.
   * @returns This.
   */
  writeInt16(t) {
    return this.ensureAvailable(2), this._data.setInt16(this.offset, t, this.littleEndian), this.offset += 2, this._updateLastWrittenByte(), this;
  }
  /**
   * Write `value` as a 16-bit unsigned integer and move pointer forward by 2
   * bytes.
   * @param value - The value to write.
   * @returns This.
   */
  writeUint16(t) {
    return this.ensureAvailable(2), this._data.setUint16(this.offset, t, this.littleEndian), this.offset += 2, this._updateLastWrittenByte(), this;
  }
  /**
   * Write `value` as a 32-bit signed integer and move pointer forward by 4
   * bytes.
   * @param value - The value to write.
   * @returns This.
   */
  writeInt32(t) {
    return this.ensureAvailable(4), this._data.setInt32(this.offset, t, this.littleEndian), this.offset += 4, this._updateLastWrittenByte(), this;
  }
  /**
   * Write `value` as a 32-bit unsigned integer and move pointer forward by 4
   * bytes.
   * @param value - The value to write.
   * @returns This.
   */
  writeUint32(t) {
    return this.ensureAvailable(4), this._data.setUint32(this.offset, t, this.littleEndian), this.offset += 4, this._updateLastWrittenByte(), this;
  }
  /**
   * Write `value` as a 32-bit floating number and move pointer forward by 4
   * bytes.
   * @param value - The value to write.
   * @returns This.
   */
  writeFloat32(t) {
    return this.ensureAvailable(4), this._data.setFloat32(this.offset, t, this.littleEndian), this.offset += 4, this._updateLastWrittenByte(), this;
  }
  /**
   * Write `value` as a 64-bit floating number and move pointer forward by 8
   * bytes.
   * @param value - The value to write.
   * @returns This.
   */
  writeFloat64(t) {
    return this.ensureAvailable(8), this._data.setFloat64(this.offset, t, this.littleEndian), this.offset += 8, this._updateLastWrittenByte(), this;
  }
  /**
   * Write `value` as a 64-bit signed bigint and move pointer forward by 8
   * bytes.
   * @param value - The value to write.
   * @returns This.
   */
  writeBigInt64(t) {
    return this.ensureAvailable(8), this._data.setBigInt64(this.offset, t, this.littleEndian), this.offset += 8, this._updateLastWrittenByte(), this;
  }
  /**
   * Write `value` as a 64-bit unsigned bigint and move pointer forward by 8
   * bytes.
   * @param value - The value to write.
   * @returns This.
   */
  writeBigUint64(t) {
    return this.ensureAvailable(8), this._data.setBigUint64(this.offset, t, this.littleEndian), this.offset += 8, this._updateLastWrittenByte(), this;
  }
  /**
   * Write the charCode of `str`'s first character as an 8-bit unsigned integer
   * and move pointer forward by 1 byte.
   * @param str - The character to write.
   * @returns This.
   */
  writeChar(t) {
    return this.writeUint8(t.charCodeAt(0));
  }
  /**
   * Write the charCodes of all `str`'s characters as 8-bit unsigned integers
   * and move pointer forward by `str.length` bytes.
   * @param str - The characters to write.
   * @returns This.
   */
  writeChars(t) {
    for (let e = 0; e < t.length; e++)
      this.writeUint8(t.charCodeAt(e));
    return this;
  }
  /**
   * UTF-8 encode and write `str` to the current pointer offset and move pointer
   * forward according to the encoded length.
   * @param str - The string to write.
   * @returns This.
   */
  writeUtf8(t) {
    return this.writeBytes(pT(t));
  }
  /**
   * Export a Uint8Array view of the internal buffer.
   * The view starts at the byte offset and its length
   * is calculated to stop at the last written byte or the original length.
   * @returns A new Uint8Array view.
   */
  toArray() {
    return new Uint8Array(this.buffer, this.byteOffset, this.lastWrittenByte);
  }
  /**
   *  Get the total number of bytes written so far, regardless of the current offset.
   * @returns - Total number of bytes.
   */
  getWrittenByteLength() {
    return this.lastWrittenByte - this.byteOffset;
  }
  /**
   * Update the last written byte offset
   * @private
   */
  _updateLastWrittenByte() {
    this.offset > this.lastWrittenByte && (this.lastWrittenByte = this.offset);
  }
}
function ko(r) {
  let t = r.length;
  for (; --t >= 0; )
    r[t] = 0;
}
const wT = 3, BT = 258, Jy = 29, yT = 256, bT = yT + 1 + Jy, Zy = 30, CT = 512, ET = new Array((bT + 2) * 2);
ko(ET);
const FT = new Array(Zy * 2);
ko(FT);
const xT = new Array(CT);
ko(xT);
const ST = new Array(BT - wT + 1);
ko(ST);
const UT = new Array(Jy);
ko(UT);
const TT = new Array(Zy);
ko(TT);
const QT = (r, t, e, A) => {
  let n = r & 65535 | 0, a = r >>> 16 & 65535 | 0, s = 0;
  for (; e !== 0; ) {
    s = e > 2e3 ? 2e3 : e, e -= s;
    do
      n = n + t[A++] | 0, a = a + n | 0;
    while (--s);
    n %= 65521, a %= 65521;
  }
  return n | a << 16 | 0;
};
var np = QT;
const DT = () => {
  let r, t = [];
  for (var e = 0; e < 256; e++) {
    r = e;
    for (var A = 0; A < 8; A++)
      r = r & 1 ? 3988292384 ^ r >>> 1 : r >>> 1;
    t[e] = r;
  }
  return t;
}, kT = new Uint32Array(DT()), LT = (r, t, e, A) => {
  const n = kT, a = A + e;
  r ^= -1;
  for (let s = A; s < a; s++)
    r = r >>> 8 ^ n[(r ^ t[s]) & 255];
  return r ^ -1;
};
var ui = LT, ap = {
  2: "need dictionary",
  /* Z_NEED_DICT       2  */
  1: "stream end",
  /* Z_STREAM_END      1  */
  0: "",
  /* Z_OK              0  */
  "-1": "file error",
  /* Z_ERRNO         (-1) */
  "-2": "stream error",
  /* Z_STREAM_ERROR  (-2) */
  "-3": "data error",
  /* Z_DATA_ERROR    (-3) */
  "-4": "insufficient memory",
  /* Z_MEM_ERROR     (-4) */
  "-5": "buffer error",
  /* Z_BUF_ERROR     (-5) */
  "-6": "incompatible version"
  /* Z_VERSION_ERROR (-6) */
}, e5 = {
  /* Allowed flush values; see deflate() and inflate() below for details */
  Z_NO_FLUSH: 0,
  Z_FINISH: 4,
  Z_BLOCK: 5,
  Z_TREES: 6,
  /* Return codes for the compression/decompression functions. Negative values
  * are errors, positive values are used for special but normal events.
  */
  Z_OK: 0,
  Z_STREAM_END: 1,
  Z_NEED_DICT: 2,
  Z_STREAM_ERROR: -2,
  Z_DATA_ERROR: -3,
  Z_MEM_ERROR: -4,
  Z_BUF_ERROR: -5,
  /* The deflate compression method */
  Z_DEFLATED: 8
  //Z_NULL:                 null // Use -1 or null inline, depending on var type
};
const IT = (r, t) => Object.prototype.hasOwnProperty.call(r, t);
var _T = function(r) {
  const t = Array.prototype.slice.call(arguments, 1);
  for (; t.length; ) {
    const e = t.shift();
    if (e) {
      if (typeof e != "object")
        throw new TypeError(e + "must be non-object");
      for (const A in e)
        IT(e, A) && (r[A] = e[A]);
    }
  }
  return r;
}, NT = (r) => {
  let t = 0;
  for (let A = 0, n = r.length; A < n; A++)
    t += r[A].length;
  const e = new Uint8Array(t);
  for (let A = 0, n = 0, a = r.length; A < a; A++) {
    let s = r[A];
    e.set(s, n), n += s.length;
  }
  return e;
}, t5 = {
  assign: _T,
  flattenChunks: NT
};
let A5 = !0;
try {
  String.fromCharCode.apply(null, new Uint8Array(1));
} catch {
  A5 = !1;
}
const El = new Uint8Array(256);
for (let r = 0; r < 256; r++)
  El[r] = r >= 252 ? 6 : r >= 248 ? 5 : r >= 240 ? 4 : r >= 224 ? 3 : r >= 192 ? 2 : 1;
El[254] = El[254] = 1;
var MT = (r) => {
  if (typeof TextEncoder == "function" && TextEncoder.prototype.encode)
    return new TextEncoder().encode(r);
  let t, e, A, n, a, s = r.length, i = 0;
  for (n = 0; n < s; n++)
    e = r.charCodeAt(n), (e & 64512) === 55296 && n + 1 < s && (A = r.charCodeAt(n + 1), (A & 64512) === 56320 && (e = 65536 + (e - 55296 << 10) + (A - 56320), n++)), i += e < 128 ? 1 : e < 2048 ? 2 : e < 65536 ? 3 : 4;
  for (t = new Uint8Array(i), a = 0, n = 0; a < i; n++)
    e = r.charCodeAt(n), (e & 64512) === 55296 && n + 1 < s && (A = r.charCodeAt(n + 1), (A & 64512) === 56320 && (e = 65536 + (e - 55296 << 10) + (A - 56320), n++)), e < 128 ? t[a++] = e : e < 2048 ? (t[a++] = 192 | e >>> 6, t[a++] = 128 | e & 63) : e < 65536 ? (t[a++] = 224 | e >>> 12, t[a++] = 128 | e >>> 6 & 63, t[a++] = 128 | e & 63) : (t[a++] = 240 | e >>> 18, t[a++] = 128 | e >>> 12 & 63, t[a++] = 128 | e >>> 6 & 63, t[a++] = 128 | e & 63);
  return t;
};
const OT = (r, t) => {
  if (t < 65534 && r.subarray && A5)
    return String.fromCharCode.apply(null, r.length === t ? r : r.subarray(0, t));
  let e = "";
  for (let A = 0; A < t; A++)
    e += String.fromCharCode(r[A]);
  return e;
};
var RT = (r, t) => {
  const e = t || r.length;
  if (typeof TextDecoder == "function" && TextDecoder.prototype.decode)
    return new TextDecoder().decode(r.subarray(0, t));
  let A, n;
  const a = new Array(e * 2);
  for (n = 0, A = 0; A < e; ) {
    let s = r[A++];
    if (s < 128) {
      a[n++] = s;
      continue;
    }
    let i = El[s];
    if (i > 4) {
      a[n++] = 65533, A += i - 1;
      continue;
    }
    for (s &= i === 2 ? 31 : i === 3 ? 15 : 7; i > 1 && A < e; )
      s = s << 6 | r[A++] & 63, i--;
    if (i > 1) {
      a[n++] = 65533;
      continue;
    }
    s < 65536 ? a[n++] = s : (s -= 65536, a[n++] = 55296 | s >> 10 & 1023, a[n++] = 56320 | s & 1023);
  }
  return OT(a, n);
}, HT = (r, t) => {
  t = t || r.length, t > r.length && (t = r.length);
  let e = t - 1;
  for (; e >= 0 && (r[e] & 192) === 128; )
    e--;
  return e < 0 || e === 0 ? t : e + El[r[e]] > t ? e : t;
}, ip = {
  string2buf: MT,
  buf2string: RT,
  utf8border: HT
};
function PT() {
  this.input = null, this.next_in = 0, this.avail_in = 0, this.total_in = 0, this.output = null, this.next_out = 0, this.avail_out = 0, this.total_out = 0, this.msg = "", this.state = null, this.data_type = 2, this.adler = 0;
}
var KT = PT;
const lu = 16209, VT = 16191;
var qT = function(t, e) {
  let A, n, a, s, i, o, l, u, h, g, c, p, m, y, w, E, C, F, H, q, N, M, k, O;
  const S = t.state;
  A = t.next_in, k = t.input, n = A + (t.avail_in - 5), a = t.next_out, O = t.output, s = a - (e - t.avail_out), i = a + (t.avail_out - 257), o = S.dmax, l = S.wsize, u = S.whave, h = S.wnext, g = S.window, c = S.hold, p = S.bits, m = S.lencode, y = S.distcode, w = (1 << S.lenbits) - 1, E = (1 << S.distbits) - 1;
  e:
    do {
      p < 15 && (c += k[A++] << p, p += 8, c += k[A++] << p, p += 8), C = m[c & w];
      t:
        for (; ; ) {
          if (F = C >>> 24, c >>>= F, p -= F, F = C >>> 16 & 255, F === 0)
            O[a++] = C & 65535;
          else if (F & 16) {
            H = C & 65535, F &= 15, F && (p < F && (c += k[A++] << p, p += 8), H += c & (1 << F) - 1, c >>>= F, p -= F), p < 15 && (c += k[A++] << p, p += 8, c += k[A++] << p, p += 8), C = y[c & E];
            A:
              for (; ; ) {
                if (F = C >>> 24, c >>>= F, p -= F, F = C >>> 16 & 255, F & 16) {
                  if (q = C & 65535, F &= 15, p < F && (c += k[A++] << p, p += 8, p < F && (c += k[A++] << p, p += 8)), q += c & (1 << F) - 1, q > o) {
                    t.msg = "invalid distance too far back", S.mode = lu;
                    break e;
                  }
                  if (c >>>= F, p -= F, F = a - s, q > F) {
                    if (F = q - F, F > u && S.sane) {
                      t.msg = "invalid distance too far back", S.mode = lu;
                      break e;
                    }
                    if (N = 0, M = g, h === 0) {
                      if (N += l - F, F < H) {
                        H -= F;
                        do
                          O[a++] = g[N++];
                        while (--F);
                        N = a - q, M = O;
                      }
                    } else if (h < F) {
                      if (N += l + h - F, F -= h, F < H) {
                        H -= F;
                        do
                          O[a++] = g[N++];
                        while (--F);
                        if (N = 0, h < H) {
                          F = h, H -= F;
                          do
                            O[a++] = g[N++];
                          while (--F);
                          N = a - q, M = O;
                        }
                      }
                    } else if (N += h - F, F < H) {
                      H -= F;
                      do
                        O[a++] = g[N++];
                      while (--F);
                      N = a - q, M = O;
                    }
                    for (; H > 2; )
                      O[a++] = M[N++], O[a++] = M[N++], O[a++] = M[N++], H -= 3;
                    H && (O[a++] = M[N++], H > 1 && (O[a++] = M[N++]));
                  } else {
                    N = a - q;
                    do
                      O[a++] = O[N++], O[a++] = O[N++], O[a++] = O[N++], H -= 3;
                    while (H > 2);
                    H && (O[a++] = O[N++], H > 1 && (O[a++] = O[N++]));
                  }
                } else if ((F & 64) === 0) {
                  C = y[(C & 65535) + (c & (1 << F) - 1)];
                  continue A;
                } else {
                  t.msg = "invalid distance code", S.mode = lu;
                  break e;
                }
                break;
              }
          } else if ((F & 64) === 0) {
            C = m[(C & 65535) + (c & (1 << F) - 1)];
            continue t;
          } else if (F & 32) {
            S.mode = VT;
            break e;
          } else {
            t.msg = "invalid literal/length code", S.mode = lu;
            break e;
          }
          break;
        }
    } while (A < n && a < i);
  H = p >> 3, A -= H, p -= H << 3, c &= (1 << p) - 1, t.next_in = A, t.next_out = a, t.avail_in = A < n ? 5 + (n - A) : 5 - (A - n), t.avail_out = a < i ? 257 + (i - a) : 257 - (a - i), S.hold = c, S.bits = p;
};
const oo = 15, P0 = 852, K0 = 592, V0 = 0, Cf = 1, q0 = 2, jT = new Uint16Array([
  /* Length codes 257..285 base */
  3,
  4,
  5,
  6,
  7,
  8,
  9,
  10,
  11,
  13,
  15,
  17,
  19,
  23,
  27,
  31,
  35,
  43,
  51,
  59,
  67,
  83,
  99,
  115,
  131,
  163,
  195,
  227,
  258,
  0,
  0
]), WT = new Uint8Array([
  /* Length codes 257..285 extra */
  16,
  16,
  16,
  16,
  16,
  16,
  16,
  16,
  17,
  17,
  17,
  17,
  18,
  18,
  18,
  18,
  19,
  19,
  19,
  19,
  20,
  20,
  20,
  20,
  21,
  21,
  21,
  21,
  16,
  72,
  78
]), GT = new Uint16Array([
  /* Distance codes 0..29 base */
  1,
  2,
  3,
  4,
  5,
  7,
  9,
  13,
  17,
  25,
  33,
  49,
  65,
  97,
  129,
  193,
  257,
  385,
  513,
  769,
  1025,
  1537,
  2049,
  3073,
  4097,
  6145,
  8193,
  12289,
  16385,
  24577,
  0,
  0
]), YT = new Uint8Array([
  /* Distance codes 0..29 extra */
  16,
  16,
  16,
  16,
  17,
  17,
  18,
  18,
  19,
  19,
  20,
  20,
  21,
  21,
  22,
  22,
  23,
  23,
  24,
  24,
  25,
  25,
  26,
  26,
  27,
  27,
  28,
  28,
  29,
  29,
  64,
  64
]), $T = (r, t, e, A, n, a, s, i) => {
  const o = i.bits;
  let l = 0, u = 0, h = 0, g = 0, c = 0, p = 0, m = 0, y = 0, w = 0, E = 0, C, F, H, q, N, M = null, k;
  const O = new Uint16Array(oo + 1), S = new Uint16Array(oo + 1);
  let U = null, W, I, le;
  for (l = 0; l <= oo; l++)
    O[l] = 0;
  for (u = 0; u < A; u++)
    O[t[e + u]]++;
  for (c = o, g = oo; g >= 1 && O[g] === 0; g--)
    ;
  if (c > g && (c = g), g === 0)
    return n[a++] = 1 << 24 | 64 << 16 | 0, n[a++] = 1 << 24 | 64 << 16 | 0, i.bits = 1, 0;
  for (h = 1; h < g && O[h] === 0; h++)
    ;
  for (c < h && (c = h), y = 1, l = 1; l <= oo; l++)
    if (y <<= 1, y -= O[l], y < 0)
      return -1;
  if (y > 0 && (r === V0 || g !== 1))
    return -1;
  for (S[1] = 0, l = 1; l < oo; l++)
    S[l + 1] = S[l] + O[l];
  for (u = 0; u < A; u++)
    t[e + u] !== 0 && (s[S[t[e + u]]++] = u);
  if (r === V0 ? (M = U = s, k = 20) : r === Cf ? (M = jT, U = WT, k = 257) : (M = GT, U = YT, k = 0), E = 0, u = 0, l = h, N = a, p = c, m = 0, H = -1, w = 1 << c, q = w - 1, r === Cf && w > P0 || r === q0 && w > K0)
    return 1;
  for (; ; ) {
    W = l - m, s[u] + 1 < k ? (I = 0, le = s[u]) : s[u] >= k ? (I = U[s[u] - k], le = M[s[u] - k]) : (I = 96, le = 0), C = 1 << l - m, F = 1 << p, h = F;
    do
      F -= C, n[N + (E >> m) + F] = W << 24 | I << 16 | le | 0;
    while (F !== 0);
    for (C = 1 << l - 1; E & C; )
      C >>= 1;
    if (C !== 0 ? (E &= C - 1, E += C) : E = 0, u++, --O[l] === 0) {
      if (l === g)
        break;
      l = t[e + s[u]];
    }
    if (l > c && (E & q) !== H) {
      for (m === 0 && (m = c), N += h, p = l - m, y = 1 << p; p + m < g && (y -= O[p + m], !(y <= 0)); )
        p++, y <<= 1;
      if (w += 1 << p, r === Cf && w > P0 || r === q0 && w > K0)
        return 1;
      H = E & q, n[H] = c << 24 | p << 16 | N - a | 0;
    }
  }
  return E !== 0 && (n[N + E] = l - m << 24 | 64 << 16 | 0), i.bits = c, 0;
};
var vl = $T;
const zT = 0, r5 = 1, n5 = 2, {
  Z_FINISH: j0,
  Z_BLOCK: XT,
  Z_TREES: uu,
  Z_OK: Vs,
  Z_STREAM_END: JT,
  Z_NEED_DICT: ZT,
  Z_STREAM_ERROR: _a,
  Z_DATA_ERROR: a5,
  Z_MEM_ERROR: i5,
  Z_BUF_ERROR: eQ,
  Z_DEFLATED: W0
} = e5, xc = 16180, G0 = 16181, Y0 = 16182, $0 = 16183, z0 = 16184, X0 = 16185, J0 = 16186, Z0 = 16187, e1 = 16188, t1 = 16189, cc = 16190, Fi = 16191, Ef = 16192, A1 = 16193, Ff = 16194, r1 = 16195, n1 = 16196, a1 = 16197, i1 = 16198, cu = 16199, fu = 16200, s1 = 16201, o1 = 16202, l1 = 16203, u1 = 16204, c1 = 16205, xf = 16206, f1 = 16207, h1 = 16208, br = 16209, s5 = 16210, o5 = 16211, tQ = 852, AQ = 592, rQ = 15, nQ = rQ, d1 = (r) => (r >>> 24 & 255) + (r >>> 8 & 65280) + ((r & 65280) << 8) + ((r & 255) << 24);
function aQ() {
  this.strm = null, this.mode = 0, this.last = !1, this.wrap = 0, this.havedict = !1, this.flags = 0, this.dmax = 0, this.check = 0, this.total = 0, this.head = null, this.wbits = 0, this.wsize = 0, this.whave = 0, this.wnext = 0, this.window = null, this.hold = 0, this.bits = 0, this.length = 0, this.offset = 0, this.extra = 0, this.lencode = null, this.distcode = null, this.lenbits = 0, this.distbits = 0, this.ncode = 0, this.nlen = 0, this.ndist = 0, this.have = 0, this.next = null, this.lens = new Uint16Array(320), this.work = new Uint16Array(288), this.lendyn = null, this.distdyn = null, this.sane = 0, this.back = 0, this.was = 0;
}
const qs = (r) => {
  if (!r)
    return 1;
  const t = r.state;
  return !t || t.strm !== r || t.mode < xc || t.mode > o5 ? 1 : 0;
}, l5 = (r) => {
  if (qs(r))
    return _a;
  const t = r.state;
  return r.total_in = r.total_out = t.total = 0, r.msg = "", t.wrap && (r.adler = t.wrap & 1), t.mode = xc, t.last = 0, t.havedict = 0, t.flags = -1, t.dmax = 32768, t.head = null, t.hold = 0, t.bits = 0, t.lencode = t.lendyn = new Int32Array(tQ), t.distcode = t.distdyn = new Int32Array(AQ), t.sane = 1, t.back = -1, Vs;
}, u5 = (r) => {
  if (qs(r))
    return _a;
  const t = r.state;
  return t.wsize = 0, t.whave = 0, t.wnext = 0, l5(r);
}, c5 = (r, t) => {
  let e;
  if (qs(r))
    return _a;
  const A = r.state;
  return t < 0 ? (e = 0, t = -t) : (e = (t >> 4) + 5, t < 48 && (t &= 15)), t && (t < 8 || t > 15) ? _a : (A.window !== null && A.wbits !== t && (A.window = null), A.wrap = e, A.wbits = t, u5(r));
}, f5 = (r, t) => {
  if (!r)
    return _a;
  const e = new aQ();
  r.state = e, e.strm = r, e.window = null, e.mode = xc;
  const A = c5(r, t);
  return A !== Vs && (r.state = null), A;
}, iQ = (r) => f5(r, nQ);
let g1 = !0, Sf, Uf;
const sQ = (r) => {
  if (g1) {
    Sf = new Int32Array(512), Uf = new Int32Array(32);
    let t = 0;
    for (; t < 144; )
      r.lens[t++] = 8;
    for (; t < 256; )
      r.lens[t++] = 9;
    for (; t < 280; )
      r.lens[t++] = 7;
    for (; t < 288; )
      r.lens[t++] = 8;
    for (vl(r5, r.lens, 0, 288, Sf, 0, r.work, { bits: 9 }), t = 0; t < 32; )
      r.lens[t++] = 5;
    vl(n5, r.lens, 0, 32, Uf, 0, r.work, { bits: 5 }), g1 = !1;
  }
  r.lencode = Sf, r.lenbits = 9, r.distcode = Uf, r.distbits = 5;
}, h5 = (r, t, e, A) => {
  let n;
  const a = r.state;
  return a.window === null && (a.wsize = 1 << a.wbits, a.wnext = 0, a.whave = 0, a.window = new Uint8Array(a.wsize)), A >= a.wsize ? (a.window.set(t.subarray(e - a.wsize, e), 0), a.wnext = 0, a.whave = a.wsize) : (n = a.wsize - a.wnext, n > A && (n = A), a.window.set(t.subarray(e - A, e - A + n), a.wnext), A -= n, A ? (a.window.set(t.subarray(e - A, e), 0), a.wnext = A, a.whave = a.wsize) : (a.wnext += n, a.wnext === a.wsize && (a.wnext = 0), a.whave < a.wsize && (a.whave += n))), 0;
}, oQ = (r, t) => {
  let e, A, n, a, s, i, o, l, u, h, g, c, p, m, y = 0, w, E, C, F, H, q, N, M;
  const k = new Uint8Array(4);
  let O, S;
  const U = (
    /* permutation of code lengths */
    new Uint8Array([16, 17, 18, 0, 8, 7, 9, 6, 10, 5, 11, 4, 12, 3, 13, 2, 14, 1, 15])
  );
  if (qs(r) || !r.output || !r.input && r.avail_in !== 0)
    return _a;
  e = r.state, e.mode === Fi && (e.mode = Ef), s = r.next_out, n = r.output, o = r.avail_out, a = r.next_in, A = r.input, i = r.avail_in, l = e.hold, u = e.bits, h = i, g = o, M = Vs;
  e:
    for (; ; )
      switch (e.mode) {
        case xc:
          if (e.wrap === 0) {
            e.mode = Ef;
            break;
          }
          for (; u < 16; ) {
            if (i === 0)
              break e;
            i--, l += A[a++] << u, u += 8;
          }
          if (e.wrap & 2 && l === 35615) {
            e.wbits === 0 && (e.wbits = 15), e.check = 0, k[0] = l & 255, k[1] = l >>> 8 & 255, e.check = ui(e.check, k, 2, 0), l = 0, u = 0, e.mode = G0;
            break;
          }
          if (e.head && (e.head.done = !1), !(e.wrap & 1) || /* check if zlib header allowed */
          (((l & 255) << 8) + (l >> 8)) % 31) {
            r.msg = "incorrect header check", e.mode = br;
            break;
          }
          if ((l & 15) !== W0) {
            r.msg = "unknown compression method", e.mode = br;
            break;
          }
          if (l >>>= 4, u -= 4, N = (l & 15) + 8, e.wbits === 0 && (e.wbits = N), N > 15 || N > e.wbits) {
            r.msg = "invalid window size", e.mode = br;
            break;
          }
          e.dmax = 1 << e.wbits, e.flags = 0, r.adler = e.check = 1, e.mode = l & 512 ? t1 : Fi, l = 0, u = 0;
          break;
        case G0:
          for (; u < 16; ) {
            if (i === 0)
              break e;
            i--, l += A[a++] << u, u += 8;
          }
          if (e.flags = l, (e.flags & 255) !== W0) {
            r.msg = "unknown compression method", e.mode = br;
            break;
          }
          if (e.flags & 57344) {
            r.msg = "unknown header flags set", e.mode = br;
            break;
          }
          e.head && (e.head.text = l >> 8 & 1), e.flags & 512 && e.wrap & 4 && (k[0] = l & 255, k[1] = l >>> 8 & 255, e.check = ui(e.check, k, 2, 0)), l = 0, u = 0, e.mode = Y0;
        /* falls through */
        case Y0:
          for (; u < 32; ) {
            if (i === 0)
              break e;
            i--, l += A[a++] << u, u += 8;
          }
          e.head && (e.head.time = l), e.flags & 512 && e.wrap & 4 && (k[0] = l & 255, k[1] = l >>> 8 & 255, k[2] = l >>> 16 & 255, k[3] = l >>> 24 & 255, e.check = ui(e.check, k, 4, 0)), l = 0, u = 0, e.mode = $0;
        /* falls through */
        case $0:
          for (; u < 16; ) {
            if (i === 0)
              break e;
            i--, l += A[a++] << u, u += 8;
          }
          e.head && (e.head.xflags = l & 255, e.head.os = l >> 8), e.flags & 512 && e.wrap & 4 && (k[0] = l & 255, k[1] = l >>> 8 & 255, e.check = ui(e.check, k, 2, 0)), l = 0, u = 0, e.mode = z0;
        /* falls through */
        case z0:
          if (e.flags & 1024) {
            for (; u < 16; ) {
              if (i === 0)
                break e;
              i--, l += A[a++] << u, u += 8;
            }
            e.length = l, e.head && (e.head.extra_len = l), e.flags & 512 && e.wrap & 4 && (k[0] = l & 255, k[1] = l >>> 8 & 255, e.check = ui(e.check, k, 2, 0)), l = 0, u = 0;
          } else e.head && (e.head.extra = null);
          e.mode = X0;
        /* falls through */
        case X0:
          if (e.flags & 1024 && (c = e.length, c > i && (c = i), c && (e.head && (N = e.head.extra_len - e.length, e.head.extra || (e.head.extra = new Uint8Array(e.head.extra_len)), e.head.extra.set(
            A.subarray(
              a,
              // extra field is limited to 65536 bytes
              // - no need for additional size check
              a + c
            ),
            /*len + copy > state.head.extra_max - len ? state.head.extra_max : copy,*/
            N
          )), e.flags & 512 && e.wrap & 4 && (e.check = ui(e.check, A, c, a)), i -= c, a += c, e.length -= c), e.length))
            break e;
          e.length = 0, e.mode = J0;
        /* falls through */
        case J0:
          if (e.flags & 2048) {
            if (i === 0)
              break e;
            c = 0;
            do
              N = A[a + c++], e.head && N && e.length < 65536 && (e.head.name += String.fromCharCode(N));
            while (N && c < i);
            if (e.flags & 512 && e.wrap & 4 && (e.check = ui(e.check, A, c, a)), i -= c, a += c, N)
              break e;
          } else e.head && (e.head.name = null);
          e.length = 0, e.mode = Z0;
        /* falls through */
        case Z0:
          if (e.flags & 4096) {
            if (i === 0)
              break e;
            c = 0;
            do
              N = A[a + c++], e.head && N && e.length < 65536 && (e.head.comment += String.fromCharCode(N));
            while (N && c < i);
            if (e.flags & 512 && e.wrap & 4 && (e.check = ui(e.check, A, c, a)), i -= c, a += c, N)
              break e;
          } else e.head && (e.head.comment = null);
          e.mode = e1;
        /* falls through */
        case e1:
          if (e.flags & 512) {
            for (; u < 16; ) {
              if (i === 0)
                break e;
              i--, l += A[a++] << u, u += 8;
            }
            if (e.wrap & 4 && l !== (e.check & 65535)) {
              r.msg = "header crc mismatch", e.mode = br;
              break;
            }
            l = 0, u = 0;
          }
          e.head && (e.head.hcrc = e.flags >> 9 & 1, e.head.done = !0), r.adler = e.check = 0, e.mode = Fi;
          break;
        case t1:
          for (; u < 32; ) {
            if (i === 0)
              break e;
            i--, l += A[a++] << u, u += 8;
          }
          r.adler = e.check = d1(l), l = 0, u = 0, e.mode = cc;
        /* falls through */
        case cc:
          if (e.havedict === 0)
            return r.next_out = s, r.avail_out = o, r.next_in = a, r.avail_in = i, e.hold = l, e.bits = u, ZT;
          r.adler = e.check = 1, e.mode = Fi;
        /* falls through */
        case Fi:
          if (t === XT || t === uu)
            break e;
        /* falls through */
        case Ef:
          if (e.last) {
            l >>>= u & 7, u -= u & 7, e.mode = xf;
            break;
          }
          for (; u < 3; ) {
            if (i === 0)
              break e;
            i--, l += A[a++] << u, u += 8;
          }
          switch (e.last = l & 1, l >>>= 1, u -= 1, l & 3) {
            case 0:
              e.mode = A1;
              break;
            case 1:
              if (sQ(e), e.mode = cu, t === uu) {
                l >>>= 2, u -= 2;
                break e;
              }
              break;
            case 2:
              e.mode = n1;
              break;
            case 3:
              r.msg = "invalid block type", e.mode = br;
          }
          l >>>= 2, u -= 2;
          break;
        case A1:
          for (l >>>= u & 7, u -= u & 7; u < 32; ) {
            if (i === 0)
              break e;
            i--, l += A[a++] << u, u += 8;
          }
          if ((l & 65535) !== (l >>> 16 ^ 65535)) {
            r.msg = "invalid stored block lengths", e.mode = br;
            break;
          }
          if (e.length = l & 65535, l = 0, u = 0, e.mode = Ff, t === uu)
            break e;
        /* falls through */
        case Ff:
          e.mode = r1;
        /* falls through */
        case r1:
          if (c = e.length, c) {
            if (c > i && (c = i), c > o && (c = o), c === 0)
              break e;
            n.set(A.subarray(a, a + c), s), i -= c, a += c, o -= c, s += c, e.length -= c;
            break;
          }
          e.mode = Fi;
          break;
        case n1:
          for (; u < 14; ) {
            if (i === 0)
              break e;
            i--, l += A[a++] << u, u += 8;
          }
          if (e.nlen = (l & 31) + 257, l >>>= 5, u -= 5, e.ndist = (l & 31) + 1, l >>>= 5, u -= 5, e.ncode = (l & 15) + 4, l >>>= 4, u -= 4, e.nlen > 286 || e.ndist > 30) {
            r.msg = "too many length or distance symbols", e.mode = br;
            break;
          }
          e.have = 0, e.mode = a1;
        /* falls through */
        case a1:
          for (; e.have < e.ncode; ) {
            for (; u < 3; ) {
              if (i === 0)
                break e;
              i--, l += A[a++] << u, u += 8;
            }
            e.lens[U[e.have++]] = l & 7, l >>>= 3, u -= 3;
          }
          for (; e.have < 19; )
            e.lens[U[e.have++]] = 0;
          if (e.lencode = e.lendyn, e.lenbits = 7, O = { bits: e.lenbits }, M = vl(zT, e.lens, 0, 19, e.lencode, 0, e.work, O), e.lenbits = O.bits, M) {
            r.msg = "invalid code lengths set", e.mode = br;
            break;
          }
          e.have = 0, e.mode = i1;
        /* falls through */
        case i1:
          for (; e.have < e.nlen + e.ndist; ) {
            for (; y = e.lencode[l & (1 << e.lenbits) - 1], w = y >>> 24, E = y >>> 16 & 255, C = y & 65535, !(w <= u); ) {
              if (i === 0)
                break e;
              i--, l += A[a++] << u, u += 8;
            }
            if (C < 16)
              l >>>= w, u -= w, e.lens[e.have++] = C;
            else {
              if (C === 16) {
                for (S = w + 2; u < S; ) {
                  if (i === 0)
                    break e;
                  i--, l += A[a++] << u, u += 8;
                }
                if (l >>>= w, u -= w, e.have === 0) {
                  r.msg = "invalid bit length repeat", e.mode = br;
                  break;
                }
                N = e.lens[e.have - 1], c = 3 + (l & 3), l >>>= 2, u -= 2;
              } else if (C === 17) {
                for (S = w + 3; u < S; ) {
                  if (i === 0)
                    break e;
                  i--, l += A[a++] << u, u += 8;
                }
                l >>>= w, u -= w, N = 0, c = 3 + (l & 7), l >>>= 3, u -= 3;
              } else {
                for (S = w + 7; u < S; ) {
                  if (i === 0)
                    break e;
                  i--, l += A[a++] << u, u += 8;
                }
                l >>>= w, u -= w, N = 0, c = 11 + (l & 127), l >>>= 7, u -= 7;
              }
              if (e.have + c > e.nlen + e.ndist) {
                r.msg = "invalid bit length repeat", e.mode = br;
                break;
              }
              for (; c--; )
                e.lens[e.have++] = N;
            }
          }
          if (e.mode === br)
            break;
          if (e.lens[256] === 0) {
            r.msg = "invalid code -- missing end-of-block", e.mode = br;
            break;
          }
          if (e.lenbits = 9, O = { bits: e.lenbits }, M = vl(r5, e.lens, 0, e.nlen, e.lencode, 0, e.work, O), e.lenbits = O.bits, M) {
            r.msg = "invalid literal/lengths set", e.mode = br;
            break;
          }
          if (e.distbits = 6, e.distcode = e.distdyn, O = { bits: e.distbits }, M = vl(n5, e.lens, e.nlen, e.ndist, e.distcode, 0, e.work, O), e.distbits = O.bits, M) {
            r.msg = "invalid distances set", e.mode = br;
            break;
          }
          if (e.mode = cu, t === uu)
            break e;
        /* falls through */
        case cu:
          e.mode = fu;
        /* falls through */
        case fu:
          if (i >= 6 && o >= 258) {
            r.next_out = s, r.avail_out = o, r.next_in = a, r.avail_in = i, e.hold = l, e.bits = u, qT(r, g), s = r.next_out, n = r.output, o = r.avail_out, a = r.next_in, A = r.input, i = r.avail_in, l = e.hold, u = e.bits, e.mode === Fi && (e.back = -1);
            break;
          }
          for (e.back = 0; y = e.lencode[l & (1 << e.lenbits) - 1], w = y >>> 24, E = y >>> 16 & 255, C = y & 65535, !(w <= u); ) {
            if (i === 0)
              break e;
            i--, l += A[a++] << u, u += 8;
          }
          if (E && (E & 240) === 0) {
            for (F = w, H = E, q = C; y = e.lencode[q + ((l & (1 << F + H) - 1) >> F)], w = y >>> 24, E = y >>> 16 & 255, C = y & 65535, !(F + w <= u); ) {
              if (i === 0)
                break e;
              i--, l += A[a++] << u, u += 8;
            }
            l >>>= F, u -= F, e.back += F;
          }
          if (l >>>= w, u -= w, e.back += w, e.length = C, E === 0) {
            e.mode = c1;
            break;
          }
          if (E & 32) {
            e.back = -1, e.mode = Fi;
            break;
          }
          if (E & 64) {
            r.msg = "invalid literal/length code", e.mode = br;
            break;
          }
          e.extra = E & 15, e.mode = s1;
        /* falls through */
        case s1:
          if (e.extra) {
            for (S = e.extra; u < S; ) {
              if (i === 0)
                break e;
              i--, l += A[a++] << u, u += 8;
            }
            e.length += l & (1 << e.extra) - 1, l >>>= e.extra, u -= e.extra, e.back += e.extra;
          }
          e.was = e.length, e.mode = o1;
        /* falls through */
        case o1:
          for (; y = e.distcode[l & (1 << e.distbits) - 1], w = y >>> 24, E = y >>> 16 & 255, C = y & 65535, !(w <= u); ) {
            if (i === 0)
              break e;
            i--, l += A[a++] << u, u += 8;
          }
          if ((E & 240) === 0) {
            for (F = w, H = E, q = C; y = e.distcode[q + ((l & (1 << F + H) - 1) >> F)], w = y >>> 24, E = y >>> 16 & 255, C = y & 65535, !(F + w <= u); ) {
              if (i === 0)
                break e;
              i--, l += A[a++] << u, u += 8;
            }
            l >>>= F, u -= F, e.back += F;
          }
          if (l >>>= w, u -= w, e.back += w, E & 64) {
            r.msg = "invalid distance code", e.mode = br;
            break;
          }
          e.offset = C, e.extra = E & 15, e.mode = l1;
        /* falls through */
        case l1:
          if (e.extra) {
            for (S = e.extra; u < S; ) {
              if (i === 0)
                break e;
              i--, l += A[a++] << u, u += 8;
            }
            e.offset += l & (1 << e.extra) - 1, l >>>= e.extra, u -= e.extra, e.back += e.extra;
          }
          if (e.offset > e.dmax) {
            r.msg = "invalid distance too far back", e.mode = br;
            break;
          }
          e.mode = u1;
        /* falls through */
        case u1:
          if (o === 0)
            break e;
          if (c = g - o, e.offset > c) {
            if (c = e.offset - c, c > e.whave && e.sane) {
              r.msg = "invalid distance too far back", e.mode = br;
              break;
            }
            c > e.wnext ? (c -= e.wnext, p = e.wsize - c) : p = e.wnext - c, c > e.length && (c = e.length), m = e.window;
          } else
            m = n, p = s - e.offset, c = e.length;
          c > o && (c = o), o -= c, e.length -= c;
          do
            n[s++] = m[p++];
          while (--c);
          e.length === 0 && (e.mode = fu);
          break;
        case c1:
          if (o === 0)
            break e;
          n[s++] = e.length, o--, e.mode = fu;
          break;
        case xf:
          if (e.wrap) {
            for (; u < 32; ) {
              if (i === 0)
                break e;
              i--, l |= A[a++] << u, u += 8;
            }
            if (g -= o, r.total_out += g, e.total += g, e.wrap & 4 && g && (r.adler = e.check = /*UPDATE_CHECK(state.check, put - _out, _out);*/
            e.flags ? ui(e.check, n, g, s - g) : np(e.check, n, g, s - g)), g = o, e.wrap & 4 && (e.flags ? l : d1(l)) !== e.check) {
              r.msg = "incorrect data check", e.mode = br;
              break;
            }
            l = 0, u = 0;
          }
          e.mode = f1;
        /* falls through */
        case f1:
          if (e.wrap && e.flags) {
            for (; u < 32; ) {
              if (i === 0)
                break e;
              i--, l += A[a++] << u, u += 8;
            }
            if (e.wrap & 4 && l !== (e.total & 4294967295)) {
              r.msg = "incorrect length check", e.mode = br;
              break;
            }
            l = 0, u = 0;
          }
          e.mode = h1;
        /* falls through */
        case h1:
          M = JT;
          break e;
        case br:
          M = a5;
          break e;
        case s5:
          return i5;
        case o5:
        /* falls through */
        default:
          return _a;
      }
  return r.next_out = s, r.avail_out = o, r.next_in = a, r.avail_in = i, e.hold = l, e.bits = u, (e.wsize || g !== r.avail_out && e.mode < br && (e.mode < xf || t !== j0)) && h5(r, r.output, r.next_out, g - r.avail_out), h -= r.avail_in, g -= r.avail_out, r.total_in += h, r.total_out += g, e.total += g, e.wrap & 4 && g && (r.adler = e.check = /*UPDATE_CHECK(state.check, strm.next_out - _out, _out);*/
  e.flags ? ui(e.check, n, g, r.next_out - g) : np(e.check, n, g, r.next_out - g)), r.data_type = e.bits + (e.last ? 64 : 0) + (e.mode === Fi ? 128 : 0) + (e.mode === cu || e.mode === Ff ? 256 : 0), (h === 0 && g === 0 || t === j0) && M === Vs && (M = eQ), M;
}, lQ = (r) => {
  if (qs(r))
    return _a;
  let t = r.state;
  return t.window && (t.window = null), r.state = null, Vs;
}, uQ = (r, t) => {
  if (qs(r))
    return _a;
  const e = r.state;
  return (e.wrap & 2) === 0 ? _a : (e.head = t, t.done = !1, Vs);
}, cQ = (r, t) => {
  const e = t.length;
  let A, n, a;
  return qs(r) || (A = r.state, A.wrap !== 0 && A.mode !== cc) ? _a : A.mode === cc && (n = 1, n = np(n, t, e, 0), n !== A.check) ? a5 : (a = h5(r, t, e, e), a ? (A.mode = s5, i5) : (A.havedict = 1, Vs));
};
var fQ = u5, hQ = c5, dQ = l5, gQ = iQ, pQ = f5, vQ = oQ, mQ = lQ, wQ = uQ, BQ = cQ, yQ = "pako inflate (from Nodeca project)", ki = {
  inflateReset: fQ,
  inflateReset2: hQ,
  inflateResetKeep: dQ,
  inflateInit: gQ,
  inflateInit2: pQ,
  inflate: vQ,
  inflateEnd: mQ,
  inflateGetHeader: wQ,
  inflateSetDictionary: BQ,
  inflateInfo: yQ
};
function bQ() {
  this.text = 0, this.time = 0, this.xflags = 0, this.os = 0, this.extra = null, this.extra_len = 0, this.name = "", this.comment = "", this.hcrc = 0, this.done = !1;
}
var CQ = bQ;
const d5 = Object.prototype.toString, {
  Z_NO_FLUSH: EQ,
  Z_FINISH: FQ,
  Z_OK: Fl,
  Z_STREAM_END: Tf,
  Z_NEED_DICT: Qf,
  Z_STREAM_ERROR: xQ,
  Z_DATA_ERROR: p1,
  Z_MEM_ERROR: SQ
} = e5;
function Tl(r) {
  this.options = t5.assign({
    chunkSize: 1024 * 64,
    windowBits: 15,
    to: ""
  }, r || {});
  const t = this.options;
  t.raw && t.windowBits >= 0 && t.windowBits < 16 && (t.windowBits = -t.windowBits, t.windowBits === 0 && (t.windowBits = -15)), t.windowBits >= 0 && t.windowBits < 16 && !(r && r.windowBits) && (t.windowBits += 32), t.windowBits > 15 && t.windowBits < 48 && (t.windowBits & 15) === 0 && (t.windowBits |= 15), this.err = 0, this.msg = "", this.ended = !1, this.chunks = [], this.strm = new KT(), this.strm.avail_out = 0;
  let e = ki.inflateInit2(
    this.strm,
    t.windowBits
  );
  if (e !== Fl)
    throw new Error(ap[e]);
  if (this.header = new CQ(), ki.inflateGetHeader(this.strm, this.header), t.dictionary && (typeof t.dictionary == "string" ? t.dictionary = ip.string2buf(t.dictionary) : d5.call(t.dictionary) === "[object ArrayBuffer]" && (t.dictionary = new Uint8Array(t.dictionary)), t.raw && (e = ki.inflateSetDictionary(this.strm, t.dictionary), e !== Fl)))
    throw new Error(ap[e]);
}
Tl.prototype.push = function(r, t) {
  const e = this.strm, A = this.options.chunkSize, n = this.options.dictionary;
  let a, s, i;
  if (this.ended) return !1;
  for (t === ~~t ? s = t : s = t === !0 ? FQ : EQ, d5.call(r) === "[object ArrayBuffer]" ? e.input = new Uint8Array(r) : e.input = r, e.next_in = 0, e.avail_in = e.input.length; ; ) {
    for (e.avail_out === 0 && (e.output = new Uint8Array(A), e.next_out = 0, e.avail_out = A), a = ki.inflate(e, s), a === Qf && n && (a = ki.inflateSetDictionary(e, n), a === Fl ? a = ki.inflate(e, s) : a === p1 && (a = Qf)); e.avail_in > 0 && a === Tf && e.state.wrap > 0 && r[e.next_in] !== 0; )
      ki.inflateReset(e), a = ki.inflate(e, s);
    switch (a) {
      case xQ:
      case p1:
      case Qf:
      case SQ:
        return this.onEnd(a), this.ended = !0, !1;
    }
    if (i = e.avail_out, e.next_out && (e.avail_out === 0 || a === Tf))
      if (this.options.to === "string") {
        let o = ip.utf8border(e.output, e.next_out), l = e.next_out - o, u = ip.buf2string(e.output, o);
        e.next_out = l, e.avail_out = A - l, l && e.output.set(e.output.subarray(o, o + l), 0), this.onData(u);
      } else
        this.onData(e.output.length === e.next_out ? e.output : e.output.subarray(0, e.next_out));
    if (!(a === Fl && i === 0)) {
      if (a === Tf)
        return a = ki.inflateEnd(this.strm), this.onEnd(a), this.ended = !0, !0;
      if (e.avail_in === 0) break;
    }
  }
  return !0;
};
Tl.prototype.onData = function(r) {
  this.chunks.push(r);
};
Tl.prototype.onEnd = function(r) {
  r === Fl && (this.options.to === "string" ? this.result = this.chunks.join("") : this.result = t5.flattenChunks(this.chunks)), this.chunks = [], this.err = r, this.msg = this.strm.msg;
};
function UQ(r, t) {
  const e = new Tl(t);
  if (e.push(r), e.err) throw e.msg || ap[e.err];
  return e.result;
}
var TQ = Tl, QQ = UQ, DQ = {
  Inflate: TQ,
  inflate: QQ
};
const { Inflate: kQ, inflate: LQ } = DQ;
var v1 = kQ, IQ = LQ;
const g5 = [];
for (let r = 0; r < 256; r++) {
  let t = r;
  for (let e = 0; e < 8; e++)
    t & 1 ? t = 3988292384 ^ t >>> 1 : t = t >>> 1;
  g5[r] = t;
}
const m1 = 4294967295;
function _Q(r, t, e) {
  let A = r;
  for (let n = 0; n < e; n++)
    A = g5[(A ^ t[n]) & 255] ^ A >>> 8;
  return A;
}
function NQ(r, t) {
  return (_Q(m1, r, t) ^ m1) >>> 0;
}
function w1(r, t, e) {
  const A = r.readUint32(), n = NQ(new Uint8Array(r.buffer, r.byteOffset + r.offset - t - 4, t), t);
  if (n !== A)
    throw new Error(`CRC mismatch for chunk ${e}. Expected ${A}, found ${n}`);
}
function p5(r, t, e) {
  for (let A = 0; A < e; A++)
    t[A] = r[A];
}
function v5(r, t, e, A) {
  let n = 0;
  for (; n < A; n++)
    t[n] = r[n];
  for (; n < e; n++)
    t[n] = r[n] + t[n - A] & 255;
}
function m5(r, t, e, A) {
  let n = 0;
  if (e.length === 0)
    for (; n < A; n++)
      t[n] = r[n];
  else
    for (; n < A; n++)
      t[n] = r[n] + e[n] & 255;
}
function w5(r, t, e, A, n) {
  let a = 0;
  if (e.length === 0) {
    for (; a < n; a++)
      t[a] = r[a];
    for (; a < A; a++)
      t[a] = r[a] + (t[a - n] >> 1) & 255;
  } else {
    for (; a < n; a++)
      t[a] = r[a] + (e[a] >> 1) & 255;
    for (; a < A; a++)
      t[a] = r[a] + (t[a - n] + e[a] >> 1) & 255;
  }
}
function B5(r, t, e, A, n) {
  let a = 0;
  if (e.length === 0) {
    for (; a < n; a++)
      t[a] = r[a];
    for (; a < A; a++)
      t[a] = r[a] + t[a - n] & 255;
  } else {
    for (; a < n; a++)
      t[a] = r[a] + e[a] & 255;
    for (; a < A; a++)
      t[a] = r[a] + MQ(t[a - n], e[a], e[a - n]) & 255;
  }
}
function MQ(r, t, e) {
  const A = r + t - e, n = Math.abs(A - r), a = Math.abs(A - t), s = Math.abs(A - e);
  return n <= a && n <= s ? r : a <= s ? t : e;
}
function OQ(r, t, e, A, n, a) {
  switch (r) {
    case 0:
      p5(t, e, n);
      break;
    case 1:
      v5(t, e, n, a);
      break;
    case 2:
      m5(t, e, A, n);
      break;
    case 3:
      w5(t, e, A, n, a);
      break;
    case 4:
      B5(t, e, A, n, a);
      break;
    default:
      throw new Error(`Unsupported filter: ${r}`);
  }
}
const RQ = new Uint16Array([255]), HQ = new Uint8Array(RQ.buffer), PQ = HQ[0] === 255;
function KQ(r) {
  const { data: t, width: e, height: A, channels: n, depth: a } = r, s = [
    { x: 0, y: 0, xStep: 8, yStep: 8 },
    // Pass 1
    { x: 4, y: 0, xStep: 8, yStep: 8 },
    // Pass 2
    { x: 0, y: 4, xStep: 4, yStep: 8 },
    // Pass 3
    { x: 2, y: 0, xStep: 4, yStep: 4 },
    // Pass 4
    { x: 0, y: 2, xStep: 2, yStep: 4 },
    // Pass 5
    { x: 1, y: 0, xStep: 2, yStep: 2 },
    // Pass 6
    { x: 0, y: 1, xStep: 1, yStep: 2 }
    // Pass 7
  ], i = Math.ceil(a / 8) * n, o = new Uint8Array(A * e * i);
  let l = 0;
  for (let u = 0; u < 7; u++) {
    const h = s[u], g = Math.ceil((e - h.x) / h.xStep), c = Math.ceil((A - h.y) / h.yStep);
    if (g <= 0 || c <= 0)
      continue;
    const p = g * i, m = new Uint8Array(p);
    for (let y = 0; y < c; y++) {
      const w = t[l++], E = t.subarray(l, l + p);
      l += p;
      const C = new Uint8Array(p);
      OQ(w, E, C, m, p, i), m.set(C);
      for (let F = 0; F < g; F++) {
        const H = h.x + F * h.xStep, q = h.y + y * h.yStep;
        if (!(H >= e || q >= A))
          for (let N = 0; N < i; N++)
            o[(q * e + H) * i + N] = C[F * i + N];
      }
    }
  }
  if (a === 16) {
    const u = new Uint16Array(o.buffer);
    if (PQ)
      for (let h = 0; h < u.length; h++)
        u[h] = VQ(u[h]);
    return u;
  } else
    return o;
}
function VQ(r) {
  return (r & 255) << 8 | r >> 8 & 255;
}
const qQ = new Uint16Array([255]), jQ = new Uint8Array(qQ.buffer), WQ = jQ[0] === 255, GQ = new Uint8Array(0);
function B1(r) {
  const { data: t, width: e, height: A, channels: n, depth: a } = r, s = Math.ceil(a / 8) * n, i = Math.ceil(a / 8 * n * e), o = new Uint8Array(A * i);
  let l = GQ, u = 0, h, g;
  for (let c = 0; c < A; c++) {
    switch (h = t.subarray(u + 1, u + 1 + i), g = o.subarray(c * i, (c + 1) * i), t[u]) {
      case 0:
        p5(h, g, i);
        break;
      case 1:
        v5(h, g, i, s);
        break;
      case 2:
        m5(h, g, l, i);
        break;
      case 3:
        w5(h, g, l, i, s);
        break;
      case 4:
        B5(h, g, l, i, s);
        break;
      default:
        throw new Error(`Unsupported filter: ${t[u]}`);
    }
    l = g, u += i + 1;
  }
  if (a === 16) {
    const c = new Uint16Array(o.buffer);
    if (WQ)
      for (let p = 0; p < c.length; p++)
        c[p] = YQ(c[p]);
    return c;
  } else
    return o;
}
function YQ(r) {
  return (r & 255) << 8 | r >> 8 & 255;
}
const $u = Uint8Array.of(137, 80, 78, 71, 13, 10, 26, 10);
function y1(r) {
  if (!$Q(r.readBytes($u.length)))
    throw new Error("wrong PNG signature");
}
function $Q(r) {
  if (r.length < $u.length)
    return !1;
  for (let t = 0; t < $u.length; t++)
    if (r[t] !== $u[t])
      return !1;
  return !0;
}
const zQ = "tEXt", XQ = 0, y5 = new TextDecoder("latin1");
function JQ(r) {
  if (eD(r), r.length === 0 || r.length > 79)
    throw new Error("keyword length must be between 1 and 79");
}
const ZQ = /^[\u0000-\u00FF]*$/;
function eD(r) {
  if (!ZQ.test(r))
    throw new Error("invalid latin1 text");
}
function tD(r, t, e) {
  const A = b5(t);
  r[A] = AD(t, e - A.length - 1);
}
function b5(r) {
  for (r.mark(); r.readByte() !== XQ; )
    ;
  const t = r.offset;
  r.reset();
  const e = y5.decode(r.readBytes(t - r.offset - 1));
  return r.skip(1), JQ(e), e;
}
function AD(r, t) {
  return y5.decode(r.readBytes(t));
}
const ma = {
  UNKNOWN: -1,
  GREYSCALE: 0,
  TRUECOLOUR: 2,
  INDEXED_COLOUR: 3,
  GREYSCALE_ALPHA: 4,
  TRUECOLOUR_ALPHA: 6
}, Df = {
  UNKNOWN: -1,
  DEFLATE: 0
}, b1 = {
  UNKNOWN: -1,
  ADAPTIVE: 0
}, kf = {
  UNKNOWN: -1,
  NO_INTERLACE: 0,
  ADAM7: 1
}, hu = {
  NONE: 0,
  BACKGROUND: 1,
  PREVIOUS: 2
}, Lf = {
  SOURCE: 0,
  OVER: 1
};
class rD extends Zp {
  constructor(e, A = {}) {
    super(e);
    HA(this, "_checkCrc");
    HA(this, "_inflator");
    HA(this, "_png");
    HA(this, "_apng");
    HA(this, "_end");
    HA(this, "_hasPalette");
    HA(this, "_palette");
    HA(this, "_hasTransparency");
    HA(this, "_transparency");
    HA(this, "_compressionMethod");
    HA(this, "_filterMethod");
    HA(this, "_interlaceMethod");
    HA(this, "_colorType");
    HA(this, "_isAnimated");
    HA(this, "_numberOfFrames");
    HA(this, "_numberOfPlays");
    HA(this, "_frames");
    HA(this, "_writingDataChunks");
    const { checkCrc: n = !1 } = A;
    this._checkCrc = n, this._inflator = new v1(), this._png = {
      width: -1,
      height: -1,
      channels: -1,
      data: new Uint8Array(0),
      depth: 1,
      text: {}
    }, this._apng = {
      width: -1,
      height: -1,
      channels: -1,
      depth: 1,
      numberOfFrames: 1,
      numberOfPlays: 0,
      text: {},
      frames: []
    }, this._end = !1, this._hasPalette = !1, this._palette = [], this._hasTransparency = !1, this._transparency = new Uint16Array(0), this._compressionMethod = Df.UNKNOWN, this._filterMethod = b1.UNKNOWN, this._interlaceMethod = kf.UNKNOWN, this._colorType = ma.UNKNOWN, this._isAnimated = !1, this._numberOfFrames = 1, this._numberOfPlays = 0, this._frames = [], this._writingDataChunks = !1, this.setBigEndian();
  }
  decode() {
    for (y1(this); !this._end; ) {
      const e = this.readUint32(), A = this.readChars(4);
      this.decodeChunk(e, A);
    }
    return this.decodeImage(), this._png;
  }
  decodeApng() {
    for (y1(this); !this._end; ) {
      const e = this.readUint32(), A = this.readChars(4);
      this.decodeApngChunk(e, A);
    }
    return this.decodeApngImage(), this._apng;
  }
  // https://www.w3.org/TR/PNG/#5Chunk-layout
  decodeChunk(e, A) {
    const n = this.offset;
    switch (A) {
      // 11.2 Critical chunks
      case "IHDR":
        this.decodeIHDR();
        break;
      case "PLTE":
        this.decodePLTE(e);
        break;
      case "IDAT":
        this.decodeIDAT(e);
        break;
      case "IEND":
        this._end = !0;
        break;
      // 11.3 Ancillary chunks
      case "tRNS":
        this.decodetRNS(e);
        break;
      case "iCCP":
        this.decodeiCCP(e);
        break;
      case zQ:
        tD(this._png.text, this, e);
        break;
      case "pHYs":
        this.decodepHYs();
        break;
      default:
        this.skip(e);
        break;
    }
    if (this.offset - n !== e)
      throw new Error(`Length mismatch while decoding chunk ${A}`);
    this._checkCrc ? w1(this, e + 4, A) : this.skip(4);
  }
  decodeApngChunk(e, A) {
    const n = this.offset;
    switch (A !== "fdAT" && A !== "IDAT" && this._writingDataChunks && this.pushDataToFrame(), A) {
      case "acTL":
        this.decodeACTL();
        break;
      case "fcTL":
        this.decodeFCTL();
        break;
      case "fdAT":
        this.decodeFDAT(e);
        break;
      default:
        this.decodeChunk(e, A), this.offset = n + e;
        break;
    }
    if (this.offset - n !== e)
      throw new Error(`Length mismatch while decoding chunk ${A}`);
    this._checkCrc ? w1(this, e + 4, A) : this.skip(4);
  }
  // https://www.w3.org/TR/PNG/#11IHDR
  decodeIHDR() {
    const e = this._png;
    e.width = this.readUint32(), e.height = this.readUint32(), e.depth = nD(this.readUint8());
    const A = this.readUint8();
    this._colorType = A;
    let n;
    switch (A) {
      case ma.GREYSCALE:
        n = 1;
        break;
      case ma.TRUECOLOUR:
        n = 3;
        break;
      case ma.INDEXED_COLOUR:
        n = 1;
        break;
      case ma.GREYSCALE_ALPHA:
        n = 2;
        break;
      case ma.TRUECOLOUR_ALPHA:
        n = 4;
        break;
      // Kept for exhaustiveness.
      // eslint-disable-next-line unicorn/no-useless-switch-case
      case ma.UNKNOWN:
      default:
        throw new Error(`Unknown color type: ${A}`);
    }
    if (this._png.channels = n, this._compressionMethod = this.readUint8(), this._compressionMethod !== Df.DEFLATE)
      throw new Error(`Unsupported compression method: ${this._compressionMethod}`);
    this._filterMethod = this.readUint8(), this._interlaceMethod = this.readUint8();
  }
  decodeACTL() {
    this._numberOfFrames = this.readUint32(), this._numberOfPlays = this.readUint32(), this._isAnimated = !0;
  }
  decodeFCTL() {
    const e = {
      sequenceNumber: this.readUint32(),
      width: this.readUint32(),
      height: this.readUint32(),
      xOffset: this.readUint32(),
      yOffset: this.readUint32(),
      delayNumber: this.readUint16(),
      delayDenominator: this.readUint16(),
      disposeOp: this.readUint8(),
      blendOp: this.readUint8(),
      data: new Uint8Array(0)
    };
    this._frames.push(e);
  }
  // https://www.w3.org/TR/PNG/#11PLTE
  decodePLTE(e) {
    if (e % 3 !== 0)
      throw new RangeError(`PLTE field length must be a multiple of 3. Got ${e}`);
    const A = e / 3;
    this._hasPalette = !0;
    const n = [];
    this._palette = n;
    for (let a = 0; a < A; a++)
      n.push([this.readUint8(), this.readUint8(), this.readUint8()]);
  }
  // https://www.w3.org/TR/PNG/#11IDAT
  decodeIDAT(e) {
    this._writingDataChunks = !0;
    const A = e, n = this.offset + this.byteOffset;
    if (this._inflator.push(new Uint8Array(this.buffer, n, A)), this._inflator.err)
      throw new Error(`Error while decompressing the data: ${this._inflator.err}`);
    this.skip(e);
  }
  decodeFDAT(e) {
    this._writingDataChunks = !0;
    let A = e, n = this.offset + this.byteOffset;
    if (n += 4, A -= 4, this._inflator.push(new Uint8Array(this.buffer, n, A)), this._inflator.err)
      throw new Error(`Error while decompressing the data: ${this._inflator.err}`);
    this.skip(e);
  }
  // https://www.w3.org/TR/PNG/#11tRNS
  decodetRNS(e) {
    switch (this._colorType) {
      case ma.GREYSCALE:
      case ma.TRUECOLOUR: {
        if (e % 2 !== 0)
          throw new RangeError(`tRNS chunk length must be a multiple of 2. Got ${e}`);
        if (e / 2 > this._png.width * this._png.height)
          throw new Error(`tRNS chunk contains more alpha values than there are pixels (${e / 2} vs ${this._png.width * this._png.height})`);
        this._hasTransparency = !0, this._transparency = new Uint16Array(e / 2);
        for (let A = 0; A < e / 2; A++)
          this._transparency[A] = this.readUint16();
        break;
      }
      case ma.INDEXED_COLOUR: {
        if (e > this._palette.length)
          throw new Error(`tRNS chunk contains more alpha values than there are palette colors (${e} vs ${this._palette.length})`);
        let A = 0;
        for (; A < e; A++) {
          const n = this.readByte();
          this._palette[A].push(n);
        }
        for (; A < this._palette.length; A++)
          this._palette[A].push(255);
        break;
      }
      // Kept for exhaustiveness.
      /* eslint-disable unicorn/no-useless-switch-case */
      case ma.UNKNOWN:
      case ma.GREYSCALE_ALPHA:
      case ma.TRUECOLOUR_ALPHA:
      default:
        throw new Error(`tRNS chunk is not supported for color type ${this._colorType}`);
    }
  }
  // https://www.w3.org/TR/PNG/#11iCCP
  decodeiCCP(e) {
    const A = b5(this), n = this.readUint8();
    if (n !== Df.DEFLATE)
      throw new Error(`Unsupported iCCP compression method: ${n}`);
    const a = this.readBytes(e - A.length - 2);
    this._png.iccEmbeddedProfile = {
      name: A,
      profile: IQ(a)
    };
  }
  // https://www.w3.org/TR/PNG/#11pHYs
  decodepHYs() {
    const e = this.readUint32(), A = this.readUint32(), n = this.readByte();
    this._png.resolution = { x: e, y: A, unit: n };
  }
  decodeApngImage() {
    this._apng.width = this._png.width, this._apng.height = this._png.height, this._apng.channels = this._png.channels, this._apng.depth = this._png.depth, this._apng.numberOfFrames = this._numberOfFrames, this._apng.numberOfPlays = this._numberOfPlays, this._apng.text = this._png.text, this._apng.resolution = this._png.resolution;
    for (let e = 0; e < this._numberOfFrames; e++) {
      const A = {
        sequenceNumber: this._frames[e].sequenceNumber,
        delayNumber: this._frames[e].delayNumber,
        delayDenominator: this._frames[e].delayDenominator,
        data: this._apng.depth === 8 ? new Uint8Array(this._apng.width * this._apng.height * this._apng.channels) : new Uint16Array(this._apng.width * this._apng.height * this._apng.channels)
      }, n = this._frames.at(e);
      if (n) {
        if (n.data = B1({
          data: n.data,
          width: n.width,
          height: n.height,
          channels: this._apng.channels,
          depth: this._apng.depth
        }), this._hasPalette && (this._apng.palette = this._palette), this._hasTransparency && (this._apng.transparency = this._transparency), e === 0 || n.xOffset === 0 && n.yOffset === 0 && n.width === this._png.width && n.height === this._png.height)
          A.data = n.data;
        else {
          const a = this._apng.frames.at(e - 1);
          this.disposeFrame(n, a, A), this.addFrameDataToCanvas(A, n);
        }
        this._apng.frames.push(A);
      }
    }
    return this._apng;
  }
  disposeFrame(e, A, n) {
    switch (e.disposeOp) {
      case hu.NONE:
        break;
      case hu.BACKGROUND:
        for (let a = 0; a < this._png.height; a++)
          for (let s = 0; s < this._png.width; s++) {
            const i = (a * e.width + s) * this._png.channels;
            for (let o = 0; o < this._png.channels; o++)
              n.data[i + o] = 0;
          }
        break;
      case hu.PREVIOUS:
        n.data.set(A.data);
        break;
      default:
        throw new Error("Unknown disposeOp");
    }
  }
  addFrameDataToCanvas(e, A) {
    const n = 1 << this._png.depth, a = (s, i) => {
      const o = ((s + A.yOffset) * this._png.width + A.xOffset + i) * this._png.channels, l = (s * A.width + i) * this._png.channels;
      return { index: o, frameIndex: l };
    };
    switch (A.blendOp) {
      case Lf.SOURCE:
        for (let s = 0; s < A.height; s++)
          for (let i = 0; i < A.width; i++) {
            const { index: o, frameIndex: l } = a(s, i);
            for (let u = 0; u < this._png.channels; u++)
              e.data[o + u] = A.data[l + u];
          }
        break;
      // https://www.w3.org/TR/png-3/#13Alpha-channel-processing
      case Lf.OVER:
        for (let s = 0; s < A.height; s++)
          for (let i = 0; i < A.width; i++) {
            const { index: o, frameIndex: l } = a(s, i);
            for (let u = 0; u < this._png.channels; u++) {
              const h = A.data[l + this._png.channels - 1] / n, g = u % (this._png.channels - 1) === 0 ? 1 : A.data[l + u], c = Math.floor(h * g + (1 - h) * e.data[o + u]);
              e.data[o + u] += c;
            }
          }
        break;
      default:
        throw new Error("Unknown blendOp");
    }
  }
  decodeImage() {
    var A;
    if (this._inflator.err)
      throw new Error(`Error while decompressing the data: ${this._inflator.err}`);
    const e = this._isAnimated ? ((A = this._frames) == null ? void 0 : A.at(0)).data : this._inflator.result;
    if (this._filterMethod !== b1.ADAPTIVE)
      throw new Error(`Filter method ${this._filterMethod} not supported`);
    if (this._interlaceMethod === kf.NO_INTERLACE)
      this._png.data = B1({
        data: e,
        width: this._png.width,
        height: this._png.height,
        channels: this._png.channels,
        depth: this._png.depth
      });
    else if (this._interlaceMethod === kf.ADAM7)
      this._png.data = KQ({
        data: e,
        width: this._png.width,
        height: this._png.height,
        channels: this._png.channels,
        depth: this._png.depth
      });
    else
      throw new Error(`Interlace method ${this._interlaceMethod} not supported`);
    this._hasPalette && (this._png.palette = this._palette), this._hasTransparency && (this._png.transparency = this._transparency);
  }
  pushDataToFrame() {
    const e = this._inflator.result, A = this._frames.at(-1);
    A ? A.data = e : this._frames.push({
      sequenceNumber: 0,
      width: this._png.width,
      height: this._png.height,
      xOffset: 0,
      yOffset: 0,
      delayNumber: 0,
      delayDenominator: 0,
      disposeOp: hu.NONE,
      blendOp: Lf.SOURCE,
      data: e
    }), this._inflator = new v1(), this._writingDataChunks = !1;
  }
}
function nD(r) {
  if (r !== 1 && r !== 2 && r !== 4 && r !== 8 && r !== 16)
    throw new Error(`invalid bit depth: ${r}`);
  return r;
}
var C1;
(function(r) {
  r[r.UNKNOWN = 0] = "UNKNOWN", r[r.METRE = 1] = "METRE";
})(C1 || (C1 = {}));
function aD(r, t) {
  return new rD(r, t).decode();
}
/** @license
 *
 * jsPDF - PDF Document creation from JavaScript
 * Version 3.0.4 Built on 2025-11-19T12:48:37.232Z
 *                      CommitID 00000000
 *
 * Copyright (c) 2010-2025 James Hall <james@parall.ax>, https://github.com/MrRio/jsPDF
 *               2015-2025 yWorks GmbH, http://www.yworks.com
 *               2015-2025 Lukas Holländer <lukas.hollaender@yworks.com>, https://github.com/HackbrettXXX
 *               2016-2018 Aras Abbasi <aras.abbasi@gmail.com>
 *               2010 Aaron Spike, https://github.com/acspike
 *               2012 Willow Systems Corporation, https://github.com/willowsystems
 *               2012 Pablo Hess, https://github.com/pablohess
 *               2012 Florian Jenett, https://github.com/fjenett
 *               2013 Warren Weckesser, https://github.com/warrenweckesser
 *               2013 Youssef Beddad, https://github.com/lifof
 *               2013 Lee Driscoll, https://github.com/lsdriscoll
 *               2013 Stefan Slonevskiy, https://github.com/stefslon
 *               2013 Jeremy Morel, https://github.com/jmorel
 *               2013 Christoph Hartmann, https://github.com/chris-rock
 *               2014 Juan Pablo Gaviria, https://github.com/juanpgaviria
 *               2014 James Makes, https://github.com/dollaruw
 *               2014 Diego Casorran, https://github.com/diegocr
 *               2014 Steven Spungin, https://github.com/Flamenco
 *               2014 Kenneth Glassey, https://github.com/Gavvers
 *
 * Permission is hereby granted, free of charge, to any person obtaining
 * a copy of this software and associated documentation files (the
 * "Software"), to deal in the Software without restriction, including
 * without limitation the rights to use, copy, modify, merge, publish,
 * distribute, sublicense, and/or sell copies of the Software, and to
 * permit persons to whom the Software is furnished to do so, subject to
 * the following conditions:
 *
 * The above copyright notice and this permission notice shall be
 * included in all copies or substantial portions of the Software.
 *
 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
 * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
 * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
 * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
 * LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
 * OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
 * WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
 *
 * Contributor(s):
 *    siefkenj, ahwolf, rickygu, Midnith, saintclair, eaparango,
 *    kim3er, mfo, alnorth, Flamenco
 */
var cA = /* @__PURE__ */ (function() {
  return typeof window < "u" ? window : typeof global < "u" ? global : typeof self < "u" ? self : this;
})();
function If() {
  cA.console && typeof cA.console.log == "function" && cA.console.log.apply(cA.console, arguments);
}
var ur = { log: If, warn: function(r) {
  cA.console && (typeof cA.console.warn == "function" ? cA.console.warn.apply(cA.console, arguments) : If.call(null, arguments));
}, error: function(r) {
  cA.console && (typeof cA.console.error == "function" ? cA.console.error.apply(cA.console, arguments) : If(r));
} };
function _f(r, t, e) {
  var A = new XMLHttpRequest();
  A.open("GET", r), A.responseType = "blob", A.onload = function() {
    Qs(A.response, t, e);
  }, A.onerror = function() {
    ur.error("could not download file");
  }, A.send();
}
function E1(r) {
  var t = new XMLHttpRequest();
  t.open("HEAD", r, !1);
  try {
    t.send();
  } catch {
  }
  return t.status >= 200 && t.status <= 299;
}
function du(r) {
  try {
    r.dispatchEvent(new MouseEvent("click"));
  } catch {
    var t = document.createEvent("MouseEvents");
    t.initMouseEvent("click", !0, !0, window, 0, 0, 0, 80, 20, !1, !1, !1, !1, 0, null), r.dispatchEvent(t);
  }
}
var Qs = cA.saveAs || ((typeof window > "u" ? "undefined" : jA(window)) !== "object" || window !== cA ? function() {
} : typeof HTMLAnchorElement < "u" && "download" in HTMLAnchorElement.prototype ? function(r, t, e) {
  var A = cA.URL || cA.webkitURL, n = document.createElement("a");
  t = t || r.name || "download", n.download = t, n.rel = "noopener", typeof r == "string" ? (n.href = r, n.origin !== location.origin ? E1(n.href) ? _f(r, t, e) : du(n, n.target = "_blank") : du(n)) : (n.href = A.createObjectURL(r), setTimeout(function() {
    A.revokeObjectURL(n.href);
  }, 4e4), setTimeout(function() {
    du(n);
  }, 0));
} : "msSaveOrOpenBlob" in navigator ? function(r, t, e) {
  if (t = t || r.name || "download", typeof r == "string") if (E1(r)) _f(r, t, e);
  else {
    var A = document.createElement("a");
    A.href = r, A.target = "_blank", setTimeout(function() {
      du(A);
    });
  }
  else navigator.msSaveOrOpenBlob((function(n, a) {
    return a === void 0 ? a = { autoBom: !1 } : jA(a) !== "object" && (ur.warn("Deprecated: Expected third argument to be a object"), a = { autoBom: !a }), a.autoBom && /^\s*(?:text\/\S*|application\/xml|\S*\/\S*\+xml)\s*;.*charset\s*=\s*utf-8/i.test(n.type) ? new Blob(["\uFEFF", n], { type: n.type }) : n;
  })(r, e), t);
} : function(r, t, e, A) {
  if ((A = A || open("", "_blank")) && (A.document.title = A.document.body.innerText = "downloading..."), typeof r == "string") return _f(r, t, e);
  var n = r.type === "application/octet-stream", a = /constructor/i.test(cA.HTMLElement) || cA.safari, s = /CriOS\/[\d]+/.test(navigator.userAgent);
  if ((s || n && a) && (typeof FileReader > "u" ? "undefined" : jA(FileReader)) === "object") {
    var i = new FileReader();
    i.onloadend = function() {
      var u = i.result;
      u = s ? u : u.replace(/^data:[^;]*;/, "data:attachment/file;"), A ? A.location.href = u : location = u, A = null;
    }, i.readAsDataURL(r);
  } else {
    var o = cA.URL || cA.webkitURL, l = o.createObjectURL(r);
    A ? A.location = l : location.href = l, A = null, setTimeout(function() {
      o.revokeObjectURL(l);
    }, 4e4);
  }
});
/**
 * A class to parse color values
 * @author Stoyan Stefanov <sstoo@gmail.com>
 * {@link   http://www.phpied.com/rgb-color-parser-in-javascript/}
 * @license Use it if you like it
 */
function C5(r) {
  var t;
  r = r || "", this.ok = !1, r.charAt(0) == "#" && (r = r.substr(1, 6)), r = { aliceblue: "f0f8ff", antiquewhite: "faebd7", aqua: "00ffff", aquamarine: "7fffd4", azure: "f0ffff", beige: "f5f5dc", bisque: "ffe4c4", black: "000000", blanchedalmond: "ffebcd", blue: "0000ff", blueviolet: "8a2be2", brown: "a52a2a", burlywood: "deb887", cadetblue: "5f9ea0", chartreuse: "7fff00", chocolate: "d2691e", coral: "ff7f50", cornflowerblue: "6495ed", cornsilk: "fff8dc", crimson: "dc143c", cyan: "00ffff", darkblue: "00008b", darkcyan: "008b8b", darkgoldenrod: "b8860b", darkgray: "a9a9a9", darkgreen: "006400", darkkhaki: "bdb76b", darkmagenta: "8b008b", darkolivegreen: "556b2f", darkorange: "ff8c00", darkorchid: "9932cc", darkred: "8b0000", darksalmon: "e9967a", darkseagreen: "8fbc8f", darkslateblue: "483d8b", darkslategray: "2f4f4f", darkturquoise: "00ced1", darkviolet: "9400d3", deeppink: "ff1493", deepskyblue: "00bfff", dimgray: "696969", dodgerblue: "1e90ff", feldspar: "d19275", firebrick: "b22222", floralwhite: "fffaf0", forestgreen: "228b22", fuchsia: "ff00ff", gainsboro: "dcdcdc", ghostwhite: "f8f8ff", gold: "ffd700", goldenrod: "daa520", gray: "808080", green: "008000", greenyellow: "adff2f", honeydew: "f0fff0", hotpink: "ff69b4", indianred: "cd5c5c", indigo: "4b0082", ivory: "fffff0", khaki: "f0e68c", lavender: "e6e6fa", lavenderblush: "fff0f5", lawngreen: "7cfc00", lemonchiffon: "fffacd", lightblue: "add8e6", lightcoral: "f08080", lightcyan: "e0ffff", lightgoldenrodyellow: "fafad2", lightgrey: "d3d3d3", lightgreen: "90ee90", lightpink: "ffb6c1", lightsalmon: "ffa07a", lightseagreen: "20b2aa", lightskyblue: "87cefa", lightslateblue: "8470ff", lightslategray: "778899", lightsteelblue: "b0c4de", lightyellow: "ffffe0", lime: "00ff00", limegreen: "32cd32", linen: "faf0e6", magenta: "ff00ff", maroon: "800000", mediumaquamarine: "66cdaa", mediumblue: "0000cd", mediumorchid: "ba55d3", mediumpurple: "9370d8", mediumseagreen: "3cb371", mediumslateblue: "7b68ee", mediumspringgreen: "00fa9a", mediumturquoise: "48d1cc", mediumvioletred: "c71585", midnightblue: "191970", mintcream: "f5fffa", mistyrose: "ffe4e1", moccasin: "ffe4b5", navajowhite: "ffdead", navy: "000080", oldlace: "fdf5e6", olive: "808000", olivedrab: "6b8e23", orange: "ffa500", orangered: "ff4500", orchid: "da70d6", palegoldenrod: "eee8aa", palegreen: "98fb98", paleturquoise: "afeeee", palevioletred: "d87093", papayawhip: "ffefd5", peachpuff: "ffdab9", peru: "cd853f", pink: "ffc0cb", plum: "dda0dd", powderblue: "b0e0e6", purple: "800080", red: "ff0000", rosybrown: "bc8f8f", royalblue: "4169e1", saddlebrown: "8b4513", salmon: "fa8072", sandybrown: "f4a460", seagreen: "2e8b57", seashell: "fff5ee", sienna: "a0522d", silver: "c0c0c0", skyblue: "87ceeb", slateblue: "6a5acd", slategray: "708090", snow: "fffafa", springgreen: "00ff7f", steelblue: "4682b4", tan: "d2b48c", teal: "008080", thistle: "d8bfd8", tomato: "ff6347", turquoise: "40e0d0", violet: "ee82ee", violetred: "d02090", wheat: "f5deb3", white: "ffffff", whitesmoke: "f5f5f5", yellow: "ffff00", yellowgreen: "9acd32" }[r = (r = r.replace(/ /g, "")).toLowerCase()] || r;
  for (var e = [{ re: /^rgb\((\d{1,3}),\s*(\d{1,3}),\s*(\d{1,3})\)$/, example: ["rgb(123, 234, 45)", "rgb(255,234,245)"], process: function(i) {
    return [parseInt(i[1]), parseInt(i[2]), parseInt(i[3])];
  } }, { re: /^(\w{2})(\w{2})(\w{2})$/, example: ["#00ff00", "336699"], process: function(i) {
    return [parseInt(i[1], 16), parseInt(i[2], 16), parseInt(i[3], 16)];
  } }, { re: /^(\w{1})(\w{1})(\w{1})$/, example: ["#fb0", "f0f"], process: function(i) {
    return [parseInt(i[1] + i[1], 16), parseInt(i[2] + i[2], 16), parseInt(i[3] + i[3], 16)];
  } }], A = 0; A < e.length; A++) {
    var n = e[A].re, a = e[A].process, s = n.exec(r);
    s && (t = a(s), this.r = t[0], this.g = t[1], this.b = t[2], this.ok = !0);
  }
  this.r = this.r < 0 || isNaN(this.r) ? 0 : this.r > 255 ? 255 : this.r, this.g = this.g < 0 || isNaN(this.g) ? 0 : this.g > 255 ? 255 : this.g, this.b = this.b < 0 || isNaN(this.b) ? 0 : this.b > 255 ? 255 : this.b, this.toRGB = function() {
    return "rgb(" + this.r + ", " + this.g + ", " + this.b + ")";
  }, this.toHex = function() {
    var i = this.r.toString(16), o = this.g.toString(16), l = this.b.toString(16);
    return i.length == 1 && (i = "0" + i), o.length == 1 && (o = "0" + o), l.length == 1 && (l = "0" + l), "#" + i + o + l;
  };
}
var zu = cA.atob.bind(cA), F1 = cA.btoa.bind(cA);
/**
 * @license
 * Joseph Myers does not specify a particular license for his work.
 *
 * Author: Joseph Myers
 * Accessed from: http://www.myersdaily.org/joseph/javascript/md5.js
 *
 * Modified by: Owen Leong
 */
function Nf(r, t) {
  var e = r[0], A = r[1], n = r[2], a = r[3];
  e = In(e, A, n, a, t[0], 7, -680876936), a = In(a, e, A, n, t[1], 12, -389564586), n = In(n, a, e, A, t[2], 17, 606105819), A = In(A, n, a, e, t[3], 22, -1044525330), e = In(e, A, n, a, t[4], 7, -176418897), a = In(a, e, A, n, t[5], 12, 1200080426), n = In(n, a, e, A, t[6], 17, -1473231341), A = In(A, n, a, e, t[7], 22, -45705983), e = In(e, A, n, a, t[8], 7, 1770035416), a = In(a, e, A, n, t[9], 12, -1958414417), n = In(n, a, e, A, t[10], 17, -42063), A = In(A, n, a, e, t[11], 22, -1990404162), e = In(e, A, n, a, t[12], 7, 1804603682), a = In(a, e, A, n, t[13], 12, -40341101), n = In(n, a, e, A, t[14], 17, -1502002290), e = _n(e, A = In(A, n, a, e, t[15], 22, 1236535329), n, a, t[1], 5, -165796510), a = _n(a, e, A, n, t[6], 9, -1069501632), n = _n(n, a, e, A, t[11], 14, 643717713), A = _n(A, n, a, e, t[0], 20, -373897302), e = _n(e, A, n, a, t[5], 5, -701558691), a = _n(a, e, A, n, t[10], 9, 38016083), n = _n(n, a, e, A, t[15], 14, -660478335), A = _n(A, n, a, e, t[4], 20, -405537848), e = _n(e, A, n, a, t[9], 5, 568446438), a = _n(a, e, A, n, t[14], 9, -1019803690), n = _n(n, a, e, A, t[3], 14, -187363961), A = _n(A, n, a, e, t[8], 20, 1163531501), e = _n(e, A, n, a, t[13], 5, -1444681467), a = _n(a, e, A, n, t[2], 9, -51403784), n = _n(n, a, e, A, t[7], 14, 1735328473), e = Nn(e, A = _n(A, n, a, e, t[12], 20, -1926607734), n, a, t[5], 4, -378558), a = Nn(a, e, A, n, t[8], 11, -2022574463), n = Nn(n, a, e, A, t[11], 16, 1839030562), A = Nn(A, n, a, e, t[14], 23, -35309556), e = Nn(e, A, n, a, t[1], 4, -1530992060), a = Nn(a, e, A, n, t[4], 11, 1272893353), n = Nn(n, a, e, A, t[7], 16, -155497632), A = Nn(A, n, a, e, t[10], 23, -1094730640), e = Nn(e, A, n, a, t[13], 4, 681279174), a = Nn(a, e, A, n, t[0], 11, -358537222), n = Nn(n, a, e, A, t[3], 16, -722521979), A = Nn(A, n, a, e, t[6], 23, 76029189), e = Nn(e, A, n, a, t[9], 4, -640364487), a = Nn(a, e, A, n, t[12], 11, -421815835), n = Nn(n, a, e, A, t[15], 16, 530742520), e = Mn(e, A = Nn(A, n, a, e, t[2], 23, -995338651), n, a, t[0], 6, -198630844), a = Mn(a, e, A, n, t[7], 10, 1126891415), n = Mn(n, a, e, A, t[14], 15, -1416354905), A = Mn(A, n, a, e, t[5], 21, -57434055), e = Mn(e, A, n, a, t[12], 6, 1700485571), a = Mn(a, e, A, n, t[3], 10, -1894986606), n = Mn(n, a, e, A, t[10], 15, -1051523), A = Mn(A, n, a, e, t[1], 21, -2054922799), e = Mn(e, A, n, a, t[8], 6, 1873313359), a = Mn(a, e, A, n, t[15], 10, -30611744), n = Mn(n, a, e, A, t[6], 15, -1560198380), A = Mn(A, n, a, e, t[13], 21, 1309151649), e = Mn(e, A, n, a, t[4], 6, -145523070), a = Mn(a, e, A, n, t[11], 10, -1120210379), n = Mn(n, a, e, A, t[2], 15, 718787259), A = Mn(A, n, a, e, t[9], 21, -343485551), r[0] = os(e, r[0]), r[1] = os(A, r[1]), r[2] = os(n, r[2]), r[3] = os(a, r[3]);
}
function Sc(r, t, e, A, n, a) {
  return t = os(os(t, r), os(A, a)), os(t << n | t >>> 32 - n, e);
}
function In(r, t, e, A, n, a, s) {
  return Sc(t & e | ~t & A, r, t, n, a, s);
}
function _n(r, t, e, A, n, a, s) {
  return Sc(t & A | e & ~A, r, t, n, a, s);
}
function Nn(r, t, e, A, n, a, s) {
  return Sc(t ^ e ^ A, r, t, n, a, s);
}
function Mn(r, t, e, A, n, a, s) {
  return Sc(e ^ (t | ~A), r, t, n, a, s);
}
function E5(r) {
  var t, e = r.length, A = [1732584193, -271733879, -1732584194, 271733878];
  for (t = 64; t <= r.length; t += 64) Nf(A, iD(r.substring(t - 64, t)));
  r = r.substring(t - 64);
  var n = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0];
  for (t = 0; t < r.length; t++) n[t >> 2] |= r.charCodeAt(t) << (t % 4 << 3);
  if (n[t >> 2] |= 128 << (t % 4 << 3), t > 55) for (Nf(A, n), t = 0; t < 16; t++) n[t] = 0;
  return n[14] = 8 * e, Nf(A, n), A;
}
function iD(r) {
  var t, e = [];
  for (t = 0; t < 64; t += 4) e[t >> 2] = r.charCodeAt(t) + (r.charCodeAt(t + 1) << 8) + (r.charCodeAt(t + 2) << 16) + (r.charCodeAt(t + 3) << 24);
  return e;
}
var x1 = "0123456789abcdef".split("");
function sD(r) {
  for (var t = "", e = 0; e < 4; e++) t += x1[r >> 8 * e + 4 & 15] + x1[r >> 8 * e & 15];
  return t;
}
function oD(r) {
  return String.fromCharCode(255 & r, (65280 & r) >> 8, (16711680 & r) >> 16, (4278190080 & r) >> 24);
}
function sp(r) {
  return E5(r).map(oD).join("");
}
var lD = (function(r) {
  for (var t = 0; t < r.length; t++) r[t] = sD(r[t]);
  return r.join("");
})(E5("hello")) != "5d41402abc4b2a76b9719d911017c592";
function os(r, t) {
  if (lD) {
    var e = (65535 & r) + (65535 & t);
    return (r >> 16) + (t >> 16) + (e >> 16) << 16 | 65535 & e;
  }
  return r + t & 4294967295;
}
/**
 * @license
 * FPDF is released under a permissive license: there is no usage restriction.
 * You may embed it freely in your application (commercial or not), with or
 * without modifications.
 *
 * Reference: http://www.fpdf.org/en/script/script37.php
 */
function op(r, t) {
  var e, A, n, a;
  if (r !== e) {
    for (var s = (n = r, a = 1 + (256 / r.length | 0), new Array(a + 1).join(n)), i = [], o = 0; o < 256; o++) i[o] = o;
    var l = 0;
    for (o = 0; o < 256; o++) {
      var u = i[o];
      l = (l + u + s.charCodeAt(o)) % 256, i[o] = i[l], i[l] = u;
    }
    e = r, A = i;
  } else i = A;
  var h = t.length, g = 0, c = 0, p = "";
  for (o = 0; o < h; o++) c = (c + (u = i[g = (g + 1) % 256])) % 256, i[g] = i[c], i[c] = u, s = i[(i[g] + i[c]) % 256], p += String.fromCharCode(t.charCodeAt(o) ^ s);
  return p;
}
/**
 * @license
 * Licensed under the MIT License.
 * http://opensource.org/licenses/mit-license
 * Author: Owen Leong (@owenl131)
 * Date: 15 Oct 2020
 * References:
 * https://www.cs.cmu.edu/~dst/Adobe/Gallery/anon21jul01-pdf-encryption.txt
 * https://github.com/foliojs/pdfkit/blob/master/lib/security.js
 * http://www.fpdf.org/en/script/script37.php
 */
var S1 = { print: 4, modify: 8, copy: 16, "annot-forms": 32 };
function mo(r, t, e, A) {
  this.v = 1, this.r = 2;
  var n = 192;
  r.forEach(function(i) {
    if (S1.perm !== void 0) throw new Error("Invalid permission: " + i);
    n += S1[i];
  }), this.padding = "(¿N^NuŠAd\0NVÿú\b..\0¶Ðh>€/\f©þdSiz";
  var a = (t + this.padding).substr(0, 32), s = (e + this.padding).substr(0, 32);
  this.O = this.processOwnerPassword(a, s), this.P = -(1 + (255 ^ n)), this.encryptionKey = sp(a + this.O + this.lsbFirstWord(this.P) + this.hexToBytes(A)).substr(0, 5), this.U = op(this.encryptionKey, this.padding);
}
function wo(r) {
  if (/[^\u0000-\u00ff]/.test(r)) throw new Error("Invalid PDF Name Object: " + r + ", Only accept ASCII characters.");
  for (var t = "", e = r.length, A = 0; A < e; A++) {
    var n = r.charCodeAt(A);
    t += n < 33 || n === 35 || n === 37 || n === 40 || n === 41 || n === 47 || n === 60 || n === 62 || n === 91 || n === 93 || n === 123 || n === 125 || n > 126 ? "#" + ("0" + n.toString(16)).slice(-2) : r[A];
  }
  return t;
}
function U1(r) {
  if (jA(r) !== "object") throw new Error("Invalid Context passed to initialize PubSub (jsPDF-module)");
  var t = {};
  this.subscribe = function(e, A, n) {
    if (n = n || !1, typeof e != "string" || typeof A != "function" || typeof n != "boolean") throw new Error("Invalid arguments passed to PubSub.subscribe (jsPDF-module)");
    t.hasOwnProperty(e) || (t[e] = {});
    var a = Math.random().toString(35);
    return t[e][a] = [A, !!n], a;
  }, this.unsubscribe = function(e) {
    for (var A in t) if (t[A][e]) return delete t[A][e], Object.keys(t[A]).length === 0 && delete t[A], !0;
    return !1;
  }, this.publish = function(e) {
    if (t.hasOwnProperty(e)) {
      var A = Array.prototype.slice.call(arguments, 1), n = [];
      for (var a in t[e]) {
        var s = t[e][a];
        try {
          s[0].apply(r, A);
        } catch (i) {
          cA.console && ur.error("jsPDF PubSub Error", i.message, i);
        }
        s[1] && n.push(a);
      }
      n.length && n.forEach(this.unsubscribe);
    }
  }, this.getTopics = function() {
    return t;
  };
}
function fc(r) {
  if (!(this instanceof fc)) return new fc(r);
  var t = "opacity,stroke-opacity".split(",");
  for (var e in r) r.hasOwnProperty(e) && t.indexOf(e) >= 0 && (this[e] = r[e]);
  this.id = "", this.objectNumber = -1;
}
function F5(r, t) {
  this.gState = r, this.matrix = t, this.id = "", this.objectNumber = -1;
}
function Ls(r, t, e, A, n) {
  if (!(this instanceof Ls)) return new Ls(r, t, e, A, n);
  this.type = r === "axial" ? 2 : 3, this.coords = t, this.colors = e, F5.call(this, A, n);
}
function bo(r, t, e, A, n) {
  if (!(this instanceof bo)) return new bo(r, t, e, A, n);
  this.boundingBox = r, this.xStep = t, this.yStep = e, this.stream = "", this.cloneIndex = 0, F5.call(this, A, n);
}
function eA(r) {
  var t, e = typeof arguments[0] == "string" ? arguments[0] : "p", A = arguments[1], n = arguments[2], a = arguments[3], s = [], i = 1, o = 16, l = "S", u = null;
  jA(r = r || {}) === "object" && (e = r.orientation, A = r.unit || A, n = r.format || n, a = r.compress || r.compressPdf || a, (u = r.encryption || null) !== null && (u.userPassword = u.userPassword || "", u.ownerPassword = u.ownerPassword || "", u.userPermissions = u.userPermissions || []), i = typeof r.userUnit == "number" ? Math.abs(r.userUnit) : 1, r.precision !== void 0 && (t = r.precision), r.floatPrecision !== void 0 && (o = r.floatPrecision), l = r.defaultPathOperation || "S"), s = r.filters || (a === !0 ? ["FlateEncode"] : s), A = A || "mm", e = ("" + (e || "P")).toLowerCase();
  var h = r.putOnlyUsedFonts || !1, g = {}, c = { internal: {}, __private__: {} };
  c.__private__.PubSub = U1;
  var p = "1.3", m = c.__private__.getPdfVersion = function() {
    return p;
  };
  c.__private__.setPdfVersion = function(v) {
    p = v;
  };
  var y = { a0: [2383.94, 3370.39], a1: [1683.78, 2383.94], a2: [1190.55, 1683.78], a3: [841.89, 1190.55], a4: [595.28, 841.89], a5: [419.53, 595.28], a6: [297.64, 419.53], a7: [209.76, 297.64], a8: [147.4, 209.76], a9: [104.88, 147.4], a10: [73.7, 104.88], b0: [2834.65, 4008.19], b1: [2004.09, 2834.65], b2: [1417.32, 2004.09], b3: [1000.63, 1417.32], b4: [708.66, 1000.63], b5: [498.9, 708.66], b6: [354.33, 498.9], b7: [249.45, 354.33], b8: [175.75, 249.45], b9: [124.72, 175.75], b10: [87.87, 124.72], c0: [2599.37, 3676.54], c1: [1836.85, 2599.37], c2: [1298.27, 1836.85], c3: [918.43, 1298.27], c4: [649.13, 918.43], c5: [459.21, 649.13], c6: [323.15, 459.21], c7: [229.61, 323.15], c8: [161.57, 229.61], c9: [113.39, 161.57], c10: [79.37, 113.39], dl: [311.81, 623.62], letter: [612, 792], "government-letter": [576, 756], legal: [612, 1008], "junior-legal": [576, 360], ledger: [1224, 792], tabloid: [792, 1224], "credit-card": [153, 243] };
  c.__private__.getPageFormats = function() {
    return y;
  };
  var w = c.__private__.getPageFormat = function(v) {
    return y[v];
  };
  n = n || "a4";
  var E = "compat", C = "advanced", F = E;
  function H() {
    this.saveGraphicsState(), D(new Lt(St, 0, 0, -St, 0, ua() * St).toString() + " cm"), this.setFontSize(this.getFontSize() / St), l = "n", F = C;
  }
  function q() {
    this.restoreGraphicsState(), l = "S", F = E;
  }
  var N = c.__private__.combineFontStyleAndFontWeight = function(v, T) {
    if (v == "bold" && T == "normal" || v == "bold" && T == 400 || v == "normal" && T == "italic" || v == "bold" && T == "italic") throw new Error("Invalid Combination of fontweight and fontstyle");
    return T && (v = T == 400 || T === "normal" ? v === "italic" ? "italic" : "normal" : T != 700 && T !== "bold" || v !== "normal" ? (T == 700 ? "bold" : T) + "" + v : "bold"), v;
  };
  c.advancedAPI = function(v) {
    var T = F === E;
    return T && H.call(this), typeof v != "function" || (v(this), T && q.call(this)), this;
  }, c.compatAPI = function(v) {
    var T = F === C;
    return T && q.call(this), typeof v != "function" || (v(this), T && H.call(this)), this;
  }, c.isAdvancedAPI = function() {
    return F === C;
  };
  var M, k = function(v) {
    if (F !== C) throw new Error(v + " is only available in 'advanced' API mode. You need to call advancedAPI() first.");
  }, O = c.roundToPrecision = c.__private__.roundToPrecision = function(v, T) {
    var ne = t || T;
    if (isNaN(v) || isNaN(ne)) throw new Error("Invalid argument passed to jsPDF.roundToPrecision");
    return v.toFixed(ne).replace(/0+$/, "");
  };
  M = c.hpf = c.__private__.hpf = typeof o == "number" ? function(v) {
    if (isNaN(v)) throw new Error("Invalid argument passed to jsPDF.hpf");
    return O(v, o);
  } : o === "smart" ? function(v) {
    if (isNaN(v)) throw new Error("Invalid argument passed to jsPDF.hpf");
    return O(v, v > -1 && v < 1 ? 16 : 5);
  } : function(v) {
    if (isNaN(v)) throw new Error("Invalid argument passed to jsPDF.hpf");
    return O(v, 16);
  };
  var S = c.f2 = c.__private__.f2 = function(v) {
    if (isNaN(v)) throw new Error("Invalid argument passed to jsPDF.f2");
    return O(v, 2);
  }, U = c.__private__.f3 = function(v) {
    if (isNaN(v)) throw new Error("Invalid argument passed to jsPDF.f3");
    return O(v, 3);
  }, W = c.scale = c.__private__.scale = function(v) {
    if (isNaN(v)) throw new Error("Invalid argument passed to jsPDF.scale");
    return F === E ? v * St : F === C ? v : void 0;
  }, I = function(v) {
    return W((function(T) {
      return F === E ? ua() - T : F === C ? T : void 0;
    })(v));
  };
  c.__private__.setPrecision = c.setPrecision = function(v) {
    typeof parseInt(v, 10) == "number" && (t = parseInt(v, 10));
  };
  var le, ue = "00000000000000000000000000000000", Z = c.__private__.getFileId = function() {
    return ue;
  }, ee = c.__private__.setFileId = function(v) {
    return ue = v !== void 0 && /^[a-fA-F0-9]{32}$/.test(v) ? v.toUpperCase() : ue.split("").map(function() {
      return "ABCDEF0123456789".charAt(Math.floor(16 * Math.random()));
    }).join(""), u !== null && (aA = new mo(u.userPermissions, u.userPassword, u.ownerPassword, ue)), ue;
  };
  c.setFileId = function(v) {
    return ee(v), this;
  }, c.getFileId = function() {
    return Z();
  };
  var X = c.__private__.convertDateToPDFDate = function(v) {
    var T = v.getTimezoneOffset(), ne = T < 0 ? "+" : "-", we = Math.floor(Math.abs(T / 60)), De = Math.abs(T % 60), nt = [ne, j(we), "'", j(De), "'"].join("");
    return ["D:", v.getFullYear(), j(v.getMonth() + 1), j(v.getDate()), j(v.getHours()), j(v.getMinutes()), j(v.getSeconds()), nt].join("");
  }, Ae = c.__private__.convertPDFDateToDate = function(v) {
    var T = parseInt(v.substr(2, 4), 10), ne = parseInt(v.substr(6, 2), 10) - 1, we = parseInt(v.substr(8, 2), 10), De = parseInt(v.substr(10, 2), 10), nt = parseInt(v.substr(12, 2), 10), ct = parseInt(v.substr(14, 2), 10);
    return new Date(T, ne, we, De, nt, ct, 0);
  }, oe = c.__private__.setCreationDate = function(v) {
    var T;
    if (v === void 0 && (v = /* @__PURE__ */ new Date()), v instanceof Date) T = X(v);
    else {
      if (!/^D:(20[0-2][0-9]|203[0-7]|19[7-9][0-9])(0[0-9]|1[0-2])([0-2][0-9]|3[0-1])(0[0-9]|1[0-9]|2[0-3])(0[0-9]|[1-5][0-9])(0[0-9]|[1-5][0-9])(\+0[0-9]|\+1[0-4]|-0[0-9]|-1[0-1])'(0[0-9]|[1-5][0-9])'?$/.test(v)) throw new Error("Invalid argument passed to jsPDF.setCreationDate");
      T = v;
    }
    return le = T;
  }, x = c.__private__.getCreationDate = function(v) {
    var T = le;
    return v === "jsDate" && (T = Ae(le)), T;
  };
  c.setCreationDate = function(v) {
    return oe(v), this;
  }, c.getCreationDate = function(v) {
    return x(v);
  };
  var L, j = c.__private__.padd2 = function(v) {
    return ("0" + parseInt(v)).slice(-2);
  }, $ = c.__private__.padd2Hex = function(v) {
    return ("00" + (v = v.toString())).substr(v.length);
  }, re = 0, pe = [], de = [], ce = 0, Se = [], qe = [], rt = !1, at = de;
  c.__private__.setCustomOutputDestination = function(v) {
    rt = !0, at = v;
  };
  var dt = function(v) {
    rt || (at = v);
  };
  c.__private__.resetCustomOutputDestination = function() {
    rt = !1, at = de;
  };
  var D = c.__private__.out = function(v) {
    return v = v.toString(), ce += v.length + 1, at.push(v), at;
  }, Ie = c.__private__.write = function(v) {
    return D(arguments.length === 1 ? v.toString() : Array.prototype.join.call(arguments, " "));
  }, me = c.__private__.getArrayBuffer = function(v) {
    for (var T = v.length, ne = new ArrayBuffer(T), we = new Uint8Array(ne); T--; ) we[T] = v.charCodeAt(T);
    return ne;
  }, ve = [["Helvetica", "helvetica", "normal", "WinAnsiEncoding"], ["Helvetica-Bold", "helvetica", "bold", "WinAnsiEncoding"], ["Helvetica-Oblique", "helvetica", "italic", "WinAnsiEncoding"], ["Helvetica-BoldOblique", "helvetica", "bolditalic", "WinAnsiEncoding"], ["Courier", "courier", "normal", "WinAnsiEncoding"], ["Courier-Bold", "courier", "bold", "WinAnsiEncoding"], ["Courier-Oblique", "courier", "italic", "WinAnsiEncoding"], ["Courier-BoldOblique", "courier", "bolditalic", "WinAnsiEncoding"], ["Times-Roman", "times", "normal", "WinAnsiEncoding"], ["Times-Bold", "times", "bold", "WinAnsiEncoding"], ["Times-Italic", "times", "italic", "WinAnsiEncoding"], ["Times-BoldItalic", "times", "bolditalic", "WinAnsiEncoding"], ["ZapfDingbats", "zapfdingbats", "normal", null], ["Symbol", "symbol", "normal", null]];
  c.__private__.getStandardFonts = function() {
    return ve;
  };
  var xe = r.fontSize || 16;
  c.__private__.setFontSize = c.setFontSize = function(v) {
    return xe = F === C ? v / St : v, this;
  };
  var Qe, _e = c.__private__.getFontSize = c.getFontSize = function() {
    return F === E ? xe : xe * St;
  }, Pe = r.R2L || !1;
  c.__private__.setR2L = c.setR2L = function(v) {
    return Pe = v, this;
  }, c.__private__.getR2L = c.getR2L = function() {
    return Pe;
  };
  var je, Ke = c.__private__.setZoomMode = function(v) {
    if (/^(?:\d+\.\d*|\d*\.\d+|\d+)%$/.test(v)) Qe = v;
    else if (isNaN(v)) {
      if ([void 0, null, "fullwidth", "fullheight", "fullpage", "original"].indexOf(v) === -1) throw new Error('zoom must be Integer (e.g. 2), a percentage Value (e.g. 300%) or fullwidth, fullheight, fullpage, original. "' + v + '" is not recognized.');
      Qe = v;
    } else Qe = parseInt(v, 10);
  };
  c.__private__.getZoomMode = function() {
    return Qe;
  };
  var et, ut = c.__private__.setPageMode = function(v) {
    if ([void 0, null, "UseNone", "UseOutlines", "UseThumbs", "FullScreen"].indexOf(v) == -1) throw new Error('Page mode must be one of UseNone, UseOutlines, UseThumbs, or FullScreen. "' + v + '" is not recognized.');
    je = v;
  };
  c.__private__.getPageMode = function() {
    return je;
  };
  var yt = c.__private__.setLayoutMode = function(v) {
    if ([void 0, null, "continuous", "single", "twoleft", "tworight", "two"].indexOf(v) == -1) throw new Error('Layout mode must be one of continuous, single, twoleft, tworight. "' + v + '" is not recognized.');
    et = v;
  };
  c.__private__.getLayoutMode = function() {
    return et;
  }, c.__private__.setDisplayMode = c.setDisplayMode = function(v, T, ne) {
    return Ke(v), yt(T), ut(ne), this;
  };
  var Ft = { title: "", subject: "", author: "", keywords: "", creator: "" };
  c.__private__.getDocumentProperty = function(v) {
    if (Object.keys(Ft).indexOf(v) === -1) throw new Error("Invalid argument passed to jsPDF.getDocumentProperty");
    return Ft[v];
  }, c.__private__.getDocumentProperties = function() {
    return Ft;
  }, c.__private__.setDocumentProperties = c.setProperties = c.setDocumentProperties = function(v) {
    for (var T in Ft) Ft.hasOwnProperty(T) && v[T] && (Ft[T] = v[T]);
    return this;
  }, c.__private__.setDocumentProperty = function(v, T) {
    if (Object.keys(Ft).indexOf(v) === -1) throw new Error("Invalid arguments passed to jsPDF.setDocumentProperty");
    return Ft[v] = T;
  };
  var Bt, St, bt, nA, qt, Ot = {}, Pt = {}, sA = [], kt = {}, hA = {}, Nt = {}, Ce = {}, Ve = null, Re = 0, $e = [], xt = new U1(c), Ht = r.hotfixes || [], Mt = {}, SA = {}, JA = [], Lt = function v(T, ne, we, De, nt, ct) {
    if (!(this instanceof v)) return new v(T, ne, we, De, nt, ct);
    isNaN(T) && (T = 1), isNaN(ne) && (ne = 0), isNaN(we) && (we = 0), isNaN(De) && (De = 1), isNaN(nt) && (nt = 0), isNaN(ct) && (ct = 0), this._matrix = [T, ne, we, De, nt, ct];
  };
  Object.defineProperty(Lt.prototype, "sx", { get: function() {
    return this._matrix[0];
  }, set: function(v) {
    this._matrix[0] = v;
  } }), Object.defineProperty(Lt.prototype, "shy", { get: function() {
    return this._matrix[1];
  }, set: function(v) {
    this._matrix[1] = v;
  } }), Object.defineProperty(Lt.prototype, "shx", { get: function() {
    return this._matrix[2];
  }, set: function(v) {
    this._matrix[2] = v;
  } }), Object.defineProperty(Lt.prototype, "sy", { get: function() {
    return this._matrix[3];
  }, set: function(v) {
    this._matrix[3] = v;
  } }), Object.defineProperty(Lt.prototype, "tx", { get: function() {
    return this._matrix[4];
  }, set: function(v) {
    this._matrix[4] = v;
  } }), Object.defineProperty(Lt.prototype, "ty", { get: function() {
    return this._matrix[5];
  }, set: function(v) {
    this._matrix[5] = v;
  } }), Object.defineProperty(Lt.prototype, "a", { get: function() {
    return this._matrix[0];
  }, set: function(v) {
    this._matrix[0] = v;
  } }), Object.defineProperty(Lt.prototype, "b", { get: function() {
    return this._matrix[1];
  }, set: function(v) {
    this._matrix[1] = v;
  } }), Object.defineProperty(Lt.prototype, "c", { get: function() {
    return this._matrix[2];
  }, set: function(v) {
    this._matrix[2] = v;
  } }), Object.defineProperty(Lt.prototype, "d", { get: function() {
    return this._matrix[3];
  }, set: function(v) {
    this._matrix[3] = v;
  } }), Object.defineProperty(Lt.prototype, "e", { get: function() {
    return this._matrix[4];
  }, set: function(v) {
    this._matrix[4] = v;
  } }), Object.defineProperty(Lt.prototype, "f", { get: function() {
    return this._matrix[5];
  }, set: function(v) {
    this._matrix[5] = v;
  } }), Object.defineProperty(Lt.prototype, "rotation", { get: function() {
    return Math.atan2(this.shx, this.sx);
  } }), Object.defineProperty(Lt.prototype, "scaleX", { get: function() {
    return this.decompose().scale.sx;
  } }), Object.defineProperty(Lt.prototype, "scaleY", { get: function() {
    return this.decompose().scale.sy;
  } }), Object.defineProperty(Lt.prototype, "isIdentity", { get: function() {
    return this.sx === 1 && this.shy === 0 && this.shx === 0 && this.sy === 1 && this.tx === 0 && this.ty === 0;
  } }), Lt.prototype.join = function(v) {
    return [this.sx, this.shy, this.shx, this.sy, this.tx, this.ty].map(M).join(v);
  }, Lt.prototype.multiply = function(v) {
    var T = v.sx * this.sx + v.shy * this.shx, ne = v.sx * this.shy + v.shy * this.sy, we = v.shx * this.sx + v.sy * this.shx, De = v.shx * this.shy + v.sy * this.sy, nt = v.tx * this.sx + v.ty * this.shx + this.tx, ct = v.tx * this.shy + v.ty * this.sy + this.ty;
    return new Lt(T, ne, we, De, nt, ct);
  }, Lt.prototype.decompose = function() {
    var v = this.sx, T = this.shy, ne = this.shx, we = this.sy, De = this.tx, nt = this.ty, ct = Math.sqrt(v * v + T * T), Kt = (v /= ct) * ne + (T /= ct) * we;
    ne -= v * Kt, we -= T * Kt;
    var Yt = Math.sqrt(ne * ne + we * we);
    return Kt /= Yt, v * (we /= Yt) < T * (ne /= Yt) && (v = -v, T = -T, Kt = -Kt, ct = -ct), { scale: new Lt(ct, 0, 0, Yt, 0, 0), translate: new Lt(1, 0, 0, 1, De, nt), rotate: new Lt(v, T, -T, v, 0, 0), skew: new Lt(1, 0, Kt, 1, 0, 0) };
  }, Lt.prototype.toString = function(v) {
    return this.join(" ");
  }, Lt.prototype.inversed = function() {
    var v = this.sx, T = this.shy, ne = this.shx, we = this.sy, De = this.tx, nt = this.ty, ct = 1 / (v * we - T * ne), Kt = we * ct, Yt = -T * ct, oA = -ne * ct, dA = v * ct;
    return new Lt(Kt, Yt, oA, dA, -Kt * De - oA * nt, -Yt * De - dA * nt);
  }, Lt.prototype.applyToPoint = function(v) {
    var T = v.x * this.sx + v.y * this.shx + this.tx, ne = v.x * this.shy + v.y * this.sy + this.ty;
    return new Aa(T, ne);
  }, Lt.prototype.applyToRectangle = function(v) {
    var T = this.applyToPoint(v), ne = this.applyToPoint(new Aa(v.x + v.w, v.y + v.h));
    return new ii(T.x, T.y, ne.x - T.x, ne.y - T.y);
  }, Lt.prototype.clone = function() {
    var v = this.sx, T = this.shy, ne = this.shx, we = this.sy, De = this.tx, nt = this.ty;
    return new Lt(v, T, ne, we, De, nt);
  }, c.Matrix = Lt;
  var Qr = c.matrixMult = function(v, T) {
    return T.multiply(v);
  }, Fr = new Lt(1, 0, 0, 1, 0, 0);
  c.unitMatrix = c.identityMatrix = Fr;
  var xr = function(v, T) {
    if (!hA[v]) {
      var ne = (T instanceof Ls ? "Sh" : "P") + (Object.keys(kt).length + 1).toString(10);
      T.id = ne, hA[v] = ne, kt[ne] = T, xt.publish("addPattern", T);
    }
  };
  c.ShadingPattern = Ls, c.TilingPattern = bo, c.addShadingPattern = function(v, T) {
    return k("addShadingPattern()"), xr(v, T), this;
  }, c.beginTilingPattern = function(v) {
    k("beginTilingPattern()"), Vi(v.boundingBox[0], v.boundingBox[1], v.boundingBox[2] - v.boundingBox[0], v.boundingBox[3] - v.boundingBox[1], v.matrix);
  }, c.endTilingPattern = function(v, T) {
    k("endTilingPattern()"), T.stream = qe[L].join(`
`), xr(v, T), xt.publish("endTilingPattern", T), JA.pop().restore();
  };
  var PA, CA = c.__private__.newObject = function() {
    var v = MA();
    return OA(v, !0), v;
  }, MA = c.__private__.newObjectDeferred = function() {
    return re++, pe[re] = function() {
      return ce;
    }, re;
  }, OA = function(v, T) {
    return T = typeof T == "boolean" && T, pe[v] = ce, T && D(v + " 0 obj"), v;
  }, Dr = c.__private__.newAdditionalObject = function() {
    var v = { objId: MA(), content: "" };
    return Se.push(v), v;
  }, Sr = MA(), LA = MA(), pr = c.__private__.decodeColorString = function(v) {
    var T = v.split(" ");
    if (T.length !== 2 || T[1] !== "g" && T[1] !== "G") T.length !== 5 || T[4] !== "k" && T[4] !== "K" || (T = [(1 - T[0]) * (1 - T[3]), (1 - T[1]) * (1 - T[3]), (1 - T[2]) * (1 - T[3]), "r"]);
    else {
      var ne = parseFloat(T[0]);
      T = [ne, ne, ne, "r"];
    }
    for (var we = "#", De = 0; De < 3; De++) we += ("0" + Math.floor(255 * parseFloat(T[De])).toString(16)).slice(-2);
    return we;
  }, kr = c.__private__.encodeColorString = function(v) {
    var T;
    typeof v == "string" && (v = { ch1: v });
    var ne = v.ch1, we = v.ch2, De = v.ch3, nt = v.ch4, ct = v.pdfColorType === "draw" ? ["G", "RG", "K"] : ["g", "rg", "k"];
    if (typeof ne == "string" && ne.charAt(0) !== "#") {
      var Kt = new C5(ne);
      if (Kt.ok) ne = Kt.toHex();
      else if (!/^\d*\.?\d*$/.test(ne)) throw new Error('Invalid color "' + ne + '" passed to jsPDF.encodeColorString.');
    }
    if (typeof ne == "string" && /^#[0-9A-Fa-f]{3}$/.test(ne) && (ne = "#" + ne[1] + ne[1] + ne[2] + ne[2] + ne[3] + ne[3]), typeof ne == "string" && /^#[0-9A-Fa-f]{6}$/.test(ne)) {
      var Yt = parseInt(ne.substr(1), 16);
      ne = Yt >> 16 & 255, we = Yt >> 8 & 255, De = 255 & Yt;
    }
    if (we === void 0 || nt === void 0 && ne === we && we === De) T = typeof ne == "string" ? ne + " " + ct[0] : v.precision === 2 ? S(ne / 255) + " " + ct[0] : U(ne / 255) + " " + ct[0];
    else if (nt === void 0 || jA(nt) === "object") {
      if (nt && !isNaN(nt.a) && nt.a === 0) return ["1.", "1.", "1.", ct[1]].join(" ");
      T = typeof ne == "string" ? [ne, we, De, ct[1]].join(" ") : v.precision === 2 ? [S(ne / 255), S(we / 255), S(De / 255), ct[1]].join(" ") : [U(ne / 255), U(we / 255), U(De / 255), ct[1]].join(" ");
    } else T = typeof ne == "string" ? [ne, we, De, nt, ct[2]].join(" ") : v.precision === 2 ? [S(ne), S(we), S(De), S(nt), ct[2]].join(" ") : [U(ne), U(we), U(De), U(nt), ct[2]].join(" ");
    return T;
  }, ZA = c.__private__.getFilters = function() {
    return s;
  }, Lr = c.__private__.putStream = function(v) {
    var T = (v = v || {}).data || "", ne = v.filters || ZA(), we = v.alreadyAppliedFilters || [], De = v.addLength1 || !1, nt = T.length, ct = v.objectId, Kt = function(K) {
      return K;
    };
    if (u !== null && ct === void 0) throw new Error("ObjectId must be passed to putStream for file encryption");
    u !== null && (Kt = aA.encryptor(ct, 0));
    var Yt = {};
    ne === !0 && (ne = ["FlateEncode"]);
    var oA = v.additionalKeyValues || [], dA = (Yt = eA.API.processDataByFilters !== void 0 ? eA.API.processDataByFilters(T, ne) : { data: T, reverseChain: [] }).reverseChain + (Array.isArray(we) ? we.join(" ") : we.toString());
    if (Yt.data.length !== 0 && (oA.push({ key: "Length", value: Yt.data.length }), De === !0 && oA.push({ key: "Length1", value: nt })), dA.length != 0) if (dA.split("/").length - 1 == 1) oA.push({ key: "Filter", value: dA });
    else {
      oA.push({ key: "Filter", value: "[" + dA + "]" });
      for (var QA = 0; QA < oA.length; QA += 1) if (oA[QA].key === "DecodeParms") {
        for (var vr = [], R = 0; R < Yt.reverseChain.split("/").length - 1; R += 1) vr.push("null");
        vr.push(oA[QA].value), oA[QA].value = "[" + vr.join(" ") + "]";
      }
    }
    D("<<");
    for (var te = 0; te < oA.length; te++) D("/" + oA[te].key + " " + oA[te].value);
    D(">>"), Yt.data.length !== 0 && (D("stream"), D(Kt(Yt.data)), D("endstream"));
  }, Un = c.__private__.putPage = function(v) {
    var T = v.number, ne = v.data, we = v.objId, De = v.contentsObjId;
    OA(we, !0), D("<</Type /Page"), D("/Parent " + v.rootDictionaryObjId + " 0 R"), D("/Resources " + v.resourceDictionaryObjId + " 0 R"), D("/MediaBox [" + parseFloat(M(v.mediaBox.bottomLeftX)) + " " + parseFloat(M(v.mediaBox.bottomLeftY)) + " " + M(v.mediaBox.topRightX) + " " + M(v.mediaBox.topRightY) + "]"), v.cropBox !== null && D("/CropBox [" + M(v.cropBox.bottomLeftX) + " " + M(v.cropBox.bottomLeftY) + " " + M(v.cropBox.topRightX) + " " + M(v.cropBox.topRightY) + "]"), v.bleedBox !== null && D("/BleedBox [" + M(v.bleedBox.bottomLeftX) + " " + M(v.bleedBox.bottomLeftY) + " " + M(v.bleedBox.topRightX) + " " + M(v.bleedBox.topRightY) + "]"), v.trimBox !== null && D("/TrimBox [" + M(v.trimBox.bottomLeftX) + " " + M(v.trimBox.bottomLeftY) + " " + M(v.trimBox.topRightX) + " " + M(v.trimBox.topRightY) + "]"), v.artBox !== null && D("/ArtBox [" + M(v.artBox.bottomLeftX) + " " + M(v.artBox.bottomLeftY) + " " + M(v.artBox.topRightX) + " " + M(v.artBox.topRightY) + "]"), typeof v.userUnit == "number" && v.userUnit !== 1 && D("/UserUnit " + v.userUnit), xt.publish("putPage", { objId: we, pageContext: $e[T], pageNumber: T, page: ne }), D("/Contents " + De + " 0 R"), D(">>"), D("endobj");
    var nt = ne.join(`
`);
    return F === C && (nt += `
Q`), OA(De, !0), Lr({ data: nt, filters: ZA(), objectId: De }), D("endobj"), we;
  }, Dt = c.__private__.putPages = function() {
    var v, T, ne = [];
    for (v = 1; v <= Re; v++) $e[v].objId = MA(), $e[v].contentsObjId = MA();
    for (v = 1; v <= Re; v++) ne.push(Un({ number: v, data: qe[v], objId: $e[v].objId, contentsObjId: $e[v].contentsObjId, mediaBox: $e[v].mediaBox, cropBox: $e[v].cropBox, bleedBox: $e[v].bleedBox, trimBox: $e[v].trimBox, artBox: $e[v].artBox, userUnit: $e[v].userUnit, rootDictionaryObjId: Sr, resourceDictionaryObjId: LA }));
    OA(Sr, !0), D("<</Type /Pages");
    var we = "/Kids [";
    for (T = 0; T < Re; T++) we += ne[T] + " 0 R ";
    D(we + "]"), D("/Count " + Re), D(">>"), D("endobj"), xt.publish("postPutPages");
  }, be = function(v) {
    xt.publish("putFont", { font: v, out: D, newObject: CA, putStream: Lr }), v.isAlreadyPutted !== !0 && (v.objectNumber = CA(), D("<<"), D("/Type /Font"), D("/BaseFont /" + wo(v.postScriptName)), D("/Subtype /Type1"), typeof v.encoding == "string" && D("/Encoding /" + v.encoding), D("/FirstChar 32"), D("/LastChar 255"), D(">>"), D("endobj"));
  }, z = function(v) {
    v.objectNumber = CA();
    var T = [];
    T.push({ key: "Type", value: "/XObject" }), T.push({ key: "Subtype", value: "/Form" }), T.push({ key: "BBox", value: "[" + [M(v.x), M(v.y), M(v.x + v.width), M(v.y + v.height)].join(" ") + "]" }), T.push({ key: "Matrix", value: "[" + v.matrix.toString() + "]" });
    var ne = v.pages[1].join(`
`);
    Lr({ data: ne, additionalKeyValues: T, objectId: v.objectNumber }), D("endobj");
  }, ge = function(v, T) {
    T || (T = 21);
    var ne = CA(), we = (function(ct, Kt) {
      var Yt, oA = [], dA = 1 / (Kt - 1);
      for (Yt = 0; Yt < 1; Yt += dA) oA.push(Yt);
      if (oA.push(1), ct[0].offset != 0) {
        var QA = { offset: 0, color: ct[0].color };
        ct.unshift(QA);
      }
      if (ct[ct.length - 1].offset != 1) {
        var vr = { offset: 1, color: ct[ct.length - 1].color };
        ct.push(vr);
      }
      for (var R = "", te = 0, K = 0; K < oA.length; K++) {
        for (Yt = oA[K]; Yt > ct[te + 1].offset; ) te++;
        var he = ct[te].offset, ye = (Yt - he) / (ct[te + 1].offset - he), Le = ct[te].color, Xe = ct[te + 1].color;
        R += $(Math.round((1 - ye) * Le[0] + ye * Xe[0]).toString(16)) + $(Math.round((1 - ye) * Le[1] + ye * Xe[1]).toString(16)) + $(Math.round((1 - ye) * Le[2] + ye * Xe[2]).toString(16));
      }
      return R.trim();
    })(v.colors, T), De = [];
    De.push({ key: "FunctionType", value: "0" }), De.push({ key: "Domain", value: "[0.0 1.0]" }), De.push({ key: "Size", value: "[" + T + "]" }), De.push({ key: "BitsPerSample", value: "8" }), De.push({ key: "Range", value: "[0.0 1.0 0.0 1.0 0.0 1.0]" }), De.push({ key: "Decode", value: "[0.0 1.0 0.0 1.0 0.0 1.0]" }), Lr({ data: we, additionalKeyValues: De, alreadyAppliedFilters: ["/ASCIIHexDecode"], objectId: ne }), D("endobj"), v.objectNumber = CA(), D("<< /ShadingType " + v.type), D("/ColorSpace /DeviceRGB");
    var nt = "/Coords [" + M(parseFloat(v.coords[0])) + " " + M(parseFloat(v.coords[1])) + " ";
    v.type === 2 ? nt += M(parseFloat(v.coords[2])) + " " + M(parseFloat(v.coords[3])) : nt += M(parseFloat(v.coords[2])) + " " + M(parseFloat(v.coords[3])) + " " + M(parseFloat(v.coords[4])) + " " + M(parseFloat(v.coords[5])), D(nt += "]"), v.matrix && D("/Matrix [" + v.matrix.toString() + "]"), D("/Function " + ne + " 0 R"), D("/Extend [true true]"), D(">>"), D("endobj");
  }, We = function(v, T) {
    var ne = MA(), we = CA();
    T.push({ resourcesOid: ne, objectOid: we }), v.objectNumber = we;
    var De = [];
    De.push({ key: "Type", value: "/Pattern" }), De.push({ key: "PatternType", value: "1" }), De.push({ key: "PaintType", value: "1" }), De.push({ key: "TilingType", value: "1" }), De.push({ key: "BBox", value: "[" + v.boundingBox.map(M).join(" ") + "]" }), De.push({ key: "XStep", value: M(v.xStep) }), De.push({ key: "YStep", value: M(v.yStep) }), De.push({ key: "Resources", value: ne + " 0 R" }), v.matrix && De.push({ key: "Matrix", value: "[" + v.matrix.toString() + "]" }), Lr({ data: v.stream, additionalKeyValues: De, objectId: v.objectNumber }), D("endobj");
  }, it = function(v) {
    for (var T in v.objectNumber = CA(), D("<<"), v) switch (T) {
      case "opacity":
        D("/ca " + S(v[T]));
        break;
      case "stroke-opacity":
        D("/CA " + S(v[T]));
    }
    D(">>"), D("endobj");
  }, V = function(v) {
    OA(v.resourcesOid, !0), D("<<"), D("/ProcSet [/PDF /Text /ImageB /ImageC /ImageI]"), (function() {
      for (var T in D("/Font <<"), Ot) Ot.hasOwnProperty(T) && (h === !1 || h === !0 && g.hasOwnProperty(T)) && D("/" + T + " " + Ot[T].objectNumber + " 0 R");
      D(">>");
    })(), (function() {
      if (Object.keys(kt).length > 0) {
        for (var T in D("/Shading <<"), kt) kt.hasOwnProperty(T) && kt[T] instanceof Ls && kt[T].objectNumber >= 0 && D("/" + T + " " + kt[T].objectNumber + " 0 R");
        xt.publish("putShadingPatternDict"), D(">>");
      }
    })(), (function(T) {
      if (Object.keys(kt).length > 0) {
        for (var ne in D("/Pattern <<"), kt) kt.hasOwnProperty(ne) && kt[ne] instanceof c.TilingPattern && kt[ne].objectNumber >= 0 && kt[ne].objectNumber < T && D("/" + ne + " " + kt[ne].objectNumber + " 0 R");
        xt.publish("putTilingPatternDict"), D(">>");
      }
    })(v.objectOid), (function() {
      if (Object.keys(Nt).length > 0) {
        var T;
        for (T in D("/ExtGState <<"), Nt) Nt.hasOwnProperty(T) && Nt[T].objectNumber >= 0 && D("/" + T + " " + Nt[T].objectNumber + " 0 R");
        xt.publish("putGStateDict"), D(">>");
      }
    })(), (function() {
      for (var T in D("/XObject <<"), Mt) Mt.hasOwnProperty(T) && Mt[T].objectNumber >= 0 && D("/" + T + " " + Mt[T].objectNumber + " 0 R");
      xt.publish("putXobjectDict"), D(">>");
    })(), D(">>"), D("endobj");
  }, Be = function(v) {
    Pt[v.fontName] = Pt[v.fontName] || {}, Pt[v.fontName][v.fontStyle] = v.id;
  }, Fe = function(v, T, ne, we, De) {
    var nt = { id: "F" + (Object.keys(Ot).length + 1).toString(10), postScriptName: v, fontName: T, fontStyle: ne, encoding: we, isStandardFont: De || !1, metadata: {} };
    return xt.publish("addFont", { font: nt, instance: this }), Ot[nt.id] = nt, Be(nt), nt.id;
  }, ke = c.__private__.pdfEscape = c.pdfEscape = function(v, T) {
    return (function(ne, we) {
      var De, nt, ct, Kt, Yt, oA, dA, QA, vr;
      if (ct = (we = we || {}).sourceEncoding || "Unicode", Yt = we.outputEncoding, (we.autoencode || Yt) && Ot[Bt].metadata && Ot[Bt].metadata[ct] && Ot[Bt].metadata[ct].encoding && (Kt = Ot[Bt].metadata[ct].encoding, !Yt && Ot[Bt].encoding && (Yt = Ot[Bt].encoding), !Yt && Kt.codePages && (Yt = Kt.codePages[0]), typeof Yt == "string" && (Yt = Kt[Yt]), Yt)) {
        for (dA = !1, oA = [], De = 0, nt = ne.length; De < nt; De++) (QA = Yt[ne.charCodeAt(De)]) ? oA.push(String.fromCharCode(QA)) : oA.push(ne[De]), oA[De].charCodeAt(0) >> 8 && (dA = !0);
        ne = oA.join("");
      }
      for (De = ne.length; dA === void 0 && De !== 0; ) ne.charCodeAt(De - 1) >> 8 && (dA = !0), De--;
      if (!dA) return ne;
      for (oA = we.noBOM ? [] : [254, 255], De = 0, nt = ne.length; De < nt; De++) {
        if ((vr = (QA = ne.charCodeAt(De)) >> 8) >> 8) throw new Error("Character at position " + De + " of string '" + ne + "' exceeds 16bits. Cannot be encoded into UCS-2 BE");
        oA.push(vr), oA.push(QA - (vr << 8));
      }
      return String.fromCharCode.apply(void 0, oA);
    })(v, T).replace(/\\/g, "\\\\").replace(/\(/g, "\\(").replace(/\)/g, "\\)");
  }, Ze = c.__private__.beginPage = function(v) {
    qe[++Re] = [], $e[Re] = { objId: 0, contentsObjId: 0, userUnit: Number(i), artBox: null, bleedBox: null, cropBox: null, trimBox: null, mediaBox: { bottomLeftX: 0, bottomLeftY: 0, topRightX: Number(v[0]), topRightY: Number(v[1]) } }, Je(Re), dt(qe[L]);
  }, Me = function(v, T) {
    var ne, we, De;
    switch (e = T || e, typeof v == "string" && (ne = w(v.toLowerCase()), Array.isArray(ne) && (we = ne[0], De = ne[1])), Array.isArray(v) && (we = v[0] * St, De = v[1] * St), isNaN(we) && (we = n[0], De = n[1]), (we > 14400 || De > 14400) && (ur.warn("A page in a PDF can not be wider or taller than 14400 userUnit. jsPDF limits the width/height to 14400"), we = Math.min(14400, we), De = Math.min(14400, De)), n = [we, De], e.substr(0, 1)) {
      case "l":
        De > we && (n = [De, we]);
        break;
      case "p":
        we > De && (n = [De, we]);
    }
    Ze(n), lA(kn), D(ni), ai !== 0 && D(ai + " J"), ys !== 0 && D(ys + " j"), xt.publish("addPage", { pageNumber: Re });
  }, tt = function(v) {
    v > 0 && v <= Re && (qe.splice(v, 1), $e.splice(v, 1), Re--, L > Re && (L = Re), this.setPage(L));
  }, Je = function(v) {
    v > 0 && v <= Re && (L = v);
  }, ft = c.__private__.getNumberOfPages = c.getNumberOfPages = function() {
    return qe.length - 1;
  }, Et = function(v, T, ne) {
    var we, De = void 0;
    return ne = ne || {}, v = v !== void 0 ? v : Ot[Bt].fontName, T = T !== void 0 ? T : Ot[Bt].fontStyle, we = v.toLowerCase(), Pt[we] !== void 0 && Pt[we][T] !== void 0 ? De = Pt[we][T] : Pt[v] !== void 0 && Pt[v][T] !== void 0 ? De = Pt[v][T] : ne.disableWarning === !1 && ur.warn("Unable to look up font label for font '" + v + "', '" + T + "'. Refer to getFontList() for available fonts."), De || ne.noFallback || (De = Pt.times[T]) == null && (De = Pt.times.normal), De;
  }, Jt = c.__private__.putInfo = function() {
    var v = CA(), T = function(we) {
      return we;
    };
    for (var ne in u !== null && (T = aA.encryptor(v, 0)), D("<<"), D("/Producer (" + ke(T("jsPDF " + eA.version)) + ")"), Ft) Ft.hasOwnProperty(ne) && Ft[ne] && D("/" + ne.substr(0, 1).toUpperCase() + ne.substr(1) + " (" + ke(T(Ft[ne])) + ")");
    D("/CreationDate (" + ke(T(le)) + ")"), D(">>"), D("endobj");
  }, fA = c.__private__.putCatalog = function(v) {
    var T = (v = v || {}).rootDictionaryObjId || Sr;
    switch (CA(), D("<<"), D("/Type /Catalog"), D("/Pages " + T + " 0 R"), Qe || (Qe = "fullwidth"), Qe) {
      case "fullwidth":
        D("/OpenAction [3 0 R /FitH null]");
        break;
      case "fullheight":
        D("/OpenAction [3 0 R /FitV null]");
        break;
      case "fullpage":
        D("/OpenAction [3 0 R /Fit]");
        break;
      case "original":
        D("/OpenAction [3 0 R /XYZ null null 1]");
        break;
      default:
        var ne = "" + Qe;
        ne.substr(ne.length - 1) === "%" && (Qe = parseInt(Qe) / 100), typeof Qe == "number" && D("/OpenAction [3 0 R /XYZ null null " + S(Qe) + "]");
    }
    switch (et || (et = "continuous"), et) {
      case "continuous":
        D("/PageLayout /OneColumn");
        break;
      case "single":
        D("/PageLayout /SinglePage");
        break;
      case "two":
      case "twoleft":
        D("/PageLayout /TwoColumnLeft");
        break;
      case "tworight":
        D("/PageLayout /TwoColumnRight");
    }
    je && D("/PageMode /" + je), xt.publish("putCatalog"), D(">>"), D("endobj");
  }, gA = c.__private__.putTrailer = function() {
    D("trailer"), D("<<"), D("/Size " + (re + 1)), D("/Root " + re + " 0 R"), D("/Info " + (re - 1) + " 0 R"), u !== null && D("/Encrypt " + aA.oid + " 0 R"), D("/ID [ <" + ue + "> <" + ue + "> ]"), D(">>");
  }, Xt = c.__private__.putHeader = function() {
    D("%PDF-" + p), D("%ºß¬à");
  }, tA = c.__private__.putXRef = function() {
    var v = "0000000000";
    D("xref"), D("0 " + (re + 1)), D("0000000000 65535 f ");
    for (var T = 1; T <= re; T++) typeof pe[T] == "function" ? D((v + pe[T]()).slice(-10) + " 00000 n ") : pe[T] !== void 0 ? D((v + pe[T]).slice(-10) + " 00000 n ") : D("0000000000 00000 n ");
  }, Gt = c.__private__.buildDocument = function() {
    var v;
    re = 0, ce = 0, de = [], pe = [], Se = [], Sr = MA(), LA = MA(), dt(de), xt.publish("buildDocument"), Xt(), Dt(), (function() {
      xt.publish("putAdditionalObjects");
      for (var ne = 0; ne < Se.length; ne++) {
        var we = Se[ne];
        OA(we.objId, !0), D(we.content), D("endobj");
      }
      xt.publish("postPutAdditionalObjects");
    })(), v = [], (function() {
      for (var ne in Ot) Ot.hasOwnProperty(ne) && (h === !1 || h === !0 && g.hasOwnProperty(ne)) && be(Ot[ne]);
    })(), (function() {
      var ne;
      for (ne in Nt) Nt.hasOwnProperty(ne) && it(Nt[ne]);
    })(), (function() {
      for (var ne in Mt) Mt.hasOwnProperty(ne) && z(Mt[ne]);
    })(), (function(ne) {
      var we;
      for (we in kt) kt.hasOwnProperty(we) && (kt[we] instanceof Ls ? ge(kt[we]) : kt[we] instanceof bo && We(kt[we], ne));
    })(v), xt.publish("putResources"), v.forEach(V), V({ resourcesOid: LA, objectOid: Number.MAX_SAFE_INTEGER }), xt.publish("postPutResources"), u !== null && (aA.oid = CA(), D("<<"), D("/Filter /Standard"), D("/V " + aA.v), D("/R " + aA.r), D("/U <" + aA.toHexString(aA.U) + ">"), D("/O <" + aA.toHexString(aA.O) + ">"), D("/P " + aA.P), D(">>"), D("endobj")), Jt(), fA();
    var T = ce;
    return tA(), gA(), D("startxref"), D("" + T), D("%%EOF"), dt(qe[L]), de.join(`
`);
  }, UA = c.__private__.getBlob = function(v) {
    return new Blob([me(v)], { type: "application/pdf" });
  }, FA = c.output = c.__private__.output = (PA = function(v, T) {
    switch (typeof (T = T || {}) == "string" ? T = { filename: T } : T.filename = T.filename || "generated.pdf", v) {
      case void 0:
        return Gt();
      case "save":
        c.save(T.filename);
        break;
      case "arraybuffer":
        return me(Gt());
      case "blob":
        return UA(Gt());
      case "bloburi":
      case "bloburl":
        if (cA.URL !== void 0 && typeof cA.URL.createObjectURL == "function") return cA.URL && cA.URL.createObjectURL(UA(Gt())) || void 0;
        ur.warn("bloburl is not supported by your system, because URL.createObjectURL is not supported by your browser.");
        break;
      case "datauristring":
      case "dataurlstring":
        var ne = "", we = Gt();
        try {
          ne = F1(we);
        } catch {
          ne = F1(unescape(encodeURIComponent(we)));
        }
        return "data:application/pdf;filename=" + T.filename + ";base64," + ne;
      case "pdfobjectnewwindow":
        if (Object.prototype.toString.call(cA) === "[object Window]") {
          var De = "https://cdnjs.cloudflare.com/ajax/libs/pdfobject/2.1.1/pdfobject.min.js", nt = ' integrity="sha512-4ze/a9/4jqu+tX9dfOqJYSvyYd5M6qum/3HpCLr+/Jqf0whc37VUbkpNGHR7/8pSnCFw47T1fmIpwBV7UySh3g==" crossorigin="anonymous"';
          T.pdfObjectUrl && (De = T.pdfObjectUrl, nt = "");
          var ct = '<html><style>html, body { padding: 0; margin: 0; } iframe { width: 100%; height: 100%; border: 0;}  </style><body><script src="' + De + '"' + nt + '><\/script><script >PDFObject.embed("' + this.output("dataurlstring") + '", ' + JSON.stringify(T) + ");<\/script></body></html>", Kt = cA.open();
          return Kt !== null && Kt.document.write(ct), Kt;
        }
        throw new Error("The option pdfobjectnewwindow just works in a browser-environment.");
      case "pdfjsnewwindow":
        if (Object.prototype.toString.call(cA) === "[object Window]") {
          var Yt = '<html><style>html, body { padding: 0; margin: 0; } iframe { width: 100%; height: 100%; border: 0;}  </style><body><iframe id="pdfViewer" src="' + (T.pdfJsUrl || "examples/PDF.js/web/viewer.html") + "?file=&downloadName=" + T.filename + '" width="500px" height="400px" /></body></html>', oA = cA.open();
          if (oA !== null) {
            oA.document.write(Yt);
            var dA = this;
            oA.document.documentElement.querySelector("#pdfViewer").onload = function() {
              oA.document.title = T.filename, oA.document.documentElement.querySelector("#pdfViewer").contentWindow.PDFViewerApplication.open(dA.output("bloburl"));
            };
          }
          return oA;
        }
        throw new Error("The option pdfjsnewwindow just works in a browser-environment.");
      case "dataurlnewwindow":
        if (Object.prototype.toString.call(cA) !== "[object Window]") throw new Error("The option dataurlnewwindow just works in a browser-environment.");
        var QA = '<html><style>html, body { padding: 0; margin: 0; } iframe { width: 100%; height: 100%; border: 0;}  </style><body><iframe src="' + this.output("datauristring", T) + '"></iframe></body></html>', vr = cA.open();
        if (vr !== null && (vr.document.write(QA), vr.document.title = T.filename), vr || typeof safari > "u") return vr;
        break;
      case "datauri":
      case "dataurl":
        return cA.document.location.href = this.output("datauristring", T);
      default:
        return null;
    }
  }, PA.foo = function() {
    try {
      return PA.apply(this, arguments);
    } catch (ne) {
      var v = ne.stack || "";
      ~v.indexOf(" at ") && (v = v.split(" at ")[1]);
      var T = "Error in function " + v.split(`
`)[0].split("<")[0] + ": " + ne.message;
      if (!cA.console) throw new Error(T);
      cA.console.error(T, ne), cA.alert && alert(T);
    }
  }, PA.foo.bar = PA, PA.foo), IA = function(v) {
    return Array.isArray(Ht) === !0 && Ht.indexOf(v) > -1;
  };
  switch (A) {
    case "pt":
      St = 1;
      break;
    case "mm":
      St = 72 / 25.4;
      break;
    case "cm":
      St = 72 / 2.54;
      break;
    case "in":
      St = 72;
      break;
    case "px":
      St = IA("px_scaling") == 1 ? 0.75 : 96 / 72;
      break;
    case "pc":
    case "em":
      St = 12;
      break;
    case "ex":
      St = 6;
      break;
    default:
      if (typeof A != "number") throw new Error("Invalid unit: " + A);
      St = A;
  }
  var aA = null;
  oe(), ee();
  var An = c.__private__.getPageInfo = c.getPageInfo = function(v) {
    if (isNaN(v) || v % 1 != 0) throw new Error("Invalid argument passed to jsPDF.getPageInfo");
    return { objId: $e[v].objId, pageNumber: v, pageContext: $e[v] };
  }, Tn = c.__private__.getPageInfoByObjId = function(v) {
    if (isNaN(v) || v % 1 != 0) throw new Error("Invalid argument passed to jsPDF.getPageInfoByObjId");
    for (var T in $e) if ($e[T].objId === v) break;
    return An(T);
  }, ea = c.__private__.getCurrentPageInfo = c.getCurrentPageInfo = function() {
    return { objId: $e[L].objId, pageNumber: L, pageContext: $e[L] };
  };
  c.addPage = function() {
    return Me.apply(this, arguments), this;
  }, c.setPage = function() {
    return Je.apply(this, arguments), dt.call(this, qe[L]), this;
  }, c.insertPage = function(v) {
    return this.addPage(), this.movePage(L, v), this;
  }, c.movePage = function(v, T) {
    var ne, we;
    if (v > T) {
      ne = qe[v], we = $e[v];
      for (var De = v; De > T; De--) qe[De] = qe[De - 1], $e[De] = $e[De - 1];
      qe[T] = ne, $e[T] = we, this.setPage(T);
    } else if (v < T) {
      ne = qe[v], we = $e[v];
      for (var nt = v; nt < T; nt++) qe[nt] = qe[nt + 1], $e[nt] = $e[nt + 1];
      qe[T] = ne, $e[T] = we, this.setPage(T);
    }
    return this;
  }, c.deletePage = function() {
    return tt.apply(this, arguments), this;
  }, c.__private__.text = c.text = function(v, T, ne, we, De) {
    var nt, ct, Kt, Yt, oA, dA, QA, vr, R, te = (we = we || {}).scope || this;
    if (typeof v == "number" && typeof T == "number" && (typeof ne == "string" || Array.isArray(ne))) {
      var K = ne;
      ne = T, T = v, v = K;
    }
    if (arguments[3] instanceof Lt == 0 ? (Kt = arguments[4], Yt = arguments[5], jA(QA = arguments[3]) === "object" && QA !== null || (typeof Kt == "string" && (Yt = Kt, Kt = null), typeof QA == "string" && (Yt = QA, QA = null), typeof QA == "number" && (Kt = QA, QA = null), we = { flags: QA, angle: Kt, align: Yt })) : (k("The transform parameter of text() with a Matrix value"), R = De), isNaN(T) || isNaN(ne) || v == null) throw new Error("Invalid arguments passed to jsPDF.text");
    if (v.length === 0) return te;
    var he, ye = "", Le = typeof we.lineHeightFactor == "number" ? we.lineHeightFactor : Ir, Xe = te.internal.scaleFactor;
    function ze($A) {
      return $A = $A.split("	").join(Array(we.TabLen || 9).join(" ")), ke($A, QA);
    }
    function mt($A) {
      for (var or, Vr = $A.concat(), rn = [], Bi = Vr.length; Bi--; ) typeof (or = Vr.shift()) == "string" ? rn.push(or) : Array.isArray($A) && (or.length === 1 || or[1] === void 0 && or[2] === void 0) ? rn.push(or[0]) : rn.push([or[0], or[1], or[2]]);
      return rn;
    }
    function It($A, or) {
      var Vr;
      if (typeof $A == "string") Vr = or($A)[0];
      else if (Array.isArray($A)) {
        for (var rn, Bi, Ko = $A.concat(), io = [], Vl = Ko.length; Vl--; ) typeof (rn = Ko.shift()) == "string" ? io.push(or(rn)[0]) : Array.isArray(rn) && typeof rn[0] == "string" && (Bi = or(rn[0], rn[1], rn[2]), io.push([Bi[0], Bi[1], Bi[2]]));
        Vr = io;
      }
      return Vr;
    }
    var Qt = !1, pt = !0;
    if (typeof v == "string") Qt = !0;
    else if (Array.isArray(v)) {
      var jt = v.concat();
      ct = [];
      for (var KA, VA = jt.length; VA--; ) (typeof (KA = jt.shift()) != "string" || Array.isArray(KA) && typeof KA[0] != "string") && (pt = !1);
      Qt = pt;
    }
    if (Qt === !1) throw new Error('Type of text must be string or Array. "' + v + '" is not recognized.');
    typeof v == "string" && (v = v.match(/[\r?\n]/) ? v.split(/\r\n|\r|\n/g) : [v]);
    var ln = xe / te.internal.scaleFactor, yr = ln * (Le - 1);
    switch (we.baseline) {
      case "bottom":
        ne -= yr;
        break;
      case "top":
        ne += ln - yr;
        break;
      case "hanging":
        ne += ln - 2 * yr;
        break;
      case "middle":
        ne += ln / 2 - yr;
    }
    if ((dA = we.maxWidth || 0) > 0 && (typeof v == "string" ? v = te.splitTextToSize(v, dA) : Object.prototype.toString.call(v) === "[object Array]" && (v = v.reduce(function($A, or) {
      return $A.concat(te.splitTextToSize(or, dA));
    }, []))), nt = { text: v, x: T, y: ne, options: we, mutex: { pdfEscape: ke, activeFontKey: Bt, fonts: Ot, activeFontSize: xe } }, xt.publish("preProcessText", nt), v = nt.text, Kt = (we = nt.options).angle, R instanceof Lt == 0 && Kt && typeof Kt == "number") {
      Kt *= Math.PI / 180, we.rotationDirection === 0 && (Kt = -Kt), F === C && (Kt = -Kt);
      var Ur = Math.cos(Kt), _r = Math.sin(Kt);
      R = new Lt(Ur, _r, -_r, Ur, 0, 0);
    } else Kt && Kt instanceof Lt && (R = Kt);
    F !== C || R || (R = Fr), (oA = we.charSpace || mn) !== void 0 && (ye += M(W(oA)) + ` Tc
`, this.setCharSpace(this.getCharSpace() || 0)), (vr = we.horizontalScale) !== void 0 && (ye += M(100 * vr) + ` Tz
`), we.lang;
    var er = -1, Kn = we.renderingMode !== void 0 ? we.renderingMode : we.stroke, fr = te.internal.getCurrentPageInfo().pageContext;
    switch (Kn) {
      case 0:
      case !1:
      case "fill":
        er = 0;
        break;
      case 1:
      case !0:
      case "stroke":
        er = 1;
        break;
      case 2:
      case "fillThenStroke":
        er = 2;
        break;
      case 3:
      case "invisible":
        er = 3;
        break;
      case 4:
      case "fillAndAddForClipping":
        er = 4;
        break;
      case 5:
      case "strokeAndAddPathForClipping":
        er = 5;
        break;
      case 6:
      case "fillThenStrokeAndAddToPathForClipping":
        er = 6;
        break;
      case 7:
      case "addToPathForClipping":
        er = 7;
    }
    var ca = fr.usedRenderingMode !== void 0 ? fr.usedRenderingMode : -1;
    er !== -1 ? ye += er + ` Tr
` : ca !== -1 && (ye += `0 Tr
`), er !== -1 && (fr.usedRenderingMode = er), Yt = we.align || "left";
    var un, Fa = xe * Le, bs = te.internal.pageSize.getWidth(), wi = Ot[Bt];
    oA = we.charSpace || mn, dA = we.maxWidth || 0, QA = Object.assign({ autoencode: !0, noBOM: !0 }, we.flags);
    var ar = [], YA = function($A) {
      return te.getStringUnitWidth($A, { font: wi, charSpace: oA, fontSize: xe, doKerning: !1 }) * xe / Xe;
    };
    if (Object.prototype.toString.call(v) === "[object Array]") {
      var qA;
      ct = mt(v), Yt !== "left" && (un = ct.map(YA));
      var ir, wn = 0;
      if (Yt === "right") {
        T -= un[0], v = [], VA = ct.length;
        for (var cn = 0; cn < VA; cn++) cn === 0 ? (ir = Ra(T), qA = vn(ne)) : (ir = W(wn - un[cn]), qA = -Fa), v.push([ct[cn], ir, qA]), wn = un[cn];
      } else if (Yt === "center") {
        T -= un[0] / 2, v = [], VA = ct.length;
        for (var Ka = 0; Ka < VA; Ka++) Ka === 0 ? (ir = Ra(T), qA = vn(ne)) : (ir = W((wn - un[Ka]) / 2), qA = -Fa), v.push([ct[Ka], ir, qA]), wn = un[Ka];
      } else if (Yt === "left") {
        v = [], VA = ct.length;
        for (var ji = 0; ji < VA; ji++) v.push(ct[ji]);
      } else if (Yt === "justify" && wi.encoding === "Identity-H") {
        v = [], VA = ct.length, dA = dA !== 0 ? dA : bs;
        for (var si = 0, Tr = 0; Tr < VA; Tr++) if (qA = Tr === 0 ? vn(ne) : -Fa, ir = Tr === 0 ? Ra(T) : si, Tr < VA - 1) {
          var ao = W((dA - un[Tr]) / (ct[Tr].split(" ").length - 1)), xa = ct[Tr].split(" ");
          v.push([xa[0] + " ", ir, qA]), si = 0;
          for (var oi = 1; oi < xa.length; oi++) {
            var Oo = (YA(xa[oi - 1] + " " + xa[oi]) - YA(xa[oi])) * Xe + ao;
            oi == xa.length - 1 ? v.push([xa[oi], Oo, 0]) : v.push([xa[oi] + " ", Oo, 0]), si -= Oo;
          }
        } else v.push([ct[Tr], ir, qA]);
        v.push(["", si, 0]);
      } else {
        if (Yt !== "justify") throw new Error('Unrecognized alignment option, use "left", "center", "right" or "justify".');
        for (v = [], VA = ct.length, dA = dA !== 0 ? dA : bs, Tr = 0; Tr < VA; Tr++) {
          qA = Tr === 0 ? vn(ne) : -Fa, ir = Tr === 0 ? Ra(T) : 0;
          var Ro = ct[Tr].split(" ").length - 1, Ho = Ro > 0 ? (dA - un[Tr]) / Ro : 0;
          Tr < VA - 1 ? ar.push(M(W(Ho))) : ar.push(0), v.push([ct[Tr], ir, qA]);
        }
      }
    }
    (typeof we.R2L == "boolean" ? we.R2L : Pe) === !0 && (v = It(v, function($A, or, Vr) {
      return [$A.split("").reverse().join(""), or, Vr];
    })), nt = { text: v, x: T, y: ne, options: we, mutex: { pdfEscape: ke, activeFontKey: Bt, fonts: Ot, activeFontSize: xe } }, xt.publish("postProcessText", nt), v = nt.text, he = nt.mutex.isHex || !1;
    var Po = Ot[Bt].encoding;
    Po !== "WinAnsiEncoding" && Po !== "StandardEncoding" || (v = It(v, function($A, or, Vr) {
      return [ze($A), or, Vr];
    })), ct = mt(v), v = [];
    for (var Wi, Gi, Yi, Cs = Array.isArray(ct[0]) ? 1 : 0, $i = "", Es = function($A, or, Vr) {
      var rn = "";
      return Vr instanceof Lt ? (Vr = typeof we.angle == "number" ? Qr(Vr, new Lt(1, 0, 0, 1, $A, or)) : Qr(new Lt(1, 0, 0, 1, $A, or), Vr), F === C && (Vr = Qr(new Lt(1, 0, 0, -1, 0, 0), Vr)), rn = Vr.join(" ") + ` Tm
`) : rn = M($A) + " " + M(or) + ` Td
`, rn;
    }, Sa = 0; Sa < ct.length; Sa++) {
      switch ($i = "", Cs) {
        case 1:
          Yi = (he ? "<" : "(") + ct[Sa][0] + (he ? ">" : ")"), Wi = parseFloat(ct[Sa][1]), Gi = parseFloat(ct[Sa][2]);
          break;
        case 0:
          Yi = (he ? "<" : "(") + ct[Sa] + (he ? ">" : ")"), Wi = Ra(T), Gi = vn(ne);
      }
      ar !== void 0 && ar[Sa] !== void 0 && ($i = ar[Sa] + ` Tw
`), Sa === 0 ? v.push($i + Es(Wi, Gi, R) + Yi) : Cs === 0 ? v.push($i + Yi) : Cs === 1 && v.push($i + Es(Wi, Gi, R) + Yi);
    }
    v = Cs === 0 ? v.join(` Tj
T* `) : v.join(` Tj
`), v += ` Tj
`;
    var li = `BT
/`;
    return li += Bt + " " + xe + ` Tf
`, li += M(xe * Le) + ` TL
`, li += wA + `
`, li += ye, li += v, D(li += "ET"), g[Bt] = !0, te;
  };
  var Pn = c.__private__.clip = c.clip = function(v) {
    return D(v === "evenodd" ? "W*" : "W"), this;
  };
  c.clipEvenOdd = function() {
    return Pn("evenodd");
  }, c.__private__.discardPath = c.discardPath = function() {
    return D("n"), this;
  };
  var WA = c.__private__.isValidStyle = function(v) {
    var T = !1;
    return [void 0, null, "S", "D", "F", "DF", "FD", "f", "f*", "B", "B*", "n"].indexOf(v) !== -1 && (T = !0), T;
  };
  c.__private__.setDefaultPathOperation = c.setDefaultPathOperation = function(v) {
    return WA(v) && (l = v), this;
  };
  var bA = c.__private__.getStyle = c.getStyle = function(v) {
    var T = l;
    switch (v) {
      case "D":
      case "S":
        T = "S";
        break;
      case "F":
        T = "f";
        break;
      case "FD":
      case "DF":
        T = "B";
        break;
      case "f":
      case "f*":
      case "B":
      case "B*":
        T = v;
    }
    return T;
  }, nr = c.close = function() {
    return D("h"), this;
  };
  c.stroke = function() {
    return D("S"), this;
  }, c.fill = function(v) {
    return GA("f", v), this;
  }, c.fillEvenOdd = function(v) {
    return GA("f*", v), this;
  }, c.fillStroke = function(v) {
    return GA("B", v), this;
  }, c.fillStrokeEvenOdd = function(v) {
    return GA("B*", v), this;
  };
  var GA = function(v, T) {
    jA(T) === "object" ? ba(T, v) : D(v);
  }, cr = function(v) {
    v === null || F === C && v === void 0 || (v = bA(v), D(v));
  };
  function pn(v, T, ne, we, De) {
    var nt = new bo(T || this.boundingBox, ne || this.xStep, we || this.yStep, this.gState, De || this.matrix);
    nt.stream = this.stream;
    var ct = v + "$$" + this.cloneIndex++ + "$$";
    return xr(ct, nt), nt;
  }
  var ba = function(v, T) {
    var ne = hA[v.key], we = kt[ne];
    if (we instanceof Ls) D("q"), D(la(T)), we.gState && c.setGState(we.gState), D(v.matrix.toString() + " cm"), D("/" + ne + " sh"), D("Q");
    else if (we instanceof bo) {
      var De = new Lt(1, 0, 0, -1, 0, ua());
      v.matrix && (De = De.multiply(v.matrix || Fr), ne = pn.call(we, v.key, v.boundingBox, v.xStep, v.yStep, De).id), D("q"), D("/Pattern cs"), D("/" + ne + " scn"), we.gState && c.setGState(we.gState), D(T), D("Q");
    }
  }, la = function(v) {
    switch (v) {
      case "f":
      case "F":
      case "n":
        return "W n";
      case "f*":
        return "W* n";
      case "B":
      case "S":
        return "W S";
      case "B*":
        return "W* S";
    }
  }, Qn = c.moveTo = function(v, T) {
    return D(M(W(v)) + " " + M(I(T)) + " m"), this;
  }, Ca = c.lineTo = function(v, T) {
    return D(M(W(v)) + " " + M(I(T)) + " l"), this;
  }, Kr = c.curveTo = function(v, T, ne, we, De, nt) {
    return D([M(W(v)), M(I(T)), M(W(ne)), M(I(we)), M(W(De)), M(I(nt)), "c"].join(" ")), this;
  };
  c.__private__.line = c.line = function(v, T, ne, we, De) {
    if (isNaN(v) || isNaN(T) || isNaN(ne) || isNaN(we) || !WA(De)) throw new Error("Invalid arguments passed to jsPDF.line");
    return F === E ? this.lines([[ne - v, we - T]], v, T, [1, 1], De || "S") : this.lines([[ne - v, we - T]], v, T, [1, 1]).stroke();
  }, c.__private__.lines = c.lines = function(v, T, ne, we, De, nt) {
    var ct, Kt, Yt, oA, dA, QA, vr, R, te, K, he, ye;
    if (typeof v == "number" && (ye = ne, ne = T, T = v, v = ye), we = we || [1, 1], nt = nt || !1, isNaN(T) || isNaN(ne) || !Array.isArray(v) || !Array.isArray(we) || !WA(De) || typeof nt != "boolean") throw new Error("Invalid arguments passed to jsPDF.lines");
    for (Qn(T, ne), ct = we[0], Kt = we[1], oA = v.length, K = T, he = ne, Yt = 0; Yt < oA; Yt++) (dA = v[Yt]).length === 2 ? (K = dA[0] * ct + K, he = dA[1] * Kt + he, Ca(K, he)) : (QA = dA[0] * ct + K, vr = dA[1] * Kt + he, R = dA[2] * ct + K, te = dA[3] * Kt + he, K = dA[4] * ct + K, he = dA[5] * Kt + he, Kr(QA, vr, R, te, K, he));
    return nt && nr(), cr(De), this;
  }, c.path = function(v) {
    for (var T = 0; T < v.length; T++) {
      var ne = v[T], we = ne.c;
      switch (ne.op) {
        case "m":
          Qn(we[0], we[1]);
          break;
        case "l":
          Ca(we[0], we[1]);
          break;
        case "c":
          Kr.apply(this, we);
          break;
        case "h":
          nr();
      }
    }
    return this;
  }, c.__private__.rect = c.rect = function(v, T, ne, we, De) {
    if (isNaN(v) || isNaN(T) || isNaN(ne) || isNaN(we) || !WA(De)) throw new Error("Invalid arguments passed to jsPDF.rect");
    return F === E && (we = -we), D([M(W(v)), M(I(T)), M(W(ne)), M(W(we)), "re"].join(" ")), cr(De), this;
  }, c.__private__.triangle = c.triangle = function(v, T, ne, we, De, nt, ct) {
    if (isNaN(v) || isNaN(T) || isNaN(ne) || isNaN(we) || isNaN(De) || isNaN(nt) || !WA(ct)) throw new Error("Invalid arguments passed to jsPDF.triangle");
    return this.lines([[ne - v, we - T], [De - ne, nt - we], [v - De, T - nt]], v, T, [1, 1], ct, !0), this;
  }, c.__private__.roundedRect = c.roundedRect = function(v, T, ne, we, De, nt, ct) {
    if (isNaN(v) || isNaN(T) || isNaN(ne) || isNaN(we) || isNaN(De) || isNaN(nt) || !WA(ct)) throw new Error("Invalid arguments passed to jsPDF.roundedRect");
    var Kt = 4 / 3 * (Math.SQRT2 - 1);
    return De = Math.min(De, 0.5 * ne), nt = Math.min(nt, 0.5 * we), this.lines([[ne - 2 * De, 0], [De * Kt, 0, De, nt - nt * Kt, De, nt], [0, we - 2 * nt], [0, nt * Kt, -De * Kt, nt, -De, nt], [2 * De - ne, 0], [-De * Kt, 0, -De, -nt * Kt, -De, -nt], [0, 2 * nt - we], [0, -nt * Kt, De * Kt, -nt, De, -nt]], v + De, T, [1, 1], ct, !0), this;
  }, c.__private__.ellipse = c.ellipse = function(v, T, ne, we, De) {
    if (isNaN(v) || isNaN(T) || isNaN(ne) || isNaN(we) || !WA(De)) throw new Error("Invalid arguments passed to jsPDF.ellipse");
    var nt = 4 / 3 * (Math.SQRT2 - 1) * ne, ct = 4 / 3 * (Math.SQRT2 - 1) * we;
    return Qn(v + ne, T), Kr(v + ne, T - ct, v + nt, T - we, v, T - we), Kr(v - nt, T - we, v - ne, T - ct, v - ne, T), Kr(v - ne, T + ct, v - nt, T + we, v, T + we), Kr(v + nt, T + we, v + ne, T + ct, v + ne, T), cr(De), this;
  }, c.__private__.circle = c.circle = function(v, T, ne, we) {
    if (isNaN(v) || isNaN(T) || isNaN(ne) || !WA(we)) throw new Error("Invalid arguments passed to jsPDF.circle");
    return this.ellipse(v, T, ne, ne, we);
  }, c.setFont = function(v, T, ne) {
    return ne && (T = N(T, ne)), Bt = Et(v, T, { disableWarning: !1 }), this;
  };
  var Dn = c.__private__.getFont = c.getFont = function() {
    return Ot[Et.apply(c, arguments)];
  };
  c.__private__.getFontList = c.getFontList = function() {
    var v, T, ne = {};
    for (v in Pt) if (Pt.hasOwnProperty(v)) for (T in ne[v] = [], Pt[v]) Pt[v].hasOwnProperty(T) && ne[v].push(T);
    return ne;
  }, c.addFont = function(v, T, ne, we, De) {
    var nt = ["StandardEncoding", "MacRomanEncoding", "Identity-H", "WinAnsiEncoding"];
    return arguments[3] && nt.indexOf(arguments[3]) !== -1 ? De = arguments[3] : arguments[3] && nt.indexOf(arguments[3]) == -1 && (ne = N(ne, we)), Fe.call(this, v, T, ne, De = De || "Identity-H");
  };
  var Ir, kn = r.lineWidth || 0.200025, zs = c.__private__.getLineWidth = c.getLineWidth = function() {
    return kn;
  }, lA = c.__private__.setLineWidth = c.setLineWidth = function(v) {
    return kn = v, D(M(W(v)) + " w"), this;
  };
  c.__private__.setLineDash = eA.API.setLineDash = eA.API.setLineDashPattern = function(v, T) {
    if (v = v || [], T = T || 0, isNaN(T) || !Array.isArray(v)) throw new Error("Invalid arguments passed to jsPDF.setLineDash");
    return v = v.map(function(ne) {
      return M(W(ne));
    }).join(" "), T = M(W(T)), D("[" + v + "] " + T + " d"), this;
  };
  var Mo = c.__private__.getLineHeight = c.getLineHeight = function() {
    return xe * Ir;
  };
  c.__private__.getLineHeight = c.getLineHeight = function() {
    return xe * Ir;
  };
  var Xs = c.__private__.setLineHeightFactor = c.setLineHeightFactor = function(v) {
    return typeof (v = v || 1.15) == "number" && (Ir = v), this;
  }, Js = c.__private__.getLineHeightFactor = c.getLineHeightFactor = function() {
    return Ir;
  };
  Xs(r.lineHeight);
  var Ra = c.__private__.getHorizontalCoordinate = function(v) {
    return W(v);
  }, vn = c.__private__.getVerticalCoordinate = function(v) {
    return F === C ? v : $e[L].mediaBox.topRightY - $e[L].mediaBox.bottomLeftY - W(v);
  }, Bs = c.__private__.getHorizontalCoordinateString = c.getHorizontalCoordinateString = function(v) {
    return M(Ra(v));
  }, Zs = c.__private__.getVerticalCoordinateString = c.getVerticalCoordinateString = function(v) {
    return M(vn(v));
  }, ni = r.strokeColor || "0 G";
  c.__private__.getStrokeColor = c.getDrawColor = function() {
    return pr(ni);
  }, c.__private__.setStrokeColor = c.setDrawColor = function(v, T, ne, we) {
    return ni = kr({ ch1: v, ch2: T, ch3: ne, ch4: we, pdfColorType: "draw", precision: 2 }), D(ni), this;
  };
  var Hi = r.fillColor || "0 g";
  c.__private__.getFillColor = c.getFillColor = function() {
    return pr(Hi);
  }, c.__private__.setFillColor = c.setFillColor = function(v, T, ne, we) {
    return Hi = kr({ ch1: v, ch2: T, ch3: ne, ch4: we, pdfColorType: "fill", precision: 2 }), D(Hi), this;
  };
  var wA = r.textColor || "0 g", ta = c.__private__.getTextColor = c.getTextColor = function() {
    return pr(wA);
  };
  c.__private__.setTextColor = c.setTextColor = function(v, T, ne, we) {
    return wA = kr({ ch1: v, ch2: T, ch3: ne, ch4: we, pdfColorType: "text", precision: 3 }), this;
  };
  var mn = r.charSpace, Pi = c.__private__.getCharSpace = c.getCharSpace = function() {
    return parseFloat(mn || 0);
  };
  c.__private__.setCharSpace = c.setCharSpace = function(v) {
    if (isNaN(v)) throw new Error("Invalid argument passed to jsPDF.setCharSpace");
    return mn = v, this;
  };
  var ai = 0;
  c.CapJoinStyles = { 0: 0, butt: 0, but: 0, miter: 0, 1: 1, round: 1, rounded: 1, circle: 1, 2: 2, projecting: 2, project: 2, square: 2, bevel: 2 }, c.__private__.setLineCap = c.setLineCap = function(v) {
    var T = c.CapJoinStyles[v];
    if (T === void 0) throw new Error("Line cap style of '" + v + "' is not recognized. See or extend .CapJoinStyles property for valid styles");
    return ai = T, D(T + " J"), this;
  };
  var ys = 0;
  c.__private__.setLineJoin = c.setLineJoin = function(v) {
    var T = c.CapJoinStyles[v];
    if (T === void 0) throw new Error("Line join style of '" + v + "' is not recognized. See or extend .CapJoinStyles property for valid styles");
    return ys = T, D(T + " j"), this;
  }, c.__private__.setLineMiterLimit = c.__private__.setMiterLimit = c.setLineMiterLimit = c.setMiterLimit = function(v) {
    if (v = v || 0, isNaN(v)) throw new Error("Invalid argument passed to jsPDF.setLineMiterLimit");
    return D(M(W(v)) + " M"), this;
  }, c.GState = fc, c.setGState = function(v) {
    (v = typeof v == "string" ? Nt[Ce[v]] : eo(null, v)).equals(Ve) || (D("/" + v.id + " gs"), Ve = v);
  };
  var eo = function(v, T) {
    if (!v || !Ce[v]) {
      var ne = !1;
      for (var we in Nt) if (Nt.hasOwnProperty(we) && Nt[we].equals(T)) {
        ne = !0;
        break;
      }
      if (ne) T = Nt[we];
      else {
        var De = "GS" + (Object.keys(Nt).length + 1).toString(10);
        Nt[De] = T, T.id = De;
      }
      return v && (Ce[v] = T.id), xt.publish("addGState", T), T;
    }
  };
  c.addGState = function(v, T) {
    return eo(v, T), this;
  }, c.saveGraphicsState = function() {
    return D("q"), sA.push({ key: Bt, size: xe, color: wA }), this;
  }, c.restoreGraphicsState = function() {
    D("Q");
    var v = sA.pop();
    return Bt = v.key, xe = v.size, wA = v.color, Ve = null, this;
  }, c.setCurrentTransformationMatrix = function(v) {
    return D(v.toString() + " cm"), this;
  }, c.comment = function(v) {
    return D("#" + v), this;
  };
  var Aa = function(v, T) {
    var ne = v || 0;
    Object.defineProperty(this, "x", { enumerable: !0, get: function() {
      return ne;
    }, set: function(nt) {
      isNaN(nt) || (ne = parseFloat(nt));
    } });
    var we = T || 0;
    Object.defineProperty(this, "y", { enumerable: !0, get: function() {
      return we;
    }, set: function(nt) {
      isNaN(nt) || (we = parseFloat(nt));
    } });
    var De = "pt";
    return Object.defineProperty(this, "type", { enumerable: !0, get: function() {
      return De;
    }, set: function(nt) {
      De = nt.toString();
    } }), this;
  }, ii = function(v, T, ne, we) {
    Aa.call(this, v, T), this.type = "rect";
    var De = ne || 0;
    Object.defineProperty(this, "w", { enumerable: !0, get: function() {
      return De;
    }, set: function(ct) {
      isNaN(ct) || (De = parseFloat(ct));
    } });
    var nt = we || 0;
    return Object.defineProperty(this, "h", { enumerable: !0, get: function() {
      return nt;
    }, set: function(ct) {
      isNaN(ct) || (nt = parseFloat(ct));
    } }), this;
  }, Ki = function() {
    this.page = Re, this.currentPage = L, this.pages = qe.slice(0), this.pagesContext = $e.slice(0), this.x = bt, this.y = nA, this.matrix = qt, this.width = qi(L), this.height = Ao(L), this.outputDestination = at, this.id = "", this.objectNumber = -1;
  };
  Ki.prototype.restore = function() {
    Re = this.page, L = this.currentPage, $e = this.pagesContext, qe = this.pages, bt = this.x, nA = this.y, qt = this.matrix, to(L, this.width), Ha(L, this.height), at = this.outputDestination;
  };
  var Vi = function(v, T, ne, we, De) {
    JA.push(new Ki()), Re = L = 0, qe = [], bt = v, nA = T, qt = De, Ze([ne, we]);
  };
  for (var Ea in c.beginFormObject = function(v, T, ne, we, De) {
    return Vi(v, T, ne, we, De), this;
  }, c.endFormObject = function(v) {
    return (function(T) {
      if (SA[T]) JA.pop().restore();
      else {
        var ne = new Ki(), we = "Xo" + (Object.keys(Mt).length + 1).toString(10);
        ne.id = we, SA[T] = we, Mt[we] = ne, xt.publish("addFormObject", ne), JA.pop().restore();
      }
    })(v), this;
  }, c.doFormObject = function(v, T) {
    var ne = Mt[SA[v]];
    return D("q"), D(T.toString() + " cm"), D("/" + ne.id + " Do"), D("Q"), this;
  }, c.getFormObject = function(v) {
    var T = Mt[SA[v]];
    return { x: T.x, y: T.y, width: T.width, height: T.height, matrix: T.matrix };
  }, c.save = function(v, T) {
    return v = v || "generated.pdf", (T = T || {}).returnPromise = T.returnPromise || !1, T.returnPromise === !1 ? (Qs(UA(Gt()), v), typeof Qs.unload == "function" && cA.setTimeout && setTimeout(Qs.unload, 911), this) : new Promise(function(ne, we) {
      try {
        var De = Qs(UA(Gt()), v);
        typeof Qs.unload == "function" && cA.setTimeout && setTimeout(Qs.unload, 911), ne(De);
      } catch (nt) {
        we(nt.message);
      }
    });
  }, eA.API) eA.API.hasOwnProperty(Ea) && (Ea === "events" && eA.API.events.length ? (function(v, T) {
    var ne, we, De;
    for (De = T.length - 1; De !== -1; De--) ne = T[De][0], we = T[De][1], v.subscribe.apply(v, [ne].concat(typeof we == "function" ? [we] : we));
  })(xt, eA.API.events) : c[Ea] = eA.API[Ea]);
  function qi(v) {
    return $e[v].mediaBox.topRightX - $e[v].mediaBox.bottomLeftX;
  }
  function to(v, T) {
    $e[v].mediaBox.topRightX = T + $e[v].mediaBox.bottomLeftX;
  }
  function Ao(v) {
    return $e[v].mediaBox.topRightY - $e[v].mediaBox.bottomLeftY;
  }
  function Ha(v, T) {
    $e[v].mediaBox.topRightY = T + $e[v].mediaBox.bottomLeftY;
  }
  var Pa = c.getPageWidth = function(v) {
    return qi(v = v || L) / St;
  }, ro = c.setPageWidth = function(v, T) {
    to(v, T * St);
  }, ua = c.getPageHeight = function(v) {
    return Ao(v = v || L) / St;
  }, no = c.setPageHeight = function(v, T) {
    Ha(v, T * St);
  };
  return c.internal = { pdfEscape: ke, getStyle: bA, getFont: Dn, getFontSize: _e, getCharSpace: Pi, getTextColor: ta, getLineHeight: Mo, getLineHeightFactor: Js, getLineWidth: zs, write: Ie, getHorizontalCoordinate: Ra, getVerticalCoordinate: vn, getCoordinateString: Bs, getVerticalCoordinateString: Zs, collections: {}, newObject: CA, newAdditionalObject: Dr, newObjectDeferred: MA, newObjectDeferredBegin: OA, getFilters: ZA, putStream: Lr, events: xt, scaleFactor: St, pageSize: { getWidth: function() {
    return Pa(L);
  }, setWidth: function(v) {
    ro(L, v);
  }, getHeight: function() {
    return ua(L);
  }, setHeight: function(v) {
    no(L, v);
  } }, encryptionOptions: u, encryption: aA, getEncryptor: function(v) {
    return u !== null ? aA.encryptor(v, 0) : function(T) {
      return T;
    };
  }, output: FA, getNumberOfPages: ft, get pages() {
    return qe;
  }, out: D, f2: S, f3: U, getPageInfo: An, getPageInfoByObjId: Tn, getCurrentPageInfo: ea, getPDFVersion: m, Point: Aa, Rectangle: ii, Matrix: Lt, hasHotfix: IA }, Object.defineProperty(c.internal.pageSize, "width", { get: function() {
    return Pa(L);
  }, set: function(v) {
    ro(L, v);
  }, enumerable: !0, configurable: !0 }), Object.defineProperty(c.internal.pageSize, "height", { get: function() {
    return ua(L);
  }, set: function(v) {
    no(L, v);
  }, enumerable: !0, configurable: !0 }), (function(v) {
    for (var T = 0, ne = ve.length; T < ne; T++) {
      var we = Fe.call(this, v[T][0], v[T][1], v[T][2], ve[T][3], !0);
      h === !1 && (g[we] = !0);
      var De = v[T][0].split("-");
      Be({ id: we, fontName: De[0], fontStyle: De[1] || "" });
    }
    xt.publish("addFonts", { fonts: Ot, dictionary: Pt });
  }).call(c, ve), Bt = "F1", Me(n, e), xt.publish("initialized"), c;
}
mo.prototype.lsbFirstWord = function(r) {
  return String.fromCharCode(255 & r, r >> 8 & 255, r >> 16 & 255, r >> 24 & 255);
}, mo.prototype.toHexString = function(r) {
  return r.split("").map(function(t) {
    return ("0" + (255 & t.charCodeAt(0)).toString(16)).slice(-2);
  }).join("");
}, mo.prototype.hexToBytes = function(r) {
  for (var t = [], e = 0; e < r.length; e += 2) t.push(String.fromCharCode(parseInt(r.substr(e, 2), 16)));
  return t.join("");
}, mo.prototype.processOwnerPassword = function(r, t) {
  return op(sp(t).substr(0, 5), r);
}, mo.prototype.encryptor = function(r, t) {
  var e = sp(this.encryptionKey + String.fromCharCode(255 & r, r >> 8 & 255, r >> 16 & 255, 255 & t, t >> 8 & 255)).substr(0, 10);
  return function(A) {
    return op(e, A);
  };
}, fc.prototype.equals = function(r) {
  var t, e = "id,objectNumber,equals";
  if (!r || jA(r) !== jA(this)) return !1;
  var A = 0;
  for (t in this) if (!(e.indexOf(t) >= 0)) {
    if (this.hasOwnProperty(t) && !r.hasOwnProperty(t) || this[t] !== r[t]) return !1;
    A++;
  }
  for (t in r) r.hasOwnProperty(t) && e.indexOf(t) < 0 && A--;
  return A === 0;
}, eA.API = { events: [] }, eA.version = "3.0.4";
var Or = eA.API, ev = 1, js = function(r) {
  return r.replace(/\\/g, "\\\\").replace(/\(/g, "\\(").replace(/\)/g, "\\)");
}, lo = function(r) {
  return r.replace(/\\\\/g, "\\").replace(/\\\(/g, "(").replace(/\\\)/g, ")");
}, pA = function(r) {
  return r.toFixed(2);
}, rs = function(r) {
  return r.toFixed(5);
};
Or.__acroform__ = {};
var sa = function(r, t) {
  r.prototype = Object.create(t.prototype), r.prototype.constructor = r;
}, T1 = function(r) {
  return r * ev;
}, fi = function(r) {
  var t = new S5(), e = Wt.internal.getHeight(r) || 0, A = Wt.internal.getWidth(r) || 0;
  return t.BBox = [0, 0, Number(pA(A)), Number(pA(e))], t;
}, uD = Or.__acroform__.setBit = function(r, t) {
  if (r = r || 0, t = t || 0, isNaN(r) || isNaN(t)) throw new Error("Invalid arguments passed to jsPDF.API.__acroform__.setBit");
  return r | 1 << t;
}, cD = Or.__acroform__.clearBit = function(r, t) {
  if (r = r || 0, t = t || 0, isNaN(r) || isNaN(t)) throw new Error("Invalid arguments passed to jsPDF.API.__acroform__.clearBit");
  return r & ~(1 << t);
}, fD = Or.__acroform__.getBit = function(r, t) {
  if (isNaN(r) || isNaN(t)) throw new Error("Invalid arguments passed to jsPDF.API.__acroform__.getBit");
  return r & 1 << t ? 1 : 0;
}, Yr = Or.__acroform__.getBitForPdf = function(r, t) {
  if (isNaN(r) || isNaN(t)) throw new Error("Invalid arguments passed to jsPDF.API.__acroform__.getBitForPdf");
  return fD(r, t - 1);
}, $r = Or.__acroform__.setBitForPdf = function(r, t) {
  if (isNaN(r) || isNaN(t)) throw new Error("Invalid arguments passed to jsPDF.API.__acroform__.setBitForPdf");
  return uD(r, t - 1);
}, zr = Or.__acroform__.clearBitForPdf = function(r, t) {
  if (isNaN(r) || isNaN(t)) throw new Error("Invalid arguments passed to jsPDF.API.__acroform__.clearBitForPdf");
  return cD(r, t - 1);
}, hD = Or.__acroform__.calculateCoordinates = function(r, t) {
  var e = t.internal.getHorizontalCoordinate, A = t.internal.getVerticalCoordinate, n = r[0], a = r[1], s = r[2], i = r[3], o = {};
  return o.lowerLeft_X = e(n) || 0, o.lowerLeft_Y = A(a + i) || 0, o.upperRight_X = e(n + s) || 0, o.upperRight_Y = A(a) || 0, [Number(pA(o.lowerLeft_X)), Number(pA(o.lowerLeft_Y)), Number(pA(o.upperRight_X)), Number(pA(o.upperRight_Y))];
}, dD = function(r) {
  if (r.appearanceStreamContent) return r.appearanceStreamContent;
  if (r.V || r.DV) {
    var t = [], e = r._V || r.DV, A = lp(r, e), n = r.scope.internal.getFont(r.fontName, r.fontStyle).id;
    t.push("/Tx BMC"), t.push("q"), t.push("BT"), t.push(r.scope.__private__.encodeColorString(r.color)), t.push("/" + n + " " + pA(A.fontSize) + " Tf"), t.push("1 0 0 1 0 0 Tm"), t.push(A.text), t.push("ET"), t.push("Q"), t.push("EMC");
    var a = fi(r);
    return a.scope = r.scope, a.stream = t.join(`
`), a;
  }
}, lp = function(r, t) {
  var e = r.fontSize === 0 ? r.maxFontSize : r.fontSize, A = { text: "", fontSize: "" }, n = (t = (t = t.substr(0, 1) == "(" ? t.substr(1) : t).substr(t.length - 1) == ")" ? t.substr(0, t.length - 1) : t).split(" ");
  n = r.multiline ? n.map(function(S) {
    return S.split(`
`);
  }) : n.map(function(S) {
    return [S];
  });
  var a = e, s = Wt.internal.getHeight(r) || 0;
  s = s < 0 ? -s : s;
  var i = Wt.internal.getWidth(r) || 0;
  i = i < 0 ? -i : i;
  var o = function(S, U, W) {
    if (S + 1 < n.length) {
      var I = U + " " + n[S + 1][0];
      return gu(I, r, W).width <= i - 4;
    }
    return !1;
  };
  a++;
  e: for (; a > 0; ) {
    t = "", a--;
    var l, u, h = gu("3", r, a).height, g = r.multiline ? s - a : (s - h) / 2, c = g += 2, p = 0, m = 0, y = 0;
    if (a <= 0) {
      t = `(...) Tj
`, t += "% Width of Text: " + gu(t, r, a = 12).width + ", FieldWidth:" + i + `
`;
      break;
    }
    for (var w = "", E = 0, C = 0; C < n.length; C++) if (n.hasOwnProperty(C)) {
      var F = !1;
      if (n[C].length !== 1 && y !== n[C].length - 1) {
        if ((h + 2) * (E + 2) + 2 > s) continue e;
        w += n[C][y], F = !0, m = C, C--;
      } else {
        w = (w += n[C][y] + " ").substr(w.length - 1) == " " ? w.substr(0, w.length - 1) : w;
        var H = parseInt(C), q = o(H, w, a), N = C >= n.length - 1;
        if (q && !N) {
          w += " ", y = 0;
          continue;
        }
        if (q || N) {
          if (N) m = H;
          else if (r.multiline && (h + 2) * (E + 2) + 2 > s) continue e;
        } else {
          if (!r.multiline || (h + 2) * (E + 2) + 2 > s) continue e;
          m = H;
        }
      }
      for (var M = "", k = p; k <= m; k++) {
        var O = n[k];
        if (r.multiline) {
          if (k === m) {
            M += O[y] + " ", y = (y + 1) % O.length;
            continue;
          }
          if (k === p) {
            M += O[O.length - 1] + " ";
            continue;
          }
        }
        M += O[0] + " ";
      }
      switch (M = M.substr(M.length - 1) == " " ? M.substr(0, M.length - 1) : M, u = gu(M, r, a).width, r.textAlign) {
        case "right":
          l = i - u - 2;
          break;
        case "center":
          l = (i - u) / 2;
          break;
        default:
          l = 2;
      }
      t += pA(l) + " " + pA(c) + ` Td
`, t += "(" + js(M) + `) Tj
`, t += -pA(l) + ` 0 Td
`, c = -(a + 2), u = 0, p = F ? m : m + 1, E++, w = "";
    }
    break;
  }
  return A.text = t, A.fontSize = a, A;
}, gu = function(r, t, e) {
  var A = t.scope.internal.getFont(t.fontName, t.fontStyle), n = t.scope.getStringUnitWidth(r, { font: A, fontSize: parseFloat(e), charSpace: 0 }) * parseFloat(e);
  return { height: t.scope.getStringUnitWidth("3", { font: A, fontSize: parseFloat(e), charSpace: 0 }) * parseFloat(e) * 1.5, width: n };
}, gD = { fields: [], xForms: [], acroFormDictionaryRoot: null, printedOut: !1, internal: null, isInitialized: !1 }, pD = function(r, t) {
  var e = { type: "reference", object: r };
  t.internal.getPageInfo(r.page).pageContext.annotations.find(function(A) {
    return A.type === e.type && A.object === e.object;
  }) === void 0 && t.internal.getPageInfo(r.page).pageContext.annotations.push(e);
}, vD = function(r, t) {
  if (t.scope = r, r.internal !== void 0 && (r.internal.acroformPlugin === void 0 || r.internal.acroformPlugin.isInitialized === !1)) {
    if (Ja.FieldNum = 0, r.internal.acroformPlugin = JSON.parse(JSON.stringify(gD)), r.internal.acroformPlugin.acroFormDictionaryRoot) throw new Error("Exception while creating AcroformDictionary");
    ev = r.internal.scaleFactor, r.internal.acroformPlugin.acroFormDictionaryRoot = new U5(), r.internal.acroformPlugin.acroFormDictionaryRoot.scope = r, r.internal.acroformPlugin.acroFormDictionaryRoot._eventID = r.internal.events.subscribe("postPutResources", function() {
      (function(e) {
        e.internal.events.unsubscribe(e.internal.acroformPlugin.acroFormDictionaryRoot._eventID), delete e.internal.acroformPlugin.acroFormDictionaryRoot._eventID, e.internal.acroformPlugin.printedOut = !0;
      })(r);
    }), r.internal.events.subscribe("buildDocument", function() {
      (function(e) {
        e.internal.acroformPlugin.acroFormDictionaryRoot.objId = void 0;
        var A = e.internal.acroformPlugin.acroFormDictionaryRoot.Fields;
        for (var n in A) if (A.hasOwnProperty(n)) {
          var a = A[n];
          a.objId = void 0, a.hasAnnotation && pD(a, e);
        }
      })(r);
    }), r.internal.events.subscribe("putCatalog", function() {
      (function(e) {
        if (e.internal.acroformPlugin.acroFormDictionaryRoot === void 0) throw new Error("putCatalogCallback: Root missing.");
        e.internal.write("/AcroForm " + e.internal.acroformPlugin.acroFormDictionaryRoot.objId + " 0 R");
      })(r);
    }), r.internal.events.subscribe("postPutPages", function(e) {
      (function(A, n) {
        var a = !A;
        for (var s in A || (n.internal.newObjectDeferredBegin(n.internal.acroformPlugin.acroFormDictionaryRoot.objId, !0), n.internal.acroformPlugin.acroFormDictionaryRoot.putStream()), A = A || n.internal.acroformPlugin.acroFormDictionaryRoot.Kids) if (A.hasOwnProperty(s)) {
          var i = A[s], o = [], l = i.Rect;
          if (i.Rect && (i.Rect = hD(i.Rect, n)), n.internal.newObjectDeferredBegin(i.objId, !0), i.DA = Wt.createDefaultAppearanceStream(i), jA(i) === "object" && typeof i.getKeyValueListForStream == "function" && (o = i.getKeyValueListForStream()), i.Rect = l, i.hasAppearanceStream && !i.appearanceStreamContent) {
            var u = dD(i);
            o.push({ key: "AP", value: "<</N " + u + ">>" }), n.internal.acroformPlugin.xForms.push(u);
          }
          if (i.appearanceStreamContent) {
            var h = "";
            for (var g in i.appearanceStreamContent) if (i.appearanceStreamContent.hasOwnProperty(g)) {
              var c = i.appearanceStreamContent[g];
              if (h += "/" + g + " ", h += "<<", Object.keys(c).length >= 1 || Array.isArray(c)) {
                for (var s in c) if (c.hasOwnProperty(s)) {
                  var p = c[s];
                  typeof p == "function" && (p = p.call(n, i)), h += "/" + s + " " + p + " ", n.internal.acroformPlugin.xForms.indexOf(p) >= 0 || n.internal.acroformPlugin.xForms.push(p);
                }
              } else typeof (p = c) == "function" && (p = p.call(n, i)), h += "/" + s + " " + p, n.internal.acroformPlugin.xForms.indexOf(p) >= 0 || n.internal.acroformPlugin.xForms.push(p);
              h += ">>";
            }
            o.push({ key: "AP", value: `<<
` + h + ">>" });
          }
          n.internal.putStream({ additionalKeyValues: o, objectId: i.objId }), n.internal.out("endobj");
        }
        a && (function(m, y) {
          for (var w in m) if (m.hasOwnProperty(w)) {
            var E = w, C = m[w];
            y.internal.newObjectDeferredBegin(C.objId, !0), jA(C) === "object" && typeof C.putStream == "function" && C.putStream(), delete m[E];
          }
        })(n.internal.acroformPlugin.xForms, n);
      })(e, r);
    }), r.internal.acroformPlugin.isInitialized = !0;
  }
}, x5 = Or.__acroform__.arrayToPdfArray = function(r, t, e) {
  var A = function(s) {
    return s;
  };
  if (Array.isArray(r)) {
    for (var n = "[", a = 0; a < r.length; a++) switch (a !== 0 && (n += " "), jA(r[a])) {
      case "boolean":
      case "number":
      case "object":
        n += r[a].toString();
        break;
      case "string":
        r[a].substr(0, 1) !== "/" ? (t !== void 0 && e && (A = e.internal.getEncryptor(t)), n += "(" + js(A(r[a].toString())) + ")") : n += r[a].toString();
    }
    return n + "]";
  }
  throw new Error("Invalid argument passed to jsPDF.__acroform__.arrayToPdfArray");
}, Mf = function(r, t, e) {
  var A = function(n) {
    return n;
  };
  return t !== void 0 && e && (A = e.internal.getEncryptor(t)), (r = r || "").toString(), "(" + js(A(r)) + ")";
}, hi = function() {
  this._objId = void 0, this._scope = void 0, Object.defineProperty(this, "objId", { get: function() {
    if (this._objId === void 0) {
      if (this.scope === void 0) return;
      this._objId = this.scope.internal.newObjectDeferred();
    }
    return this._objId;
  }, set: function(r) {
    this._objId = r;
  } }), Object.defineProperty(this, "scope", { value: this._scope, writable: !0 });
};
hi.prototype.toString = function() {
  return this.objId + " 0 R";
}, hi.prototype.putStream = function() {
  var r = this.getKeyValueListForStream();
  this.scope.internal.putStream({ data: this.stream, additionalKeyValues: r, objectId: this.objId }), this.scope.internal.out("endobj");
}, hi.prototype.getKeyValueListForStream = function() {
  var r = [], t = Object.getOwnPropertyNames(this).filter(function(a) {
    return a != "content" && a != "appearanceStreamContent" && a != "scope" && a != "objId" && a.substring(0, 1) != "_";
  });
  for (var e in t) if (Object.getOwnPropertyDescriptor(this, t[e]).configurable === !1) {
    var A = t[e], n = this[A];
    n && (Array.isArray(n) ? r.push({ key: A, value: x5(n, this.objId, this.scope) }) : n instanceof hi ? (n.scope = this.scope, r.push({ key: A, value: n.objId + " 0 R" })) : typeof n != "function" && r.push({ key: A, value: n }));
  }
  return r;
};
var S5 = function() {
  hi.call(this), Object.defineProperty(this, "Type", { value: "/XObject", configurable: !1, writable: !0 }), Object.defineProperty(this, "Subtype", { value: "/Form", configurable: !1, writable: !0 }), Object.defineProperty(this, "FormType", { value: 1, configurable: !1, writable: !0 });
  var r, t = [];
  Object.defineProperty(this, "BBox", { configurable: !1, get: function() {
    return t;
  }, set: function(e) {
    t = e;
  } }), Object.defineProperty(this, "Resources", { value: "2 0 R", configurable: !1, writable: !0 }), Object.defineProperty(this, "stream", { enumerable: !1, configurable: !0, set: function(e) {
    r = e.trim();
  }, get: function() {
    return r || null;
  } });
};
sa(S5, hi);
var U5 = function() {
  hi.call(this);
  var r, t = [];
  Object.defineProperty(this, "Kids", { enumerable: !1, configurable: !0, get: function() {
    return t.length > 0 ? t : void 0;
  } }), Object.defineProperty(this, "Fields", { enumerable: !1, configurable: !1, get: function() {
    return t;
  } }), Object.defineProperty(this, "DA", { enumerable: !1, configurable: !1, get: function() {
    if (r) {
      var e = function(A) {
        return A;
      };
      return this.scope && (e = this.scope.internal.getEncryptor(this.objId)), "(" + js(e(r)) + ")";
    }
  }, set: function(e) {
    r = e;
  } });
};
sa(U5, hi);
var Ja = function r() {
  hi.call(this);
  var t = 4;
  Object.defineProperty(this, "F", { enumerable: !1, configurable: !1, get: function() {
    return t;
  }, set: function(w) {
    if (isNaN(w)) throw new Error('Invalid value "' + w + '" for attribute F supplied.');
    t = w;
  } }), Object.defineProperty(this, "showWhenPrinted", { enumerable: !0, configurable: !0, get: function() {
    return !!Yr(t, 3);
  }, set: function(w) {
    w ? this.F = $r(t, 3) : this.F = zr(t, 3);
  } });
  var e = 0;
  Object.defineProperty(this, "Ff", { enumerable: !1, configurable: !1, get: function() {
    return e;
  }, set: function(w) {
    if (isNaN(w)) throw new Error('Invalid value "' + w + '" for attribute Ff supplied.');
    e = w;
  } });
  var A = [];
  Object.defineProperty(this, "Rect", { enumerable: !1, configurable: !1, get: function() {
    if (A.length !== 0) return A;
  }, set: function(w) {
    A = w !== void 0 ? w : [];
  } }), Object.defineProperty(this, "x", { enumerable: !0, configurable: !0, get: function() {
    return !A || isNaN(A[0]) ? 0 : A[0];
  }, set: function(w) {
    A[0] = w;
  } }), Object.defineProperty(this, "y", { enumerable: !0, configurable: !0, get: function() {
    return !A || isNaN(A[1]) ? 0 : A[1];
  }, set: function(w) {
    A[1] = w;
  } }), Object.defineProperty(this, "width", { enumerable: !0, configurable: !0, get: function() {
    return !A || isNaN(A[2]) ? 0 : A[2];
  }, set: function(w) {
    A[2] = w;
  } }), Object.defineProperty(this, "height", { enumerable: !0, configurable: !0, get: function() {
    return !A || isNaN(A[3]) ? 0 : A[3];
  }, set: function(w) {
    A[3] = w;
  } });
  var n = "";
  Object.defineProperty(this, "FT", { enumerable: !0, configurable: !1, get: function() {
    return n;
  }, set: function(w) {
    switch (w) {
      case "/Btn":
      case "/Tx":
      case "/Ch":
      case "/Sig":
        n = w;
        break;
      default:
        throw new Error('Invalid value "' + w + '" for attribute FT supplied.');
    }
  } });
  var a = null;
  Object.defineProperty(this, "T", { enumerable: !0, configurable: !1, get: function() {
    if (!a || a.length < 1) {
      if (this instanceof hc) return;
      a = "FieldObject" + r.FieldNum++;
    }
    var w = function(E) {
      return E;
    };
    return this.scope && (w = this.scope.internal.getEncryptor(this.objId)), "(" + js(w(a)) + ")";
  }, set: function(w) {
    a = w.toString();
  } }), Object.defineProperty(this, "fieldName", { configurable: !0, enumerable: !0, get: function() {
    return a;
  }, set: function(w) {
    a = w;
  } });
  var s = "helvetica";
  Object.defineProperty(this, "fontName", { enumerable: !0, configurable: !0, get: function() {
    return s;
  }, set: function(w) {
    s = w;
  } });
  var i = "normal";
  Object.defineProperty(this, "fontStyle", { enumerable: !0, configurable: !0, get: function() {
    return i;
  }, set: function(w) {
    i = w;
  } });
  var o = 0;
  Object.defineProperty(this, "fontSize", { enumerable: !0, configurable: !0, get: function() {
    return o;
  }, set: function(w) {
    o = w;
  } });
  var l = void 0;
  Object.defineProperty(this, "maxFontSize", { enumerable: !0, configurable: !0, get: function() {
    return l === void 0 ? 50 / ev : l;
  }, set: function(w) {
    l = w;
  } });
  var u = "black";
  Object.defineProperty(this, "color", { enumerable: !0, configurable: !0, get: function() {
    return u;
  }, set: function(w) {
    u = w;
  } });
  var h = "/F1 0 Tf 0 g";
  Object.defineProperty(this, "DA", { enumerable: !0, configurable: !1, get: function() {
    if (!(!h || this instanceof hc || this instanceof Os)) return Mf(h, this.objId, this.scope);
  }, set: function(w) {
    w = w.toString(), h = w;
  } });
  var g = null;
  Object.defineProperty(this, "DV", { enumerable: !1, configurable: !1, get: function() {
    if (g) return this instanceof hn == 0 ? Mf(g, this.objId, this.scope) : g;
  }, set: function(w) {
    w = w.toString(), g = this instanceof hn == 0 ? w.substr(0, 1) === "(" ? lo(w.substr(1, w.length - 2)) : lo(w) : w;
  } }), Object.defineProperty(this, "defaultValue", { enumerable: !0, configurable: !0, get: function() {
    return this instanceof hn == 1 ? lo(g.substr(1, g.length - 1)) : g;
  }, set: function(w) {
    w = w.toString(), g = this instanceof hn == 1 ? "/" + w : w;
  } });
  var c = null;
  Object.defineProperty(this, "_V", { enumerable: !1, configurable: !1, get: function() {
    if (c) return c;
  }, set: function(w) {
    this.V = w;
  } }), Object.defineProperty(this, "V", { enumerable: !1, configurable: !1, get: function() {
    if (c) return this instanceof hn == 0 ? Mf(c, this.objId, this.scope) : c;
  }, set: function(w) {
    w = w.toString(), c = this instanceof hn == 0 ? w.substr(0, 1) === "(" ? lo(w.substr(1, w.length - 2)) : lo(w) : w;
  } }), Object.defineProperty(this, "value", { enumerable: !0, configurable: !0, get: function() {
    return this instanceof hn == 1 ? lo(c.substr(1, c.length - 1)) : c;
  }, set: function(w) {
    w = w.toString(), c = this instanceof hn == 1 ? "/" + w : w;
  } }), Object.defineProperty(this, "hasAnnotation", { enumerable: !0, configurable: !0, get: function() {
    return this.Rect;
  } }), Object.defineProperty(this, "Type", { enumerable: !0, configurable: !1, get: function() {
    return this.hasAnnotation ? "/Annot" : null;
  } }), Object.defineProperty(this, "Subtype", { enumerable: !0, configurable: !1, get: function() {
    return this.hasAnnotation ? "/Widget" : null;
  } });
  var p, m = !1;
  Object.defineProperty(this, "hasAppearanceStream", { enumerable: !0, configurable: !0, get: function() {
    return m;
  }, set: function(w) {
    w = !!w, m = w;
  } }), Object.defineProperty(this, "page", { enumerable: !0, configurable: !0, get: function() {
    if (p) return p;
  }, set: function(w) {
    p = w;
  } }), Object.defineProperty(this, "readOnly", { enumerable: !0, configurable: !0, get: function() {
    return !!Yr(this.Ff, 1);
  }, set: function(w) {
    w ? this.Ff = $r(this.Ff, 1) : this.Ff = zr(this.Ff, 1);
  } }), Object.defineProperty(this, "required", { enumerable: !0, configurable: !0, get: function() {
    return !!Yr(this.Ff, 2);
  }, set: function(w) {
    w ? this.Ff = $r(this.Ff, 2) : this.Ff = zr(this.Ff, 2);
  } }), Object.defineProperty(this, "noExport", { enumerable: !0, configurable: !0, get: function() {
    return !!Yr(this.Ff, 3);
  }, set: function(w) {
    w ? this.Ff = $r(this.Ff, 3) : this.Ff = zr(this.Ff, 3);
  } });
  var y = null;
  Object.defineProperty(this, "Q", { enumerable: !0, configurable: !1, get: function() {
    if (y !== null) return y;
  }, set: function(w) {
    if ([0, 1, 2].indexOf(w) === -1) throw new Error('Invalid value "' + w + '" for attribute Q supplied.');
    y = w;
  } }), Object.defineProperty(this, "textAlign", { get: function() {
    var w;
    switch (y) {
      case 0:
      default:
        w = "left";
        break;
      case 1:
        w = "center";
        break;
      case 2:
        w = "right";
    }
    return w;
  }, configurable: !0, enumerable: !0, set: function(w) {
    switch (w) {
      case "right":
      case 2:
        y = 2;
        break;
      case "center":
      case 1:
        y = 1;
        break;
      default:
        y = 0;
    }
  } });
};
sa(Ja, hi);
var Eo = function() {
  Ja.call(this), this.FT = "/Ch", this.V = "()", this.fontName = "zapfdingbats";
  var r = 0;
  Object.defineProperty(this, "TI", { enumerable: !0, configurable: !1, get: function() {
    return r;
  }, set: function(e) {
    r = e;
  } }), Object.defineProperty(this, "topIndex", { enumerable: !0, configurable: !0, get: function() {
    return r;
  }, set: function(e) {
    r = e;
  } });
  var t = [];
  Object.defineProperty(this, "Opt", { enumerable: !0, configurable: !1, get: function() {
    return x5(t, this.objId, this.scope);
  }, set: function(e) {
    var A, n;
    n = [], typeof (A = e) == "string" && (n = (function(a, s, i) {
      i || (i = 1);
      for (var o, l = []; o = s.exec(a); ) l.push(o[i]);
      return l;
    })(A, /\((.*?)\)/g)), t = n;
  } }), this.getOptions = function() {
    return t;
  }, this.setOptions = function(e) {
    t = e, this.sort && t.sort();
  }, this.addOption = function(e) {
    e = (e = e || "").toString(), t.push(e), this.sort && t.sort();
  }, this.removeOption = function(e, A) {
    for (A = A || !1, e = (e = e || "").toString(); t.indexOf(e) !== -1 && (t.splice(t.indexOf(e), 1), A !== !1); ) ;
  }, Object.defineProperty(this, "combo", { enumerable: !0, configurable: !0, get: function() {
    return !!Yr(this.Ff, 18);
  }, set: function(e) {
    e ? this.Ff = $r(this.Ff, 18) : this.Ff = zr(this.Ff, 18);
  } }), Object.defineProperty(this, "edit", { enumerable: !0, configurable: !0, get: function() {
    return !!Yr(this.Ff, 19);
  }, set: function(e) {
    this.combo === !0 && (e ? this.Ff = $r(this.Ff, 19) : this.Ff = zr(this.Ff, 19));
  } }), Object.defineProperty(this, "sort", { enumerable: !0, configurable: !0, get: function() {
    return !!Yr(this.Ff, 20);
  }, set: function(e) {
    e ? (this.Ff = $r(this.Ff, 20), t.sort()) : this.Ff = zr(this.Ff, 20);
  } }), Object.defineProperty(this, "multiSelect", { enumerable: !0, configurable: !0, get: function() {
    return !!Yr(this.Ff, 22);
  }, set: function(e) {
    e ? this.Ff = $r(this.Ff, 22) : this.Ff = zr(this.Ff, 22);
  } }), Object.defineProperty(this, "doNotSpellCheck", { enumerable: !0, configurable: !0, get: function() {
    return !!Yr(this.Ff, 23);
  }, set: function(e) {
    e ? this.Ff = $r(this.Ff, 23) : this.Ff = zr(this.Ff, 23);
  } }), Object.defineProperty(this, "commitOnSelChange", { enumerable: !0, configurable: !0, get: function() {
    return !!Yr(this.Ff, 27);
  }, set: function(e) {
    e ? this.Ff = $r(this.Ff, 27) : this.Ff = zr(this.Ff, 27);
  } }), this.hasAppearanceStream = !1;
};
sa(Eo, Ja);
var Fo = function() {
  Eo.call(this), this.fontName = "helvetica", this.combo = !1;
};
sa(Fo, Eo);
var xo = function() {
  Fo.call(this), this.combo = !0;
};
sa(xo, Fo);
var Xu = function() {
  xo.call(this), this.edit = !0;
};
sa(Xu, xo);
var hn = function() {
  Ja.call(this), this.FT = "/Btn", Object.defineProperty(this, "noToggleToOff", { enumerable: !0, configurable: !0, get: function() {
    return !!Yr(this.Ff, 15);
  }, set: function(e) {
    e ? this.Ff = $r(this.Ff, 15) : this.Ff = zr(this.Ff, 15);
  } }), Object.defineProperty(this, "radio", { enumerable: !0, configurable: !0, get: function() {
    return !!Yr(this.Ff, 16);
  }, set: function(e) {
    e ? this.Ff = $r(this.Ff, 16) : this.Ff = zr(this.Ff, 16);
  } }), Object.defineProperty(this, "pushButton", { enumerable: !0, configurable: !0, get: function() {
    return !!Yr(this.Ff, 17);
  }, set: function(e) {
    e ? this.Ff = $r(this.Ff, 17) : this.Ff = zr(this.Ff, 17);
  } }), Object.defineProperty(this, "radioIsUnison", { enumerable: !0, configurable: !0, get: function() {
    return !!Yr(this.Ff, 26);
  }, set: function(e) {
    e ? this.Ff = $r(this.Ff, 26) : this.Ff = zr(this.Ff, 26);
  } });
  var r, t = {};
  Object.defineProperty(this, "MK", { enumerable: !1, configurable: !1, get: function() {
    var e = function(a) {
      return a;
    };
    if (this.scope && (e = this.scope.internal.getEncryptor(this.objId)), Object.keys(t).length !== 0) {
      var A, n = [];
      for (A in n.push("<<"), t) n.push("/" + A + " (" + js(e(t[A])) + ")");
      return n.push(">>"), n.join(`
`);
    }
  }, set: function(e) {
    jA(e) === "object" && (t = e);
  } }), Object.defineProperty(this, "caption", { enumerable: !0, configurable: !0, get: function() {
    return t.CA || "";
  }, set: function(e) {
    typeof e == "string" && (t.CA = e);
  } }), Object.defineProperty(this, "AS", { enumerable: !1, configurable: !1, get: function() {
    return r;
  }, set: function(e) {
    r = e;
  } }), Object.defineProperty(this, "appearanceState", { enumerable: !0, configurable: !0, get: function() {
    return r.substr(1, r.length - 1);
  }, set: function(e) {
    r = "/" + e;
  } });
};
sa(hn, Ja);
var Ju = function() {
  hn.call(this), this.pushButton = !0;
};
sa(Ju, hn);
var So = function() {
  hn.call(this), this.radio = !0, this.pushButton = !1;
  var r = [];
  Object.defineProperty(this, "Kids", { enumerable: !0, configurable: !1, get: function() {
    return r;
  }, set: function(t) {
    r = t !== void 0 ? t : [];
  } });
};
sa(So, hn);
var hc = function() {
  var r, t;
  Ja.call(this), Object.defineProperty(this, "Parent", { enumerable: !1, configurable: !1, get: function() {
    return r;
  }, set: function(n) {
    r = n;
  } }), Object.defineProperty(this, "optionName", { enumerable: !1, configurable: !0, get: function() {
    return t;
  }, set: function(n) {
    t = n;
  } });
  var e, A = {};
  Object.defineProperty(this, "MK", { enumerable: !1, configurable: !1, get: function() {
    var n = function(i) {
      return i;
    };
    this.scope && (n = this.scope.internal.getEncryptor(this.objId));
    var a, s = [];
    for (a in s.push("<<"), A) s.push("/" + a + " (" + js(n(A[a])) + ")");
    return s.push(">>"), s.join(`
`);
  }, set: function(n) {
    jA(n) === "object" && (A = n);
  } }), Object.defineProperty(this, "caption", { enumerable: !0, configurable: !0, get: function() {
    return A.CA || "";
  }, set: function(n) {
    typeof n == "string" && (A.CA = n);
  } }), Object.defineProperty(this, "AS", { enumerable: !1, configurable: !1, get: function() {
    return e;
  }, set: function(n) {
    e = n;
  } }), Object.defineProperty(this, "appearanceState", { enumerable: !0, configurable: !0, get: function() {
    return e.substr(1, e.length - 1);
  }, set: function(n) {
    e = "/" + n;
  } }), this.caption = "l", this.appearanceState = "Off", this._AppearanceType = Wt.RadioButton.Circle, this.appearanceStreamContent = this._AppearanceType.createAppearanceStream(this.optionName);
};
sa(hc, Ja), So.prototype.setAppearance = function(r) {
  if (!("createAppearanceStream" in r) || !("getCA" in r)) throw new Error("Couldn't assign Appearance to RadioButton. Appearance was Invalid!");
  for (var t in this.Kids) if (this.Kids.hasOwnProperty(t)) {
    var e = this.Kids[t];
    e.appearanceStreamContent = r.createAppearanceStream(e.optionName), e.caption = r.getCA();
  }
}, So.prototype.createOption = function(r) {
  var t = new hc();
  return t.Parent = this, t.optionName = r, this.Kids.push(t), mD.call(this.scope, t), t;
};
var Zu = function() {
  hn.call(this), this.fontName = "zapfdingbats", this.caption = "3", this.appearanceState = "On", this.value = "On", this.textAlign = "center", this.appearanceStreamContent = Wt.CheckBox.createAppearanceStream();
};
sa(Zu, hn);
var Os = function() {
  Ja.call(this), this.FT = "/Tx", Object.defineProperty(this, "multiline", { enumerable: !0, configurable: !0, get: function() {
    return !!Yr(this.Ff, 13);
  }, set: function(t) {
    t ? this.Ff = $r(this.Ff, 13) : this.Ff = zr(this.Ff, 13);
  } }), Object.defineProperty(this, "fileSelect", { enumerable: !0, configurable: !0, get: function() {
    return !!Yr(this.Ff, 21);
  }, set: function(t) {
    t ? this.Ff = $r(this.Ff, 21) : this.Ff = zr(this.Ff, 21);
  } }), Object.defineProperty(this, "doNotSpellCheck", { enumerable: !0, configurable: !0, get: function() {
    return !!Yr(this.Ff, 23);
  }, set: function(t) {
    t ? this.Ff = $r(this.Ff, 23) : this.Ff = zr(this.Ff, 23);
  } }), Object.defineProperty(this, "doNotScroll", { enumerable: !0, configurable: !0, get: function() {
    return !!Yr(this.Ff, 24);
  }, set: function(t) {
    t ? this.Ff = $r(this.Ff, 24) : this.Ff = zr(this.Ff, 24);
  } }), Object.defineProperty(this, "comb", { enumerable: !0, configurable: !0, get: function() {
    return !!Yr(this.Ff, 25);
  }, set: function(t) {
    t ? this.Ff = $r(this.Ff, 25) : this.Ff = zr(this.Ff, 25);
  } }), Object.defineProperty(this, "richText", { enumerable: !0, configurable: !0, get: function() {
    return !!Yr(this.Ff, 26);
  }, set: function(t) {
    t ? this.Ff = $r(this.Ff, 26) : this.Ff = zr(this.Ff, 26);
  } });
  var r = null;
  Object.defineProperty(this, "MaxLen", { enumerable: !0, configurable: !1, get: function() {
    return r;
  }, set: function(t) {
    r = t;
  } }), Object.defineProperty(this, "maxLength", { enumerable: !0, configurable: !0, get: function() {
    return r;
  }, set: function(t) {
    Number.isInteger(t) && (r = t);
  } }), Object.defineProperty(this, "hasAppearanceStream", { enumerable: !0, configurable: !0, get: function() {
    return this.V || this.DV;
  } });
};
sa(Os, Ja);
var ec = function() {
  Os.call(this), Object.defineProperty(this, "password", { enumerable: !0, configurable: !0, get: function() {
    return !!Yr(this.Ff, 14);
  }, set: function(r) {
    r ? this.Ff = $r(this.Ff, 14) : this.Ff = zr(this.Ff, 14);
  } }), this.password = !0;
};
sa(ec, Os);
var Wt = { CheckBox: { createAppearanceStream: function() {
  return { N: { On: Wt.CheckBox.YesNormal }, D: { On: Wt.CheckBox.YesPushDown, Off: Wt.CheckBox.OffPushDown } };
}, YesPushDown: function(r) {
  var t = fi(r);
  t.scope = r.scope;
  var e = [], A = r.scope.internal.getFont(r.fontName, r.fontStyle).id, n = r.scope.__private__.encodeColorString(r.color), a = lp(r, r.caption);
  return e.push("0.749023 g"), e.push("0 0 " + pA(Wt.internal.getWidth(r)) + " " + pA(Wt.internal.getHeight(r)) + " re"), e.push("f"), e.push("BMC"), e.push("q"), e.push("0 0 1 rg"), e.push("/" + A + " " + pA(a.fontSize) + " Tf " + n), e.push("BT"), e.push(a.text), e.push("ET"), e.push("Q"), e.push("EMC"), t.stream = e.join(`
`), t;
}, YesNormal: function(r) {
  var t = fi(r);
  t.scope = r.scope;
  var e = r.scope.internal.getFont(r.fontName, r.fontStyle).id, A = r.scope.__private__.encodeColorString(r.color), n = [], a = Wt.internal.getHeight(r), s = Wt.internal.getWidth(r), i = lp(r, r.caption);
  return n.push("1 g"), n.push("0 0 " + pA(s) + " " + pA(a) + " re"), n.push("f"), n.push("q"), n.push("0 0 1 rg"), n.push("0 0 " + pA(s - 1) + " " + pA(a - 1) + " re"), n.push("W"), n.push("n"), n.push("0 g"), n.push("BT"), n.push("/" + e + " " + pA(i.fontSize) + " Tf " + A), n.push(i.text), n.push("ET"), n.push("Q"), t.stream = n.join(`
`), t;
}, OffPushDown: function(r) {
  var t = fi(r);
  t.scope = r.scope;
  var e = [];
  return e.push("0.749023 g"), e.push("0 0 " + pA(Wt.internal.getWidth(r)) + " " + pA(Wt.internal.getHeight(r)) + " re"), e.push("f"), t.stream = e.join(`
`), t;
} }, RadioButton: { Circle: { createAppearanceStream: function(r) {
  var t = { D: { Off: Wt.RadioButton.Circle.OffPushDown }, N: {} };
  return t.N[r] = Wt.RadioButton.Circle.YesNormal, t.D[r] = Wt.RadioButton.Circle.YesPushDown, t;
}, getCA: function() {
  return "l";
}, YesNormal: function(r) {
  var t = fi(r);
  t.scope = r.scope;
  var e = [], A = Wt.internal.getWidth(r) <= Wt.internal.getHeight(r) ? Wt.internal.getWidth(r) / 4 : Wt.internal.getHeight(r) / 4;
  A = Number((0.9 * A).toFixed(5));
  var n = Wt.internal.Bezier_C, a = Number((A * n).toFixed(5));
  return e.push("q"), e.push("1 0 0 1 " + rs(Wt.internal.getWidth(r) / 2) + " " + rs(Wt.internal.getHeight(r) / 2) + " cm"), e.push(A + " 0 m"), e.push(A + " " + a + " " + a + " " + A + " 0 " + A + " c"), e.push("-" + a + " " + A + " -" + A + " " + a + " -" + A + " 0 c"), e.push("-" + A + " -" + a + " -" + a + " -" + A + " 0 -" + A + " c"), e.push(a + " -" + A + " " + A + " -" + a + " " + A + " 0 c"), e.push("f"), e.push("Q"), t.stream = e.join(`
`), t;
}, YesPushDown: function(r) {
  var t = fi(r);
  t.scope = r.scope;
  var e = [], A = Wt.internal.getWidth(r) <= Wt.internal.getHeight(r) ? Wt.internal.getWidth(r) / 4 : Wt.internal.getHeight(r) / 4;
  A = Number((0.9 * A).toFixed(5));
  var n = Number((2 * A).toFixed(5)), a = Number((n * Wt.internal.Bezier_C).toFixed(5)), s = Number((A * Wt.internal.Bezier_C).toFixed(5));
  return e.push("0.749023 g"), e.push("q"), e.push("1 0 0 1 " + rs(Wt.internal.getWidth(r) / 2) + " " + rs(Wt.internal.getHeight(r) / 2) + " cm"), e.push(n + " 0 m"), e.push(n + " " + a + " " + a + " " + n + " 0 " + n + " c"), e.push("-" + a + " " + n + " -" + n + " " + a + " -" + n + " 0 c"), e.push("-" + n + " -" + a + " -" + a + " -" + n + " 0 -" + n + " c"), e.push(a + " -" + n + " " + n + " -" + a + " " + n + " 0 c"), e.push("f"), e.push("Q"), e.push("0 g"), e.push("q"), e.push("1 0 0 1 " + rs(Wt.internal.getWidth(r) / 2) + " " + rs(Wt.internal.getHeight(r) / 2) + " cm"), e.push(A + " 0 m"), e.push(A + " " + s + " " + s + " " + A + " 0 " + A + " c"), e.push("-" + s + " " + A + " -" + A + " " + s + " -" + A + " 0 c"), e.push("-" + A + " -" + s + " -" + s + " -" + A + " 0 -" + A + " c"), e.push(s + " -" + A + " " + A + " -" + s + " " + A + " 0 c"), e.push("f"), e.push("Q"), t.stream = e.join(`
`), t;
}, OffPushDown: function(r) {
  var t = fi(r);
  t.scope = r.scope;
  var e = [], A = Wt.internal.getWidth(r) <= Wt.internal.getHeight(r) ? Wt.internal.getWidth(r) / 4 : Wt.internal.getHeight(r) / 4;
  A = Number((0.9 * A).toFixed(5));
  var n = Number((2 * A).toFixed(5)), a = Number((n * Wt.internal.Bezier_C).toFixed(5));
  return e.push("0.749023 g"), e.push("q"), e.push("1 0 0 1 " + rs(Wt.internal.getWidth(r) / 2) + " " + rs(Wt.internal.getHeight(r) / 2) + " cm"), e.push(n + " 0 m"), e.push(n + " " + a + " " + a + " " + n + " 0 " + n + " c"), e.push("-" + a + " " + n + " -" + n + " " + a + " -" + n + " 0 c"), e.push("-" + n + " -" + a + " -" + a + " -" + n + " 0 -" + n + " c"), e.push(a + " -" + n + " " + n + " -" + a + " " + n + " 0 c"), e.push("f"), e.push("Q"), t.stream = e.join(`
`), t;
} }, Cross: { createAppearanceStream: function(r) {
  var t = { D: { Off: Wt.RadioButton.Cross.OffPushDown }, N: {} };
  return t.N[r] = Wt.RadioButton.Cross.YesNormal, t.D[r] = Wt.RadioButton.Cross.YesPushDown, t;
}, getCA: function() {
  return "8";
}, YesNormal: function(r) {
  var t = fi(r);
  t.scope = r.scope;
  var e = [], A = Wt.internal.calculateCross(r);
  return e.push("q"), e.push("1 1 " + pA(Wt.internal.getWidth(r) - 2) + " " + pA(Wt.internal.getHeight(r) - 2) + " re"), e.push("W"), e.push("n"), e.push(pA(A.x1.x) + " " + pA(A.x1.y) + " m"), e.push(pA(A.x2.x) + " " + pA(A.x2.y) + " l"), e.push(pA(A.x4.x) + " " + pA(A.x4.y) + " m"), e.push(pA(A.x3.x) + " " + pA(A.x3.y) + " l"), e.push("s"), e.push("Q"), t.stream = e.join(`
`), t;
}, YesPushDown: function(r) {
  var t = fi(r);
  t.scope = r.scope;
  var e = Wt.internal.calculateCross(r), A = [];
  return A.push("0.749023 g"), A.push("0 0 " + pA(Wt.internal.getWidth(r)) + " " + pA(Wt.internal.getHeight(r)) + " re"), A.push("f"), A.push("q"), A.push("1 1 " + pA(Wt.internal.getWidth(r) - 2) + " " + pA(Wt.internal.getHeight(r) - 2) + " re"), A.push("W"), A.push("n"), A.push(pA(e.x1.x) + " " + pA(e.x1.y) + " m"), A.push(pA(e.x2.x) + " " + pA(e.x2.y) + " l"), A.push(pA(e.x4.x) + " " + pA(e.x4.y) + " m"), A.push(pA(e.x3.x) + " " + pA(e.x3.y) + " l"), A.push("s"), A.push("Q"), t.stream = A.join(`
`), t;
}, OffPushDown: function(r) {
  var t = fi(r);
  t.scope = r.scope;
  var e = [];
  return e.push("0.749023 g"), e.push("0 0 " + pA(Wt.internal.getWidth(r)) + " " + pA(Wt.internal.getHeight(r)) + " re"), e.push("f"), t.stream = e.join(`
`), t;
} } }, createDefaultAppearanceStream: function(r) {
  var t = r.scope.internal.getFont(r.fontName, r.fontStyle).id, e = r.scope.__private__.encodeColorString(r.color);
  return "/" + t + " " + r.fontSize + " Tf " + e;
} };
Wt.internal = { Bezier_C: 0.551915024494, calculateCross: function(r) {
  var t = Wt.internal.getWidth(r), e = Wt.internal.getHeight(r), A = Math.min(t, e);
  return { x1: { x: (t - A) / 2, y: (e - A) / 2 + A }, x2: { x: (t - A) / 2 + A, y: (e - A) / 2 }, x3: { x: (t - A) / 2, y: (e - A) / 2 }, x4: { x: (t - A) / 2 + A, y: (e - A) / 2 + A } };
} }, Wt.internal.getWidth = function(r) {
  var t = 0;
  return jA(r) === "object" && (t = T1(r.Rect[2])), t;
}, Wt.internal.getHeight = function(r) {
  var t = 0;
  return jA(r) === "object" && (t = T1(r.Rect[3])), t;
};
var mD = Or.addField = function(r) {
  if (vD(this, r), !(r instanceof Ja)) throw new Error("Invalid argument passed to jsPDF.addField.");
  var t;
  return (t = r).scope.internal.acroformPlugin.printedOut && (t.scope.internal.acroformPlugin.printedOut = !1, t.scope.internal.acroformPlugin.acroFormDictionaryRoot = null), t.scope.internal.acroformPlugin.acroFormDictionaryRoot.Fields.push(t), r.page = r.scope.internal.getCurrentPageInfo().pageNumber, this;
};
Or.AcroFormChoiceField = Eo, Or.AcroFormListBox = Fo, Or.AcroFormComboBox = xo, Or.AcroFormEditBox = Xu, Or.AcroFormButton = hn, Or.AcroFormPushButton = Ju, Or.AcroFormRadioButton = So, Or.AcroFormCheckBox = Zu, Or.AcroFormTextField = Os, Or.AcroFormPasswordField = ec, Or.AcroFormAppearance = Wt, Or.AcroForm = { ChoiceField: Eo, ListBox: Fo, ComboBox: xo, EditBox: Xu, Button: hn, PushButton: Ju, RadioButton: So, CheckBox: Zu, TextField: Os, PasswordField: ec, Appearance: Wt }, eA.AcroForm = { ChoiceField: Eo, ListBox: Fo, ComboBox: xo, EditBox: Xu, Button: hn, PushButton: Ju, RadioButton: So, CheckBox: Zu, TextField: Os, PasswordField: ec, Appearance: Wt };
eA.AcroForm;
function T5(r) {
  return r.reduce(function(t, e, A) {
    return t[e] = A, t;
  }, {});
}
(function(r) {
  var t = "addImage_";
  r.__addimage__ = {};
  var e = "UNKNOWN", A = { PNG: [[137, 80, 78, 71]], TIFF: [[77, 77, 0, 42], [73, 73, 42, 0]], JPEG: [[255, 216, 255, 224, void 0, void 0, 74, 70, 73, 70, 0], [255, 216, 255, 225, void 0, void 0, 69, 120, 105, 102, 0, 0], [255, 216, 255, 219], [255, 216, 255, 238]], JPEG2000: [[0, 0, 0, 12, 106, 80, 32, 32]], GIF87a: [[71, 73, 70, 56, 55, 97]], GIF89a: [[71, 73, 70, 56, 57, 97]], WEBP: [[82, 73, 70, 70, void 0, void 0, void 0, void 0, 87, 69, 66, 80]], BMP: [[66, 77], [66, 65], [67, 73], [67, 80], [73, 67], [80, 84]] }, n = r.__addimage__.getImageFileTypeByImageData = function(S, U) {
    var W, I, le, ue, Z, ee = e;
    if ((U = U || e) === "RGBA" || S.data !== void 0 && S.data instanceof Uint8ClampedArray && "height" in S && "width" in S) return "RGBA";
    if (q(S)) for (Z in A) for (le = A[Z], W = 0; W < le.length; W += 1) {
      for (ue = !0, I = 0; I < le[W].length; I += 1) if (le[W][I] !== void 0 && le[W][I] !== S[I]) {
        ue = !1;
        break;
      }
      if (ue === !0) {
        ee = Z;
        break;
      }
    }
    else for (Z in A) for (le = A[Z], W = 0; W < le.length; W += 1) {
      for (ue = !0, I = 0; I < le[W].length; I += 1) if (le[W][I] !== void 0 && le[W][I] !== S.charCodeAt(I)) {
        ue = !1;
        break;
      }
      if (ue === !0) {
        ee = Z;
        break;
      }
    }
    return ee === e && U !== e && (ee = U), ee;
  }, a = function S(U) {
    for (var W = this.internal.write, I = this.internal.putStream, le = (0, this.internal.getFilters)(); le.indexOf("FlateEncode") !== -1; ) le.splice(le.indexOf("FlateEncode"), 1);
    U.objectId = this.internal.newObject();
    var ue = [];
    if (ue.push({ key: "Type", value: "/XObject" }), ue.push({ key: "Subtype", value: "/Image" }), ue.push({ key: "Width", value: U.width }), ue.push({ key: "Height", value: U.height }), U.colorSpace === w.INDEXED ? ue.push({ key: "ColorSpace", value: "[/Indexed /DeviceRGB " + (U.palette.length / 3 - 1) + " " + ("sMask" in U && U.sMask !== void 0 ? U.objectId + 2 : U.objectId + 1) + " 0 R]" }) : (ue.push({ key: "ColorSpace", value: "/" + U.colorSpace }), U.colorSpace === w.DEVICE_CMYK && ue.push({ key: "Decode", value: "[1 0 1 0 1 0 1 0]" })), ue.push({ key: "BitsPerComponent", value: U.bitsPerComponent }), "decodeParameters" in U && U.decodeParameters !== void 0 && ue.push({ key: "DecodeParms", value: "<<" + U.decodeParameters + ">>" }), "transparency" in U && Array.isArray(U.transparency) && U.transparency.length > 0) {
      for (var Z = "", ee = 0, X = U.transparency.length; ee < X; ee++) Z += U.transparency[ee] + " " + U.transparency[ee] + " ";
      ue.push({ key: "Mask", value: "[" + Z + "]" });
    }
    U.sMask !== void 0 && ue.push({ key: "SMask", value: U.objectId + 1 + " 0 R" });
    var Ae = U.filter !== void 0 ? ["/" + U.filter] : void 0;
    if (I({ data: U.data, additionalKeyValues: ue, alreadyAppliedFilters: Ae, objectId: U.objectId }), W("endobj"), "sMask" in U && U.sMask !== void 0) {
      var oe, x = (oe = U.sMaskBitsPerComponent) !== null && oe !== void 0 ? oe : U.bitsPerComponent, L = { width: U.width, height: U.height, colorSpace: "DeviceGray", bitsPerComponent: x, data: U.sMask };
      "filter" in U && (L.decodeParameters = "/Predictor ".concat(U.predictor, " /Colors 1 /BitsPerComponent ").concat(x, " /Columns ").concat(U.width), L.filter = U.filter), S.call(this, L);
    }
    if (U.colorSpace === w.INDEXED) {
      var j = this.internal.newObject();
      I({ data: M(new Uint8Array(U.palette)), objectId: j }), W("endobj");
    }
  }, s = function() {
    var S = this.internal.collections[t + "images"];
    for (var U in S) a.call(this, S[U]);
  }, i = function() {
    var S, U = this.internal.collections[t + "images"], W = this.internal.write;
    for (var I in U) W("/I" + (S = U[I]).index, S.objectId, "0", "R");
  }, o = function() {
    this.internal.collections[t + "images"] || (this.internal.collections[t + "images"] = {}, this.internal.events.subscribe("putResources", s), this.internal.events.subscribe("putXobjectDict", i));
  }, l = function() {
    var S = this.internal.collections[t + "images"];
    return o.call(this), S;
  }, u = function() {
    return Object.keys(this.internal.collections[t + "images"]).length;
  }, h = function(S) {
    return typeof r["process" + S.toUpperCase()] == "function";
  }, g = function(S) {
    return jA(S) === "object" && S.nodeType === 1;
  }, c = function(S, U) {
    if (S.nodeName === "IMG" && S.hasAttribute("src")) {
      var W = "" + S.getAttribute("src");
      if (W.indexOf("data:image/") === 0) return zu(unescape(W).split("base64,").pop());
      var I = r.loadFile(W, !0);
      if (I !== void 0) return I;
    }
    if (S.nodeName === "CANVAS") {
      if (S.width === 0 || S.height === 0) throw new Error("Given canvas must have data. Canvas width: " + S.width + ", height: " + S.height);
      var le;
      switch (U) {
        case "PNG":
          le = "image/png";
          break;
        case "WEBP":
          le = "image/webp";
          break;
        default:
          le = "image/jpeg";
      }
      return zu(S.toDataURL(le, 1).split("base64,").pop());
    }
  }, p = function(S) {
    var U = this.internal.collections[t + "images"];
    if (U) {
      for (var W in U) if (S === U[W].alias) return U[W];
    }
  }, m = function(S, U, W) {
    return S || U || (S = -96, U = -96), S < 0 && (S = -1 * W.width * 72 / S / this.internal.scaleFactor), U < 0 && (U = -1 * W.height * 72 / U / this.internal.scaleFactor), S === 0 && (S = U * W.width / W.height), U === 0 && (U = S * W.height / W.width), [S, U];
  }, y = function(S, U, W, I, le, ue) {
    var Z = m.call(this, W, I, le), ee = this.internal.getCoordinateString, X = this.internal.getVerticalCoordinateString, Ae = l.call(this);
    if (W = Z[0], I = Z[1], Ae[le.index] = le, ue) {
      ue *= Math.PI / 180;
      var oe = Math.cos(ue), x = Math.sin(ue), L = function($) {
        return $.toFixed(4);
      }, j = [L(oe), L(x), L(-1 * x), L(oe), 0, 0, "cm"];
    }
    this.internal.write("q"), ue ? (this.internal.write([1, "0", "0", 1, ee(S), X(U + I), "cm"].join(" ")), this.internal.write(j.join(" ")), this.internal.write([ee(W), "0", "0", ee(I), "0", "0", "cm"].join(" "))) : this.internal.write([ee(W), "0", "0", ee(I), ee(S), X(U + I), "cm"].join(" ")), this.isAdvancedAPI() && this.internal.write([1, 0, 0, -1, 0, 0, "cm"].join(" ")), this.internal.write("/I" + le.index + " Do"), this.internal.write("Q");
  }, w = r.color_spaces = { DEVICE_RGB: "DeviceRGB", DEVICE_GRAY: "DeviceGray", DEVICE_CMYK: "DeviceCMYK", CAL_GREY: "CalGray", CAL_RGB: "CalRGB", LAB: "Lab", ICC_BASED: "ICCBased", INDEXED: "Indexed", PATTERN: "Pattern", SEPARATION: "Separation", DEVICE_N: "DeviceN" };
  r.decode = { DCT_DECODE: "DCTDecode", FLATE_DECODE: "FlateDecode", LZW_DECODE: "LZWDecode", JPX_DECODE: "JPXDecode", JBIG2_DECODE: "JBIG2Decode", ASCII85_DECODE: "ASCII85Decode", ASCII_HEX_DECODE: "ASCIIHexDecode", RUN_LENGTH_DECODE: "RunLengthDecode", CCITT_FAX_DECODE: "CCITTFaxDecode" };
  var E = r.image_compression = { NONE: "NONE", FAST: "FAST", MEDIUM: "MEDIUM", SLOW: "SLOW" }, C = r.__addimage__.sHashCode = function(S) {
    var U, W, I = 0;
    if (typeof S == "string") for (W = S.length, U = 0; U < W; U++) I = (I << 5) - I + S.charCodeAt(U), I |= 0;
    else if (q(S)) for (W = S.byteLength / 2, U = 0; U < W; U++) I = (I << 5) - I + S[U], I |= 0;
    return I;
  }, F = r.__addimage__.validateStringAsBase64 = function(S) {
    (S = S || "").toString().trim();
    var U = !0;
    return S.length === 0 && (U = !1), S.length % 4 != 0 && (U = !1), /^[A-Za-z0-9+/]+$/.test(S.substr(0, S.length - 2)) === !1 && (U = !1), /^[A-Za-z0-9/][A-Za-z0-9+/]|[A-Za-z0-9+/]=|==$/.test(S.substr(-2)) === !1 && (U = !1), U;
  }, H = r.__addimage__.extractImageFromDataUrl = function(S) {
    if (S == null || !(S = S.trim()).startsWith("data:")) return null;
    var U = S.indexOf(",");
    return U < 0 ? null : S.substring(0, U).trim().endsWith("base64") ? S.substring(U + 1) : null;
  };
  r.__addimage__.isArrayBuffer = function(S) {
    return S instanceof ArrayBuffer;
  };
  var q = r.__addimage__.isArrayBufferView = function(S) {
    return S instanceof Int8Array || S instanceof Uint8Array || S instanceof Uint8ClampedArray || S instanceof Int16Array || S instanceof Uint16Array || S instanceof Int32Array || S instanceof Uint32Array || S instanceof Float32Array || S instanceof Float64Array;
  }, N = r.__addimage__.binaryStringToUint8Array = function(S) {
    for (var U = S.length, W = new Uint8Array(U), I = 0; I < U; I++) W[I] = S.charCodeAt(I);
    return W;
  }, M = r.__addimage__.arrayBufferToBinaryString = function(S) {
    for (var U = "", W = q(S) ? S : new Uint8Array(S), I = 0; I < W.length; I += 8192) U += String.fromCharCode.apply(null, W.subarray(I, I + 8192));
    return U;
  };
  r.addImage = function() {
    var S, U, W, I, le, ue, Z, ee, X;
    if (typeof arguments[1] == "number" ? (U = e, W = arguments[1], I = arguments[2], le = arguments[3], ue = arguments[4], Z = arguments[5], ee = arguments[6], X = arguments[7]) : (U = arguments[1], W = arguments[2], I = arguments[3], le = arguments[4], ue = arguments[5], Z = arguments[6], ee = arguments[7], X = arguments[8]), jA(S = arguments[0]) === "object" && !g(S) && "imageData" in S) {
      var Ae = S;
      S = Ae.imageData, U = Ae.format || U || e, W = Ae.x || W || 0, I = Ae.y || I || 0, le = Ae.w || Ae.width || le, ue = Ae.h || Ae.height || ue, Z = Ae.alias || Z, ee = Ae.compression || ee, X = Ae.rotation || Ae.angle || X;
    }
    var oe = this.internal.getFilters();
    if (ee === void 0 && oe.indexOf("FlateEncode") !== -1 && (ee = "SLOW"), isNaN(W) || isNaN(I)) throw new Error("Invalid coordinates passed to jsPDF.addImage");
    o.call(this);
    var x = k.call(this, S, U, Z, ee);
    return y.call(this, W, I, le, ue, x, X), this;
  };
  var k = function(S, U, W, I) {
    var le, ue, Z;
    if (typeof S == "string" && n(S) === e) {
      S = unescape(S);
      var ee = O(S, !1);
      (ee !== "" || (ee = r.loadFile(S, !0)) !== void 0) && (S = ee);
    }
    if (g(S) && (S = c(S, U)), U = n(S, U), !h(U)) throw new Error("addImage does not support files of type '" + U + "', please ensure that a plugin for '" + U + "' support is added.");
    if (((Z = W) == null || Z.length === 0) && (W = (function(X) {
      return typeof X == "string" || q(X) ? C(X) : q(X.data) ? C(X.data) : null;
    })(S)), (le = p.call(this, W)) || (S instanceof Uint8Array || U === "RGBA" || (ue = S, S = N(S)), le = this["process" + U.toUpperCase()](S, u.call(this), W, (function(X) {
      return X && typeof X == "string" && (X = X.toUpperCase()), X in r.image_compression ? X : E.NONE;
    })(I), ue)), !le) throw new Error("An unknown error occurred whilst processing the image.");
    return le;
  }, O = r.__addimage__.convertBase64ToBinaryString = function(S, U) {
    U = typeof U != "boolean" || U;
    var W, I = "";
    if (typeof S == "string") {
      var le;
      W = (le = H(S)) !== null && le !== void 0 ? le : S;
      try {
        I = zu(W);
      } catch (ue) {
        if (U) throw F(W) ? new Error("atob-Error in jsPDF.convertBase64ToBinaryString " + ue.message) : new Error("Supplied Data is not a valid base64-String jsPDF.convertBase64ToBinaryString ");
      }
    }
    return I;
  };
  r.getImageProperties = function(S) {
    var U, W, I = "";
    if (g(S) && (S = c(S)), typeof S == "string" && n(S) === e && ((I = O(S, !1)) === "" && (I = r.loadFile(S) || ""), S = I), W = n(S), !h(W)) throw new Error("addImage does not support files of type '" + W + "', please ensure that a plugin for '" + W + "' support is added.");
    if (S instanceof Uint8Array || (S = N(S)), !(U = this["process" + W.toUpperCase()](S))) throw new Error("An unknown error occurred whilst processing the image");
    return U.fileType = W, U;
  };
})(eA.API), /**
 * @license
 * Copyright (c) 2014 Steven Spungin (TwelveTone LLC)  steven@twelvetone.tv
 *
 * Licensed under the MIT License.
 * http://opensource.org/licenses/mit-license
 */
(function(r) {
  var t = function(e) {
    if (e !== void 0 && e != "") return !0;
  };
  eA.API.events.push(["addPage", function(e) {
    this.internal.getPageInfo(e.pageNumber).pageContext.annotations = [];
  }]), r.events.push(["putPage", function(e) {
    for (var A, n, a, s = this.internal.getCoordinateString, i = this.internal.getVerticalCoordinateString, o = this.internal.getPageInfoByObjId(e.objId), l = e.pageContext.annotations, u = !1, h = 0; h < l.length && !u; h++) switch ((A = l[h]).type) {
      case "link":
        (t(A.options.url) || t(A.options.pageNumber)) && (u = !0);
        break;
      case "reference":
      case "text":
      case "freetext":
        u = !0;
    }
    if (u != 0) {
      this.internal.write("/Annots [");
      for (var g = 0; g < l.length; g++) {
        A = l[g];
        var c = this.internal.pdfEscape, p = this.internal.getEncryptor(e.objId);
        switch (A.type) {
          case "reference":
            this.internal.write(" " + A.object.objId + " 0 R ");
            break;
          case "text":
            var m = this.internal.newAdditionalObject(), y = this.internal.newAdditionalObject(), w = this.internal.getEncryptor(m.objId), E = A.title || "Note";
            a = "<</Type /Annot /Subtype /Text " + (n = "/Rect [" + s(A.bounds.x) + " " + i(A.bounds.y + A.bounds.h) + " " + s(A.bounds.x + A.bounds.w) + " " + i(A.bounds.y) + "] ") + "/Contents (" + c(w(A.contents)) + ")", a += " /Popup " + y.objId + " 0 R", a += " /P " + o.objId + " 0 R", a += " /T (" + c(w(E)) + ") >>", m.content = a;
            var C = m.objId + " 0 R";
            a = "<</Type /Annot /Subtype /Popup " + (n = "/Rect [" + s(A.bounds.x + 30) + " " + i(A.bounds.y + A.bounds.h) + " " + s(A.bounds.x + A.bounds.w + 30) + " " + i(A.bounds.y) + "] ") + " /Parent " + C, A.open && (a += " /Open true"), a += " >>", y.content = a, this.internal.write(m.objId, "0 R", y.objId, "0 R");
            break;
          case "freetext":
            n = "/Rect [" + s(A.bounds.x) + " " + i(A.bounds.y) + " " + s(A.bounds.x + A.bounds.w) + " " + i(A.bounds.y + A.bounds.h) + "] ";
            var F = A.color || "#000000";
            a = "<</Type /Annot /Subtype /FreeText " + n + "/Contents (" + c(p(A.contents)) + ")", a += " /DS(font: Helvetica,sans-serif 12.0pt; text-align:left; color:#" + F + ")", a += " /Border [0 0 0]", a += " >>", this.internal.write(a);
            break;
          case "link":
            if (A.options.name) {
              var H = this.annotations._nameMap[A.options.name];
              A.options.pageNumber = H.page, A.options.top = H.y;
            } else A.options.top || (A.options.top = 0);
            if (n = "/Rect [" + A.finalBounds.x + " " + A.finalBounds.y + " " + A.finalBounds.w + " " + A.finalBounds.h + "] ", a = "", A.options.url) a = "<</Type /Annot /Subtype /Link " + n + "/Border [0 0 0] /A <</S /URI /URI (" + c(p(A.options.url)) + ") >>";
            else if (A.options.pageNumber) switch (a = "<</Type /Annot /Subtype /Link " + n + "/Border [0 0 0] /Dest [" + this.internal.getPageInfo(A.options.pageNumber).objId + " 0 R", A.options.magFactor = A.options.magFactor || "XYZ", A.options.magFactor) {
              case "Fit":
                a += " /Fit]";
                break;
              case "FitH":
                a += " /FitH " + A.options.top + "]";
                break;
              case "FitV":
                A.options.left = A.options.left || 0, a += " /FitV " + A.options.left + "]";
                break;
              default:
                var q = i(A.options.top);
                A.options.left = A.options.left || 0, A.options.zoom === void 0 && (A.options.zoom = 0), a += " /XYZ " + A.options.left + " " + q + " " + A.options.zoom + "]";
            }
            a != "" && (a += " >>", this.internal.write(a));
        }
      }
      this.internal.write("]");
    }
  }]), r.createAnnotation = function(e) {
    var A = this.internal.getCurrentPageInfo();
    switch (e.type) {
      case "link":
        this.link(e.bounds.x, e.bounds.y, e.bounds.w, e.bounds.h, e);
        break;
      case "text":
      case "freetext":
        A.pageContext.annotations.push(e);
    }
  }, r.link = function(e, A, n, a, s) {
    var i = this.internal.getCurrentPageInfo(), o = this.internal.getCoordinateString, l = this.internal.getVerticalCoordinateString;
    i.pageContext.annotations.push({ finalBounds: { x: o(e), y: l(A), w: o(e + n), h: l(A + a) }, options: s, type: "link" });
  }, r.textWithLink = function(e, A, n, a) {
    var s, i, o = this.getTextWidth(e), l = this.internal.getLineHeight() / this.internal.scaleFactor;
    if (a.maxWidth !== void 0) {
      i = a.maxWidth;
      var u = this.splitTextToSize(e, i).length;
      s = Math.ceil(l * u);
    } else i = o, s = l;
    return this.text(e, A, n, a), n += 0.2 * l, a.align === "center" && (A -= o / 2), a.align === "right" && (A -= o), this.link(A, n - l, i, s, a), o;
  }, r.getTextWidth = function(e) {
    var A = this.internal.getFontSize();
    return this.getStringUnitWidth(e) * A / this.internal.scaleFactor;
  };
})(eA.API), /**
 * @license
 * Copyright (c) 2017 Aras Abbasi
 *
 * Licensed under the MIT License.
 * http://opensource.org/licenses/mit-license
 */
(function(r) {
  var t = { 1569: [65152], 1570: [65153, 65154], 1571: [65155, 65156], 1572: [65157, 65158], 1573: [65159, 65160], 1574: [65161, 65162, 65163, 65164], 1575: [65165, 65166], 1576: [65167, 65168, 65169, 65170], 1577: [65171, 65172], 1578: [65173, 65174, 65175, 65176], 1579: [65177, 65178, 65179, 65180], 1580: [65181, 65182, 65183, 65184], 1581: [65185, 65186, 65187, 65188], 1582: [65189, 65190, 65191, 65192], 1583: [65193, 65194], 1584: [65195, 65196], 1585: [65197, 65198], 1586: [65199, 65200], 1587: [65201, 65202, 65203, 65204], 1588: [65205, 65206, 65207, 65208], 1589: [65209, 65210, 65211, 65212], 1590: [65213, 65214, 65215, 65216], 1591: [65217, 65218, 65219, 65220], 1592: [65221, 65222, 65223, 65224], 1593: [65225, 65226, 65227, 65228], 1594: [65229, 65230, 65231, 65232], 1601: [65233, 65234, 65235, 65236], 1602: [65237, 65238, 65239, 65240], 1603: [65241, 65242, 65243, 65244], 1604: [65245, 65246, 65247, 65248], 1605: [65249, 65250, 65251, 65252], 1606: [65253, 65254, 65255, 65256], 1607: [65257, 65258, 65259, 65260], 1608: [65261, 65262], 1609: [65263, 65264, 64488, 64489], 1610: [65265, 65266, 65267, 65268], 1649: [64336, 64337], 1655: [64477], 1657: [64358, 64359, 64360, 64361], 1658: [64350, 64351, 64352, 64353], 1659: [64338, 64339, 64340, 64341], 1662: [64342, 64343, 64344, 64345], 1663: [64354, 64355, 64356, 64357], 1664: [64346, 64347, 64348, 64349], 1667: [64374, 64375, 64376, 64377], 1668: [64370, 64371, 64372, 64373], 1670: [64378, 64379, 64380, 64381], 1671: [64382, 64383, 64384, 64385], 1672: [64392, 64393], 1676: [64388, 64389], 1677: [64386, 64387], 1678: [64390, 64391], 1681: [64396, 64397], 1688: [64394, 64395], 1700: [64362, 64363, 64364, 64365], 1702: [64366, 64367, 64368, 64369], 1705: [64398, 64399, 64400, 64401], 1709: [64467, 64468, 64469, 64470], 1711: [64402, 64403, 64404, 64405], 1713: [64410, 64411, 64412, 64413], 1715: [64406, 64407, 64408, 64409], 1722: [64414, 64415], 1723: [64416, 64417, 64418, 64419], 1726: [64426, 64427, 64428, 64429], 1728: [64420, 64421], 1729: [64422, 64423, 64424, 64425], 1733: [64480, 64481], 1734: [64473, 64474], 1735: [64471, 64472], 1736: [64475, 64476], 1737: [64482, 64483], 1739: [64478, 64479], 1740: [64508, 64509, 64510, 64511], 1744: [64484, 64485, 64486, 64487], 1746: [64430, 64431], 1747: [64432, 64433] }, e = { 65247: { 65154: 65269, 65156: 65271, 65160: 65273, 65166: 65275 }, 65248: { 65154: 65270, 65156: 65272, 65160: 65274, 65166: 65276 }, 65165: { 65247: { 65248: { 65258: 65010 } } }, 1617: { 1612: 64606, 1613: 64607, 1614: 64608, 1615: 64609, 1616: 64610 } }, A = { 1612: 64606, 1613: 64607, 1614: 64608, 1615: 64609, 1616: 64610 }, n = [1570, 1571, 1573, 1575];
  r.__arabicParser__ = {};
  var a = r.__arabicParser__.isInArabicSubstitutionA = function(m) {
    return t[m.charCodeAt(0)] !== void 0;
  }, s = r.__arabicParser__.isArabicLetter = function(m) {
    return typeof m == "string" && /^[\u0600-\u06FF\u0750-\u077F\u08A0-\u08FF\uFB50-\uFDFF\uFE70-\uFEFF]+$/.test(m);
  }, i = r.__arabicParser__.isArabicEndLetter = function(m) {
    return s(m) && a(m) && t[m.charCodeAt(0)].length <= 2;
  }, o = r.__arabicParser__.isArabicAlfLetter = function(m) {
    return s(m) && n.indexOf(m.charCodeAt(0)) >= 0;
  };
  r.__arabicParser__.arabicLetterHasIsolatedForm = function(m) {
    return s(m) && a(m) && t[m.charCodeAt(0)].length >= 1;
  };
  var l = r.__arabicParser__.arabicLetterHasFinalForm = function(m) {
    return s(m) && a(m) && t[m.charCodeAt(0)].length >= 2;
  };
  r.__arabicParser__.arabicLetterHasInitialForm = function(m) {
    return s(m) && a(m) && t[m.charCodeAt(0)].length >= 3;
  };
  var u = r.__arabicParser__.arabicLetterHasMedialForm = function(m) {
    return s(m) && a(m) && t[m.charCodeAt(0)].length == 4;
  }, h = r.__arabicParser__.resolveLigatures = function(m) {
    var y = 0, w = e, E = "", C = 0;
    for (y = 0; y < m.length; y += 1) w[m.charCodeAt(y)] !== void 0 ? (C++, typeof (w = w[m.charCodeAt(y)]) == "number" && (E += String.fromCharCode(w), w = e, C = 0), y === m.length - 1 && (w = e, E += m.charAt(y - (C - 1)), y -= C - 1, C = 0)) : (w = e, E += m.charAt(y - C), y -= C, C = 0);
    return E;
  };
  r.__arabicParser__.isArabicDiacritic = function(m) {
    return m !== void 0 && A[m.charCodeAt(0)] !== void 0;
  };
  var g = r.__arabicParser__.getCorrectForm = function(m, y, w) {
    return s(m) ? a(m) === !1 ? -1 : !l(m) || !s(y) && !s(w) || !s(w) && i(y) || i(m) && !s(y) || i(m) && o(y) || i(m) && i(y) ? 0 : u(m) && s(y) && !i(y) && s(w) && l(w) ? 3 : i(m) || !s(w) ? 1 : 2 : -1;
  }, c = function(m) {
    var y = 0, w = 0, E = 0, C = "", F = "", H = "", q = (m = m || "").split("\\s+"), N = [];
    for (y = 0; y < q.length; y += 1) {
      for (N.push(""), w = 0; w < q[y].length; w += 1) C = q[y][w], F = q[y][w - 1], H = q[y][w + 1], s(C) ? (E = g(C, F, H), N[y] += E !== -1 ? String.fromCharCode(t[C.charCodeAt(0)][E]) : C) : N[y] += C;
      N[y] = h(N[y]);
    }
    return N.join(" ");
  }, p = r.__arabicParser__.processArabic = r.processArabic = function() {
    var m, y = typeof arguments[0] == "string" ? arguments[0] : arguments[0].text, w = [];
    if (Array.isArray(y)) {
      var E = 0;
      for (w = [], E = 0; E < y.length; E += 1) Array.isArray(y[E]) ? w.push([c(y[E][0]), y[E][1], y[E][2]]) : w.push([c(y[E])]);
      m = w;
    } else m = c(y);
    return typeof arguments[0] == "string" ? m : (arguments[0].text = m, arguments[0]);
  };
  r.events.push(["preProcessText", p]);
})(eA.API), eA.API.autoPrint = function(r) {
  var t;
  return (r = r || {}).variant = r.variant || "non-conform", r.variant === "javascript" ? this.addJS("print({});") : (this.internal.events.subscribe("postPutResources", function() {
    t = this.internal.newObject(), this.internal.out("<<"), this.internal.out("/S /Named"), this.internal.out("/Type /Action"), this.internal.out("/N /Print"), this.internal.out(">>"), this.internal.out("endobj");
  }), this.internal.events.subscribe("putCatalog", function() {
    this.internal.out("/OpenAction " + t + " 0 R");
  })), this;
}, /**
 * @license
 * Copyright (c) 2014 Steven Spungin (TwelveTone LLC)  steven@twelvetone.tv
 *
 * Licensed under the MIT License.
 * http://opensource.org/licenses/mit-license
 */
(function(r) {
  var t = function() {
    var e = void 0;
    Object.defineProperty(this, "pdf", { get: function() {
      return e;
    }, set: function(i) {
      e = i;
    } });
    var A = 150;
    Object.defineProperty(this, "width", { get: function() {
      return A;
    }, set: function(i) {
      A = isNaN(i) || Number.isInteger(i) === !1 || i < 0 ? 150 : i, this.getContext("2d").pageWrapXEnabled && (this.getContext("2d").pageWrapX = A + 1);
    } });
    var n = 300;
    Object.defineProperty(this, "height", { get: function() {
      return n;
    }, set: function(i) {
      n = isNaN(i) || Number.isInteger(i) === !1 || i < 0 ? 300 : i, this.getContext("2d").pageWrapYEnabled && (this.getContext("2d").pageWrapY = n + 1);
    } });
    var a = [];
    Object.defineProperty(this, "childNodes", { get: function() {
      return a;
    }, set: function(i) {
      a = i;
    } });
    var s = {};
    Object.defineProperty(this, "style", { get: function() {
      return s;
    }, set: function(i) {
      s = i;
    } }), Object.defineProperty(this, "parentNode", {});
  };
  t.prototype.getContext = function(e, A) {
    var n;
    if ((e = e || "2d") !== "2d") return null;
    for (n in A) this.pdf.context2d.hasOwnProperty(n) && (this.pdf.context2d[n] = A[n]);
    return this.pdf.context2d._canvas = this, this.pdf.context2d;
  }, t.prototype.toDataURL = function() {
    throw new Error("toDataURL is not implemented.");
  }, r.events.push(["initialized", function() {
    this.canvas = new t(), this.canvas.pdf = this;
  }]);
})(eA.API), (function(r) {
  var t = { left: 0, top: 0, bottom: 0, right: 0 }, e = !1, A = function() {
    this.internal.__cell__ === void 0 && (this.internal.__cell__ = {}, this.internal.__cell__.padding = 3, this.internal.__cell__.headerFunction = void 0, this.internal.__cell__.margins = Object.assign({}, t), this.internal.__cell__.margins.width = this.getPageWidth(), n.call(this));
  }, n = function() {
    this.internal.__cell__.lastCell = new a(), this.internal.__cell__.pages = 1;
  }, a = function() {
    var o = arguments[0];
    Object.defineProperty(this, "x", { enumerable: !0, get: function() {
      return o;
    }, set: function(m) {
      o = m;
    } });
    var l = arguments[1];
    Object.defineProperty(this, "y", { enumerable: !0, get: function() {
      return l;
    }, set: function(m) {
      l = m;
    } });
    var u = arguments[2];
    Object.defineProperty(this, "width", { enumerable: !0, get: function() {
      return u;
    }, set: function(m) {
      u = m;
    } });
    var h = arguments[3];
    Object.defineProperty(this, "height", { enumerable: !0, get: function() {
      return h;
    }, set: function(m) {
      h = m;
    } });
    var g = arguments[4];
    Object.defineProperty(this, "text", { enumerable: !0, get: function() {
      return g;
    }, set: function(m) {
      g = m;
    } });
    var c = arguments[5];
    Object.defineProperty(this, "lineNumber", { enumerable: !0, get: function() {
      return c;
    }, set: function(m) {
      c = m;
    } });
    var p = arguments[6];
    return Object.defineProperty(this, "align", { enumerable: !0, get: function() {
      return p;
    }, set: function(m) {
      p = m;
    } }), this;
  };
  a.prototype.clone = function() {
    return new a(this.x, this.y, this.width, this.height, this.text, this.lineNumber, this.align);
  }, a.prototype.toArray = function() {
    return [this.x, this.y, this.width, this.height, this.text, this.lineNumber, this.align];
  }, r.setHeaderFunction = function(o) {
    return A.call(this), this.internal.__cell__.headerFunction = typeof o == "function" ? o : void 0, this;
  }, r.getTextDimensions = function(o, l) {
    A.call(this);
    var u = (l = l || {}).fontSize || this.getFontSize(), h = l.font || this.getFont(), g = l.scaleFactor || this.internal.scaleFactor, c = 0, p = 0, m = 0, y = this;
    if (!Array.isArray(o) && typeof o != "string") {
      if (typeof o != "number") throw new Error("getTextDimensions expects text-parameter to be of type String or type Number or an Array of Strings.");
      o = String(o);
    }
    var w = l.maxWidth;
    w > 0 ? typeof o == "string" ? o = this.splitTextToSize(o, w) : Object.prototype.toString.call(o) === "[object Array]" && (o = o.reduce(function(C, F) {
      return C.concat(y.splitTextToSize(F, w));
    }, [])) : o = Array.isArray(o) ? o : [o];
    for (var E = 0; E < o.length; E++) c < (m = this.getStringUnitWidth(o[E], { font: h }) * u) && (c = m);
    return c !== 0 && (p = o.length), { w: c /= g, h: Math.max((p * u * this.getLineHeightFactor() - u * (this.getLineHeightFactor() - 1)) / g, 0) };
  }, r.cellAddPage = function() {
    A.call(this), this.addPage();
    var o = this.internal.__cell__.margins || t;
    return this.internal.__cell__.lastCell = new a(o.left, o.top, void 0, void 0), this.internal.__cell__.pages += 1, this;
  };
  var s = r.cell = function() {
    var o;
    o = arguments[0] instanceof a ? arguments[0] : new a(arguments[0], arguments[1], arguments[2], arguments[3], arguments[4], arguments[5], arguments[6]), A.call(this);
    var l = this.internal.__cell__.lastCell, u = this.internal.__cell__.padding, h = this.internal.__cell__.margins || t, g = this.internal.__cell__.tableHeaderRow, c = this.internal.__cell__.printHeaders;
    return l.lineNumber !== void 0 && (l.lineNumber === o.lineNumber ? (o.x = (l.x || 0) + (l.width || 0), o.y = l.y || 0) : l.y + l.height + o.height + h.bottom > this.getPageHeight() ? (this.cellAddPage(), o.y = h.top, c && g && (this.printHeaderRow(o.lineNumber, !0), o.y += g[0].height)) : o.y = l.y + l.height || o.y), o.text[0] !== void 0 && (this.rect(o.x, o.y, o.width, o.height, e === !0 ? "FD" : void 0), o.align === "right" ? this.text(o.text, o.x + o.width - u, o.y + u, { align: "right", baseline: "top" }) : o.align === "center" ? this.text(o.text, o.x + o.width / 2, o.y + u, { align: "center", baseline: "top", maxWidth: o.width - u - u }) : this.text(o.text, o.x + u, o.y + u, { align: "left", baseline: "top", maxWidth: o.width - u - u })), this.internal.__cell__.lastCell = o, this;
  };
  r.table = function(o, l, u, h, g) {
    if (A.call(this), !u) throw new Error("No data for PDF table.");
    var c, p, m, y, w = [], E = [], C = [], F = {}, H = {}, q = [], N = [], M = (g = g || {}).autoSize || !1, k = g.printHeaders !== !1, O = g.css && g.css["font-size"] !== void 0 ? 16 * g.css["font-size"] : g.fontSize || 12, S = g.margins || Object.assign({ width: this.getPageWidth() }, t), U = typeof g.padding == "number" ? g.padding : 3, W = g.headerBackgroundColor || "#c8c8c8", I = g.headerTextColor || "#000";
    if (n.call(this), this.internal.__cell__.printHeaders = k, this.internal.__cell__.margins = S, this.internal.__cell__.table_font_size = O, this.internal.__cell__.padding = U, this.internal.__cell__.headerBackgroundColor = W, this.internal.__cell__.headerTextColor = I, this.setFontSize(O), h == null) E = w = Object.keys(u[0]), C = w.map(function() {
      return "left";
    });
    else if (Array.isArray(h) && jA(h[0]) === "object") for (w = h.map(function(Ae) {
      return Ae.name;
    }), E = h.map(function(Ae) {
      return Ae.prompt || Ae.name || "";
    }), C = h.map(function(Ae) {
      return Ae.align || "left";
    }), c = 0; c < h.length; c += 1) H[h[c].name] = 0.7499990551181103 * h[c].width;
    else Array.isArray(h) && typeof h[0] == "string" && (E = w = h, C = w.map(function() {
      return "left";
    }));
    if (M || Array.isArray(h) && typeof h[0] == "string") for (c = 0; c < w.length; c += 1) {
      for (F[y = w[c]] = u.map(function(Ae) {
        return Ae[y];
      }), this.setFont(void 0, "bold"), q.push(this.getTextDimensions(E[c], { fontSize: this.internal.__cell__.table_font_size, scaleFactor: this.internal.scaleFactor }).w), p = F[y], this.setFont(void 0, "normal"), m = 0; m < p.length; m += 1) q.push(this.getTextDimensions(p[m], { fontSize: this.internal.__cell__.table_font_size, scaleFactor: this.internal.scaleFactor }).w);
      H[y] = Math.max.apply(null, q) + U + U, q = [];
    }
    if (k) {
      var le = {};
      for (c = 0; c < w.length; c += 1) le[w[c]] = {}, le[w[c]].text = E[c], le[w[c]].align = C[c];
      var ue = i.call(this, le, H);
      N = w.map(function(Ae) {
        return new a(o, l, H[Ae], ue, le[Ae].text, void 0, le[Ae].align);
      }), this.setTableHeaderRow(N), this.printHeaderRow(1, !1);
    }
    var Z = h.reduce(function(Ae, oe) {
      return Ae[oe.name] = oe.align, Ae;
    }, {});
    for (c = 0; c < u.length; c += 1) {
      "rowStart" in g && g.rowStart instanceof Function && g.rowStart({ row: c, data: u[c] }, this);
      var ee = i.call(this, u[c], H);
      for (m = 0; m < w.length; m += 1) {
        var X = u[c][w[m]];
        "cellStart" in g && g.cellStart instanceof Function && g.cellStart({ row: c, col: m, data: X }, this), s.call(this, new a(o, l, H[w[m]], ee, X, c + 2, Z[w[m]]));
      }
    }
    return this.internal.__cell__.table_x = o, this.internal.__cell__.table_y = l, this;
  };
  var i = function(o, l) {
    var u = this.internal.__cell__.padding, h = this.internal.__cell__.table_font_size, g = this.internal.scaleFactor;
    return Object.keys(o).map(function(c) {
      var p = o[c];
      return this.splitTextToSize(p.hasOwnProperty("text") ? p.text : p, l[c] - u - u);
    }, this).map(function(c) {
      return this.getLineHeightFactor() * c.length * h / g + u + u;
    }, this).reduce(function(c, p) {
      return Math.max(c, p);
    }, 0);
  };
  r.setTableHeaderRow = function(o) {
    A.call(this), this.internal.__cell__.tableHeaderRow = o;
  }, r.printHeaderRow = function(o, l) {
    if (A.call(this), !this.internal.__cell__.tableHeaderRow) throw new Error("Property tableHeaderRow does not exist.");
    var u;
    if (e = !0, typeof this.internal.__cell__.headerFunction == "function") {
      var h = this.internal.__cell__.headerFunction(this, this.internal.__cell__.pages);
      this.internal.__cell__.lastCell = new a(h[0], h[1], h[2], h[3], void 0, -1);
    }
    this.setFont(void 0, "bold");
    for (var g = [], c = 0; c < this.internal.__cell__.tableHeaderRow.length; c += 1) {
      u = this.internal.__cell__.tableHeaderRow[c].clone(), l && (u.y = this.internal.__cell__.margins.top || 0, g.push(u)), u.lineNumber = o;
      var p = this.getTextColor();
      this.setTextColor(this.internal.__cell__.headerTextColor), this.setFillColor(this.internal.__cell__.headerBackgroundColor), s.call(this, u), this.setTextColor(p);
    }
    g.length > 0 && this.setTableHeaderRow(g), this.setFont(void 0, "normal"), e = !1;
  };
})(eA.API);
var Q5 = { italic: ["italic", "oblique", "normal"], oblique: ["oblique", "italic", "normal"], normal: ["normal", "oblique", "italic"] }, D5 = ["ultra-condensed", "extra-condensed", "condensed", "semi-condensed", "normal", "semi-expanded", "expanded", "extra-expanded", "ultra-expanded"], up = T5(D5), k5 = [100, 200, 300, 400, 500, 600, 700, 800, 900], wD = T5(k5);
function Of(r) {
  var t = r.family.replace(/"|'/g, "").toLowerCase(), e = (function(a) {
    return Q5[a = a || "normal"] ? a : "normal";
  })(r.style), A = (function(a) {
    return a ? typeof a == "number" ? a >= 100 && a <= 900 && a % 100 == 0 ? a : 400 : /^\d00$/.test(a) ? parseInt(a) : a === "bold" ? 700 : 400 : 400;
  })(r.weight), n = (function(a) {
    return typeof up[a = a || "normal"] == "number" ? a : "normal";
  })(r.stretch);
  return { family: t, style: e, weight: A, stretch: n, src: r.src || [], ref: r.ref || { name: t, style: [n, e, A].join(" ") } };
}
function Q1(r, t, e, A) {
  var n;
  for (n = e; n >= 0 && n < t.length; n += A) if (r[t[n]]) return r[t[n]];
  for (n = e; n >= 0 && n < t.length; n -= A) if (r[t[n]]) return r[t[n]];
}
var BD = { "sans-serif": "helvetica", fixed: "courier", monospace: "courier", terminal: "courier", cursive: "times", fantasy: "times", serif: "times" }, D1 = { caption: "times", icon: "times", menu: "times", "message-box": "times", "small-caption": "times", "status-bar": "times" };
function k1(r) {
  return [r.stretch, r.style, r.weight, r.family].join(" ");
}
function L1(r) {
  return r.trimLeft();
}
function yD(r, t) {
  for (var e = 0; e < r.length; ) {
    if (r.charAt(e) === t) return [r.substring(0, e), r.substring(e + 1)];
    e += 1;
  }
  return null;
}
function bD(r) {
  var t = r.match(/^(-[a-z_]|[a-z_])[a-z0-9_-]*/i);
  return t === null ? null : [t[0], r.substring(t[0].length)];
}
var pu, I1, _1, uo, vu, N1, M1, O1, Rf = ["times"];
function R1(r, t, e, A, n) {
  var a = 4, s = P1;
  switch (n) {
    case eA.API.image_compression.FAST:
      a = 1, s = H1;
      break;
    case eA.API.image_compression.MEDIUM:
      a = 6, s = K1;
      break;
    case eA.API.image_compression.SLOW:
      a = 9, s = V1;
  }
  r = (function(o, l, u, h) {
    for (var g, c = o.length / l, p = new Uint8Array(o.length + c), m = [CD, H1, P1, K1, V1], y = 0; y < c; y += 1) {
      var w = y * l, E = o.subarray(w, w + l);
      if (h) p.set(h(E, u, g), w + y);
      else {
        for (var C = m.length, F = [], H = 0; H < C; H += 1) F[H] = m[H](E, u, g);
        var q = FD(F.concat());
        p.set(F[q], w + y);
      }
      g = E;
    }
    return p;
  })(r, t, Math.ceil(e * A / 8), s);
  var i = rp(r, { level: a });
  return eA.API.__addimage__.arrayBufferToBinaryString(i);
}
function CD(r) {
  var t = Array.apply([], r);
  return t.unshift(0), t;
}
function H1(r, t) {
  var e = r.length, A = [];
  A[0] = 1;
  for (var n = 0; n < e; n += 1) {
    var a = r[n - t] || 0;
    A[n + 1] = r[n] - a + 256 & 255;
  }
  return A;
}
function P1(r, t, e) {
  var A = r.length, n = [];
  n[0] = 2;
  for (var a = 0; a < A; a += 1) {
    var s = e && e[a] || 0;
    n[a + 1] = r[a] - s + 256 & 255;
  }
  return n;
}
function K1(r, t, e) {
  var A = r.length, n = [];
  n[0] = 3;
  for (var a = 0; a < A; a += 1) {
    var s = r[a - t] || 0, i = e && e[a] || 0;
    n[a + 1] = r[a] + 256 - (s + i >>> 1) & 255;
  }
  return n;
}
function V1(r, t, e) {
  var A = r.length, n = [];
  n[0] = 4;
  for (var a = 0; a < A; a += 1) {
    var s = ED(r[a - t] || 0, e && e[a] || 0, e && e[a - t] || 0);
    n[a + 1] = r[a] - s + 256 & 255;
  }
  return n;
}
function ED(r, t, e) {
  if (r === t && t === e) return r;
  var A = Math.abs(t - e), n = Math.abs(r - e), a = Math.abs(r + t - e - e);
  return A <= n && A <= a ? r : n <= a ? t : e;
}
function FD(r) {
  var t = r.map(function(e) {
    return e.reduce(function(A, n) {
      return A + Math.abs(n);
    }, 0);
  });
  return t.indexOf(Math.min.apply(null, t));
}
function Hf(r, t, e) {
  var A = t * e, n = Math.floor(A / 8), a = 16 - (A - 8 * n + e), s = (1 << e) - 1;
  return L5(r, n) >> a & s;
}
function q1(r, t, e, A) {
  var n = e * A, a = Math.floor(n / 8), s = 16 - (n - 8 * a + A), i = (1 << A) - 1, o = (t & i) << s;
  (function(l, u, h) {
    if (u + 1 < l.byteLength) l.setUint16(u, h, !1);
    else {
      var g = h >> 8 & 255;
      l.setUint8(u, g);
    }
  })(r, a, L5(r, a) & ~(i << s) & 65535 | o);
}
function L5(r, t) {
  return t + 1 < r.byteLength ? r.getUint16(t, !1) : r.getUint8(t) << 8;
}
function xD(r) {
  var t = 0;
  if (r[t++] !== 71 || r[t++] !== 73 || r[t++] !== 70 || r[t++] !== 56 || (r[t++] + 1 & 253) != 56 || r[t++] !== 97) throw new Error("Invalid GIF 87a/89a header.");
  var e = r[t++] | r[t++] << 8, A = r[t++] | r[t++] << 8, n = r[t++], a = n >> 7, s = 1 << 1 + (7 & n);
  r[t++], r[t++];
  var i = null, o = null;
  a && (i = t, o = s, t += 3 * s);
  var l = !0, u = [], h = 0, g = null, c = 0, p = null;
  for (this.width = e, this.height = A; l && t < r.length; ) switch (r[t++]) {
    case 33:
      switch (r[t++]) {
        case 255:
          if (r[t] !== 11 || r[t + 1] == 78 && r[t + 2] == 69 && r[t + 3] == 84 && r[t + 4] == 83 && r[t + 5] == 67 && r[t + 6] == 65 && r[t + 7] == 80 && r[t + 8] == 69 && r[t + 9] == 50 && r[t + 10] == 46 && r[t + 11] == 48 && r[t + 12] == 3 && r[t + 13] == 1 && r[t + 16] == 0) t += 14, p = r[t++] | r[t++] << 8, t++;
          else for (t += 12; ; ) {
            if (!((S = r[t++]) >= 0)) throw Error("Invalid block size");
            if (S === 0) break;
            t += S;
          }
          break;
        case 249:
          if (r[t++] !== 4 || r[t + 4] !== 0) throw new Error("Invalid graphics extension block.");
          var m = r[t++];
          h = r[t++] | r[t++] << 8, g = r[t++], 1 & m || (g = null), c = m >> 2 & 7, t++;
          break;
        case 254:
          for (; ; ) {
            if (!((S = r[t++]) >= 0)) throw Error("Invalid block size");
            if (S === 0) break;
            t += S;
          }
          break;
        default:
          throw new Error("Unknown graphic control label: 0x" + r[t - 1].toString(16));
      }
      break;
    case 44:
      var y = r[t++] | r[t++] << 8, w = r[t++] | r[t++] << 8, E = r[t++] | r[t++] << 8, C = r[t++] | r[t++] << 8, F = r[t++], H = F >> 6 & 1, q = 1 << 1 + (7 & F), N = i, M = o, k = !1;
      F >> 7 && (k = !0, N = t, M = q, t += 3 * q);
      var O = t;
      for (t++; ; ) {
        var S;
        if (!((S = r[t++]) >= 0)) throw Error("Invalid block size");
        if (S === 0) break;
        t += S;
      }
      u.push({ x: y, y: w, width: E, height: C, has_local_palette: k, palette_offset: N, palette_size: M, data_offset: O, data_length: t - O, transparent_index: g, interlaced: !!H, delay: h, disposal: c });
      break;
    case 59:
      l = !1;
      break;
    default:
      throw new Error("Unknown gif block: 0x" + r[t - 1].toString(16));
  }
  this.numFrames = function() {
    return u.length;
  }, this.loopCount = function() {
    return p;
  }, this.frameInfo = function(U) {
    if (U < 0 || U >= u.length) throw new Error("Frame index out of range.");
    return u[U];
  }, this.decodeAndBlitFrameBGRA = function(U, W) {
    var I = this.frameInfo(U), le = I.width * I.height, ue = new Uint8Array(le);
    j1(r, I.data_offset, ue, le);
    var Z = I.palette_offset, ee = I.transparent_index;
    ee === null && (ee = 256);
    var X = I.width, Ae = e - X, oe = X, x = 4 * (I.y * e + I.x), L = 4 * ((I.y + I.height) * e + I.x), j = x, $ = 4 * Ae;
    I.interlaced === !0 && ($ += 4 * e * 7);
    for (var re = 8, pe = 0, de = ue.length; pe < de; ++pe) {
      var ce = ue[pe];
      if (oe === 0 && (oe = X, (j += $) >= L && ($ = 4 * Ae + 4 * e * (re - 1), j = x + (X + Ae) * (re << 1), re >>= 1)), ce === ee) j += 4;
      else {
        var Se = r[Z + 3 * ce], qe = r[Z + 3 * ce + 1], rt = r[Z + 3 * ce + 2];
        W[j++] = rt, W[j++] = qe, W[j++] = Se, W[j++] = 255;
      }
      --oe;
    }
  }, this.decodeAndBlitFrameRGBA = function(U, W) {
    var I = this.frameInfo(U), le = I.width * I.height, ue = new Uint8Array(le);
    j1(r, I.data_offset, ue, le);
    var Z = I.palette_offset, ee = I.transparent_index;
    ee === null && (ee = 256);
    var X = I.width, Ae = e - X, oe = X, x = 4 * (I.y * e + I.x), L = 4 * ((I.y + I.height) * e + I.x), j = x, $ = 4 * Ae;
    I.interlaced === !0 && ($ += 4 * e * 7);
    for (var re = 8, pe = 0, de = ue.length; pe < de; ++pe) {
      var ce = ue[pe];
      if (oe === 0 && (oe = X, (j += $) >= L && ($ = 4 * Ae + 4 * e * (re - 1), j = x + (X + Ae) * (re << 1), re >>= 1)), ce === ee) j += 4;
      else {
        var Se = r[Z + 3 * ce], qe = r[Z + 3 * ce + 1], rt = r[Z + 3 * ce + 2];
        W[j++] = Se, W[j++] = qe, W[j++] = rt, W[j++] = 255;
      }
      --oe;
    }
  };
}
function j1(r, t, e, A) {
  for (var n = r[t++], a = 1 << n, s = a + 1, i = s + 1, o = n + 1, l = (1 << o) - 1, u = 0, h = 0, g = 0, c = r[t++], p = new Int32Array(4096), m = null; ; ) {
    for (; u < 16 && c !== 0; ) h |= r[t++] << u, u += 8, c === 1 ? c = r[t++] : --c;
    if (u < o) break;
    var y = h & l;
    if (h >>= o, u -= o, y !== a) {
      if (y === s) break;
      for (var w = y < i ? y : m, E = 0, C = w; C > a; ) C = p[C] >> 8, ++E;
      var F = C;
      if (g + E + (w !== y ? 1 : 0) > A) return void ur.log("Warning, gif stream longer than expected.");
      e[g++] = F;
      var H = g += E;
      for (w !== y && (e[g++] = F), C = w; E--; ) C = p[C], e[--H] = 255 & C, C >>= 8;
      m !== null && i < 4096 && (p[i++] = m << 8 | F, i >= l + 1 && o < 12 && (++o, l = l << 1 | 1)), m = y;
    } else i = s + 1, l = (1 << (o = n + 1)) - 1, m = null;
  }
  return g !== A && ur.log("Warning, gif stream shorter than expected."), e;
}
/**
 * @license
  Copyright (c) 2008, Adobe Systems Incorporated
  All rights reserved.

  Redistribution and use in source and binary forms, with or without 
  modification, are permitted provided that the following conditions are
  met:

  * Redistributions of source code must retain the above copyright notice, 
    this list of conditions and the following disclaimer.
  
  * Redistributions in binary form must reproduce the above copyright
    notice, this list of conditions and the following disclaimer in the 
    documentation and/or other materials provided with the distribution.
  
  * Neither the name of Adobe Systems Incorporated nor the names of its 
    contributors may be used to endorse or promote products derived from 
    this software without specific prior written permission.

  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS
  IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
  THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
  PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR 
  CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
  EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
  PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
  PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
  LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
  NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
  SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/
function Pf(r) {
  var t, e, A, n, a, s = Math.floor, i = new Array(64), o = new Array(64), l = new Array(64), u = new Array(64), h = new Array(65535), g = new Array(65535), c = new Array(64), p = new Array(64), m = [], y = 0, w = 7, E = new Array(64), C = new Array(64), F = new Array(64), H = new Array(256), q = new Array(2048), N = [0, 1, 5, 6, 14, 15, 27, 28, 2, 4, 7, 13, 16, 26, 29, 42, 3, 8, 12, 17, 25, 30, 41, 43, 9, 11, 18, 24, 31, 40, 44, 53, 10, 19, 23, 32, 39, 45, 52, 54, 20, 22, 33, 38, 46, 51, 55, 60, 21, 34, 37, 47, 50, 56, 59, 61, 35, 36, 48, 49, 57, 58, 62, 63], M = [0, 0, 1, 5, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0], k = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11], O = [0, 0, 2, 1, 3, 3, 2, 4, 3, 5, 5, 4, 4, 0, 0, 1, 125], S = [1, 2, 3, 0, 4, 17, 5, 18, 33, 49, 65, 6, 19, 81, 97, 7, 34, 113, 20, 50, 129, 145, 161, 8, 35, 66, 177, 193, 21, 82, 209, 240, 36, 51, 98, 114, 130, 9, 10, 22, 23, 24, 25, 26, 37, 38, 39, 40, 41, 42, 52, 53, 54, 55, 56, 57, 58, 67, 68, 69, 70, 71, 72, 73, 74, 83, 84, 85, 86, 87, 88, 89, 90, 99, 100, 101, 102, 103, 104, 105, 106, 115, 116, 117, 118, 119, 120, 121, 122, 131, 132, 133, 134, 135, 136, 137, 138, 146, 147, 148, 149, 150, 151, 152, 153, 154, 162, 163, 164, 165, 166, 167, 168, 169, 170, 178, 179, 180, 181, 182, 183, 184, 185, 186, 194, 195, 196, 197, 198, 199, 200, 201, 202, 210, 211, 212, 213, 214, 215, 216, 217, 218, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250], U = [0, 0, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0], W = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11], I = [0, 0, 2, 1, 2, 4, 4, 3, 4, 7, 5, 4, 4, 0, 1, 2, 119], le = [0, 1, 2, 3, 17, 4, 5, 33, 49, 6, 18, 65, 81, 7, 97, 113, 19, 34, 50, 129, 8, 20, 66, 145, 161, 177, 193, 9, 35, 51, 82, 240, 21, 98, 114, 209, 10, 22, 36, 52, 225, 37, 241, 23, 24, 25, 26, 38, 39, 40, 41, 42, 53, 54, 55, 56, 57, 58, 67, 68, 69, 70, 71, 72, 73, 74, 83, 84, 85, 86, 87, 88, 89, 90, 99, 100, 101, 102, 103, 104, 105, 106, 115, 116, 117, 118, 119, 120, 121, 122, 130, 131, 132, 133, 134, 135, 136, 137, 138, 146, 147, 148, 149, 150, 151, 152, 153, 154, 162, 163, 164, 165, 166, 167, 168, 169, 170, 178, 179, 180, 181, 182, 183, 184, 185, 186, 194, 195, 196, 197, 198, 199, 200, 201, 202, 210, 211, 212, 213, 214, 215, 216, 217, 218, 226, 227, 228, 229, 230, 231, 232, 233, 234, 242, 243, 244, 245, 246, 247, 248, 249, 250];
  function ue(x, L) {
    for (var j = 0, $ = 0, re = new Array(), pe = 1; pe <= 16; pe++) {
      for (var de = 1; de <= x[pe]; de++) re[L[$]] = [], re[L[$]][0] = j, re[L[$]][1] = pe, $++, j++;
      j *= 2;
    }
    return re;
  }
  function Z(x) {
    for (var L = x[0], j = x[1] - 1; j >= 0; ) L & 1 << j && (y |= 1 << w), j--, --w < 0 && (y == 255 ? (ee(255), ee(0)) : ee(y), w = 7, y = 0);
  }
  function ee(x) {
    m.push(x);
  }
  function X(x) {
    ee(x >> 8 & 255), ee(255 & x);
  }
  function Ae(x, L, j, $, re) {
    for (var pe, de = re[0], ce = re[240], Se = (function(xe, Qe) {
      var _e, Pe, je, Ke, et, ut, yt, Ft, Bt, St, bt = 0;
      for (Bt = 0; Bt < 8; ++Bt) {
        _e = xe[bt], Pe = xe[bt + 1], je = xe[bt + 2], Ke = xe[bt + 3], et = xe[bt + 4], ut = xe[bt + 5], yt = xe[bt + 6];
        var nA = _e + (Ft = xe[bt + 7]), qt = _e - Ft, Ot = Pe + yt, Pt = Pe - yt, sA = je + ut, kt = je - ut, hA = Ke + et, Nt = Ke - et, Ce = nA + hA, Ve = nA - hA, Re = Ot + sA, $e = Ot - sA;
        xe[bt] = Ce + Re, xe[bt + 4] = Ce - Re;
        var xt = 0.707106781 * ($e + Ve);
        xe[bt + 2] = Ve + xt, xe[bt + 6] = Ve - xt;
        var Ht = 0.382683433 * ((Ce = Nt + kt) - ($e = Pt + qt)), Mt = 0.5411961 * Ce + Ht, SA = 1.306562965 * $e + Ht, JA = 0.707106781 * (Re = kt + Pt), Lt = qt + JA, Qr = qt - JA;
        xe[bt + 5] = Qr + Mt, xe[bt + 3] = Qr - Mt, xe[bt + 1] = Lt + SA, xe[bt + 7] = Lt - SA, bt += 8;
      }
      for (bt = 0, Bt = 0; Bt < 8; ++Bt) {
        _e = xe[bt], Pe = xe[bt + 8], je = xe[bt + 16], Ke = xe[bt + 24], et = xe[bt + 32], ut = xe[bt + 40], yt = xe[bt + 48];
        var Fr = _e + (Ft = xe[bt + 56]), xr = _e - Ft, PA = Pe + yt, CA = Pe - yt, MA = je + ut, OA = je - ut, Dr = Ke + et, Sr = Ke - et, LA = Fr + Dr, pr = Fr - Dr, kr = PA + MA, ZA = PA - MA;
        xe[bt] = LA + kr, xe[bt + 32] = LA - kr;
        var Lr = 0.707106781 * (ZA + pr);
        xe[bt + 16] = pr + Lr, xe[bt + 48] = pr - Lr;
        var Un = 0.382683433 * ((LA = Sr + OA) - (ZA = CA + xr)), Dt = 0.5411961 * LA + Un, be = 1.306562965 * ZA + Un, z = 0.707106781 * (kr = OA + CA), ge = xr + z, We = xr - z;
        xe[bt + 40] = We + Dt, xe[bt + 24] = We - Dt, xe[bt + 8] = ge + be, xe[bt + 56] = ge - be, bt++;
      }
      for (Bt = 0; Bt < 64; ++Bt) St = xe[Bt] * Qe[Bt], c[Bt] = St > 0 ? St + 0.5 | 0 : St - 0.5 | 0;
      return c;
    })(x, L), qe = 0; qe < 64; ++qe) p[N[qe]] = Se[qe];
    var rt = p[0] - j;
    j = p[0], rt == 0 ? Z($[0]) : (Z($[g[pe = 32767 + rt]]), Z(h[pe]));
    for (var at = 63; at > 0 && p[at] == 0; ) at--;
    if (at == 0) return Z(de), j;
    for (var dt, D = 1; D <= at; ) {
      for (var Ie = D; p[D] == 0 && D <= at; ) ++D;
      var me = D - Ie;
      if (me >= 16) {
        dt = me >> 4;
        for (var ve = 1; ve <= dt; ++ve) Z(ce);
        me &= 15;
      }
      pe = 32767 + p[D], Z(re[(me << 4) + g[pe]]), Z(h[pe]), D++;
    }
    return at != 63 && Z(de), j;
  }
  function oe(x) {
    x = Math.min(Math.max(x, 1), 100), a != x && ((function(L) {
      for (var j = [16, 11, 10, 16, 24, 40, 51, 61, 12, 12, 14, 19, 26, 58, 60, 55, 14, 13, 16, 24, 40, 57, 69, 56, 14, 17, 22, 29, 51, 87, 80, 62, 18, 22, 37, 56, 68, 109, 103, 77, 24, 35, 55, 64, 81, 104, 113, 92, 49, 64, 78, 87, 103, 121, 120, 101, 72, 92, 95, 98, 112, 100, 103, 99], $ = 0; $ < 64; $++) {
        var re = s((j[$] * L + 50) / 100);
        re = Math.min(Math.max(re, 1), 255), i[N[$]] = re;
      }
      for (var pe = [17, 18, 24, 47, 99, 99, 99, 99, 18, 21, 26, 66, 99, 99, 99, 99, 24, 26, 56, 99, 99, 99, 99, 99, 47, 66, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99], de = 0; de < 64; de++) {
        var ce = s((pe[de] * L + 50) / 100);
        ce = Math.min(Math.max(ce, 1), 255), o[N[de]] = ce;
      }
      for (var Se = [1, 1.387039845, 1.306562965, 1.175875602, 1, 0.785694958, 0.5411961, 0.275899379], qe = 0, rt = 0; rt < 8; rt++) for (var at = 0; at < 8; at++) l[qe] = 1 / (i[N[qe]] * Se[rt] * Se[at] * 8), u[qe] = 1 / (o[N[qe]] * Se[rt] * Se[at] * 8), qe++;
    })(x < 50 ? Math.floor(5e3 / x) : Math.floor(200 - 2 * x)), a = x);
  }
  this.encode = function(x, L) {
    L && oe(L), m = new Array(), y = 0, w = 7, X(65496), X(65504), X(16), ee(74), ee(70), ee(73), ee(70), ee(0), ee(1), ee(1), ee(0), X(1), X(1), ee(0), ee(0), (function() {
      X(65499), X(132), ee(0);
      for (var Pe = 0; Pe < 64; Pe++) ee(i[Pe]);
      ee(1);
      for (var je = 0; je < 64; je++) ee(o[je]);
    })(), (function(Pe, je) {
      X(65472), X(17), ee(8), X(je), X(Pe), ee(3), ee(1), ee(17), ee(0), ee(2), ee(17), ee(1), ee(3), ee(17), ee(1);
    })(x.width, x.height), (function() {
      X(65476), X(418), ee(0);
      for (var Pe = 0; Pe < 16; Pe++) ee(M[Pe + 1]);
      for (var je = 0; je <= 11; je++) ee(k[je]);
      ee(16);
      for (var Ke = 0; Ke < 16; Ke++) ee(O[Ke + 1]);
      for (var et = 0; et <= 161; et++) ee(S[et]);
      ee(1);
      for (var ut = 0; ut < 16; ut++) ee(U[ut + 1]);
      for (var yt = 0; yt <= 11; yt++) ee(W[yt]);
      ee(17);
      for (var Ft = 0; Ft < 16; Ft++) ee(I[Ft + 1]);
      for (var Bt = 0; Bt <= 161; Bt++) ee(le[Bt]);
    })(), X(65498), X(12), ee(3), ee(1), ee(0), ee(2), ee(17), ee(3), ee(17), ee(0), ee(63), ee(0);
    var j = 0, $ = 0, re = 0;
    y = 0, w = 7, this.encode.displayName = "_encode_";
    for (var pe, de, ce, Se, qe, rt, at, dt, D, Ie = x.data, me = x.width, ve = x.height, xe = 4 * me, Qe = 0; Qe < ve; ) {
      for (pe = 0; pe < xe; ) {
        for (qe = xe * Qe + pe, at = -1, dt = 0, D = 0; D < 64; D++) rt = qe + (dt = D >> 3) * xe + (at = 4 * (7 & D)), Qe + dt >= ve && (rt -= xe * (Qe + 1 + dt - ve)), pe + at >= xe && (rt -= pe + at - xe + 4), de = Ie[rt++], ce = Ie[rt++], Se = Ie[rt++], E[D] = (q[de] + q[ce + 256 | 0] + q[Se + 512 | 0] >> 16) - 128, C[D] = (q[de + 768 | 0] + q[ce + 1024 | 0] + q[Se + 1280 | 0] >> 16) - 128, F[D] = (q[de + 1280 | 0] + q[ce + 1536 | 0] + q[Se + 1792 | 0] >> 16) - 128;
        j = Ae(E, l, j, t, A), $ = Ae(C, u, $, e, n), re = Ae(F, u, re, e, n), pe += 32;
      }
      Qe += 8;
    }
    if (w >= 0) {
      var _e = [];
      _e[1] = w + 1, _e[0] = (1 << w + 1) - 1, Z(_e);
    }
    return X(65497), new Uint8Array(m);
  }, r = r || 50, (function() {
    for (var x = String.fromCharCode, L = 0; L < 256; L++) H[L] = x(L);
  })(), t = ue(M, k), e = ue(U, W), A = ue(O, S), n = ue(I, le), (function() {
    for (var x = 1, L = 2, j = 1; j <= 15; j++) {
      for (var $ = x; $ < L; $++) g[32767 + $] = j, h[32767 + $] = [], h[32767 + $][1] = j, h[32767 + $][0] = $;
      for (var re = -(L - 1); re <= -x; re++) g[32767 + re] = j, h[32767 + re] = [], h[32767 + re][1] = j, h[32767 + re][0] = L - 1 + re;
      x <<= 1, L <<= 1;
    }
  })(), (function() {
    for (var x = 0; x < 256; x++) q[x] = 19595 * x, q[x + 256 | 0] = 38470 * x, q[x + 512 | 0] = 7471 * x + 32768, q[x + 768 | 0] = -11059 * x, q[x + 1024 | 0] = -21709 * x, q[x + 1280 | 0] = 32768 * x + 8421375, q[x + 1536 | 0] = -27439 * x, q[x + 1792 | 0] = -5329 * x;
  })(), oe(r);
}
/**
 * @license
 * Copyright (c) 2017 Aras Abbasi
 *
 * Licensed under the MIT License.
 * http://opensource.org/licenses/mit-license
 */
function Wa(r, t) {
  if (this.pos = 0, this.buffer = r, this.datav = new DataView(r.buffer), this.is_with_alpha = !!t, this.bottom_up = !0, this.flag = String.fromCharCode(this.buffer[0]) + String.fromCharCode(this.buffer[1]), this.pos += 2, ["BM", "BA", "CI", "CP", "IC", "PT"].indexOf(this.flag) === -1) throw new Error("Invalid BMP File");
  this.parseHeader(), this.parseBGR();
}
function W1(r) {
  function t(k) {
    if (!k) throw Error("assert :P");
  }
  function e(k, O, S) {
    for (var U = 0; 4 > U; U++) if (k[O + U] != S.charCodeAt(U)) return !0;
    return !1;
  }
  function A(k, O, S, U, W) {
    for (var I = 0; I < W; I++) k[O + I] = S[U + I];
  }
  function n(k, O, S, U) {
    for (var W = 0; W < U; W++) k[O + W] = S;
  }
  function a(k) {
    return new Int32Array(k);
  }
  function s(k, O) {
    for (var S = [], U = 0; U < k; U++) S.push(new O());
    return S;
  }
  function i(k, O) {
    var S = [];
    return (function U(W, I, le) {
      for (var ue = le[I], Z = 0; Z < ue && (W.push(le.length > I + 1 ? [] : new O()), !(le.length < I + 1)); Z++) U(W[Z], I + 1, le);
    })(S, 0, k), S;
  }
  var o = function() {
    var k = this;
    function O(f, d) {
      for (var B = 1 << d - 1 >>> 0; f & B; ) B >>>= 1;
      return B ? (f & B - 1) + B : f;
    }
    function S(f, d, B, b, Q) {
      t(!(b % B));
      do
        f[d + (b -= B)] = Q;
      while (0 < b);
    }
    function U(f, d, B, b, Q) {
      if (t(2328 >= Q), 512 >= Q) var _ = a(512);
      else if ((_ = a(Q)) == null) return 0;
      return (function(P, G, J, ie, Ee, He) {
        var se, Ue, Ne = G, At = 1 << J, Oe = a(16), st = a(16);
        for (t(Ee != 0), t(ie != null), t(P != null), t(0 < J), Ue = 0; Ue < Ee; ++Ue) {
          if (15 < ie[Ue]) return 0;
          ++Oe[ie[Ue]];
        }
        if (Oe[0] == Ee) return 0;
        for (st[1] = 0, se = 1; 15 > se; ++se) {
          if (Oe[se] > 1 << se) return 0;
          st[se + 1] = st[se] + Oe[se];
        }
        for (Ue = 0; Ue < Ee; ++Ue) se = ie[Ue], 0 < ie[Ue] && (He[st[se]++] = Ue);
        if (st[15] == 1) return (ie = new W()).g = 0, ie.value = He[0], S(P, Ne, 1, At, ie), At;
        var ot, wt = -1, ht = At - 1, Zt = 0, Vt = 1, BA = 1, $t = 1 << J;
        for (Ue = 0, se = 1, Ee = 2; se <= J; ++se, Ee <<= 1) {
          if (Vt += BA <<= 1, 0 > (BA -= Oe[se])) return 0;
          for (; 0 < Oe[se]; --Oe[se]) (ie = new W()).g = se, ie.value = He[Ue++], S(P, Ne + Zt, Ee, $t, ie), Zt = O(Zt, se);
        }
        for (se = J + 1, Ee = 2; 15 >= se; ++se, Ee <<= 1) {
          if (Vt += BA <<= 1, 0 > (BA -= Oe[se])) return 0;
          for (; 0 < Oe[se]; --Oe[se]) {
            if (ie = new W(), (Zt & ht) != wt) {
              for (Ne += $t, ot = 1 << (wt = se) - J; 15 > wt && !(0 >= (ot -= Oe[wt])); ) ++wt, ot <<= 1;
              At += $t = 1 << (ot = wt - J), P[G + (wt = Zt & ht)].g = ot + J, P[G + wt].value = Ne - G - wt;
            }
            ie.g = se - J, ie.value = He[Ue++], S(P, Ne + (Zt >> J), Ee, $t, ie), Zt = O(Zt, se);
          }
        }
        return Vt != 2 * st[15] - 1 ? 0 : At;
      })(f, d, B, b, Q, _);
    }
    function W() {
      this.value = this.g = 0;
    }
    function I() {
      this.value = this.g = 0;
    }
    function le() {
      this.G = s(5, W), this.H = a(5), this.jc = this.Qb = this.qb = this.nd = 0, this.pd = s(YA, I);
    }
    function ue(f, d, B, b) {
      t(f != null), t(d != null), t(2147483648 > b), f.Ca = 254, f.I = 0, f.b = -8, f.Ka = 0, f.oa = d, f.pa = B, f.Jd = d, f.Yc = B + b, f.Zc = 4 <= b ? B + b - 4 + 1 : B, de(f);
    }
    function Z(f, d) {
      for (var B = 0; 0 < d--; ) B |= Se(f, 128) << d;
      return B;
    }
    function ee(f, d) {
      var B = Z(f, d);
      return ce(f) ? -B : B;
    }
    function X(f, d, B, b) {
      var Q, _ = 0;
      for (t(f != null), t(d != null), t(4294967288 > b), f.Sb = b, f.Ra = 0, f.u = 0, f.h = 0, 4 < b && (b = 4), Q = 0; Q < b; ++Q) _ += d[B + Q] << 8 * Q;
      f.Ra = _, f.bb = b, f.oa = d, f.pa = B;
    }
    function Ae(f) {
      for (; 8 <= f.u && f.bb < f.Sb; ) f.Ra >>>= 8, f.Ra += f.oa[f.pa + f.bb] << wn - 8 >>> 0, ++f.bb, f.u -= 8;
      $(f) && (f.h = 1, f.u = 0);
    }
    function oe(f, d) {
      if (t(0 <= d), !f.h && d <= ir) {
        var B = j(f) & qA[d];
        return f.u += d, Ae(f), B;
      }
      return f.h = 1, f.u = 0;
    }
    function x() {
      this.b = this.Ca = this.I = 0, this.oa = [], this.pa = 0, this.Jd = [], this.Yc = 0, this.Zc = [], this.Ka = 0;
    }
    function L() {
      this.Ra = 0, this.oa = [], this.h = this.u = this.bb = this.Sb = this.pa = 0;
    }
    function j(f) {
      return f.Ra >>> (f.u & wn - 1) >>> 0;
    }
    function $(f) {
      return t(f.bb <= f.Sb), f.h || f.bb == f.Sb && f.u > wn;
    }
    function re(f, d) {
      f.u = d, f.h = $(f);
    }
    function pe(f) {
      f.u >= cn && (t(f.u >= cn), Ae(f));
    }
    function de(f) {
      t(f != null && f.oa != null), f.pa < f.Zc ? (f.I = (f.oa[f.pa++] | f.I << 8) >>> 0, f.b += 8) : (t(f != null && f.oa != null), f.pa < f.Yc ? (f.b += 8, f.I = f.oa[f.pa++] | f.I << 8) : f.Ka ? f.b = 0 : (f.I <<= 8, f.b += 8, f.Ka = 1));
    }
    function ce(f) {
      return Z(f, 1);
    }
    function Se(f, d) {
      var B = f.Ca;
      0 > f.b && de(f);
      var b = f.b, Q = B * d >>> 8, _ = (f.I >>> b > Q) + 0;
      for (_ ? (B -= Q, f.I -= Q + 1 << b >>> 0) : B = Q + 1, b = B, Q = 0; 256 <= b; ) Q += 8, b >>= 8;
      return b = 7 ^ Q + Ka[b], f.b -= b, f.Ca = (B << b) - 1, _;
    }
    function qe(f, d, B) {
      f[d + 0] = B >> 24 & 255, f[d + 1] = B >> 16 & 255, f[d + 2] = B >> 8 & 255, f[d + 3] = 255 & B;
    }
    function rt(f, d) {
      return f[d + 0] | f[d + 1] << 8;
    }
    function at(f, d) {
      return rt(f, d) | f[d + 2] << 16;
    }
    function dt(f, d) {
      return rt(f, d) | rt(f, d + 2) << 16;
    }
    function D(f, d) {
      var B = 1 << d;
      return t(f != null), t(0 < d), f.X = a(B), f.X == null ? 0 : (f.Mb = 32 - d, f.Xa = d, 1);
    }
    function Ie(f, d) {
      t(f != null), t(d != null), t(f.Xa == d.Xa), A(d.X, 0, f.X, 0, 1 << d.Xa);
    }
    function me() {
      this.X = [], this.Xa = this.Mb = 0;
    }
    function ve(f, d, B, b) {
      t(B != null), t(b != null);
      var Q = B[0], _ = b[0];
      return Q == 0 && (Q = (f * _ + d / 2) / d), _ == 0 && (_ = (d * Q + f / 2) / f), 0 >= Q || 0 >= _ ? 0 : (B[0] = Q, b[0] = _, 1);
    }
    function xe(f, d) {
      return f + (1 << d) - 1 >>> d;
    }
    function Qe(f, d) {
      return ((4278255360 & f) + (4278255360 & d) >>> 0 & 4278255360) + ((16711935 & f) + (16711935 & d) >>> 0 & 16711935) >>> 0;
    }
    function _e(f, d) {
      k[d] = function(B, b, Q, _, P, G, J) {
        var ie;
        for (ie = 0; ie < P; ++ie) {
          var Ee = k[f](G[J + ie - 1], Q, _ + ie);
          G[J + ie] = Qe(B[b + ie], Ee);
        }
      };
    }
    function Pe() {
      this.ud = this.hd = this.jd = 0;
    }
    function je(f, d) {
      return ((4278124286 & (f ^ d)) >>> 1) + (f & d) >>> 0;
    }
    function Ke(f) {
      return 0 <= f && 256 > f ? f : 0 > f ? 0 : 255 < f ? 255 : void 0;
    }
    function et(f, d) {
      return Ke(f + (f - d + 0.5 >> 1));
    }
    function ut(f, d, B) {
      return Math.abs(d - B) - Math.abs(f - B);
    }
    function yt(f, d, B, b, Q, _, P) {
      for (b = _[P - 1], B = 0; B < Q; ++B) _[P + B] = b = Qe(f[d + B], b);
    }
    function Ft(f, d, B, b, Q) {
      var _;
      for (_ = 0; _ < B; ++_) {
        var P = f[d + _], G = P >> 8 & 255, J = 16711935 & (J = (J = 16711935 & P) + ((G << 16) + G));
        b[Q + _] = (4278255360 & P) + J >>> 0;
      }
    }
    function Bt(f, d) {
      d.jd = 255 & f, d.hd = f >> 8 & 255, d.ud = f >> 16 & 255;
    }
    function St(f, d, B, b, Q, _) {
      var P;
      for (P = 0; P < b; ++P) {
        var G = d[B + P], J = G >>> 8, ie = G, Ee = 255 & (Ee = (Ee = G >>> 16) + ((f.jd << 24 >> 24) * (J << 24 >> 24) >>> 5));
        ie = 255 & (ie = (ie += (f.hd << 24 >> 24) * (J << 24 >> 24) >>> 5) + ((f.ud << 24 >> 24) * (Ee << 24 >> 24) >>> 5)), Q[_ + P] = (4278255360 & G) + (Ee << 16) + ie;
      }
    }
    function bt(f, d, B, b, Q) {
      k[d] = function(_, P, G, J, ie, Ee, He, se, Ue) {
        for (J = He; J < se; ++J) for (He = 0; He < Ue; ++He) ie[Ee++] = Q(G[b(_[P++])]);
      }, k[f] = function(_, P, G, J, ie, Ee, He) {
        var se = 8 >> _.b, Ue = _.Ea, Ne = _.K[0], At = _.w;
        if (8 > se) for (_ = (1 << _.b) - 1, At = (1 << se) - 1; P < G; ++P) {
          var Oe, st = 0;
          for (Oe = 0; Oe < Ue; ++Oe) Oe & _ || (st = b(J[ie++])), Ee[He++] = Q(Ne[st & At]), st >>= se;
        }
        else k["VP8LMapColor" + B](J, ie, Ne, At, Ee, He, P, G, Ue);
      };
    }
    function nA(f, d, B, b, Q) {
      for (B = d + B; d < B; ) {
        var _ = f[d++];
        b[Q++] = _ >> 16 & 255, b[Q++] = _ >> 8 & 255, b[Q++] = 255 & _;
      }
    }
    function qt(f, d, B, b, Q) {
      for (B = d + B; d < B; ) {
        var _ = f[d++];
        b[Q++] = _ >> 16 & 255, b[Q++] = _ >> 8 & 255, b[Q++] = 255 & _, b[Q++] = _ >> 24 & 255;
      }
    }
    function Ot(f, d, B, b, Q) {
      for (B = d + B; d < B; ) {
        var _ = (P = f[d++]) >> 16 & 240 | P >> 12 & 15, P = 240 & P | P >> 28 & 15;
        b[Q++] = _, b[Q++] = P;
      }
    }
    function Pt(f, d, B, b, Q) {
      for (B = d + B; d < B; ) {
        var _ = (P = f[d++]) >> 16 & 248 | P >> 13 & 7, P = P >> 5 & 224 | P >> 3 & 31;
        b[Q++] = _, b[Q++] = P;
      }
    }
    function sA(f, d, B, b, Q) {
      for (B = d + B; d < B; ) {
        var _ = f[d++];
        b[Q++] = 255 & _, b[Q++] = _ >> 8 & 255, b[Q++] = _ >> 16 & 255;
      }
    }
    function kt(f, d, B, b, Q, _) {
      if (_ == 0) for (B = d + B; d < B; ) qe(b, ((_ = f[d++])[0] >> 24 | _[1] >> 8 & 65280 | _[2] << 8 & 16711680 | _[3] << 24) >>> 0), Q += 32;
      else A(b, Q, f, d, B);
    }
    function hA(f, d) {
      k[d][0] = k[f + "0"], k[d][1] = k[f + "1"], k[d][2] = k[f + "2"], k[d][3] = k[f + "3"], k[d][4] = k[f + "4"], k[d][5] = k[f + "5"], k[d][6] = k[f + "6"], k[d][7] = k[f + "7"], k[d][8] = k[f + "8"], k[d][9] = k[f + "9"], k[d][10] = k[f + "10"], k[d][11] = k[f + "11"], k[d][12] = k[f + "12"], k[d][13] = k[f + "13"], k[d][14] = k[f + "0"], k[d][15] = k[f + "0"];
    }
    function Nt(f) {
      return f == Af || f == rf || f == $l || f == nf;
    }
    function Ce() {
      this.eb = [], this.size = this.A = this.fb = 0;
    }
    function Ve() {
      this.y = [], this.f = [], this.ea = [], this.F = [], this.Tc = this.Ed = this.Cd = this.Fd = this.lb = this.Db = this.Ab = this.fa = this.J = this.W = this.N = this.O = 0;
    }
    function Re() {
      this.Rd = this.height = this.width = this.S = 0, this.f = {}, this.f.RGBA = new Ce(), this.f.kb = new Ve(), this.sd = null;
    }
    function $e() {
      this.width = [0], this.height = [0], this.Pd = [0], this.Qd = [0], this.format = [0];
    }
    function xt() {
      this.Id = this.fd = this.Md = this.hb = this.ib = this.da = this.bd = this.cd = this.j = this.v = this.Da = this.Sd = this.ob = 0;
    }
    function Ht(f) {
      return alert("todo:WebPSamplerProcessPlane"), f.T;
    }
    function Mt(f, d) {
      var B = f.T, b = d.ba.f.RGBA, Q = b.eb, _ = b.fb + f.ka * b.A, P = Ta[d.ba.S], G = f.y, J = f.O, ie = f.f, Ee = f.N, He = f.ea, se = f.W, Ue = d.cc, Ne = d.dc, At = d.Mc, Oe = d.Nc, st = f.ka, ot = f.ka + f.T, wt = f.U, ht = wt + 1 >> 1;
      for (st == 0 ? P(G, J, null, null, ie, Ee, He, se, ie, Ee, He, se, Q, _, null, null, wt) : (P(d.ec, d.fc, G, J, Ue, Ne, At, Oe, ie, Ee, He, se, Q, _ - b.A, Q, _, wt), ++B); st + 2 < ot; st += 2) Ue = ie, Ne = Ee, At = He, Oe = se, Ee += f.Rc, se += f.Rc, _ += 2 * b.A, P(G, (J += 2 * f.fa) - f.fa, G, J, Ue, Ne, At, Oe, ie, Ee, He, se, Q, _ - b.A, Q, _, wt);
      return J += f.fa, f.j + ot < f.o ? (A(d.ec, d.fc, G, J, wt), A(d.cc, d.dc, ie, Ee, ht), A(d.Mc, d.Nc, He, se, ht), B--) : 1 & ot || P(G, J, null, null, ie, Ee, He, se, ie, Ee, He, se, Q, _ + b.A, null, null, wt), B;
    }
    function SA(f, d, B) {
      var b = f.F, Q = [f.J];
      if (b != null) {
        var _ = f.U, P = d.ba.S, G = P == Yl || P == $l;
        d = d.ba.f.RGBA;
        var J = [0], ie = f.ka;
        J[0] = f.T, f.Kb && (ie == 0 ? --J[0] : (--ie, Q[0] -= f.width), f.j + f.ka + f.T == f.o && (J[0] = f.o - f.j - ie));
        var Ee = d.eb;
        ie = d.fb + ie * d.A, f = jv(b, Q[0], f.width, _, J, Ee, ie + (G ? 0 : 3), d.A), t(B == J), f && Nt(P) && Vo(Ee, ie, G, _, J, d.A);
      }
      return 0;
    }
    function JA(f) {
      var d = f.ma, B = d.ba.S, b = 11 > B, Q = B == Wl || B == Gl || B == Yl || B == tf || B == 12 || Nt(B);
      if (d.memory = null, d.Ib = null, d.Jb = null, d.Nd = null, !bs(d.Oa, f, Q ? 11 : 12)) return 0;
      if (Q && Nt(B) && mt(), f.da) alert("todo:use_scaling");
      else {
        if (b) {
          if (d.Ib = Ht, f.Kb) {
            if (B = f.U + 1 >> 1, d.memory = a(f.U + 2 * B), d.memory == null) return 0;
            d.ec = d.memory, d.fc = 0, d.cc = d.ec, d.dc = d.fc + f.U, d.Mc = d.cc, d.Nc = d.dc + B, d.Ib = Mt, mt();
          }
        } else alert("todo:EmitYUV");
        Q && (d.Jb = SA, b && Xe());
      }
      if (b && !s0) {
        for (f = 0; 256 > f; ++f) L4[f] = 89858 * (f - 128) + Xl >> zl, N4[f] = -22014 * (f - 128) + Xl, _4[f] = -45773 * (f - 128), I4[f] = 113618 * (f - 128) + Xl >> zl;
        for (f = jo; f < of; ++f) d = 76283 * (f - 16) + Xl >> zl, M4[f - jo] = Jt(d, 255), O4[f - jo] = Jt(d + 8 >> 4, 15);
        s0 = 1;
      }
      return 1;
    }
    function Lt(f) {
      var d = f.ma, B = f.U, b = f.T;
      return t(!(1 & f.ka)), 0 >= B || 0 >= b ? 0 : (B = d.Ib(f, d), d.Jb != null && d.Jb(f, d, B), d.Dc += B, 1);
    }
    function Qr(f) {
      f.ma.memory = null;
    }
    function Fr(f, d, B, b) {
      return oe(f, 8) != 47 ? 0 : (d[0] = oe(f, 14) + 1, B[0] = oe(f, 14) + 1, b[0] = oe(f, 1), oe(f, 3) != 0 ? 0 : !f.h);
    }
    function xr(f, d) {
      if (4 > f) return f + 1;
      var B = f - 2 >> 1;
      return (2 + (1 & f) << B) + oe(d, B) + 1;
    }
    function PA(f, d) {
      return 120 < d ? d - 120 : 1 <= (B = ((B = w4[d - 1]) >> 4) * f + (8 - (15 & B))) ? B : 1;
      var B;
    }
    function CA(f, d, B) {
      var b = j(B), Q = f[d += 255 & b].g - 8;
      return 0 < Q && (re(B, B.u + 8), b = j(B), d += f[d].value, d += b & (1 << Q) - 1), re(B, B.u + f[d].g), f[d].value;
    }
    function MA(f, d, B) {
      return B.g += f.g, B.value += f.value << d >>> 0, t(8 >= B.g), f.g;
    }
    function OA(f, d, B) {
      var b = f.xc;
      return t((d = b == 0 ? 0 : f.vc[f.md * (B >> b) + (d >> b)]) < f.Wb), f.Ya[d];
    }
    function Dr(f, d, B, b) {
      var Q = f.ab, _ = f.c * d, P = f.C;
      d = P + d;
      var G = B, J = b;
      for (b = f.Ta, B = f.Ua; 0 < Q--; ) {
        var ie = f.gc[Q], Ee = P, He = d, se = G, Ue = J, Ne = (J = b, G = B, ie.Ea);
        switch (t(Ee < He), t(He <= ie.nc), ie.hc) {
          case 2:
            Tr(se, Ue, (He - Ee) * Ne, J, G);
            break;
          case 0:
            var At = Ee, Oe = He, st = J, ot = G, wt = ($t = ie).Ea;
            At == 0 && (ji(se, Ue, null, null, 1, st, ot), yt(se, Ue + 1, 0, 0, wt - 1, st, ot + 1), Ue += wt, ot += wt, ++At);
            for (var ht = 1 << $t.b, Zt = ht - 1, Vt = xe(wt, $t.b), BA = $t.K, $t = $t.w + (At >> $t.b) * Vt; At < Oe; ) {
              var DA = BA, nn = $t, yA = 1;
              for (si(se, Ue, st, ot - wt, 1, st, ot); yA < wt; ) {
                var zt = (yA & ~Zt) + ht;
                zt > wt && (zt = wt), (0, Ro[DA[nn++] >> 8 & 15])(se, Ue + +yA, st, ot + yA - wt, zt - yA, st, ot + yA), yA = zt;
              }
              Ue += wt, ot += wt, ++At & Zt || ($t += Vt);
            }
            He != ie.nc && A(J, G - Ne, J, G + (He - Ee - 1) * Ne, Ne);
            break;
          case 1:
            for (Ne = se, Oe = Ue, wt = (se = ie.Ea) - (ot = se & ~(st = (Ue = 1 << ie.b) - 1)), At = xe(se, ie.b), ht = ie.K, ie = ie.w + (Ee >> ie.b) * At; Ee < He; ) {
              for (Zt = ht, Vt = ie, BA = new Pe(), $t = Oe + ot, DA = Oe + se; Oe < $t; ) Bt(Zt[Vt++], BA), Ho(BA, Ne, Oe, Ue, J, G), Oe += Ue, G += Ue;
              Oe < DA && (Bt(Zt[Vt++], BA), Ho(BA, Ne, Oe, wt, J, G), Oe += wt, G += wt), ++Ee & st || (ie += At);
            }
            break;
          case 3:
            if (se == J && Ue == G && 0 < ie.b) {
              for (Oe = J, se = Ne = G + (He - Ee) * Ne - (ot = (He - Ee) * xe(ie.Ea, ie.b)), Ue = J, st = G, At = [], ot = (wt = ot) - 1; 0 <= ot; --ot) At[ot] = Ue[st + ot];
              for (ot = wt - 1; 0 <= ot; --ot) Oe[se + ot] = At[ot];
              ao(ie, Ee, He, J, Ne, J, G);
            } else ao(ie, Ee, He, se, Ue, J, G);
        }
        G = b, J = B;
      }
      J != B && A(b, B, G, J, _);
    }
    function Sr(f, d) {
      var B = f.V, b = f.Ba + f.c * f.C, Q = d - f.C;
      if (t(d <= f.l.o), t(16 >= Q), 0 < Q) {
        var _ = f.l, P = f.Ta, G = f.Ua, J = _.width;
        if (Dr(f, Q, B, b), Q = G = [G], t((B = f.C) < (b = d)), t(_.v < _.va), b > _.o && (b = _.o), B < _.j) {
          var ie = _.j - B;
          B = _.j, Q[0] += ie * J;
        }
        if (B >= b ? B = 0 : (Q[0] += 4 * _.v, _.ka = B - _.j, _.U = _.va - _.v, _.T = b - B, B = 1), B) {
          if (G = G[0], 11 > (B = f.ca).S) {
            var Ee = B.f.RGBA, He = (b = B.S, Q = _.U, _ = _.T, ie = Ee.eb, Ee.A), se = _;
            for (Ee = Ee.fb + f.Ma * Ee.A; 0 < se--; ) {
              var Ue = P, Ne = G, At = Q, Oe = ie, st = Ee;
              switch (b) {
                case jl:
                  Po(Ue, Ne, At, Oe, st);
                  break;
                case Wl:
                  Wi(Ue, Ne, At, Oe, st);
                  break;
                case Af:
                  Wi(Ue, Ne, At, Oe, st), Vo(Oe, st, 0, At, 1, 0);
                  break;
                case Jv:
                  Cs(Ue, Ne, At, Oe, st);
                  break;
                case Gl:
                  kt(Ue, Ne, At, Oe, st, 1);
                  break;
                case rf:
                  kt(Ue, Ne, At, Oe, st, 1), Vo(Oe, st, 0, At, 1, 0);
                  break;
                case Yl:
                  kt(Ue, Ne, At, Oe, st, 0);
                  break;
                case $l:
                  kt(Ue, Ne, At, Oe, st, 0), Vo(Oe, st, 1, At, 1, 0);
                  break;
                case tf:
                  Gi(Ue, Ne, At, Oe, st);
                  break;
                case nf:
                  Gi(Ue, Ne, At, Oe, st), qv(Oe, st, At, 1, 0);
                  break;
                case Zv:
                  Yi(Ue, Ne, At, Oe, st);
                  break;
                default:
                  t(0);
              }
              G += J, Ee += He;
            }
            f.Ma += _;
          } else alert("todo:EmitRescaledRowsYUVA");
          t(f.Ma <= B.height);
        }
      }
      f.C = d, t(f.C <= f.i);
    }
    function LA(f) {
      var d;
      if (0 < f.ua) return 0;
      for (d = 0; d < f.Wb; ++d) {
        var B = f.Ya[d].G, b = f.Ya[d].H;
        if (0 < B[1][b[1] + 0].g || 0 < B[2][b[2] + 0].g || 0 < B[3][b[3] + 0].g) return 0;
      }
      return 1;
    }
    function pr(f, d, B, b, Q, _) {
      if (f.Z != 0) {
        var P = f.qd, G = f.rd;
        for (t(Xi[f.Z] != null); d < B; ++d) Xi[f.Z](P, G, b, Q, b, Q, _), P = b, G = Q, Q += _;
        f.qd = P, f.rd = G;
      }
    }
    function kr(f, d) {
      var B = f.l.ma, b = B.Z == 0 || B.Z == 1 ? f.l.j : f.C;
      if (b = f.C < b ? b : f.C, t(d <= f.l.o), d > b) {
        var Q = f.l.width, _ = B.ca, P = B.tb + Q * b, G = f.V, J = f.Ba + f.c * b, ie = f.gc;
        t(f.ab == 1), t(ie[0].hc == 3), oi(ie[0], b, d, G, J, _, P), pr(B, b, d, _, P, Q);
      }
      f.C = f.Ma = d;
    }
    function ZA(f, d, B, b, Q, _, P) {
      var G = f.$ / b, J = f.$ % b, ie = f.m, Ee = f.s, He = B + f.$, se = He;
      Q = B + b * Q;
      var Ue = B + b * _, Ne = 280 + Ee.ua, At = f.Pb ? G : 16777216, Oe = 0 < Ee.ua ? Ee.Wa : null, st = Ee.wc, ot = He < Ue ? OA(Ee, J, G) : null;
      t(f.C < _), t(Ue <= Q);
      var wt = !1;
      e: for (; ; ) {
        for (; wt || He < Ue; ) {
          var ht = 0;
          if (G >= At) {
            var Zt = He - B;
            t((At = f).Pb), At.wd = At.m, At.xd = Zt, 0 < At.s.ua && Ie(At.s.Wa, At.s.vb), At = G + y4;
          }
          if (J & st || (ot = OA(Ee, J, G)), t(ot != null), ot.Qb && (d[He] = ot.qb, wt = !0), !wt) if (pe(ie), ot.jc) {
            ht = ie, Zt = d;
            var Vt = He, BA = ot.pd[j(ht) & YA - 1];
            t(ot.jc), 256 > BA.g ? (re(ht, ht.u + BA.g), Zt[Vt] = BA.value, ht = 0) : (re(ht, ht.u + BA.g - 256), t(256 <= BA.value), ht = BA.value), ht == 0 && (wt = !0);
          } else ht = CA(ot.G[0], ot.H[0], ie);
          if (ie.h) break;
          if (wt || 256 > ht) {
            if (!wt) if (ot.nd) d[He] = (ot.qb | ht << 8) >>> 0;
            else {
              if (pe(ie), wt = CA(ot.G[1], ot.H[1], ie), pe(ie), Zt = CA(ot.G[2], ot.H[2], ie), Vt = CA(ot.G[3], ot.H[3], ie), ie.h) break;
              d[He] = (Vt << 24 | wt << 16 | ht << 8 | Zt) >>> 0;
            }
            if (wt = !1, ++He, ++J >= b && (J = 0, ++G, P != null && G <= _ && !(G % 16) && P(f, G), Oe != null)) for (; se < He; ) ht = d[se++], Oe.X[(506832829 * ht & 4294967295) >>> Oe.Mb] = ht;
          } else if (280 > ht) {
            if (ht = xr(ht - 256, ie), Zt = CA(ot.G[4], ot.H[4], ie), pe(ie), Zt = PA(b, Zt = xr(Zt, ie)), ie.h) break;
            if (He - B < Zt || Q - He < ht) break e;
            for (Vt = 0; Vt < ht; ++Vt) d[He + Vt] = d[He + Vt - Zt];
            for (He += ht, J += ht; J >= b; ) J -= b, ++G, P != null && G <= _ && !(G % 16) && P(f, G);
            if (t(He <= Q), J & st && (ot = OA(Ee, J, G)), Oe != null) for (; se < He; ) ht = d[se++], Oe.X[(506832829 * ht & 4294967295) >>> Oe.Mb] = ht;
          } else {
            if (!(ht < Ne)) break e;
            for (wt = ht - 280, t(Oe != null); se < He; ) ht = d[se++], Oe.X[(506832829 * ht & 4294967295) >>> Oe.Mb] = ht;
            ht = He, t(!(wt >>> (Zt = Oe).Xa)), d[ht] = Zt.X[wt], wt = !0;
          }
          wt || t(ie.h == $(ie));
        }
        if (f.Pb && ie.h && He < Q) t(f.m.h), f.a = 5, f.m = f.wd, f.$ = f.xd, 0 < f.s.ua && Ie(f.s.vb, f.s.Wa);
        else {
          if (ie.h) break e;
          P != null && P(f, G > _ ? _ : G), f.a = 0, f.$ = He - B;
        }
        return 1;
      }
      return f.a = 3, 0;
    }
    function Lr(f) {
      t(f != null), f.vc = null, f.yc = null, f.Ya = null;
      var d = f.Wa;
      d != null && (d.X = null), f.vb = null, t(f != null);
    }
    function Un() {
      var f = new oA();
      return f == null ? null : (f.a = 0, f.xb = A0, hA("Predictor", "VP8LPredictors"), hA("Predictor", "VP8LPredictors_C"), hA("PredictorAdd", "VP8LPredictorsAdd"), hA("PredictorAdd", "VP8LPredictorsAdd_C"), Tr = Ft, Ho = St, Po = nA, Wi = qt, Gi = Ot, Yi = Pt, Cs = sA, k.VP8LMapColor32b = xa, k.VP8LMapColor8b = Oo, f);
    }
    function Dt(f, d, B, b, Q) {
      var _ = 1, P = [f], G = [d], J = b.m, ie = b.s, Ee = null, He = 0;
      e: for (; ; ) {
        if (B) for (; _ && oe(J, 1); ) {
          var se = P, Ue = G, Ne = b, At = 1, Oe = Ne.m, st = Ne.gc[Ne.ab], ot = oe(Oe, 2);
          if (Ne.Oc & 1 << ot) _ = 0;
          else {
            switch (Ne.Oc |= 1 << ot, st.hc = ot, st.Ea = se[0], st.nc = Ue[0], st.K = [null], ++Ne.ab, t(4 >= Ne.ab), ot) {
              case 0:
              case 1:
                st.b = oe(Oe, 3) + 2, At = Dt(xe(st.Ea, st.b), xe(st.nc, st.b), 0, Ne, st.K), st.K = st.K[0];
                break;
              case 3:
                var wt, ht = oe(Oe, 8) + 1, Zt = 16 < ht ? 0 : 4 < ht ? 1 : 2 < ht ? 2 : 3;
                if (se[0] = xe(st.Ea, Zt), st.b = Zt, wt = At = Dt(ht, 1, 0, Ne, st.K)) {
                  var Vt, BA = ht, $t = st, DA = 1 << (8 >> $t.b), nn = a(DA);
                  if (nn == null) wt = 0;
                  else {
                    var yA = $t.K[0], zt = $t.w;
                    for (nn[0] = $t.K[0][0], Vt = 1; Vt < 1 * BA; ++Vt) nn[Vt] = Qe(yA[zt + Vt], nn[Vt - 1]);
                    for (; Vt < 4 * DA; ++Vt) nn[Vt] = 0;
                    $t.K[0] = null, $t.K[0] = nn, wt = 1;
                  }
                }
                At = wt;
                break;
              case 2:
                break;
              default:
                t(0);
            }
            _ = At;
          }
        }
        if (P = P[0], G = G[0], _ && oe(J, 1) && !(_ = 1 <= (He = oe(J, 4)) && 11 >= He)) {
          b.a = 3;
          break e;
        }
        var Tt;
        if (Tt = _) t: {
          var qr, vA, _A, mr = b, Bn = P, Vn = G, Nr = He, Ln = B, qn = mr.m, an = mr.s, RA = [null], tr = 1, Mr = 0, Ar = B4[Nr];
          A: for (; ; ) {
            if (Ln && oe(qn, 1)) {
              var yn = oe(qn, 3) + 2, qa = xe(Bn, yn), jr = xe(Vn, yn), ra = qa * jr;
              if (!Dt(qa, jr, 0, mr, RA)) break A;
              for (RA = RA[0], an.xc = yn, qr = 0; qr < ra; ++qr) {
                var lr = RA[qr] >> 8 & 65535;
                RA[qr] = lr, lr >= tr && (tr = lr + 1);
              }
            }
            if (qn.h) break A;
            for (vA = 0; 5 > vA; ++vA) {
              var sn = e0[vA];
              !vA && 0 < Nr && (sn += 1 << Nr), Mr < sn && (Mr = sn);
            }
            var ha = s(tr * Ar, W), jn = tr, da = s(jn, le);
            if (da == null) var ga = null;
            else t(65536 >= jn), ga = da;
            var na = a(Mr);
            if (ga == null || na == null || ha == null) {
              mr.a = 1;
              break A;
            }
            var pa = ha;
            for (qr = _A = 0; qr < tr; ++qr) {
              var hr = ga[qr], va = hr.G, ja = hr.H, Fs = 0, bi = 1, bn = 0;
              for (vA = 0; 5 > vA; ++vA) {
                sn = e0[vA], va[vA] = pa, ja[vA] = _A, !vA && 0 < Nr && (sn += 1 << Nr);
                n: {
                  var Zl, lf = sn, eu = mr, Wo = na, P4 = pa, K4 = _A, uf = 0, Ji = eu.m, V4 = oe(Ji, 1);
                  if (n(Wo, 0, 0, lf), V4) {
                    var q4 = oe(Ji, 1) + 1, j4 = oe(Ji, 1), u0 = oe(Ji, j4 == 0 ? 1 : 8);
                    Wo[u0] = 1, q4 == 2 && (Wo[u0 = oe(Ji, 8)] = 1);
                    var tu = 1;
                  } else {
                    var c0 = a(19), f0 = oe(Ji, 4) + 4;
                    if (19 < f0) {
                      eu.a = 3;
                      var Au = 0;
                      break n;
                    }
                    for (Zl = 0; Zl < f0; ++Zl) c0[m4[Zl]] = oe(Ji, 3);
                    var cf = void 0, Go = void 0, h0 = eu, W4 = c0, ru = lf, d0 = Wo, ff = 0, Zi = h0.m, g0 = 8, p0 = s(128, W);
                    r: for (; U(p0, 0, 7, W4, 19); ) {
                      if (oe(Zi, 1)) {
                        var G4 = 2 + 2 * oe(Zi, 3);
                        if ((cf = 2 + oe(Zi, G4)) > ru) break r;
                      } else cf = ru;
                      for (Go = 0; Go < ru && cf--; ) {
                        pe(Zi);
                        var v0 = p0[0 + (127 & j(Zi))];
                        re(Zi, Zi.u + v0.g);
                        var so = v0.value;
                        if (16 > so) d0[Go++] = so, so != 0 && (g0 = so);
                        else {
                          var Y4 = so == 16, m0 = so - 16, $4 = p4[m0], w0 = oe(Zi, g4[m0]) + $4;
                          if (Go + w0 > ru) break r;
                          for (var z4 = Y4 ? g0 : 0; 0 < w0--; ) d0[Go++] = z4;
                        }
                      }
                      ff = 1;
                      break r;
                    }
                    ff || (h0.a = 3), tu = ff;
                  }
                  (tu = tu && !Ji.h) && (uf = U(P4, K4, 8, Wo, lf)), tu && uf != 0 ? Au = uf : (eu.a = 3, Au = 0);
                }
                if (Au == 0) break A;
                if (bi && v4[vA] == 1 && (bi = pa[_A].g == 0), Fs += pa[_A].g, _A += Au, 3 >= vA) {
                  var Yo, hf = na[0];
                  for (Yo = 1; Yo < sn; ++Yo) na[Yo] > hf && (hf = na[Yo]);
                  bn += hf;
                }
              }
              if (hr.nd = bi, hr.Qb = 0, bi && (hr.qb = (va[3][ja[3] + 0].value << 24 | va[1][ja[1] + 0].value << 16 | va[2][ja[2] + 0].value) >>> 0, Fs == 0 && 256 > va[0][ja[0] + 0].value && (hr.Qb = 1, hr.qb += va[0][ja[0] + 0].value << 8)), hr.jc = !hr.Qb && 6 > bn, hr.jc) {
                var nu, Ci = hr;
                for (nu = 0; nu < YA; ++nu) {
                  var es = nu, ts = Ci.pd[es], au = Ci.G[0][Ci.H[0] + es];
                  256 <= au.value ? (ts.g = au.g + 256, ts.value = au.value) : (ts.g = 0, ts.value = 0, es >>= MA(au, 8, ts), es >>= MA(Ci.G[1][Ci.H[1] + es], 16, ts), es >>= MA(Ci.G[2][Ci.H[2] + es], 0, ts), MA(Ci.G[3][Ci.H[3] + es], 24, ts));
                }
              }
            }
            an.vc = RA, an.Wb = tr, an.Ya = ga, an.yc = ha, Tt = 1;
            break t;
          }
          Tt = 0;
        }
        if (!(_ = Tt)) {
          b.a = 3;
          break e;
        }
        if (0 < He) {
          if (ie.ua = 1 << He, !D(ie.Wa, He)) {
            b.a = 1, _ = 0;
            break e;
          }
        } else ie.ua = 0;
        var df = b, B0 = P, X4 = G, gf = df.s, pf = gf.xc;
        if (df.c = B0, df.i = X4, gf.md = xe(B0, pf), gf.wc = pf == 0 ? -1 : (1 << pf) - 1, B) {
          b.xb = U4;
          break e;
        }
        if ((Ee = a(P * G)) == null) {
          b.a = 1, _ = 0;
          break e;
        }
        _ = (_ = ZA(b, Ee, 0, P, G, G, null)) && !J.h;
        break e;
      }
      return _ ? (Q != null ? Q[0] = Ee : (t(Ee == null), t(B)), b.$ = 0, B || Lr(ie)) : Lr(ie), _;
    }
    function be(f, d) {
      var B = f.c * f.i, b = B + d + 16 * d;
      return t(f.c <= d), f.V = a(b), f.V == null ? (f.Ta = null, f.Ua = 0, f.a = 1, 0) : (f.Ta = f.V, f.Ua = f.Ba + B + d, 1);
    }
    function z(f, d) {
      var B = f.C, b = d - B, Q = f.V, _ = f.Ba + f.c * B;
      for (t(d <= f.l.o); 0 < b; ) {
        var P = 16 < b ? 16 : b, G = f.l.ma, J = f.l.width, ie = J * P, Ee = G.ca, He = G.tb + J * B, se = f.Ta, Ue = f.Ua;
        Dr(f, P, Q, _), Wv(se, Ue, Ee, He, ie), pr(G, B, B + P, Ee, He, J), b -= P, Q += P * f.c, B += P;
      }
      t(B == d), f.C = f.Ma = d;
    }
    function ge() {
      this.ub = this.yd = this.td = this.Rb = 0;
    }
    function We() {
      this.Kd = this.Ld = this.Ud = this.Td = this.i = this.c = 0;
    }
    function it() {
      this.Fb = this.Bb = this.Cb = 0, this.Zb = a(4), this.Lb = a(4);
    }
    function V() {
      this.Yb = (function() {
        var f = [];
        return (function d(B, b, Q) {
          for (var _ = Q[b], P = 0; P < _ && (B.push(Q.length > b + 1 ? [] : 0), !(Q.length < b + 1)); P++) d(B[P], b + 1, Q);
        })(f, 0, [3, 11]), f;
      })();
    }
    function Be() {
      this.jb = a(3), this.Wc = i([4, 8], V), this.Xc = i([4, 17], V);
    }
    function Fe() {
      this.Pc = this.wb = this.Tb = this.zd = 0, this.vd = new a(4), this.od = new a(4);
    }
    function ke() {
      this.ld = this.La = this.dd = this.tc = 0;
    }
    function Ze() {
      this.Na = this.la = 0;
    }
    function Me() {
      this.Sc = [0, 0], this.Eb = [0, 0], this.Qc = [0, 0], this.ia = this.lc = 0;
    }
    function tt() {
      this.ad = a(384), this.Za = 0, this.Ob = a(16), this.$b = this.Ad = this.ia = this.Gc = this.Hc = this.Dd = 0;
    }
    function Je() {
      this.uc = this.M = this.Nb = 0, this.wa = Array(new ke()), this.Y = 0, this.ya = Array(new tt()), this.aa = 0, this.l = new fA();
    }
    function ft() {
      this.y = a(16), this.f = a(8), this.ea = a(8);
    }
    function Et() {
      this.cb = this.a = 0, this.sc = "", this.m = new x(), this.Od = new ge(), this.Kc = new We(), this.ed = new Fe(), this.Qa = new it(), this.Ic = this.$c = this.Aa = 0, this.D = new Je(), this.Xb = this.Va = this.Hb = this.zb = this.yb = this.Ub = this.za = 0, this.Jc = s(8, x), this.ia = 0, this.pb = s(4, Me), this.Pa = new Be(), this.Bd = this.kc = 0, this.Ac = [], this.Bc = 0, this.zc = [0, 0, 0, 0], this.Gd = Array(new ft()), this.Hd = 0, this.rb = Array(new Ze()), this.sb = 0, this.wa = Array(new ke()), this.Y = 0, this.oc = [], this.pc = 0, this.sa = [], this.ta = 0, this.qa = [], this.ra = 0, this.Ha = [], this.B = this.R = this.Ia = 0, this.Ec = [], this.M = this.ja = this.Vb = this.Fc = 0, this.ya = Array(new tt()), this.L = this.aa = 0, this.gd = i([4, 2], ke), this.ga = null, this.Fa = [], this.Cc = this.qc = this.P = 0, this.Gb = [], this.Uc = 0, this.mb = [], this.nb = 0, this.rc = [], this.Ga = this.Vc = 0;
    }
    function Jt(f, d) {
      return 0 > f ? 0 : f > d ? d : f;
    }
    function fA() {
      this.T = this.U = this.ka = this.height = this.width = 0, this.y = [], this.f = [], this.ea = [], this.Rc = this.fa = this.W = this.N = this.O = 0, this.ma = "void", this.put = "VP8IoPutHook", this.ac = "VP8IoSetupHook", this.bc = "VP8IoTeardownHook", this.ha = this.Kb = 0, this.data = [], this.hb = this.ib = this.da = this.o = this.j = this.va = this.v = this.Da = this.ob = this.w = 0, this.F = [], this.J = 0;
    }
    function gA() {
      var f = new Et();
      return f != null && (f.a = 0, f.sc = "OK", f.cb = 0, f.Xb = 0, qo || (qo = UA)), f;
    }
    function Xt(f, d, B) {
      return f.a == 0 && (f.a = d, f.sc = B, f.cb = 0), 0;
    }
    function tA(f, d, B) {
      return 3 <= B && f[d + 0] == 157 && f[d + 1] == 1 && f[d + 2] == 42;
    }
    function Gt(f, d) {
      if (f == null) return 0;
      if (f.a = 0, f.sc = "OK", d == null) return Xt(f, 2, "null VP8Io passed to VP8GetHeaders()");
      var B = d.data, b = d.w, Q = d.ha;
      if (4 > Q) return Xt(f, 7, "Truncated header.");
      var _ = B[b + 0] | B[b + 1] << 8 | B[b + 2] << 16, P = f.Od;
      if (P.Rb = !(1 & _), P.td = _ >> 1 & 7, P.yd = _ >> 4 & 1, P.ub = _ >> 5, 3 < P.td) return Xt(f, 3, "Incorrect keyframe parameters.");
      if (!P.yd) return Xt(f, 4, "Frame not displayable.");
      b += 3, Q -= 3;
      var G = f.Kc;
      if (P.Rb) {
        if (7 > Q) return Xt(f, 7, "cannot parse picture header");
        if (!tA(B, b, Q)) return Xt(f, 3, "Bad code word");
        G.c = 16383 & (B[b + 4] << 8 | B[b + 3]), G.Td = B[b + 4] >> 6, G.i = 16383 & (B[b + 6] << 8 | B[b + 5]), G.Ud = B[b + 6] >> 6, b += 7, Q -= 7, f.za = G.c + 15 >> 4, f.Ub = G.i + 15 >> 4, d.width = G.c, d.height = G.i, d.Da = 0, d.j = 0, d.v = 0, d.va = d.width, d.o = d.height, d.da = 0, d.ib = d.width, d.hb = d.height, d.U = d.width, d.T = d.height, n((_ = f.Pa).jb, 0, 255, _.jb.length), t((_ = f.Qa) != null), _.Cb = 0, _.Bb = 0, _.Fb = 1, n(_.Zb, 0, 0, _.Zb.length), n(_.Lb, 0, 0, _.Lb);
      }
      if (P.ub > Q) return Xt(f, 7, "bad partition length");
      ue(_ = f.m, B, b, P.ub), b += P.ub, Q -= P.ub, P.Rb && (G.Ld = ce(_), G.Kd = ce(_)), G = f.Qa;
      var J, ie = f.Pa;
      if (t(_ != null), t(G != null), G.Cb = ce(_), G.Cb) {
        if (G.Bb = ce(_), ce(_)) {
          for (G.Fb = ce(_), J = 0; 4 > J; ++J) G.Zb[J] = ce(_) ? ee(_, 7) : 0;
          for (J = 0; 4 > J; ++J) G.Lb[J] = ce(_) ? ee(_, 6) : 0;
        }
        if (G.Bb) for (J = 0; 3 > J; ++J) ie.jb[J] = ce(_) ? Z(_, 8) : 255;
      } else G.Bb = 0;
      if (_.Ka) return Xt(f, 3, "cannot parse segment header");
      if ((G = f.ed).zd = ce(_), G.Tb = Z(_, 6), G.wb = Z(_, 3), G.Pc = ce(_), G.Pc && ce(_)) {
        for (ie = 0; 4 > ie; ++ie) ce(_) && (G.vd[ie] = ee(_, 6));
        for (ie = 0; 4 > ie; ++ie) ce(_) && (G.od[ie] = ee(_, 6));
      }
      if (f.L = G.Tb == 0 ? 0 : G.zd ? 1 : 2, _.Ka) return Xt(f, 3, "cannot parse filter header");
      var Ee = Q;
      if (Q = J = b, b = J + Ee, G = Ee, f.Xb = (1 << Z(f.m, 2)) - 1, Ee < 3 * (ie = f.Xb)) B = 7;
      else {
        for (J += 3 * ie, G -= 3 * ie, Ee = 0; Ee < ie; ++Ee) {
          var He = B[Q + 0] | B[Q + 1] << 8 | B[Q + 2] << 16;
          He > G && (He = G), ue(f.Jc[+Ee], B, J, He), J += He, G -= He, Q += 3;
        }
        ue(f.Jc[+ie], B, J, G), B = J < b ? 0 : 5;
      }
      if (B != 0) return Xt(f, B, "cannot parse partitions");
      for (B = Z(J = f.m, 7), Q = ce(J) ? ee(J, 4) : 0, b = ce(J) ? ee(J, 4) : 0, G = ce(J) ? ee(J, 4) : 0, ie = ce(J) ? ee(J, 4) : 0, J = ce(J) ? ee(J, 4) : 0, Ee = f.Qa, He = 0; 4 > He; ++He) {
        if (Ee.Cb) {
          var se = Ee.Zb[He];
          Ee.Fb || (se += B);
        } else {
          if (0 < He) {
            f.pb[He] = f.pb[0];
            continue;
          }
          se = B;
        }
        var Ue = f.pb[He];
        Ue.Sc[0] = af[Jt(se + Q, 127)], Ue.Sc[1] = sf[Jt(se + 0, 127)], Ue.Eb[0] = 2 * af[Jt(se + b, 127)], Ue.Eb[1] = 101581 * sf[Jt(se + G, 127)] >> 16, 8 > Ue.Eb[1] && (Ue.Eb[1] = 8), Ue.Qc[0] = af[Jt(se + ie, 117)], Ue.Qc[1] = sf[Jt(se + J, 127)], Ue.lc = se + J;
      }
      if (!P.Rb) return Xt(f, 4, "Not a key frame.");
      for (ce(_), P = f.Pa, B = 0; 4 > B; ++B) {
        for (Q = 0; 8 > Q; ++Q) for (b = 0; 3 > b; ++b) for (G = 0; 11 > G; ++G) ie = Se(_, x4[B][Q][b][G]) ? Z(_, 8) : E4[B][Q][b][G], P.Wc[B][Q].Yb[b][G] = ie;
        for (Q = 0; 17 > Q; ++Q) P.Xc[B][Q] = P.Wc[B][S4[Q]];
      }
      return f.kc = ce(_), f.kc && (f.Bd = Z(_, 8)), f.cb = 1;
    }
    function UA(f, d, B, b, Q, _, P) {
      var G = d[Q].Yb[B];
      for (B = 0; 16 > Q; ++Q) {
        if (!Se(f, G[B + 0])) return Q;
        for (; !Se(f, G[B + 1]); ) if (G = d[++Q].Yb[0], B = 0, Q == 16) return 16;
        var J = d[Q + 1].Yb;
        if (Se(f, G[B + 2])) {
          var ie = f, Ee = 0;
          if (Se(ie, (se = G)[(He = B) + 3])) if (Se(ie, se[He + 6])) {
            for (G = 0, He = 2 * (Ee = Se(ie, se[He + 8])) + (se = Se(ie, se[He + 9 + Ee])), Ee = 0, se = b4[He]; se[G]; ++G) Ee += Ee + Se(ie, se[G]);
            Ee += 3 + (8 << He);
          } else Se(ie, se[He + 7]) ? (Ee = 7 + 2 * Se(ie, 165), Ee += Se(ie, 145)) : Ee = 5 + Se(ie, 159);
          else Ee = Se(ie, se[He + 4]) ? 3 + Se(ie, se[He + 5]) : 2;
          G = J[2];
        } else Ee = 1, G = J[1];
        J = P + C4[Q], 0 > (ie = f).b && de(ie);
        var He, se = ie.b, Ue = (He = ie.Ca >> 1) - (ie.I >> se) >> 31;
        --ie.b, ie.Ca += Ue, ie.Ca |= 1, ie.I -= (He + 1 & Ue) << se, _[J] = ((Ee ^ Ue) - Ue) * b[(0 < Q) + 0];
      }
      return 16;
    }
    function FA(f) {
      var d = f.rb[f.sb - 1];
      d.la = 0, d.Na = 0, n(f.zc, 0, 0, f.zc.length), f.ja = 0;
    }
    function IA(f, d, B, b, Q) {
      Q = f[d + B + 32 * b] + (Q >> 3), f[d + B + 32 * b] = -256 & Q ? 0 > Q ? 0 : 255 : Q;
    }
    function aA(f, d, B, b, Q, _) {
      IA(f, d, 0, B, b + Q), IA(f, d, 1, B, b + _), IA(f, d, 2, B, b - _), IA(f, d, 3, B, b - Q);
    }
    function An(f) {
      return (20091 * f >> 16) + f;
    }
    function Tn(f, d, B, b) {
      var Q, _ = 0, P = a(16);
      for (Q = 0; 4 > Q; ++Q) {
        var G = f[d + 0] + f[d + 8], J = f[d + 0] - f[d + 8], ie = (35468 * f[d + 4] >> 16) - An(f[d + 12]), Ee = An(f[d + 4]) + (35468 * f[d + 12] >> 16);
        P[_ + 0] = G + Ee, P[_ + 1] = J + ie, P[_ + 2] = J - ie, P[_ + 3] = G - Ee, _ += 4, d++;
      }
      for (Q = _ = 0; 4 > Q; ++Q) G = (f = P[_ + 0] + 4) + P[_ + 8], J = f - P[_ + 8], ie = (35468 * P[_ + 4] >> 16) - An(P[_ + 12]), IA(B, b, 0, 0, G + (Ee = An(P[_ + 4]) + (35468 * P[_ + 12] >> 16))), IA(B, b, 1, 0, J + ie), IA(B, b, 2, 0, J - ie), IA(B, b, 3, 0, G - Ee), _++, b += 32;
    }
    function ea(f, d, B, b) {
      var Q = f[d + 0] + 4, _ = 35468 * f[d + 4] >> 16, P = An(f[d + 4]), G = 35468 * f[d + 1] >> 16;
      aA(B, b, 0, Q + P, f = An(f[d + 1]), G), aA(B, b, 1, Q + _, f, G), aA(B, b, 2, Q - _, f, G), aA(B, b, 3, Q - P, f, G);
    }
    function Pn(f, d, B, b, Q) {
      Tn(f, d, B, b), Q && Tn(f, d + 16, B, b + 4);
    }
    function WA(f, d, B, b) {
      Es(f, d + 0, B, b, 1), Es(f, d + 32, B, b + 128, 1);
    }
    function bA(f, d, B, b) {
      var Q;
      for (f = f[d + 0] + 4, Q = 0; 4 > Q; ++Q) for (d = 0; 4 > d; ++d) IA(B, b, d, Q, f);
    }
    function nr(f, d, B, b) {
      f[d + 0] && $A(f, d + 0, B, b), f[d + 16] && $A(f, d + 16, B, b + 4), f[d + 32] && $A(f, d + 32, B, b + 128), f[d + 48] && $A(f, d + 48, B, b + 128 + 4);
    }
    function GA(f, d, B, b) {
      var Q, _ = a(16);
      for (Q = 0; 4 > Q; ++Q) {
        var P = f[d + 0 + Q] + f[d + 12 + Q], G = f[d + 4 + Q] + f[d + 8 + Q], J = f[d + 4 + Q] - f[d + 8 + Q], ie = f[d + 0 + Q] - f[d + 12 + Q];
        _[0 + Q] = P + G, _[8 + Q] = P - G, _[4 + Q] = ie + J, _[12 + Q] = ie - J;
      }
      for (Q = 0; 4 > Q; ++Q) P = (f = _[0 + 4 * Q] + 3) + _[3 + 4 * Q], G = _[1 + 4 * Q] + _[2 + 4 * Q], J = _[1 + 4 * Q] - _[2 + 4 * Q], ie = f - _[3 + 4 * Q], B[b + 0] = P + G >> 3, B[b + 16] = ie + J >> 3, B[b + 32] = P - G >> 3, B[b + 48] = ie - J >> 3, b += 64;
    }
    function cr(f, d, B) {
      var b, Q = d - 32, _ = fa, P = 255 - f[Q - 1];
      for (b = 0; b < B; ++b) {
        var G, J = _, ie = P + f[d - 1];
        for (G = 0; G < B; ++G) f[d + G] = J[ie + f[Q + G]];
        d += 32;
      }
    }
    function pn(f, d) {
      cr(f, d, 4);
    }
    function ba(f, d) {
      cr(f, d, 8);
    }
    function la(f, d) {
      cr(f, d, 16);
    }
    function Qn(f, d) {
      var B;
      for (B = 0; 16 > B; ++B) A(f, d + 32 * B, f, d - 32, 16);
    }
    function Ca(f, d) {
      var B;
      for (B = 16; 0 < B; --B) n(f, d, f[d - 1], 16), d += 32;
    }
    function Kr(f, d, B) {
      var b;
      for (b = 0; 16 > b; ++b) n(d, B + 32 * b, f, 16);
    }
    function Dn(f, d) {
      var B, b = 16;
      for (B = 0; 16 > B; ++B) b += f[d - 1 + 32 * B] + f[d + B - 32];
      Kr(b >> 5, f, d);
    }
    function Ir(f, d) {
      var B, b = 8;
      for (B = 0; 16 > B; ++B) b += f[d - 1 + 32 * B];
      Kr(b >> 4, f, d);
    }
    function kn(f, d) {
      var B, b = 8;
      for (B = 0; 16 > B; ++B) b += f[d + B - 32];
      Kr(b >> 4, f, d);
    }
    function zs(f, d) {
      Kr(128, f, d);
    }
    function lA(f, d, B) {
      return f + 2 * d + B + 2 >> 2;
    }
    function Mo(f, d) {
      var B, b = d - 32;
      for (b = new Uint8Array([lA(f[b - 1], f[b + 0], f[b + 1]), lA(f[b + 0], f[b + 1], f[b + 2]), lA(f[b + 1], f[b + 2], f[b + 3]), lA(f[b + 2], f[b + 3], f[b + 4])]), B = 0; 4 > B; ++B) A(f, d + 32 * B, b, 0, b.length);
    }
    function Xs(f, d) {
      var B = f[d - 1], b = f[d - 1 + 32], Q = f[d - 1 + 64], _ = f[d - 1 + 96];
      qe(f, d + 0, 16843009 * lA(f[d - 1 - 32], B, b)), qe(f, d + 32, 16843009 * lA(B, b, Q)), qe(f, d + 64, 16843009 * lA(b, Q, _)), qe(f, d + 96, 16843009 * lA(Q, _, _));
    }
    function Js(f, d) {
      var B, b = 4;
      for (B = 0; 4 > B; ++B) b += f[d + B - 32] + f[d - 1 + 32 * B];
      for (b >>= 3, B = 0; 4 > B; ++B) n(f, d + 32 * B, b, 4);
    }
    function Ra(f, d) {
      var B = f[d - 1 + 0], b = f[d - 1 + 32], Q = f[d - 1 + 64], _ = f[d - 1 - 32], P = f[d + 0 - 32], G = f[d + 1 - 32], J = f[d + 2 - 32], ie = f[d + 3 - 32];
      f[d + 0 + 96] = lA(b, Q, f[d - 1 + 96]), f[d + 1 + 96] = f[d + 0 + 64] = lA(B, b, Q), f[d + 2 + 96] = f[d + 1 + 64] = f[d + 0 + 32] = lA(_, B, b), f[d + 3 + 96] = f[d + 2 + 64] = f[d + 1 + 32] = f[d + 0 + 0] = lA(P, _, B), f[d + 3 + 64] = f[d + 2 + 32] = f[d + 1 + 0] = lA(G, P, _), f[d + 3 + 32] = f[d + 2 + 0] = lA(J, G, P), f[d + 3 + 0] = lA(ie, J, G);
    }
    function vn(f, d) {
      var B = f[d + 1 - 32], b = f[d + 2 - 32], Q = f[d + 3 - 32], _ = f[d + 4 - 32], P = f[d + 5 - 32], G = f[d + 6 - 32], J = f[d + 7 - 32];
      f[d + 0 + 0] = lA(f[d + 0 - 32], B, b), f[d + 1 + 0] = f[d + 0 + 32] = lA(B, b, Q), f[d + 2 + 0] = f[d + 1 + 32] = f[d + 0 + 64] = lA(b, Q, _), f[d + 3 + 0] = f[d + 2 + 32] = f[d + 1 + 64] = f[d + 0 + 96] = lA(Q, _, P), f[d + 3 + 32] = f[d + 2 + 64] = f[d + 1 + 96] = lA(_, P, G), f[d + 3 + 64] = f[d + 2 + 96] = lA(P, G, J), f[d + 3 + 96] = lA(G, J, J);
    }
    function Bs(f, d) {
      var B = f[d - 1 + 0], b = f[d - 1 + 32], Q = f[d - 1 + 64], _ = f[d - 1 - 32], P = f[d + 0 - 32], G = f[d + 1 - 32], J = f[d + 2 - 32], ie = f[d + 3 - 32];
      f[d + 0 + 0] = f[d + 1 + 64] = _ + P + 1 >> 1, f[d + 1 + 0] = f[d + 2 + 64] = P + G + 1 >> 1, f[d + 2 + 0] = f[d + 3 + 64] = G + J + 1 >> 1, f[d + 3 + 0] = J + ie + 1 >> 1, f[d + 0 + 96] = lA(Q, b, B), f[d + 0 + 64] = lA(b, B, _), f[d + 0 + 32] = f[d + 1 + 96] = lA(B, _, P), f[d + 1 + 32] = f[d + 2 + 96] = lA(_, P, G), f[d + 2 + 32] = f[d + 3 + 96] = lA(P, G, J), f[d + 3 + 32] = lA(G, J, ie);
    }
    function Zs(f, d) {
      var B = f[d + 0 - 32], b = f[d + 1 - 32], Q = f[d + 2 - 32], _ = f[d + 3 - 32], P = f[d + 4 - 32], G = f[d + 5 - 32], J = f[d + 6 - 32], ie = f[d + 7 - 32];
      f[d + 0 + 0] = B + b + 1 >> 1, f[d + 1 + 0] = f[d + 0 + 64] = b + Q + 1 >> 1, f[d + 2 + 0] = f[d + 1 + 64] = Q + _ + 1 >> 1, f[d + 3 + 0] = f[d + 2 + 64] = _ + P + 1 >> 1, f[d + 0 + 32] = lA(B, b, Q), f[d + 1 + 32] = f[d + 0 + 96] = lA(b, Q, _), f[d + 2 + 32] = f[d + 1 + 96] = lA(Q, _, P), f[d + 3 + 32] = f[d + 2 + 96] = lA(_, P, G), f[d + 3 + 64] = lA(P, G, J), f[d + 3 + 96] = lA(G, J, ie);
    }
    function ni(f, d) {
      var B = f[d - 1 + 0], b = f[d - 1 + 32], Q = f[d - 1 + 64], _ = f[d - 1 + 96];
      f[d + 0 + 0] = B + b + 1 >> 1, f[d + 2 + 0] = f[d + 0 + 32] = b + Q + 1 >> 1, f[d + 2 + 32] = f[d + 0 + 64] = Q + _ + 1 >> 1, f[d + 1 + 0] = lA(B, b, Q), f[d + 3 + 0] = f[d + 1 + 32] = lA(b, Q, _), f[d + 3 + 32] = f[d + 1 + 64] = lA(Q, _, _), f[d + 3 + 64] = f[d + 2 + 64] = f[d + 0 + 96] = f[d + 1 + 96] = f[d + 2 + 96] = f[d + 3 + 96] = _;
    }
    function Hi(f, d) {
      var B = f[d - 1 + 0], b = f[d - 1 + 32], Q = f[d - 1 + 64], _ = f[d - 1 + 96], P = f[d - 1 - 32], G = f[d + 0 - 32], J = f[d + 1 - 32], ie = f[d + 2 - 32];
      f[d + 0 + 0] = f[d + 2 + 32] = B + P + 1 >> 1, f[d + 0 + 32] = f[d + 2 + 64] = b + B + 1 >> 1, f[d + 0 + 64] = f[d + 2 + 96] = Q + b + 1 >> 1, f[d + 0 + 96] = _ + Q + 1 >> 1, f[d + 3 + 0] = lA(G, J, ie), f[d + 2 + 0] = lA(P, G, J), f[d + 1 + 0] = f[d + 3 + 32] = lA(B, P, G), f[d + 1 + 32] = f[d + 3 + 64] = lA(b, B, P), f[d + 1 + 64] = f[d + 3 + 96] = lA(Q, b, B), f[d + 1 + 96] = lA(_, Q, b);
    }
    function wA(f, d) {
      var B;
      for (B = 0; 8 > B; ++B) A(f, d + 32 * B, f, d - 32, 8);
    }
    function ta(f, d) {
      var B;
      for (B = 0; 8 > B; ++B) n(f, d, f[d - 1], 8), d += 32;
    }
    function mn(f, d, B) {
      var b;
      for (b = 0; 8 > b; ++b) n(d, B + 32 * b, f, 8);
    }
    function Pi(f, d) {
      var B, b = 8;
      for (B = 0; 8 > B; ++B) b += f[d + B - 32] + f[d - 1 + 32 * B];
      mn(b >> 4, f, d);
    }
    function ai(f, d) {
      var B, b = 4;
      for (B = 0; 8 > B; ++B) b += f[d + B - 32];
      mn(b >> 3, f, d);
    }
    function ys(f, d) {
      var B, b = 4;
      for (B = 0; 8 > B; ++B) b += f[d - 1 + 32 * B];
      mn(b >> 3, f, d);
    }
    function eo(f, d) {
      mn(128, f, d);
    }
    function Aa(f, d, B) {
      var b = f[d - B], Q = f[d + 0], _ = 3 * (Q - b) + ef[1020 + f[d - 2 * B] - f[d + B]], P = ql[112 + (_ + 4 >> 3)];
      f[d - B] = fa[255 + b + ql[112 + (_ + 3 >> 3)]], f[d + 0] = fa[255 + Q - P];
    }
    function ii(f, d, B, b) {
      var Q = f[d + 0], _ = f[d + B];
      return Ua[255 + f[d - 2 * B] - f[d - B]] > b || Ua[255 + _ - Q] > b;
    }
    function Ki(f, d, B, b) {
      return 4 * Ua[255 + f[d - B] - f[d + 0]] + Ua[255 + f[d - 2 * B] - f[d + B]] <= b;
    }
    function Vi(f, d, B, b, Q) {
      var _ = f[d - 3 * B], P = f[d - 2 * B], G = f[d - B], J = f[d + 0], ie = f[d + B], Ee = f[d + 2 * B], He = f[d + 3 * B];
      return 4 * Ua[255 + G - J] + Ua[255 + P - ie] > b ? 0 : Ua[255 + f[d - 4 * B] - _] <= Q && Ua[255 + _ - P] <= Q && Ua[255 + P - G] <= Q && Ua[255 + He - Ee] <= Q && Ua[255 + Ee - ie] <= Q && Ua[255 + ie - J] <= Q;
    }
    function Ea(f, d, B, b) {
      var Q = 2 * b + 1;
      for (b = 0; 16 > b; ++b) Ki(f, d + b, B, Q) && Aa(f, d + b, B);
    }
    function qi(f, d, B, b) {
      var Q = 2 * b + 1;
      for (b = 0; 16 > b; ++b) Ki(f, d + b * B, 1, Q) && Aa(f, d + b * B, 1);
    }
    function to(f, d, B, b) {
      var Q;
      for (Q = 3; 0 < Q; --Q) Ea(f, d += 4 * B, B, b);
    }
    function Ao(f, d, B, b) {
      var Q;
      for (Q = 3; 0 < Q; --Q) qi(f, d += 4, B, b);
    }
    function Ha(f, d, B, b, Q, _, P, G) {
      for (_ = 2 * _ + 1; 0 < Q--; ) {
        if (Vi(f, d, B, _, P)) if (ii(f, d, B, G)) Aa(f, d, B);
        else {
          var J = f, ie = d, Ee = B, He = J[ie - 2 * Ee], se = J[ie - Ee], Ue = J[ie + 0], Ne = J[ie + Ee], At = J[ie + 2 * Ee], Oe = 27 * (ot = ef[1020 + 3 * (Ue - se) + ef[1020 + He - Ne]]) + 63 >> 7, st = 18 * ot + 63 >> 7, ot = 9 * ot + 63 >> 7;
          J[ie - 3 * Ee] = fa[255 + J[ie - 3 * Ee] + ot], J[ie - 2 * Ee] = fa[255 + He + st], J[ie - Ee] = fa[255 + se + Oe], J[ie + 0] = fa[255 + Ue - Oe], J[ie + Ee] = fa[255 + Ne - st], J[ie + 2 * Ee] = fa[255 + At - ot];
        }
        d += b;
      }
    }
    function Pa(f, d, B, b, Q, _, P, G) {
      for (_ = 2 * _ + 1; 0 < Q--; ) {
        if (Vi(f, d, B, _, P)) if (ii(f, d, B, G)) Aa(f, d, B);
        else {
          var J = f, ie = d, Ee = B, He = J[ie - Ee], se = J[ie + 0], Ue = J[ie + Ee], Ne = ql[112 + (4 + (At = 3 * (se - He)) >> 3)], At = ql[112 + (At + 3 >> 3)], Oe = Ne + 1 >> 1;
          J[ie - 2 * Ee] = fa[255 + J[ie - 2 * Ee] + Oe], J[ie - Ee] = fa[255 + He + At], J[ie + 0] = fa[255 + se - Ne], J[ie + Ee] = fa[255 + Ue - Oe];
        }
        d += b;
      }
    }
    function ro(f, d, B, b, Q, _) {
      Ha(f, d, B, 1, 16, b, Q, _);
    }
    function ua(f, d, B, b, Q, _) {
      Ha(f, d, 1, B, 16, b, Q, _);
    }
    function no(f, d, B, b, Q, _) {
      var P;
      for (P = 3; 0 < P; --P) Pa(f, d += 4 * B, B, 1, 16, b, Q, _);
    }
    function v(f, d, B, b, Q, _) {
      var P;
      for (P = 3; 0 < P; --P) Pa(f, d += 4, 1, B, 16, b, Q, _);
    }
    function T(f, d, B, b, Q, _, P, G) {
      Ha(f, d, Q, 1, 8, _, P, G), Ha(B, b, Q, 1, 8, _, P, G);
    }
    function ne(f, d, B, b, Q, _, P, G) {
      Ha(f, d, 1, Q, 8, _, P, G), Ha(B, b, 1, Q, 8, _, P, G);
    }
    function we(f, d, B, b, Q, _, P, G) {
      Pa(f, d + 4 * Q, Q, 1, 8, _, P, G), Pa(B, b + 4 * Q, Q, 1, 8, _, P, G);
    }
    function De(f, d, B, b, Q, _, P, G) {
      Pa(f, d + 4, 1, Q, 8, _, P, G), Pa(B, b + 4, 1, Q, 8, _, P, G);
    }
    function nt() {
      this.ba = new Re(), this.ec = [], this.cc = [], this.Mc = [], this.Dc = this.Nc = this.dc = this.fc = 0, this.Oa = new xt(), this.memory = 0, this.Ib = "OutputFunc", this.Jb = "OutputAlphaFunc", this.Nd = "OutputRowFunc";
    }
    function ct() {
      this.data = [], this.offset = this.kd = this.ha = this.w = 0, this.na = [], this.xa = this.gb = this.Ja = this.Sa = this.P = 0;
    }
    function Kt() {
      this.nc = this.Ea = this.b = this.hc = 0, this.K = [], this.w = 0;
    }
    function Yt() {
      this.ua = 0, this.Wa = new me(), this.vb = new me(), this.md = this.xc = this.wc = 0, this.vc = [], this.Wb = 0, this.Ya = new le(), this.yc = new W();
    }
    function oA() {
      this.xb = this.a = 0, this.l = new fA(), this.ca = new Re(), this.V = [], this.Ba = 0, this.Ta = [], this.Ua = 0, this.m = new L(), this.Pb = 0, this.wd = new L(), this.Ma = this.$ = this.C = this.i = this.c = this.xd = 0, this.s = new Yt(), this.ab = 0, this.gc = s(4, Kt), this.Oc = 0;
    }
    function dA() {
      this.Lc = this.Z = this.$a = this.i = this.c = 0, this.l = new fA(), this.ic = 0, this.ca = [], this.tb = 0, this.qd = null, this.rd = 0;
    }
    function QA(f, d, B, b, Q, _, P) {
      for (f = f == null ? 0 : f[d + 0], d = 0; d < P; ++d) Q[_ + d] = f + B[b + d] & 255, f = Q[_ + d];
    }
    function vr(f, d, B, b, Q, _, P) {
      var G;
      if (f == null) QA(null, null, B, b, Q, _, P);
      else for (G = 0; G < P; ++G) Q[_ + G] = f[d + G] + B[b + G] & 255;
    }
    function R(f, d, B, b, Q, _, P) {
      if (f == null) QA(null, null, B, b, Q, _, P);
      else {
        var G, J = f[d + 0], ie = J, Ee = J;
        for (G = 0; G < P; ++G) ie = Ee + (J = f[d + G]) - ie, Ee = B[b + G] + (-256 & ie ? 0 > ie ? 0 : 255 : ie) & 255, ie = J, Q[_ + G] = Ee;
      }
    }
    function te(f, d, B, b) {
      var Q = d.width, _ = d.o;
      if (t(f != null && d != null), 0 > B || 0 >= b || B + b > _) return null;
      if (!f.Cc) {
        if (f.ga == null) {
          var P;
          if (f.ga = new dA(), (P = f.ga == null) || (P = d.width * d.o, t(f.Gb.length == 0), f.Gb = a(P), f.Uc = 0, f.Gb == null ? P = 0 : (f.mb = f.Gb, f.nb = f.Uc, f.rc = null, P = 1), P = !P), !P) {
            P = f.ga;
            var G = f.Fa, J = f.P, ie = f.qc, Ee = f.mb, He = f.nb, se = J + 1, Ue = ie - 1, Ne = P.l;
            if (t(G != null && Ee != null && d != null), Xi[0] = null, Xi[1] = QA, Xi[2] = vr, Xi[3] = R, P.ca = Ee, P.tb = He, P.c = d.width, P.i = d.height, t(0 < P.c && 0 < P.i), 1 >= ie) d = 0;
            else if (P.$a = 3 & G[J + 0], P.Z = G[J + 0] >> 2 & 3, P.Lc = G[J + 0] >> 4 & 3, J = G[J + 0] >> 6 & 3, 0 > P.$a || 1 < P.$a || 4 <= P.Z || 1 < P.Lc || J) d = 0;
            else if (Ne.put = Lt, Ne.ac = JA, Ne.bc = Qr, Ne.ma = P, Ne.width = d.width, Ne.height = d.height, Ne.Da = d.Da, Ne.v = d.v, Ne.va = d.va, Ne.j = d.j, Ne.o = d.o, P.$a) e: {
              t(P.$a == 1), d = Un();
              t: for (; ; ) {
                if (d == null) {
                  d = 0;
                  break e;
                }
                if (t(P != null), P.mc = d, d.c = P.c, d.i = P.i, d.l = P.l, d.l.ma = P, d.l.width = P.c, d.l.height = P.i, d.a = 0, X(d.m, G, se, Ue), !Dt(P.c, P.i, 1, d, null) || (d.ab == 1 && d.gc[0].hc == 3 && LA(d.s) ? (P.ic = 1, G = d.c * d.i, d.Ta = null, d.Ua = 0, d.V = a(G), d.Ba = 0, d.V == null ? (d.a = 1, d = 0) : d = 1) : (P.ic = 0, d = be(d, P.c)), !d)) break t;
                d = 1;
                break e;
              }
              P.mc = null, d = 0;
            }
            else d = Ue >= P.c * P.i;
            P = !d;
          }
          if (P) return null;
          f.ga.Lc != 1 ? f.Ga = 0 : b = _ - B;
        }
        t(f.ga != null), t(B + b <= _);
        e: {
          if (d = (G = f.ga).c, _ = G.l.o, G.$a == 0) {
            if (se = f.rc, Ue = f.Vc, Ne = f.Fa, J = f.P + 1 + B * d, ie = f.mb, Ee = f.nb + B * d, t(J <= f.P + f.qc), G.Z != 0) for (t(Xi[G.Z] != null), P = 0; P < b; ++P) Xi[G.Z](se, Ue, Ne, J, ie, Ee, d), se = ie, Ue = Ee, Ee += d, J += d;
            else for (P = 0; P < b; ++P) A(ie, Ee, Ne, J, d), se = ie, Ue = Ee, Ee += d, J += d;
            f.rc = se, f.Vc = Ue;
          } else {
            if (t(G.mc != null), d = B + b, t((P = G.mc) != null), t(d <= P.i), P.C >= d) d = 1;
            else if (G.ic || Xe(), G.ic) {
              G = P.V, se = P.Ba, Ue = P.c;
              var At = P.i, Oe = (Ne = 1, J = P.$ / Ue, ie = P.$ % Ue, Ee = P.m, He = P.s, P.$), st = Ue * At, ot = Ue * d, wt = He.wc, ht = Oe < ot ? OA(He, ie, J) : null;
              t(Oe <= st), t(d <= At), t(LA(He));
              t: for (; ; ) {
                for (; !Ee.h && Oe < ot; ) {
                  if (ie & wt || (ht = OA(He, ie, J)), t(ht != null), pe(Ee), 256 > (At = CA(ht.G[0], ht.H[0], Ee))) G[se + Oe] = At, ++Oe, ++ie >= Ue && (ie = 0, ++J <= d && !(J % 16) && kr(P, J));
                  else {
                    if (!(280 > At)) {
                      Ne = 0;
                      break t;
                    }
                    At = xr(At - 256, Ee);
                    var Zt, Vt = CA(ht.G[4], ht.H[4], Ee);
                    if (pe(Ee), !(Oe >= (Vt = PA(Ue, Vt = xr(Vt, Ee))) && st - Oe >= At)) {
                      Ne = 0;
                      break t;
                    }
                    for (Zt = 0; Zt < At; ++Zt) G[se + Oe + Zt] = G[se + Oe + Zt - Vt];
                    for (Oe += At, ie += At; ie >= Ue; ) ie -= Ue, ++J <= d && !(J % 16) && kr(P, J);
                    Oe < ot && ie & wt && (ht = OA(He, ie, J));
                  }
                  t(Ee.h == $(Ee));
                }
                kr(P, J > d ? d : J);
                break t;
              }
              !Ne || Ee.h && Oe < st ? (Ne = 0, P.a = Ee.h ? 5 : 3) : P.$ = Oe, d = Ne;
            } else d = ZA(P, P.V, P.Ba, P.c, P.i, d, z);
            if (!d) {
              b = 0;
              break e;
            }
          }
          B + b >= _ && (f.Cc = 1), b = 1;
        }
        if (!b) return null;
        if (f.Cc && ((b = f.ga) != null && (b.mc = null), f.ga = null, 0 < f.Ga)) return alert("todo:WebPDequantizeLevels"), null;
      }
      return f.nb + B * Q;
    }
    function K(f, d, B, b, Q, _) {
      for (; 0 < Q--; ) {
        var P, G = f, J = d + (B ? 1 : 0), ie = f, Ee = d + (B ? 0 : 3);
        for (P = 0; P < b; ++P) {
          var He = ie[Ee + 4 * P];
          He != 255 && (He *= 32897, G[J + 4 * P + 0] = G[J + 4 * P + 0] * He >> 23, G[J + 4 * P + 1] = G[J + 4 * P + 1] * He >> 23, G[J + 4 * P + 2] = G[J + 4 * P + 2] * He >> 23);
        }
        d += _;
      }
    }
    function he(f, d, B, b, Q) {
      for (; 0 < b--; ) {
        var _;
        for (_ = 0; _ < B; ++_) {
          var P = f[d + 2 * _ + 0], G = 15 & (ie = f[d + 2 * _ + 1]), J = 4369 * G, ie = (240 & ie | ie >> 4) * J >> 16;
          f[d + 2 * _ + 0] = (240 & P | P >> 4) * J >> 16 & 240 | (15 & P | P << 4) * J >> 16 >> 4 & 15, f[d + 2 * _ + 1] = 240 & ie | G;
        }
        d += Q;
      }
    }
    function ye(f, d, B, b, Q, _, P, G) {
      var J, ie, Ee = 255;
      for (ie = 0; ie < Q; ++ie) {
        for (J = 0; J < b; ++J) {
          var He = f[d + J];
          _[P + 4 * J] = He, Ee &= He;
        }
        d += B, P += G;
      }
      return Ee != 255;
    }
    function Le(f, d, B, b, Q) {
      var _;
      for (_ = 0; _ < Q; ++_) B[b + _] = f[d + _] >> 8;
    }
    function Xe() {
      Vo = K, qv = he, jv = ye, Wv = Le;
    }
    function ze(f, d, B) {
      k[f] = function(b, Q, _, P, G, J, ie, Ee, He, se, Ue, Ne, At, Oe, st, ot, wt) {
        var ht, Zt = wt - 1 >> 1, Vt = G[J + 0] | ie[Ee + 0] << 16, BA = He[se + 0] | Ue[Ne + 0] << 16;
        t(b != null);
        var $t = 3 * Vt + BA + 131074 >> 2;
        for (d(b[Q + 0], 255 & $t, $t >> 16, At, Oe), _ != null && ($t = 3 * BA + Vt + 131074 >> 2, d(_[P + 0], 255 & $t, $t >> 16, st, ot)), ht = 1; ht <= Zt; ++ht) {
          var DA = G[J + ht] | ie[Ee + ht] << 16, nn = He[se + ht] | Ue[Ne + ht] << 16, yA = Vt + DA + BA + nn + 524296, zt = yA + 2 * (DA + BA) >> 3;
          $t = zt + Vt >> 1, Vt = (yA = yA + 2 * (Vt + nn) >> 3) + DA >> 1, d(b[Q + 2 * ht - 1], 255 & $t, $t >> 16, At, Oe + (2 * ht - 1) * B), d(b[Q + 2 * ht - 0], 255 & Vt, Vt >> 16, At, Oe + (2 * ht - 0) * B), _ != null && ($t = yA + BA >> 1, Vt = zt + nn >> 1, d(_[P + 2 * ht - 1], 255 & $t, $t >> 16, st, ot + (2 * ht - 1) * B), d(_[P + 2 * ht + 0], 255 & Vt, Vt >> 16, st, ot + (2 * ht + 0) * B)), Vt = DA, BA = nn;
        }
        1 & wt || ($t = 3 * Vt + BA + 131074 >> 2, d(b[Q + wt - 1], 255 & $t, $t >> 16, At, Oe + (wt - 1) * B), _ != null && ($t = 3 * BA + Vt + 131074 >> 2, d(_[P + wt - 1], 255 & $t, $t >> 16, st, ot + (wt - 1) * B)));
      };
    }
    function mt() {
      Ta[jl] = T4, Ta[Wl] = r0, Ta[Jv] = Q4, Ta[Gl] = n0, Ta[Yl] = a0, Ta[tf] = i0, Ta[Zv] = D4, Ta[Af] = r0, Ta[rf] = n0, Ta[$l] = a0, Ta[nf] = i0;
    }
    function It(f) {
      return f & -16384 ? 0 > f ? 0 : 255 : f >> k4;
    }
    function Qt(f, d) {
      return It((19077 * f >> 8) + (26149 * d >> 8) - 14234);
    }
    function pt(f, d, B) {
      return It((19077 * f >> 8) - (6419 * d >> 8) - (13320 * B >> 8) + 8708);
    }
    function jt(f, d) {
      return It((19077 * f >> 8) + (33050 * d >> 8) - 17685);
    }
    function KA(f, d, B, b, Q) {
      b[Q + 0] = Qt(f, B), b[Q + 1] = pt(f, d, B), b[Q + 2] = jt(f, d);
    }
    function VA(f, d, B, b, Q) {
      b[Q + 0] = jt(f, d), b[Q + 1] = pt(f, d, B), b[Q + 2] = Qt(f, B);
    }
    function ln(f, d, B, b, Q) {
      var _ = pt(f, d, B);
      d = _ << 3 & 224 | jt(f, d) >> 3, b[Q + 0] = 248 & Qt(f, B) | _ >> 5, b[Q + 1] = d;
    }
    function yr(f, d, B, b, Q) {
      var _ = 240 & jt(f, d) | 15;
      b[Q + 0] = 240 & Qt(f, B) | pt(f, d, B) >> 4, b[Q + 1] = _;
    }
    function Ur(f, d, B, b, Q) {
      b[Q + 0] = 255, KA(f, d, B, b, Q + 1);
    }
    function _r(f, d, B, b, Q) {
      VA(f, d, B, b, Q), b[Q + 3] = 255;
    }
    function er(f, d, B, b, Q) {
      KA(f, d, B, b, Q), b[Q + 3] = 255;
    }
    function Kn(f, d, B) {
      k[f] = function(b, Q, _, P, G, J, ie, Ee, He) {
        for (var se = Ee + (-2 & He) * B; Ee != se; ) d(b[Q + 0], _[P + 0], G[J + 0], ie, Ee), d(b[Q + 1], _[P + 0], G[J + 0], ie, Ee + B), Q += 2, ++P, ++J, Ee += 2 * B;
        1 & He && d(b[Q + 0], _[P + 0], G[J + 0], ie, Ee);
      };
    }
    function fr(f, d, B) {
      return B == 0 ? f == 0 ? d == 0 ? 6 : 5 : d == 0 ? 4 : 0 : B;
    }
    function ca(f, d, B, b, Q) {
      switch (f >>> 30) {
        case 3:
          Es(d, B, b, Q, 0);
          break;
        case 2:
          Sa(d, B, b, Q);
          break;
        case 1:
          $A(d, B, b, Q);
      }
    }
    function un(f, d) {
      var B, b, Q = d.M, _ = d.Nb, P = f.oc, G = f.pc + 40, J = f.oc, ie = f.pc + 584, Ee = f.oc, He = f.pc + 600;
      for (B = 0; 16 > B; ++B) P[G + 32 * B - 1] = 129;
      for (B = 0; 8 > B; ++B) J[ie + 32 * B - 1] = 129, Ee[He + 32 * B - 1] = 129;
      for (0 < Q ? P[G - 1 - 32] = J[ie - 1 - 32] = Ee[He - 1 - 32] = 129 : (n(P, G - 32 - 1, 127, 21), n(J, ie - 32 - 1, 127, 9), n(Ee, He - 32 - 1, 127, 9)), b = 0; b < f.za; ++b) {
        var se = d.ya[d.aa + b];
        if (0 < b) {
          for (B = -1; 16 > B; ++B) A(P, G + 32 * B - 4, P, G + 32 * B + 12, 4);
          for (B = -1; 8 > B; ++B) A(J, ie + 32 * B - 4, J, ie + 32 * B + 4, 4), A(Ee, He + 32 * B - 4, Ee, He + 32 * B + 4, 4);
        }
        var Ue = f.Gd, Ne = f.Hd + b, At = se.ad, Oe = se.Hc;
        if (0 < Q && (A(P, G - 32, Ue[Ne].y, 0, 16), A(J, ie - 32, Ue[Ne].f, 0, 8), A(Ee, He - 32, Ue[Ne].ea, 0, 8)), se.Za) {
          var st = P, ot = G - 32 + 16;
          for (0 < Q && (b >= f.za - 1 ? n(st, ot, Ue[Ne].y[15], 4) : A(st, ot, Ue[Ne + 1].y, 0, 4)), B = 0; 4 > B; B++) st[ot + 128 + B] = st[ot + 256 + B] = st[ot + 384 + B] = st[ot + 0 + B];
          for (B = 0; 16 > B; ++B, Oe <<= 2) st = P, ot = G + o0[B], Va[se.Ob[B]](st, ot), ca(Oe, At, 16 * +B, st, ot);
        } else if (st = fr(b, Q, se.Ob[0]), zi[st](P, G), Oe != 0) for (B = 0; 16 > B; ++B, Oe <<= 2) ca(Oe, At, 16 * +B, P, G + o0[B]);
        for (B = se.Gc, st = fr(b, Q, se.Dd), yi[st](J, ie), yi[st](Ee, He), Oe = At, st = J, ot = ie, 255 & (se = 0 | B) && (170 & se ? li(Oe, 256, st, ot) : or(Oe, 256, st, ot)), se = Ee, Oe = He, 255 & (B >>= 8) && (170 & B ? li(At, 320, se, Oe) : or(At, 320, se, Oe)), Q < f.Ub - 1 && (A(Ue[Ne].y, 0, P, G + 480, 16), A(Ue[Ne].f, 0, J, ie + 224, 8), A(Ue[Ne].ea, 0, Ee, He + 224, 8)), B = 8 * _ * f.B, Ue = f.sa, Ne = f.ta + 16 * b + 16 * _ * f.R, At = f.qa, se = f.ra + 8 * b + B, Oe = f.Ha, st = f.Ia + 8 * b + B, B = 0; 16 > B; ++B) A(Ue, Ne + B * f.R, P, G + 32 * B, 16);
        for (B = 0; 8 > B; ++B) A(At, se + B * f.B, J, ie + 32 * B, 8), A(Oe, st + B * f.B, Ee, He + 32 * B, 8);
      }
    }
    function Fa(f, d, B, b, Q, _, P, G, J) {
      var ie = [0], Ee = [0], He = 0, se = J != null ? J.kd : 0, Ue = J ?? new ct();
      if (f == null || 12 > B) return 7;
      Ue.data = f, Ue.w = d, Ue.ha = B, d = [d], B = [B], Ue.gb = [Ue.gb];
      e: {
        var Ne = d, At = B, Oe = Ue.gb;
        if (t(f != null), t(At != null), t(Oe != null), Oe[0] = 0, 12 <= At[0] && !e(f, Ne[0], "RIFF")) {
          if (e(f, Ne[0] + 8, "WEBP")) {
            Oe = 3;
            break e;
          }
          var st = dt(f, Ne[0] + 4);
          if (12 > st || 4294967286 < st) {
            Oe = 3;
            break e;
          }
          if (se && st > At[0] - 8) {
            Oe = 7;
            break e;
          }
          Oe[0] = st, Ne[0] += 12, At[0] -= 12;
        }
        Oe = 0;
      }
      if (Oe != 0) return Oe;
      for (st = 0 < Ue.gb[0], B = B[0]; ; ) {
        e: {
          var ot = f;
          At = d, Oe = B;
          var wt = ie, ht = Ee, Zt = Ne = [0];
          if (($t = He = [He])[0] = 0, 8 > Oe[0]) Oe = 7;
          else {
            if (!e(ot, At[0], "VP8X")) {
              if (dt(ot, At[0] + 4) != 10) {
                Oe = 3;
                break e;
              }
              if (18 > Oe[0]) {
                Oe = 7;
                break e;
              }
              var Vt = dt(ot, At[0] + 8), BA = 1 + at(ot, At[0] + 12);
              if (2147483648 <= BA * (ot = 1 + at(ot, At[0] + 15))) {
                Oe = 3;
                break e;
              }
              Zt != null && (Zt[0] = Vt), wt != null && (wt[0] = BA), ht != null && (ht[0] = ot), At[0] += 18, Oe[0] -= 18, $t[0] = 1;
            }
            Oe = 0;
          }
        }
        if (He = He[0], Ne = Ne[0], Oe != 0) return Oe;
        if (At = !!(2 & Ne), !st && He) return 3;
        if (_ != null && (_[0] = !!(16 & Ne)), P != null && (P[0] = At), G != null && (G[0] = 0), P = ie[0], Ne = Ee[0], He && At && J == null) {
          Oe = 0;
          break;
        }
        if (4 > B) {
          Oe = 7;
          break;
        }
        if (st && He || !st && !He && !e(f, d[0], "ALPH")) {
          B = [B], Ue.na = [Ue.na], Ue.P = [Ue.P], Ue.Sa = [Ue.Sa];
          e: {
            Vt = f, Oe = d, st = B;
            var $t = Ue.gb;
            wt = Ue.na, ht = Ue.P, Zt = Ue.Sa, BA = 22, t(Vt != null), t(st != null), ot = Oe[0];
            var DA = st[0];
            for (t(wt != null), t(Zt != null), wt[0] = null, ht[0] = null, Zt[0] = 0; ; ) {
              if (Oe[0] = ot, st[0] = DA, 8 > DA) {
                Oe = 7;
                break e;
              }
              var nn = dt(Vt, ot + 4);
              if (4294967286 < nn) {
                Oe = 3;
                break e;
              }
              var yA = 8 + nn + 1 & -2;
              if (BA += yA, 0 < $t && BA > $t) {
                Oe = 3;
                break e;
              }
              if (!e(Vt, ot, "VP8 ") || !e(Vt, ot, "VP8L")) {
                Oe = 0;
                break e;
              }
              if (DA[0] < yA) {
                Oe = 7;
                break e;
              }
              e(Vt, ot, "ALPH") || (wt[0] = Vt, ht[0] = ot + 8, Zt[0] = nn), ot += yA, DA -= yA;
            }
          }
          if (B = B[0], Ue.na = Ue.na[0], Ue.P = Ue.P[0], Ue.Sa = Ue.Sa[0], Oe != 0) break;
        }
        B = [B], Ue.Ja = [Ue.Ja], Ue.xa = [Ue.xa];
        e: if ($t = f, Oe = d, st = B, wt = Ue.gb[0], ht = Ue.Ja, Zt = Ue.xa, Vt = Oe[0], ot = !e($t, Vt, "VP8 "), BA = !e($t, Vt, "VP8L"), t($t != null), t(st != null), t(ht != null), t(Zt != null), 8 > st[0]) Oe = 7;
        else {
          if (ot || BA) {
            if ($t = dt($t, Vt + 4), 12 <= wt && $t > wt - 12) {
              Oe = 3;
              break e;
            }
            if (se && $t > st[0] - 8) {
              Oe = 7;
              break e;
            }
            ht[0] = $t, Oe[0] += 8, st[0] -= 8, Zt[0] = BA;
          } else Zt[0] = 5 <= st[0] && $t[Vt + 0] == 47 && !($t[Vt + 4] >> 5), ht[0] = st[0];
          Oe = 0;
        }
        if (B = B[0], Ue.Ja = Ue.Ja[0], Ue.xa = Ue.xa[0], d = d[0], Oe != 0) break;
        if (4294967286 < Ue.Ja) return 3;
        if (G == null || At || (G[0] = Ue.xa ? 2 : 1), P = [P], Ne = [Ne], Ue.xa) {
          if (5 > B) {
            Oe = 7;
            break;
          }
          G = P, se = Ne, At = _, f == null || 5 > B ? f = 0 : 5 <= B && f[d + 0] == 47 && !(f[d + 4] >> 5) ? (st = [0], $t = [0], wt = [0], X(ht = new L(), f, d, B), Fr(ht, st, $t, wt) ? (G != null && (G[0] = st[0]), se != null && (se[0] = $t[0]), At != null && (At[0] = wt[0]), f = 1) : f = 0) : f = 0;
        } else {
          if (10 > B) {
            Oe = 7;
            break;
          }
          G = Ne, f == null || 10 > B || !tA(f, d + 3, B - 3) ? f = 0 : (se = f[d + 0] | f[d + 1] << 8 | f[d + 2] << 16, At = 16383 & (f[d + 7] << 8 | f[d + 6]), f = 16383 & (f[d + 9] << 8 | f[d + 8]), 1 & se || 3 < (se >> 1 & 7) || !(se >> 4 & 1) || se >> 5 >= Ue.Ja || !At || !f ? f = 0 : (P && (P[0] = At), G && (G[0] = f), f = 1));
        }
        if (!f || (P = P[0], Ne = Ne[0], He && (ie[0] != P || Ee[0] != Ne))) return 3;
        J != null && (J[0] = Ue, J.offset = d - J.w, t(4294967286 > d - J.w), t(J.offset == J.ha - B));
        break;
      }
      return Oe == 0 || Oe == 7 && He && J == null ? (_ != null && (_[0] |= Ue.na != null && 0 < Ue.na.length), b != null && (b[0] = P), Q != null && (Q[0] = Ne), 0) : Oe;
    }
    function bs(f, d, B) {
      var b = d.width, Q = d.height, _ = 0, P = 0, G = b, J = Q;
      if (d.Da = f != null && 0 < f.Da, d.Da && (G = f.cd, J = f.bd, _ = f.v, P = f.j, 11 > B || (_ &= -2, P &= -2), 0 > _ || 0 > P || 0 >= G || 0 >= J || _ + G > b || P + J > Q)) return 0;
      if (d.v = _, d.j = P, d.va = _ + G, d.o = P + J, d.U = G, d.T = J, d.da = f != null && 0 < f.da, d.da) {
        if (!ve(G, J, B = [f.ib], _ = [f.hb])) return 0;
        d.ib = B[0], d.hb = _[0];
      }
      return d.ob = f != null && f.ob, d.Kb = f == null || !f.Sd, d.da && (d.ob = d.ib < 3 * b / 4 && d.hb < 3 * Q / 4, d.Kb = 0), 1;
    }
    function wi(f) {
      if (f == null) return 2;
      if (11 > f.S) {
        var d = f.f.RGBA;
        d.fb += (f.height - 1) * d.A, d.A = -d.A;
      } else d = f.f.kb, f = f.height, d.O += (f - 1) * d.fa, d.fa = -d.fa, d.N += (f - 1 >> 1) * d.Ab, d.Ab = -d.Ab, d.W += (f - 1 >> 1) * d.Db, d.Db = -d.Db, d.F != null && (d.J += (f - 1) * d.lb, d.lb = -d.lb);
      return 0;
    }
    function ar(f, d, B, b) {
      if (b == null || 0 >= f || 0 >= d) return 2;
      if (B != null) {
        if (B.Da) {
          var Q = B.cd, _ = B.bd, P = -2 & B.v, G = -2 & B.j;
          if (0 > P || 0 > G || 0 >= Q || 0 >= _ || P + Q > f || G + _ > d) return 2;
          f = Q, d = _;
        }
        if (B.da) {
          if (!ve(f, d, Q = [B.ib], _ = [B.hb])) return 2;
          f = Q[0], d = _[0];
        }
      }
      b.width = f, b.height = d;
      e: {
        var J = b.width, ie = b.height;
        if (f = b.S, 0 >= J || 0 >= ie || !(f >= jl && 13 > f)) f = 2;
        else {
          if (0 >= b.Rd && b.sd == null) {
            P = _ = Q = d = 0;
            var Ee = (G = J * l0[f]) * ie;
            if (11 > f || (_ = (ie + 1) / 2 * (d = (J + 1) / 2), f == 12 && (P = (Q = J) * ie)), (ie = a(Ee + 2 * _ + P)) == null) {
              f = 1;
              break e;
            }
            b.sd = ie, 11 > f ? ((J = b.f.RGBA).eb = ie, J.fb = 0, J.A = G, J.size = Ee) : ((J = b.f.kb).y = ie, J.O = 0, J.fa = G, J.Fd = Ee, J.f = ie, J.N = 0 + Ee, J.Ab = d, J.Cd = _, J.ea = ie, J.W = 0 + Ee + _, J.Db = d, J.Ed = _, f == 12 && (J.F = ie, J.J = 0 + Ee + 2 * _), J.Tc = P, J.lb = Q);
          }
          if (d = 1, Q = b.S, _ = b.width, P = b.height, Q >= jl && 13 > Q) if (11 > Q) f = b.f.RGBA, d &= (G = Math.abs(f.A)) * (P - 1) + _ <= f.size, d &= G >= _ * l0[Q], d &= f.eb != null;
          else {
            f = b.f.kb, G = (_ + 1) / 2, Ee = (P + 1) / 2, J = Math.abs(f.fa), ie = Math.abs(f.Ab);
            var He = Math.abs(f.Db), se = Math.abs(f.lb), Ue = se * (P - 1) + _;
            d &= J * (P - 1) + _ <= f.Fd, d &= ie * (Ee - 1) + G <= f.Cd, d = (d &= He * (Ee - 1) + G <= f.Ed) & J >= _ & ie >= G & He >= G, d &= f.y != null, d &= f.f != null, d &= f.ea != null, Q == 12 && (d &= se >= _, d &= Ue <= f.Tc, d &= f.F != null);
          }
          else d = 0;
          f = d ? 0 : 2;
        }
      }
      return f != 0 || B != null && B.fd && (f = wi(b)), f;
    }
    var YA = 64, qA = [0, 1, 3, 7, 15, 31, 63, 127, 255, 511, 1023, 2047, 4095, 8191, 16383, 32767, 65535, 131071, 262143, 524287, 1048575, 2097151, 4194303, 8388607, 16777215], ir = 24, wn = 32, cn = 8, Ka = [0, 0, 1, 1, 2, 2, 2, 2, 3, 3, 3, 3, 3, 3, 3, 3, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7];
    _e("Predictor0", "PredictorAdd0"), k.Predictor0 = function() {
      return 4278190080;
    }, k.Predictor1 = function(f) {
      return f;
    }, k.Predictor2 = function(f, d, B) {
      return d[B + 0];
    }, k.Predictor3 = function(f, d, B) {
      return d[B + 1];
    }, k.Predictor4 = function(f, d, B) {
      return d[B - 1];
    }, k.Predictor5 = function(f, d, B) {
      return je(je(f, d[B + 1]), d[B + 0]);
    }, k.Predictor6 = function(f, d, B) {
      return je(f, d[B - 1]);
    }, k.Predictor7 = function(f, d, B) {
      return je(f, d[B + 0]);
    }, k.Predictor8 = function(f, d, B) {
      return je(d[B - 1], d[B + 0]);
    }, k.Predictor9 = function(f, d, B) {
      return je(d[B + 0], d[B + 1]);
    }, k.Predictor10 = function(f, d, B) {
      return je(je(f, d[B - 1]), je(d[B + 0], d[B + 1]));
    }, k.Predictor11 = function(f, d, B) {
      var b = d[B + 0];
      return 0 >= ut(b >> 24 & 255, f >> 24 & 255, (d = d[B - 1]) >> 24 & 255) + ut(b >> 16 & 255, f >> 16 & 255, d >> 16 & 255) + ut(b >> 8 & 255, f >> 8 & 255, d >> 8 & 255) + ut(255 & b, 255 & f, 255 & d) ? b : f;
    }, k.Predictor12 = function(f, d, B) {
      var b = d[B + 0];
      return (Ke((f >> 24 & 255) + (b >> 24 & 255) - ((d = d[B - 1]) >> 24 & 255)) << 24 | Ke((f >> 16 & 255) + (b >> 16 & 255) - (d >> 16 & 255)) << 16 | Ke((f >> 8 & 255) + (b >> 8 & 255) - (d >> 8 & 255)) << 8 | Ke((255 & f) + (255 & b) - (255 & d))) >>> 0;
    }, k.Predictor13 = function(f, d, B) {
      var b = d[B - 1];
      return (et((f = je(f, d[B + 0])) >> 24 & 255, b >> 24 & 255) << 24 | et(f >> 16 & 255, b >> 16 & 255) << 16 | et(f >> 8 & 255, b >> 8 & 255) << 8 | et(255 & f, 255 & b)) >>> 0;
    };
    var ji = k.PredictorAdd0;
    k.PredictorAdd1 = yt, _e("Predictor2", "PredictorAdd2"), _e("Predictor3", "PredictorAdd3"), _e("Predictor4", "PredictorAdd4"), _e("Predictor5", "PredictorAdd5"), _e("Predictor6", "PredictorAdd6"), _e("Predictor7", "PredictorAdd7"), _e("Predictor8", "PredictorAdd8"), _e("Predictor9", "PredictorAdd9"), _e("Predictor10", "PredictorAdd10"), _e("Predictor11", "PredictorAdd11"), _e("Predictor12", "PredictorAdd12"), _e("Predictor13", "PredictorAdd13");
    var si = k.PredictorAdd2;
    bt("ColorIndexInverseTransform", "MapARGB", "32b", function(f) {
      return f >> 8 & 255;
    }, function(f) {
      return f;
    }), bt("VP8LColorIndexInverseTransformAlpha", "MapAlpha", "8b", function(f) {
      return f;
    }, function(f) {
      return f >> 8 & 255;
    });
    var Tr, ao = k.ColorIndexInverseTransform, xa = k.MapARGB, oi = k.VP8LColorIndexInverseTransformAlpha, Oo = k.MapAlpha, Ro = k.VP8LPredictorsAdd = [];
    Ro.length = 16, (k.VP8LPredictors = []).length = 16, (k.VP8LPredictorsAdd_C = []).length = 16, (k.VP8LPredictors_C = []).length = 16;
    var Ho, Po, Wi, Gi, Yi, Cs, $i, Es, Sa, li, $A, or, Vr, rn, Bi, Ko, io, Vl, Ov, Rv, Hv, Pv, Kv, Vv, Vo, qv, jv, Wv, Gv = a(511), Yv = a(2041), $v = a(225), zv = a(767), Xv = 0, ef = Yv, ql = $v, fa = zv, Ua = Gv, jl = 0, Wl = 1, Jv = 2, Gl = 3, Yl = 4, tf = 5, Zv = 6, Af = 7, rf = 8, $l = 9, nf = 10, g4 = [2, 3, 7], p4 = [3, 3, 11], e0 = [280, 256, 256, 256, 40], v4 = [0, 1, 1, 1, 0], m4 = [17, 18, 0, 1, 2, 3, 4, 5, 16, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15], w4 = [24, 7, 23, 25, 40, 6, 39, 41, 22, 26, 38, 42, 56, 5, 55, 57, 21, 27, 54, 58, 37, 43, 72, 4, 71, 73, 20, 28, 53, 59, 70, 74, 36, 44, 88, 69, 75, 52, 60, 3, 87, 89, 19, 29, 86, 90, 35, 45, 68, 76, 85, 91, 51, 61, 104, 2, 103, 105, 18, 30, 102, 106, 34, 46, 84, 92, 67, 77, 101, 107, 50, 62, 120, 1, 119, 121, 83, 93, 17, 31, 100, 108, 66, 78, 118, 122, 33, 47, 117, 123, 49, 63, 99, 109, 82, 94, 0, 116, 124, 65, 79, 16, 32, 98, 110, 48, 115, 125, 81, 95, 64, 114, 126, 97, 111, 80, 113, 127, 96, 112], B4 = [2954, 2956, 2958, 2962, 2970, 2986, 3018, 3082, 3212, 3468, 3980, 5004], y4 = 8, af = [4, 5, 6, 7, 8, 9, 10, 10, 11, 12, 13, 14, 15, 16, 17, 17, 18, 19, 20, 20, 21, 21, 22, 22, 23, 23, 24, 25, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 91, 93, 95, 96, 98, 100, 101, 102, 104, 106, 108, 110, 112, 114, 116, 118, 122, 124, 126, 128, 130, 132, 134, 136, 138, 140, 143, 145, 148, 151, 154, 157], sf = [4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 60, 62, 64, 66, 68, 70, 72, 74, 76, 78, 80, 82, 84, 86, 88, 90, 92, 94, 96, 98, 100, 102, 104, 106, 108, 110, 112, 114, 116, 119, 122, 125, 128, 131, 134, 137, 140, 143, 146, 149, 152, 155, 158, 161, 164, 167, 170, 173, 177, 181, 185, 189, 193, 197, 201, 205, 209, 213, 217, 221, 225, 229, 234, 239, 245, 249, 254, 259, 264, 269, 274, 279, 284], qo = null, b4 = [[173, 148, 140, 0], [176, 155, 140, 135, 0], [180, 157, 141, 134, 130, 0], [254, 254, 243, 230, 196, 177, 153, 140, 133, 130, 129, 0]], C4 = [0, 1, 4, 8, 5, 2, 3, 6, 9, 12, 13, 10, 7, 11, 14, 15], t0 = [-0, 1, -1, 2, -2, 3, 4, 6, -3, 5, -4, -5, -6, 7, -7, 8, -8, -9], E4 = [[[[128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128], [128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128], [128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128]], [[253, 136, 254, 255, 228, 219, 128, 128, 128, 128, 128], [189, 129, 242, 255, 227, 213, 255, 219, 128, 128, 128], [106, 126, 227, 252, 214, 209, 255, 255, 128, 128, 128]], [[1, 98, 248, 255, 236, 226, 255, 255, 128, 128, 128], [181, 133, 238, 254, 221, 234, 255, 154, 128, 128, 128], [78, 134, 202, 247, 198, 180, 255, 219, 128, 128, 128]], [[1, 185, 249, 255, 243, 255, 128, 128, 128, 128, 128], [184, 150, 247, 255, 236, 224, 128, 128, 128, 128, 128], [77, 110, 216, 255, 236, 230, 128, 128, 128, 128, 128]], [[1, 101, 251, 255, 241, 255, 128, 128, 128, 128, 128], [170, 139, 241, 252, 236, 209, 255, 255, 128, 128, 128], [37, 116, 196, 243, 228, 255, 255, 255, 128, 128, 128]], [[1, 204, 254, 255, 245, 255, 128, 128, 128, 128, 128], [207, 160, 250, 255, 238, 128, 128, 128, 128, 128, 128], [102, 103, 231, 255, 211, 171, 128, 128, 128, 128, 128]], [[1, 152, 252, 255, 240, 255, 128, 128, 128, 128, 128], [177, 135, 243, 255, 234, 225, 128, 128, 128, 128, 128], [80, 129, 211, 255, 194, 224, 128, 128, 128, 128, 128]], [[1, 1, 255, 128, 128, 128, 128, 128, 128, 128, 128], [246, 1, 255, 128, 128, 128, 128, 128, 128, 128, 128], [255, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128]]], [[[198, 35, 237, 223, 193, 187, 162, 160, 145, 155, 62], [131, 45, 198, 221, 172, 176, 220, 157, 252, 221, 1], [68, 47, 146, 208, 149, 167, 221, 162, 255, 223, 128]], [[1, 149, 241, 255, 221, 224, 255, 255, 128, 128, 128], [184, 141, 234, 253, 222, 220, 255, 199, 128, 128, 128], [81, 99, 181, 242, 176, 190, 249, 202, 255, 255, 128]], [[1, 129, 232, 253, 214, 197, 242, 196, 255, 255, 128], [99, 121, 210, 250, 201, 198, 255, 202, 128, 128, 128], [23, 91, 163, 242, 170, 187, 247, 210, 255, 255, 128]], [[1, 200, 246, 255, 234, 255, 128, 128, 128, 128, 128], [109, 178, 241, 255, 231, 245, 255, 255, 128, 128, 128], [44, 130, 201, 253, 205, 192, 255, 255, 128, 128, 128]], [[1, 132, 239, 251, 219, 209, 255, 165, 128, 128, 128], [94, 136, 225, 251, 218, 190, 255, 255, 128, 128, 128], [22, 100, 174, 245, 186, 161, 255, 199, 128, 128, 128]], [[1, 182, 249, 255, 232, 235, 128, 128, 128, 128, 128], [124, 143, 241, 255, 227, 234, 128, 128, 128, 128, 128], [35, 77, 181, 251, 193, 211, 255, 205, 128, 128, 128]], [[1, 157, 247, 255, 236, 231, 255, 255, 128, 128, 128], [121, 141, 235, 255, 225, 227, 255, 255, 128, 128, 128], [45, 99, 188, 251, 195, 217, 255, 224, 128, 128, 128]], [[1, 1, 251, 255, 213, 255, 128, 128, 128, 128, 128], [203, 1, 248, 255, 255, 128, 128, 128, 128, 128, 128], [137, 1, 177, 255, 224, 255, 128, 128, 128, 128, 128]]], [[[253, 9, 248, 251, 207, 208, 255, 192, 128, 128, 128], [175, 13, 224, 243, 193, 185, 249, 198, 255, 255, 128], [73, 17, 171, 221, 161, 179, 236, 167, 255, 234, 128]], [[1, 95, 247, 253, 212, 183, 255, 255, 128, 128, 128], [239, 90, 244, 250, 211, 209, 255, 255, 128, 128, 128], [155, 77, 195, 248, 188, 195, 255, 255, 128, 128, 128]], [[1, 24, 239, 251, 218, 219, 255, 205, 128, 128, 128], [201, 51, 219, 255, 196, 186, 128, 128, 128, 128, 128], [69, 46, 190, 239, 201, 218, 255, 228, 128, 128, 128]], [[1, 191, 251, 255, 255, 128, 128, 128, 128, 128, 128], [223, 165, 249, 255, 213, 255, 128, 128, 128, 128, 128], [141, 124, 248, 255, 255, 128, 128, 128, 128, 128, 128]], [[1, 16, 248, 255, 255, 128, 128, 128, 128, 128, 128], [190, 36, 230, 255, 236, 255, 128, 128, 128, 128, 128], [149, 1, 255, 128, 128, 128, 128, 128, 128, 128, 128]], [[1, 226, 255, 128, 128, 128, 128, 128, 128, 128, 128], [247, 192, 255, 128, 128, 128, 128, 128, 128, 128, 128], [240, 128, 255, 128, 128, 128, 128, 128, 128, 128, 128]], [[1, 134, 252, 255, 255, 128, 128, 128, 128, 128, 128], [213, 62, 250, 255, 255, 128, 128, 128, 128, 128, 128], [55, 93, 255, 128, 128, 128, 128, 128, 128, 128, 128]], [[128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128], [128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128], [128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128]]], [[[202, 24, 213, 235, 186, 191, 220, 160, 240, 175, 255], [126, 38, 182, 232, 169, 184, 228, 174, 255, 187, 128], [61, 46, 138, 219, 151, 178, 240, 170, 255, 216, 128]], [[1, 112, 230, 250, 199, 191, 247, 159, 255, 255, 128], [166, 109, 228, 252, 211, 215, 255, 174, 128, 128, 128], [39, 77, 162, 232, 172, 180, 245, 178, 255, 255, 128]], [[1, 52, 220, 246, 198, 199, 249, 220, 255, 255, 128], [124, 74, 191, 243, 183, 193, 250, 221, 255, 255, 128], [24, 71, 130, 219, 154, 170, 243, 182, 255, 255, 128]], [[1, 182, 225, 249, 219, 240, 255, 224, 128, 128, 128], [149, 150, 226, 252, 216, 205, 255, 171, 128, 128, 128], [28, 108, 170, 242, 183, 194, 254, 223, 255, 255, 128]], [[1, 81, 230, 252, 204, 203, 255, 192, 128, 128, 128], [123, 102, 209, 247, 188, 196, 255, 233, 128, 128, 128], [20, 95, 153, 243, 164, 173, 255, 203, 128, 128, 128]], [[1, 222, 248, 255, 216, 213, 128, 128, 128, 128, 128], [168, 175, 246, 252, 235, 205, 255, 255, 128, 128, 128], [47, 116, 215, 255, 211, 212, 255, 255, 128, 128, 128]], [[1, 121, 236, 253, 212, 214, 255, 255, 128, 128, 128], [141, 84, 213, 252, 201, 202, 255, 219, 128, 128, 128], [42, 80, 160, 240, 162, 185, 255, 205, 128, 128, 128]], [[1, 1, 255, 128, 128, 128, 128, 128, 128, 128, 128], [244, 1, 255, 128, 128, 128, 128, 128, 128, 128, 128], [238, 1, 255, 128, 128, 128, 128, 128, 128, 128, 128]]]], F4 = [[[231, 120, 48, 89, 115, 113, 120, 152, 112], [152, 179, 64, 126, 170, 118, 46, 70, 95], [175, 69, 143, 80, 85, 82, 72, 155, 103], [56, 58, 10, 171, 218, 189, 17, 13, 152], [114, 26, 17, 163, 44, 195, 21, 10, 173], [121, 24, 80, 195, 26, 62, 44, 64, 85], [144, 71, 10, 38, 171, 213, 144, 34, 26], [170, 46, 55, 19, 136, 160, 33, 206, 71], [63, 20, 8, 114, 114, 208, 12, 9, 226], [81, 40, 11, 96, 182, 84, 29, 16, 36]], [[134, 183, 89, 137, 98, 101, 106, 165, 148], [72, 187, 100, 130, 157, 111, 32, 75, 80], [66, 102, 167, 99, 74, 62, 40, 234, 128], [41, 53, 9, 178, 241, 141, 26, 8, 107], [74, 43, 26, 146, 73, 166, 49, 23, 157], [65, 38, 105, 160, 51, 52, 31, 115, 128], [104, 79, 12, 27, 217, 255, 87, 17, 7], [87, 68, 71, 44, 114, 51, 15, 186, 23], [47, 41, 14, 110, 182, 183, 21, 17, 194], [66, 45, 25, 102, 197, 189, 23, 18, 22]], [[88, 88, 147, 150, 42, 46, 45, 196, 205], [43, 97, 183, 117, 85, 38, 35, 179, 61], [39, 53, 200, 87, 26, 21, 43, 232, 171], [56, 34, 51, 104, 114, 102, 29, 93, 77], [39, 28, 85, 171, 58, 165, 90, 98, 64], [34, 22, 116, 206, 23, 34, 43, 166, 73], [107, 54, 32, 26, 51, 1, 81, 43, 31], [68, 25, 106, 22, 64, 171, 36, 225, 114], [34, 19, 21, 102, 132, 188, 16, 76, 124], [62, 18, 78, 95, 85, 57, 50, 48, 51]], [[193, 101, 35, 159, 215, 111, 89, 46, 111], [60, 148, 31, 172, 219, 228, 21, 18, 111], [112, 113, 77, 85, 179, 255, 38, 120, 114], [40, 42, 1, 196, 245, 209, 10, 25, 109], [88, 43, 29, 140, 166, 213, 37, 43, 154], [61, 63, 30, 155, 67, 45, 68, 1, 209], [100, 80, 8, 43, 154, 1, 51, 26, 71], [142, 78, 78, 16, 255, 128, 34, 197, 171], [41, 40, 5, 102, 211, 183, 4, 1, 221], [51, 50, 17, 168, 209, 192, 23, 25, 82]], [[138, 31, 36, 171, 27, 166, 38, 44, 229], [67, 87, 58, 169, 82, 115, 26, 59, 179], [63, 59, 90, 180, 59, 166, 93, 73, 154], [40, 40, 21, 116, 143, 209, 34, 39, 175], [47, 15, 16, 183, 34, 223, 49, 45, 183], [46, 17, 33, 183, 6, 98, 15, 32, 183], [57, 46, 22, 24, 128, 1, 54, 17, 37], [65, 32, 73, 115, 28, 128, 23, 128, 205], [40, 3, 9, 115, 51, 192, 18, 6, 223], [87, 37, 9, 115, 59, 77, 64, 21, 47]], [[104, 55, 44, 218, 9, 54, 53, 130, 226], [64, 90, 70, 205, 40, 41, 23, 26, 57], [54, 57, 112, 184, 5, 41, 38, 166, 213], [30, 34, 26, 133, 152, 116, 10, 32, 134], [39, 19, 53, 221, 26, 114, 32, 73, 255], [31, 9, 65, 234, 2, 15, 1, 118, 73], [75, 32, 12, 51, 192, 255, 160, 43, 51], [88, 31, 35, 67, 102, 85, 55, 186, 85], [56, 21, 23, 111, 59, 205, 45, 37, 192], [55, 38, 70, 124, 73, 102, 1, 34, 98]], [[125, 98, 42, 88, 104, 85, 117, 175, 82], [95, 84, 53, 89, 128, 100, 113, 101, 45], [75, 79, 123, 47, 51, 128, 81, 171, 1], [57, 17, 5, 71, 102, 57, 53, 41, 49], [38, 33, 13, 121, 57, 73, 26, 1, 85], [41, 10, 67, 138, 77, 110, 90, 47, 114], [115, 21, 2, 10, 102, 255, 166, 23, 6], [101, 29, 16, 10, 85, 128, 101, 196, 26], [57, 18, 10, 102, 102, 213, 34, 20, 43], [117, 20, 15, 36, 163, 128, 68, 1, 26]], [[102, 61, 71, 37, 34, 53, 31, 243, 192], [69, 60, 71, 38, 73, 119, 28, 222, 37], [68, 45, 128, 34, 1, 47, 11, 245, 171], [62, 17, 19, 70, 146, 85, 55, 62, 70], [37, 43, 37, 154, 100, 163, 85, 160, 1], [63, 9, 92, 136, 28, 64, 32, 201, 85], [75, 15, 9, 9, 64, 255, 184, 119, 16], [86, 6, 28, 5, 64, 255, 25, 248, 1], [56, 8, 17, 132, 137, 255, 55, 116, 128], [58, 15, 20, 82, 135, 57, 26, 121, 40]], [[164, 50, 31, 137, 154, 133, 25, 35, 218], [51, 103, 44, 131, 131, 123, 31, 6, 158], [86, 40, 64, 135, 148, 224, 45, 183, 128], [22, 26, 17, 131, 240, 154, 14, 1, 209], [45, 16, 21, 91, 64, 222, 7, 1, 197], [56, 21, 39, 155, 60, 138, 23, 102, 213], [83, 12, 13, 54, 192, 255, 68, 47, 28], [85, 26, 85, 85, 128, 128, 32, 146, 171], [18, 11, 7, 63, 144, 171, 4, 4, 246], [35, 27, 10, 146, 174, 171, 12, 26, 128]], [[190, 80, 35, 99, 180, 80, 126, 54, 45], [85, 126, 47, 87, 176, 51, 41, 20, 32], [101, 75, 128, 139, 118, 146, 116, 128, 85], [56, 41, 15, 176, 236, 85, 37, 9, 62], [71, 30, 17, 119, 118, 255, 17, 18, 138], [101, 38, 60, 138, 55, 70, 43, 26, 142], [146, 36, 19, 30, 171, 255, 97, 27, 20], [138, 45, 61, 62, 219, 1, 81, 188, 64], [32, 41, 20, 117, 151, 142, 20, 21, 163], [112, 19, 12, 61, 195, 128, 48, 4, 24]]], x4 = [[[[255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255], [255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255], [255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255]], [[176, 246, 255, 255, 255, 255, 255, 255, 255, 255, 255], [223, 241, 252, 255, 255, 255, 255, 255, 255, 255, 255], [249, 253, 253, 255, 255, 255, 255, 255, 255, 255, 255]], [[255, 244, 252, 255, 255, 255, 255, 255, 255, 255, 255], [234, 254, 254, 255, 255, 255, 255, 255, 255, 255, 255], [253, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255]], [[255, 246, 254, 255, 255, 255, 255, 255, 255, 255, 255], [239, 253, 254, 255, 255, 255, 255, 255, 255, 255, 255], [254, 255, 254, 255, 255, 255, 255, 255, 255, 255, 255]], [[255, 248, 254, 255, 255, 255, 255, 255, 255, 255, 255], [251, 255, 254, 255, 255, 255, 255, 255, 255, 255, 255], [255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255]], [[255, 253, 254, 255, 255, 255, 255, 255, 255, 255, 255], [251, 254, 254, 255, 255, 255, 255, 255, 255, 255, 255], [254, 255, 254, 255, 255, 255, 255, 255, 255, 255, 255]], [[255, 254, 253, 255, 254, 255, 255, 255, 255, 255, 255], [250, 255, 254, 255, 254, 255, 255, 255, 255, 255, 255], [254, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255]], [[255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255], [255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255], [255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255]]], [[[217, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255], [225, 252, 241, 253, 255, 255, 254, 255, 255, 255, 255], [234, 250, 241, 250, 253, 255, 253, 254, 255, 255, 255]], [[255, 254, 255, 255, 255, 255, 255, 255, 255, 255, 255], [223, 254, 254, 255, 255, 255, 255, 255, 255, 255, 255], [238, 253, 254, 254, 255, 255, 255, 255, 255, 255, 255]], [[255, 248, 254, 255, 255, 255, 255, 255, 255, 255, 255], [249, 254, 255, 255, 255, 255, 255, 255, 255, 255, 255], [255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255]], [[255, 253, 255, 255, 255, 255, 255, 255, 255, 255, 255], [247, 254, 255, 255, 255, 255, 255, 255, 255, 255, 255], [255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255]], [[255, 253, 254, 255, 255, 255, 255, 255, 255, 255, 255], [252, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255], [255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255]], [[255, 254, 254, 255, 255, 255, 255, 255, 255, 255, 255], [253, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255], [255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255]], [[255, 254, 253, 255, 255, 255, 255, 255, 255, 255, 255], [250, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255], [254, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255]], [[255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255], [255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255], [255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255]]], [[[186, 251, 250, 255, 255, 255, 255, 255, 255, 255, 255], [234, 251, 244, 254, 255, 255, 255, 255, 255, 255, 255], [251, 251, 243, 253, 254, 255, 254, 255, 255, 255, 255]], [[255, 253, 254, 255, 255, 255, 255, 255, 255, 255, 255], [236, 253, 254, 255, 255, 255, 255, 255, 255, 255, 255], [251, 253, 253, 254, 254, 255, 255, 255, 255, 255, 255]], [[255, 254, 254, 255, 255, 255, 255, 255, 255, 255, 255], [254, 254, 254, 255, 255, 255, 255, 255, 255, 255, 255], [255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255]], [[255, 254, 255, 255, 255, 255, 255, 255, 255, 255, 255], [254, 254, 255, 255, 255, 255, 255, 255, 255, 255, 255], [254, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255]], [[255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255], [254, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255], [255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255]], [[255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255], [255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255], [255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255]], [[255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255], [255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255], [255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255]], [[255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255], [255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255], [255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255]]], [[[248, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255], [250, 254, 252, 254, 255, 255, 255, 255, 255, 255, 255], [248, 254, 249, 253, 255, 255, 255, 255, 255, 255, 255]], [[255, 253, 253, 255, 255, 255, 255, 255, 255, 255, 255], [246, 253, 253, 255, 255, 255, 255, 255, 255, 255, 255], [252, 254, 251, 254, 254, 255, 255, 255, 255, 255, 255]], [[255, 254, 252, 255, 255, 255, 255, 255, 255, 255, 255], [248, 254, 253, 255, 255, 255, 255, 255, 255, 255, 255], [253, 255, 254, 254, 255, 255, 255, 255, 255, 255, 255]], [[255, 251, 254, 255, 255, 255, 255, 255, 255, 255, 255], [245, 251, 254, 255, 255, 255, 255, 255, 255, 255, 255], [253, 253, 254, 255, 255, 255, 255, 255, 255, 255, 255]], [[255, 251, 253, 255, 255, 255, 255, 255, 255, 255, 255], [252, 253, 254, 255, 255, 255, 255, 255, 255, 255, 255], [255, 254, 255, 255, 255, 255, 255, 255, 255, 255, 255]], [[255, 252, 255, 255, 255, 255, 255, 255, 255, 255, 255], [249, 255, 254, 255, 255, 255, 255, 255, 255, 255, 255], [255, 255, 254, 255, 255, 255, 255, 255, 255, 255, 255]], [[255, 255, 253, 255, 255, 255, 255, 255, 255, 255, 255], [250, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255], [255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255]], [[255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255], [254, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255], [255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255]]]], S4 = [0, 1, 2, 3, 6, 4, 5, 6, 6, 6, 6, 6, 6, 6, 6, 7, 0], zi = [], Va = [], yi = [], U4 = 1, A0 = 2, Xi = [], Ta = [];
    ze("UpsampleRgbLinePair", KA, 3), ze("UpsampleBgrLinePair", VA, 3), ze("UpsampleRgbaLinePair", er, 4), ze("UpsampleBgraLinePair", _r, 4), ze("UpsampleArgbLinePair", Ur, 4), ze("UpsampleRgba4444LinePair", yr, 2), ze("UpsampleRgb565LinePair", ln, 2);
    var T4 = k.UpsampleRgbLinePair, Q4 = k.UpsampleBgrLinePair, r0 = k.UpsampleRgbaLinePair, n0 = k.UpsampleBgraLinePair, a0 = k.UpsampleArgbLinePair, i0 = k.UpsampleRgba4444LinePair, D4 = k.UpsampleRgb565LinePair, zl = 16, Xl = 1 << zl - 1, jo = -227, of = 482, k4 = 6, s0 = 0, L4 = a(256), I4 = a(256), _4 = a(256), N4 = a(256), M4 = a(of - jo), O4 = a(of - jo);
    Kn("YuvToRgbRow", KA, 3), Kn("YuvToBgrRow", VA, 3), Kn("YuvToRgbaRow", er, 4), Kn("YuvToBgraRow", _r, 4), Kn("YuvToArgbRow", Ur, 4), Kn("YuvToRgba4444Row", yr, 2), Kn("YuvToRgb565Row", ln, 2);
    var o0 = [0, 4, 8, 12, 128, 132, 136, 140, 256, 260, 264, 268, 384, 388, 392, 396], Jl = [0, 2, 8], R4 = [8, 7, 6, 4, 4, 2, 2, 2, 1, 1, 1, 1], H4 = 1;
    this.WebPDecodeRGBA = function(f, d, B, b, Q) {
      var _ = Wl, P = new nt(), G = new Re();
      P.ba = G, G.S = _, G.width = [G.width], G.height = [G.height];
      var J = G.width, ie = G.height, Ee = new $e();
      if (Ee == null || f == null) var He = 2;
      else t(Ee != null), He = Fa(f, d, B, Ee.width, Ee.height, Ee.Pd, Ee.Qd, Ee.format, null);
      if (He != 0 ? J = 0 : (J != null && (J[0] = Ee.width[0]), ie != null && (ie[0] = Ee.height[0]), J = 1), J) {
        G.width = G.width[0], G.height = G.height[0], b != null && (b[0] = G.width), Q != null && (Q[0] = G.height);
        e: {
          if (b = new fA(), (Q = new ct()).data = f, Q.w = d, Q.ha = B, Q.kd = 1, d = [0], t(Q != null), ((f = Fa(Q.data, Q.w, Q.ha, null, null, null, d, null, Q)) == 0 || f == 7) && d[0] && (f = 4), (d = f) == 0) {
            if (t(P != null), b.data = Q.data, b.w = Q.w + Q.offset, b.ha = Q.ha - Q.offset, b.put = Lt, b.ac = JA, b.bc = Qr, b.ma = P, Q.xa) {
              if ((f = Un()) == null) {
                P = 1;
                break e;
              }
              if ((function(se, Ue) {
                var Ne = [0], At = [0], Oe = [0];
                t: for (; ; ) {
                  if (se == null) return 0;
                  if (Ue == null) return se.a = 2, 0;
                  if (se.l = Ue, se.a = 0, X(se.m, Ue.data, Ue.w, Ue.ha), !Fr(se.m, Ne, At, Oe)) {
                    se.a = 3;
                    break t;
                  }
                  if (se.xb = A0, Ue.width = Ne[0], Ue.height = At[0], !Dt(Ne[0], At[0], 1, se, null)) break t;
                  return 1;
                }
                return t(se.a != 0), 0;
              })(f, b)) {
                if (b = (d = ar(b.width, b.height, P.Oa, P.ba)) == 0) {
                  t: {
                    b = f;
                    A: for (; ; ) {
                      if (b == null) {
                        b = 0;
                        break t;
                      }
                      if (t(b.s.yc != null), t(b.s.Ya != null), t(0 < b.s.Wb), t((B = b.l) != null), t((Q = B.ma) != null), b.xb != 0) {
                        if (b.ca = Q.ba, b.tb = Q.tb, t(b.ca != null), !bs(Q.Oa, B, Gl)) {
                          b.a = 2;
                          break A;
                        }
                        if (!be(b, B.width) || B.da) break A;
                        if ((B.da || Nt(b.ca.S)) && Xe(), 11 > b.ca.S || (alert("todo:WebPInitConvertARGBToYUV"), b.ca.f.kb.F != null && Xe()), b.Pb && 0 < b.s.ua && b.s.vb.X == null && !D(b.s.vb, b.s.Wa.Xa)) {
                          b.a = 1;
                          break A;
                        }
                        b.xb = 0;
                      }
                      if (!ZA(b, b.V, b.Ba, b.c, b.i, B.o, Sr)) break A;
                      Q.Dc = b.Ma, b = 1;
                      break t;
                    }
                    t(b.a != 0), b = 0;
                  }
                  b = !b;
                }
                b && (d = f.a);
              } else d = f.a;
            } else {
              if ((f = new gA()) == null) {
                P = 1;
                break e;
              }
              if (f.Fa = Q.na, f.P = Q.P, f.qc = Q.Sa, Gt(f, b)) {
                if ((d = ar(b.width, b.height, P.Oa, P.ba)) == 0) {
                  if (f.Aa = 0, B = P.Oa, t((Q = f) != null), B != null) {
                    if (0 < (J = 0 > (J = B.Md) ? 0 : 100 < J ? 255 : 255 * J / 100)) {
                      for (ie = Ee = 0; 4 > ie; ++ie) 12 > (He = Q.pb[ie]).lc && (He.ia = J * R4[0 > He.lc ? 0 : He.lc] >> 3), Ee |= He.ia;
                      Ee && (alert("todo:VP8InitRandom"), Q.ia = 1);
                    }
                    Q.Ga = B.Id, 100 < Q.Ga ? Q.Ga = 100 : 0 > Q.Ga && (Q.Ga = 0);
                  }
                  (function(se, Ue) {
                    if (se == null) return 0;
                    if (Ue == null) return Xt(se, 2, "NULL VP8Io parameter in VP8Decode().");
                    if (!se.cb && !Gt(se, Ue)) return 0;
                    if (t(se.cb), Ue.ac == null || Ue.ac(Ue)) {
                      Ue.ob && (se.L = 0);
                      var Ne = Jl[se.L];
                      if (se.L == 2 ? (se.yb = 0, se.zb = 0) : (se.yb = Ue.v - Ne >> 4, se.zb = Ue.j - Ne >> 4, 0 > se.yb && (se.yb = 0), 0 > se.zb && (se.zb = 0)), se.Va = Ue.o + 15 + Ne >> 4, se.Hb = Ue.va + 15 + Ne >> 4, se.Hb > se.za && (se.Hb = se.za), se.Va > se.Ub && (se.Va = se.Ub), 0 < se.L) {
                        var At = se.ed;
                        for (Ne = 0; 4 > Ne; ++Ne) {
                          var Oe;
                          if (se.Qa.Cb) {
                            var st = se.Qa.Lb[Ne];
                            se.Qa.Fb || (st += At.Tb);
                          } else st = At.Tb;
                          for (Oe = 0; 1 >= Oe; ++Oe) {
                            var ot = se.gd[Ne][Oe], wt = st;
                            if (At.Pc && (wt += At.vd[0], Oe && (wt += At.od[0])), 0 < (wt = 0 > wt ? 0 : 63 < wt ? 63 : wt)) {
                              var ht = wt;
                              0 < At.wb && (ht = 4 < At.wb ? ht >> 2 : ht >> 1) > 9 - At.wb && (ht = 9 - At.wb), 1 > ht && (ht = 1), ot.dd = ht, ot.tc = 2 * wt + ht, ot.ld = 40 <= wt ? 2 : 15 <= wt ? 1 : 0;
                            } else ot.tc = 0;
                            ot.La = Oe;
                          }
                        }
                      }
                      Ne = 0;
                    } else Xt(se, 6, "Frame setup failed"), Ne = se.a;
                    if (Ne = Ne == 0) {
                      if (Ne) {
                        se.$c = 0, 0 < se.Aa || (se.Ic = H4);
                        t: {
                          Ne = se.Ic, At = 4 * (ht = se.za);
                          var Zt = 32 * ht, Vt = ht + 1, BA = 0 < se.L ? ht * (0 < se.Aa ? 2 : 1) : 0, $t = (se.Aa == 2 ? 2 : 1) * ht;
                          if ((ot = At + 832 + (Oe = 3 * (16 * Ne + Jl[se.L]) / 2 * Zt) + (st = se.Fa != null && 0 < se.Fa.length ? se.Kc.c * se.Kc.i : 0)) != ot) Ne = 0;
                          else {
                            if (ot > se.Vb) {
                              if (se.Vb = 0, se.Ec = a(ot), se.Fc = 0, se.Ec == null) {
                                Ne = Xt(se, 1, "no memory during frame initialization.");
                                break t;
                              }
                              se.Vb = ot;
                            }
                            ot = se.Ec, wt = se.Fc, se.Ac = ot, se.Bc = wt, wt += At, se.Gd = s(Zt, ft), se.Hd = 0, se.rb = s(Vt + 1, Ze), se.sb = 1, se.wa = BA ? s(BA, ke) : null, se.Y = 0, se.D.Nb = 0, se.D.wa = se.wa, se.D.Y = se.Y, 0 < se.Aa && (se.D.Y += ht), t(!0), se.oc = ot, se.pc = wt, wt += 832, se.ya = s($t, tt), se.aa = 0, se.D.ya = se.ya, se.D.aa = se.aa, se.Aa == 2 && (se.D.aa += ht), se.R = 16 * ht, se.B = 8 * ht, ht = (Zt = Jl[se.L]) * se.R, Zt = Zt / 2 * se.B, se.sa = ot, se.ta = wt + ht, se.qa = se.sa, se.ra = se.ta + 16 * Ne * se.R + Zt, se.Ha = se.qa, se.Ia = se.ra + 8 * Ne * se.B + Zt, se.$c = 0, wt += Oe, se.mb = st ? ot : null, se.nb = st ? wt : null, t(wt + st <= se.Fc + se.Vb), FA(se), n(se.Ac, se.Bc, 0, At), Ne = 1;
                          }
                        }
                        if (Ne) {
                          if (Ue.ka = 0, Ue.y = se.sa, Ue.O = se.ta, Ue.f = se.qa, Ue.N = se.ra, Ue.ea = se.Ha, Ue.Vd = se.Ia, Ue.fa = se.R, Ue.Rc = se.B, Ue.F = null, Ue.J = 0, !Xv) {
                            for (Ne = -255; 255 >= Ne; ++Ne) Gv[255 + Ne] = 0 > Ne ? -Ne : Ne;
                            for (Ne = -1020; 1020 >= Ne; ++Ne) Yv[1020 + Ne] = -128 > Ne ? -128 : 127 < Ne ? 127 : Ne;
                            for (Ne = -112; 112 >= Ne; ++Ne) $v[112 + Ne] = -16 > Ne ? -16 : 15 < Ne ? 15 : Ne;
                            for (Ne = -255; 510 >= Ne; ++Ne) zv[255 + Ne] = 0 > Ne ? 0 : 255 < Ne ? 255 : Ne;
                            Xv = 1;
                          }
                          $i = GA, Es = Pn, li = WA, $A = bA, or = nr, Sa = ea, Vr = ro, rn = ua, Bi = T, Ko = ne, io = no, Vl = v, Ov = we, Rv = De, Hv = Ea, Pv = qi, Kv = to, Vv = Ao, Va[0] = Js, Va[1] = pn, Va[2] = Mo, Va[3] = Xs, Va[4] = Ra, Va[5] = Bs, Va[6] = vn, Va[7] = Zs, Va[8] = Hi, Va[9] = ni, zi[0] = Dn, zi[1] = la, zi[2] = Qn, zi[3] = Ca, zi[4] = Ir, zi[5] = kn, zi[6] = zs, yi[0] = Pi, yi[1] = ba, yi[2] = wA, yi[3] = ta, yi[4] = ys, yi[5] = ai, yi[6] = eo, Ne = 1;
                        } else Ne = 0;
                      }
                      Ne && (Ne = (function(DA, nn) {
                        for (DA.M = 0; DA.M < DA.Va; ++DA.M) {
                          var yA, zt = DA.Jc[DA.M & DA.Xb], Tt = DA.m, qr = DA;
                          for (yA = 0; yA < qr.za; ++yA) {
                            var vA = Tt, _A = qr, mr = _A.Ac, Bn = _A.Bc + 4 * yA, Vn = _A.zc, Nr = _A.ya[_A.aa + yA];
                            if (_A.Qa.Bb ? Nr.$b = Se(vA, _A.Pa.jb[0]) ? 2 + Se(vA, _A.Pa.jb[2]) : Se(vA, _A.Pa.jb[1]) : Nr.$b = 0, _A.kc && (Nr.Ad = Se(vA, _A.Bd)), Nr.Za = !Se(vA, 145) + 0, Nr.Za) {
                              var Ln = Nr.Ob, qn = 0;
                              for (_A = 0; 4 > _A; ++_A) {
                                var an, RA = Vn[0 + _A];
                                for (an = 0; 4 > an; ++an) {
                                  RA = F4[mr[Bn + an]][RA];
                                  for (var tr = t0[Se(vA, RA[0])]; 0 < tr; ) tr = t0[2 * tr + Se(vA, RA[tr])];
                                  RA = -tr, mr[Bn + an] = RA;
                                }
                                A(Ln, qn, mr, Bn, 4), qn += 4, Vn[0 + _A] = RA;
                              }
                            } else RA = Se(vA, 156) ? Se(vA, 128) ? 1 : 3 : Se(vA, 163) ? 2 : 0, Nr.Ob[0] = RA, n(mr, Bn, RA, 4), n(Vn, 0, RA, 4);
                            Nr.Dd = Se(vA, 142) ? Se(vA, 114) ? Se(vA, 183) ? 1 : 3 : 2 : 0;
                          }
                          if (qr.m.Ka) return Xt(DA, 7, "Premature end-of-partition0 encountered.");
                          for (; DA.ja < DA.za; ++DA.ja) {
                            if (qr = zt, vA = (Tt = DA).rb[Tt.sb - 1], mr = Tt.rb[Tt.sb + Tt.ja], yA = Tt.ya[Tt.aa + Tt.ja], Bn = Tt.kc ? yA.Ad : 0) vA.la = mr.la = 0, yA.Za || (vA.Na = mr.Na = 0), yA.Hc = 0, yA.Gc = 0, yA.ia = 0;
                            else {
                              var Mr, Ar;
                              if (vA = mr, mr = qr, Bn = Tt.Pa.Xc, Vn = Tt.ya[Tt.aa + Tt.ja], Nr = Tt.pb[Vn.$b], _A = Vn.ad, Ln = 0, qn = Tt.rb[Tt.sb - 1], RA = an = 0, n(_A, Ln, 0, 384), Vn.Za) var yn = 0, qa = Bn[3];
                              else {
                                tr = a(16);
                                var jr = vA.Na + qn.Na;
                                if (jr = qo(mr, Bn[1], jr, Nr.Eb, 0, tr, 0), vA.Na = qn.Na = (0 < jr) + 0, 1 < jr) $i(tr, 0, _A, Ln);
                                else {
                                  var ra = tr[0] + 3 >> 3;
                                  for (tr = 0; 256 > tr; tr += 16) _A[Ln + tr] = ra;
                                }
                                yn = 1, qa = Bn[0];
                              }
                              var lr = 15 & vA.la, sn = 15 & qn.la;
                              for (tr = 0; 4 > tr; ++tr) {
                                var ha = 1 & sn;
                                for (ra = Ar = 0; 4 > ra; ++ra) lr = lr >> 1 | (ha = (jr = qo(mr, qa, jr = ha + (1 & lr), Nr.Sc, yn, _A, Ln)) > yn) << 7, Ar = Ar << 2 | (3 < jr ? 3 : 1 < jr ? 2 : _A[Ln + 0] != 0), Ln += 16;
                                lr >>= 4, sn = sn >> 1 | ha << 7, an = (an << 8 | Ar) >>> 0;
                              }
                              for (qa = lr, yn = sn >> 4, Mr = 0; 4 > Mr; Mr += 2) {
                                for (Ar = 0, lr = vA.la >> 4 + Mr, sn = qn.la >> 4 + Mr, tr = 0; 2 > tr; ++tr) {
                                  for (ha = 1 & sn, ra = 0; 2 > ra; ++ra) jr = ha + (1 & lr), lr = lr >> 1 | (ha = 0 < (jr = qo(mr, Bn[2], jr, Nr.Qc, 0, _A, Ln))) << 3, Ar = Ar << 2 | (3 < jr ? 3 : 1 < jr ? 2 : _A[Ln + 0] != 0), Ln += 16;
                                  lr >>= 2, sn = sn >> 1 | ha << 5;
                                }
                                RA |= Ar << 4 * Mr, qa |= lr << 4 << Mr, yn |= (240 & sn) << Mr;
                              }
                              vA.la = qa, qn.la = yn, Vn.Hc = an, Vn.Gc = RA, Vn.ia = 43690 & RA ? 0 : Nr.ia, Bn = !(an | RA);
                            }
                            if (0 < Tt.L && (Tt.wa[Tt.Y + Tt.ja] = Tt.gd[yA.$b][yA.Za], Tt.wa[Tt.Y + Tt.ja].La |= !Bn), qr.Ka) return Xt(DA, 7, "Premature end-of-file encountered.");
                          }
                          if (FA(DA), Tt = nn, qr = 1, yA = (zt = DA).D, vA = 0 < zt.L && zt.M >= zt.zb && zt.M <= zt.Va, zt.Aa == 0) t: {
                            if (yA.M = zt.M, yA.uc = vA, un(zt, yA), qr = 1, yA = (Ar = zt.D).Nb, vA = (RA = Jl[zt.L]) * zt.R, mr = RA / 2 * zt.B, tr = 16 * yA * zt.R, ra = 8 * yA * zt.B, Bn = zt.sa, Vn = zt.ta - vA + tr, Nr = zt.qa, _A = zt.ra - mr + ra, Ln = zt.Ha, qn = zt.Ia - mr + ra, sn = (lr = Ar.M) == 0, an = lr >= zt.Va - 1, zt.Aa == 2 && un(zt, Ar), Ar.uc) for (ha = (jr = zt).D.M, t(jr.D.uc), Ar = jr.yb; Ar < jr.Hb; ++Ar) {
                              yn = Ar, qa = ha;
                              var jn = (da = (bn = jr).D).Nb;
                              Mr = bn.R;
                              var da = da.wa[da.Y + yn], ga = bn.sa, na = bn.ta + 16 * jn * Mr + 16 * yn, pa = da.dd, hr = da.tc;
                              if (hr != 0) if (t(3 <= hr), bn.L == 1) 0 < yn && Pv(ga, na, Mr, hr + 4), da.La && Vv(ga, na, Mr, hr), 0 < qa && Hv(ga, na, Mr, hr + 4), da.La && Kv(ga, na, Mr, hr);
                              else {
                                var va = bn.B, ja = bn.qa, Fs = bn.ra + 8 * jn * va + 8 * yn, bi = bn.Ha, bn = bn.Ia + 8 * jn * va + 8 * yn;
                                jn = da.ld, 0 < yn && (rn(ga, na, Mr, hr + 4, pa, jn), Ko(ja, Fs, bi, bn, va, hr + 4, pa, jn)), da.La && (Vl(ga, na, Mr, hr, pa, jn), Rv(ja, Fs, bi, bn, va, hr, pa, jn)), 0 < qa && (Vr(ga, na, Mr, hr + 4, pa, jn), Bi(ja, Fs, bi, bn, va, hr + 4, pa, jn)), da.La && (io(ga, na, Mr, hr, pa, jn), Ov(ja, Fs, bi, bn, va, hr, pa, jn));
                              }
                            }
                            if (zt.ia && alert("todo:DitherRow"), Tt.put != null) {
                              if (Ar = 16 * lr, lr = 16 * (lr + 1), sn ? (Tt.y = zt.sa, Tt.O = zt.ta + tr, Tt.f = zt.qa, Tt.N = zt.ra + ra, Tt.ea = zt.Ha, Tt.W = zt.Ia + ra) : (Ar -= RA, Tt.y = Bn, Tt.O = Vn, Tt.f = Nr, Tt.N = _A, Tt.ea = Ln, Tt.W = qn), an || (lr -= RA), lr > Tt.o && (lr = Tt.o), Tt.F = null, Tt.J = null, zt.Fa != null && 0 < zt.Fa.length && Ar < lr && (Tt.J = te(zt, Tt, Ar, lr - Ar), Tt.F = zt.mb, Tt.F == null && Tt.F.length == 0)) {
                                qr = Xt(zt, 3, "Could not decode alpha data.");
                                break t;
                              }
                              Ar < Tt.j && (RA = Tt.j - Ar, Ar = Tt.j, t(!(1 & RA)), Tt.O += zt.R * RA, Tt.N += zt.B * (RA >> 1), Tt.W += zt.B * (RA >> 1), Tt.F != null && (Tt.J += Tt.width * RA)), Ar < lr && (Tt.O += Tt.v, Tt.N += Tt.v >> 1, Tt.W += Tt.v >> 1, Tt.F != null && (Tt.J += Tt.v), Tt.ka = Ar - Tt.j, Tt.U = Tt.va - Tt.v, Tt.T = lr - Ar, qr = Tt.put(Tt));
                            }
                            yA + 1 != zt.Ic || an || (A(zt.sa, zt.ta - vA, Bn, Vn + 16 * zt.R, vA), A(zt.qa, zt.ra - mr, Nr, _A + 8 * zt.B, mr), A(zt.Ha, zt.Ia - mr, Ln, qn + 8 * zt.B, mr));
                          }
                          if (!qr) return Xt(DA, 6, "Output aborted.");
                        }
                        return 1;
                      })(se, Ue)), Ue.bc != null && Ue.bc(Ue), Ne &= 1;
                    }
                    return Ne ? (se.cb = 0, Ne) : 0;
                  })(f, b) || (d = f.a);
                }
              } else d = f.a;
            }
            d == 0 && P.Oa != null && P.Oa.fd && (d = wi(P.ba));
          }
          P = d;
        }
        _ = P != 0 ? null : 11 > _ ? G.f.RGBA.eb : G.f.kb.y;
      } else _ = null;
      return _;
    };
    var l0 = [3, 4, 3, 4, 4, 2, 2, 4, 4, 4, 2, 1, 1];
  };
  function l(k, O) {
    for (var S = "", U = 0; U < 4; U++) S += String.fromCharCode(k[O++]);
    return S;
  }
  function u(k, O) {
    return k[O + 0] | k[O + 1] << 8;
  }
  function h(k, O) {
    return (k[O + 0] | k[O + 1] << 8 | k[O + 2] << 16) >>> 0;
  }
  function g(k, O) {
    return (k[O + 0] | k[O + 1] << 8 | k[O + 2] << 16 | k[O + 3] << 24) >>> 0;
  }
  new o();
  var c = [0], p = [0], m = [], y = new o(), w = r, E = (function(k, O) {
    var S = {}, U = 0, W = !1, I = 0, le = 0;
    if (S.frames = [], !/** @license
       * Copyright (c) 2017 Dominik Homberger
      Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
      The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
      THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
      https://webpjs.appspot.com
      WebPRiffParser dominikhlbg@gmail.com
      */
    (function(x, L) {
      for (var j = 0; j < 4; j++) if (x[L + j] != "RIFF".charCodeAt(j)) return !0;
      return !1;
    })(k, O)) {
      for (g(k, O += 4), O += 8; O < k.length; ) {
        var ue = l(k, O), Z = g(k, O += 4);
        O += 4;
        var ee = Z + (1 & Z);
        switch (ue) {
          case "VP8 ":
          case "VP8L":
            S.frames[U] === void 0 && (S.frames[U] = {}), (oe = S.frames[U]).src_off = W ? le : O - 8, oe.src_size = I + Z + 8, U++, W && (W = !1, I = 0, le = 0);
            break;
          case "VP8X":
            (oe = S.header = {}).feature_flags = k[O];
            var X = O + 4;
            oe.canvas_width = 1 + h(k, X), X += 3, oe.canvas_height = 1 + h(k, X), X += 3;
            break;
          case "ALPH":
            W = !0, I = ee + 8, le = O - 8;
            break;
          case "ANIM":
            (oe = S.header).bgcolor = g(k, O), X = O + 4, oe.loop_count = u(k, X), X += 2;
            break;
          case "ANMF":
            var Ae, oe;
            (oe = S.frames[U] = {}).offset_x = 2 * h(k, O), O += 3, oe.offset_y = 2 * h(k, O), O += 3, oe.width = 1 + h(k, O), O += 3, oe.height = 1 + h(k, O), O += 3, oe.duration = h(k, O), O += 3, Ae = k[O++], oe.dispose = 1 & Ae, oe.blend = Ae >> 1 & 1;
        }
        ue != "ANMF" && (O += ee);
      }
      return S;
    }
  })(w, 0);
  E.response = w, E.rgbaoutput = !0, E.dataurl = !1;
  var C = E.header ? E.header : null, F = E.frames ? E.frames : null;
  if (C) {
    C.loop_counter = C.loop_count, c = [C.canvas_height], p = [C.canvas_width];
    for (var H = 0; H < F.length && F[H].blend != 0; H++) ;
  }
  var q = F[0], N = y.WebPDecodeRGBA(w, q.src_off, q.src_size, p, c);
  q.rgba = N, q.imgwidth = p[0], q.imgheight = c[0];
  for (var M = 0; M < p[0] * c[0] * 4; M++) m[M] = N[M];
  return this.width = p, this.height = c, this.data = m, this;
}
(function(r) {
  var t, e, A, n, a, s, i, o, l, u = function(x) {
    return x = x || {}, this.isStrokeTransparent = x.isStrokeTransparent || !1, this.strokeOpacity = x.strokeOpacity || 1, this.strokeStyle = x.strokeStyle || "#000000", this.fillStyle = x.fillStyle || "#000000", this.isFillTransparent = x.isFillTransparent || !1, this.fillOpacity = x.fillOpacity || 1, this.font = x.font || "10px sans-serif", this.textBaseline = x.textBaseline || "alphabetic", this.textAlign = x.textAlign || "left", this.lineWidth = x.lineWidth || 1, this.lineJoin = x.lineJoin || "miter", this.lineCap = x.lineCap || "butt", this.path = x.path || [], this.transform = x.transform !== void 0 ? x.transform.clone() : new o(), this.globalCompositeOperation = x.globalCompositeOperation || "normal", this.globalAlpha = x.globalAlpha || 1, this.clip_path = x.clip_path || [], this.currentPoint = x.currentPoint || new s(), this.miterLimit = x.miterLimit || 10, this.lastPoint = x.lastPoint || new s(), this.lineDashOffset = x.lineDashOffset || 0, this.lineDash = x.lineDash || [], this.margin = x.margin || [0, 0, 0, 0], this.prevPageLastElemOffset = x.prevPageLastElemOffset || 0, this.ignoreClearRect = typeof x.ignoreClearRect != "boolean" || x.ignoreClearRect, this;
  };
  r.events.push(["initialized", function() {
    this.context2d = new h(this), t = this.internal.f2, e = this.internal.getCoordinateString, A = this.internal.getVerticalCoordinateString, n = this.internal.getHorizontalCoordinate, a = this.internal.getVerticalCoordinate, s = this.internal.Point, i = this.internal.Rectangle, o = this.internal.Matrix, l = new u();
  }]);
  var h = function(x) {
    Object.defineProperty(this, "canvas", { get: function() {
      return { parentNode: !1, style: !1 };
    } });
    var L = x;
    Object.defineProperty(this, "pdf", { get: function() {
      return L;
    } });
    var j = !1;
    Object.defineProperty(this, "pageWrapXEnabled", { get: function() {
      return j;
    }, set: function(D) {
      j = !!D;
    } });
    var $ = !1;
    Object.defineProperty(this, "pageWrapYEnabled", { get: function() {
      return $;
    }, set: function(D) {
      $ = !!D;
    } });
    var re = 0;
    Object.defineProperty(this, "posX", { get: function() {
      return re;
    }, set: function(D) {
      isNaN(D) || (re = D);
    } });
    var pe = 0;
    Object.defineProperty(this, "posY", { get: function() {
      return pe;
    }, set: function(D) {
      isNaN(D) || (pe = D);
    } }), Object.defineProperty(this, "margin", { get: function() {
      return l.margin;
    }, set: function(D) {
      var Ie;
      typeof D == "number" ? Ie = [D, D, D, D] : ((Ie = new Array(4))[0] = D[0], Ie[1] = D.length >= 2 ? D[1] : Ie[0], Ie[2] = D.length >= 3 ? D[2] : Ie[0], Ie[3] = D.length >= 4 ? D[3] : Ie[1]), l.margin = Ie;
    } });
    var de = !1;
    Object.defineProperty(this, "autoPaging", { get: function() {
      return de;
    }, set: function(D) {
      de = D;
    } });
    var ce = 0;
    Object.defineProperty(this, "lastBreak", { get: function() {
      return ce;
    }, set: function(D) {
      ce = D;
    } });
    var Se = [];
    Object.defineProperty(this, "pageBreaks", { get: function() {
      return Se;
    }, set: function(D) {
      Se = D;
    } }), Object.defineProperty(this, "ctx", { get: function() {
      return l;
    }, set: function(D) {
      D instanceof u && (l = D);
    } }), Object.defineProperty(this, "path", { get: function() {
      return l.path;
    }, set: function(D) {
      l.path = D;
    } });
    var qe = [];
    Object.defineProperty(this, "ctxStack", { get: function() {
      return qe;
    }, set: function(D) {
      qe = D;
    } }), Object.defineProperty(this, "fillStyle", { get: function() {
      return this.ctx.fillStyle;
    }, set: function(D) {
      var Ie;
      Ie = g(D), this.ctx.fillStyle = Ie.style, this.ctx.isFillTransparent = Ie.a === 0, this.ctx.fillOpacity = Ie.a, this.pdf.setFillColor(Ie.r, Ie.g, Ie.b, { a: Ie.a }), this.pdf.setTextColor(Ie.r, Ie.g, Ie.b, { a: Ie.a });
    } }), Object.defineProperty(this, "strokeStyle", { get: function() {
      return this.ctx.strokeStyle;
    }, set: function(D) {
      var Ie = g(D);
      this.ctx.strokeStyle = Ie.style, this.ctx.isStrokeTransparent = Ie.a === 0, this.ctx.strokeOpacity = Ie.a, Ie.a === 0 ? this.pdf.setDrawColor(255, 255, 255) : (Ie.a, this.pdf.setDrawColor(Ie.r, Ie.g, Ie.b));
    } }), Object.defineProperty(this, "lineCap", { get: function() {
      return this.ctx.lineCap;
    }, set: function(D) {
      ["butt", "round", "square"].indexOf(D) !== -1 && (this.ctx.lineCap = D, this.pdf.setLineCap(D));
    } }), Object.defineProperty(this, "lineWidth", { get: function() {
      return this.ctx.lineWidth;
    }, set: function(D) {
      isNaN(D) || (this.ctx.lineWidth = D, this.pdf.setLineWidth(D));
    } }), Object.defineProperty(this, "lineJoin", { get: function() {
      return this.ctx.lineJoin;
    }, set: function(D) {
      ["bevel", "round", "miter"].indexOf(D) !== -1 && (this.ctx.lineJoin = D, this.pdf.setLineJoin(D));
    } }), Object.defineProperty(this, "miterLimit", { get: function() {
      return this.ctx.miterLimit;
    }, set: function(D) {
      isNaN(D) || (this.ctx.miterLimit = D, this.pdf.setMiterLimit(D));
    } }), Object.defineProperty(this, "textBaseline", { get: function() {
      return this.ctx.textBaseline;
    }, set: function(D) {
      this.ctx.textBaseline = D;
    } }), Object.defineProperty(this, "textAlign", { get: function() {
      return this.ctx.textAlign;
    }, set: function(D) {
      ["right", "end", "center", "left", "start"].indexOf(D) !== -1 && (this.ctx.textAlign = D);
    } });
    var rt = null, at = null, dt = null;
    Object.defineProperty(this, "fontFaces", { get: function() {
      return dt;
    }, set: function(D) {
      rt = null, at = null, dt = D;
    } }), Object.defineProperty(this, "font", { get: function() {
      return this.ctx.font;
    }, set: function(D) {
      var Ie;
      if (this.ctx.font = D, (Ie = /^\s*(?=(?:(?:[-a-z]+\s*){0,2}(italic|oblique))?)(?=(?:(?:[-a-z]+\s*){0,2}(small-caps))?)(?=(?:(?:[-a-z]+\s*){0,2}(bold(?:er)?|lighter|[1-9]00))?)(?:(?:normal|\1|\2|\3)\s*){0,3}((?:xx?-)?(?:small|large)|medium|smaller|larger|[.\d]+(?:\%|in|[cem]m|ex|p[ctx]))(?:\s*\/\s*(normal|[.\d]+(?:\%|in|[cem]m|ex|p[ctx])))?\s*([-_,\"\'\sa-z0-9]+?)\s*$/i.exec(D)) !== null) {
        var me = Ie[1];
        Ie[2];
        var ve = Ie[3], xe = Ie[4];
        Ie[5];
        var Qe = Ie[6], _e = /^([.\d]+)((?:%|in|[cem]m|ex|p[ctx]))$/i.exec(xe)[2];
        xe = Math.floor(_e === "px" ? parseFloat(xe) * this.pdf.internal.scaleFactor : _e === "em" ? parseFloat(xe) * this.pdf.getFontSize() : parseFloat(xe) * this.pdf.internal.scaleFactor), this.pdf.setFontSize(xe);
        var Pe = (function(bt) {
          var nA, qt, Ot = [], Pt = bt.trim();
          if (Pt === "") return Rf;
          if (Pt in D1) return [D1[Pt]];
          for (; Pt !== ""; ) {
            switch (qt = null, nA = (Pt = L1(Pt)).charAt(0)) {
              case '"':
              case "'":
                qt = yD(Pt.substring(1), nA);
                break;
              default:
                qt = bD(Pt);
            }
            if (qt === null || (Ot.push(qt[0]), (Pt = L1(qt[1])) !== "" && Pt.charAt(0) !== ",")) return Rf;
            Pt = Pt.replace(/^,/, "");
          }
          return Ot;
        })(Qe);
        if (this.fontFaces) {
          var je = (function(bt, nA) {
            var qt = bt.getFontList(), Ot = JSON.stringify(qt);
            if (rt === null || at !== Ot) {
              var Pt = (function(sA) {
                var kt = [];
                return Object.keys(sA).forEach(function(hA) {
                  sA[hA].forEach(function(Nt) {
                    var Ce = null;
                    switch (Nt) {
                      case "bold":
                        Ce = { family: hA, weight: "bold" };
                        break;
                      case "italic":
                        Ce = { family: hA, style: "italic" };
                        break;
                      case "bolditalic":
                        Ce = { family: hA, weight: "bold", style: "italic" };
                        break;
                      case "":
                      case "normal":
                        Ce = { family: hA };
                    }
                    Ce !== null && (Ce.ref = { name: hA, style: Nt }, kt.push(Ce));
                  });
                }), kt;
              })(qt);
              rt = (function(sA) {
                for (var kt = {}, hA = 0; hA < sA.length; ++hA) {
                  var Nt = Of(sA[hA]), Ce = Nt.family, Ve = Nt.stretch, Re = Nt.style, $e = Nt.weight;
                  kt[Ce] = kt[Ce] || {}, kt[Ce][Ve] = kt[Ce][Ve] || {}, kt[Ce][Ve][Re] = kt[Ce][Ve][Re] || {}, kt[Ce][Ve][Re][$e] = Nt;
                }
                return kt;
              })(Pt.concat(nA)), at = Ot;
            }
            return rt;
          })(this.pdf, this.fontFaces), Ke = Pe.map(function(bt) {
            return { family: bt, stretch: "normal", weight: ve, style: me };
          }), et = (function(bt, nA, qt) {
            for (var Ot = (qt = qt || {}).defaultFontFamily || "times", Pt = Object.assign({}, BD, qt.genericFontFamilies || {}), sA = null, kt = null, hA = 0; hA < nA.length; ++hA) if (Pt[(sA = Of(nA[hA])).family] && (sA.family = Pt[sA.family]), bt.hasOwnProperty(sA.family)) {
              kt = bt[sA.family];
              break;
            }
            if (!(kt = kt || bt[Ot])) throw new Error("Could not find a font-family for the rule '" + k1(sA) + "' and default family '" + Ot + "'.");
            if (kt = (function(Nt, Ce) {
              if (Ce[Nt]) return Ce[Nt];
              var Ve = up[Nt], Re = Ve <= up.normal ? -1 : 1, $e = Q1(Ce, D5, Ve, Re);
              if (!$e) throw new Error("Could not find a matching font-stretch value for " + Nt);
              return $e;
            })(sA.stretch, kt), kt = (function(Nt, Ce) {
              if (Ce[Nt]) return Ce[Nt];
              for (var Ve = Q5[Nt], Re = 0; Re < Ve.length; ++Re) if (Ce[Ve[Re]]) return Ce[Ve[Re]];
              throw new Error("Could not find a matching font-style for " + Nt);
            })(sA.style, kt), !(kt = (function(Nt, Ce) {
              if (Ce[Nt]) return Ce[Nt];
              if (Nt === 400 && Ce[500]) return Ce[500];
              if (Nt === 500 && Ce[400]) return Ce[400];
              var Ve = wD[Nt], Re = Q1(Ce, k5, Ve, Nt < 400 ? -1 : 1);
              if (!Re) throw new Error("Could not find a matching font-weight for value " + Nt);
              return Re;
            })(sA.weight, kt))) throw new Error("Failed to resolve a font for the rule '" + k1(sA) + "'.");
            return kt;
          })(je, Ke);
          this.pdf.setFont(et.ref.name, et.ref.style);
        } else {
          var ut = "";
          (ve === "bold" || parseInt(ve, 10) >= 700 || me === "bold") && (ut = "bold"), me === "italic" && (ut += "italic"), ut.length === 0 && (ut = "normal");
          for (var yt = "", Ft = { arial: "Helvetica", Arial: "Helvetica", verdana: "Helvetica", Verdana: "Helvetica", helvetica: "Helvetica", Helvetica: "Helvetica", "sans-serif": "Helvetica", fixed: "Courier", monospace: "Courier", terminal: "Courier", cursive: "Times", fantasy: "Times", serif: "Times" }, Bt = 0; Bt < Pe.length; Bt++) {
            if (this.pdf.internal.getFont(Pe[Bt], ut, { noFallback: !0, disableWarning: !0 }) !== void 0) {
              yt = Pe[Bt];
              break;
            }
            if (ut === "bolditalic" && this.pdf.internal.getFont(Pe[Bt], "bold", { noFallback: !0, disableWarning: !0 }) !== void 0) yt = Pe[Bt], ut = "bold";
            else if (this.pdf.internal.getFont(Pe[Bt], "normal", { noFallback: !0, disableWarning: !0 }) !== void 0) {
              yt = Pe[Bt], ut = "normal";
              break;
            }
          }
          if (yt === "") {
            for (var St = 0; St < Pe.length; St++) if (Ft[Pe[St]]) {
              yt = Ft[Pe[St]];
              break;
            }
          }
          yt = yt === "" ? "Times" : yt, this.pdf.setFont(yt, ut);
        }
      }
    } }), Object.defineProperty(this, "globalCompositeOperation", { get: function() {
      return this.ctx.globalCompositeOperation;
    }, set: function(D) {
      this.ctx.globalCompositeOperation = D;
    } }), Object.defineProperty(this, "globalAlpha", { get: function() {
      return this.ctx.globalAlpha;
    }, set: function(D) {
      this.ctx.globalAlpha = D;
    } }), Object.defineProperty(this, "lineDashOffset", { get: function() {
      return this.ctx.lineDashOffset;
    }, set: function(D) {
      this.ctx.lineDashOffset = D, oe.call(this);
    } }), Object.defineProperty(this, "lineDash", { get: function() {
      return this.ctx.lineDash;
    }, set: function(D) {
      this.ctx.lineDash = D, oe.call(this);
    } }), Object.defineProperty(this, "ignoreClearRect", { get: function() {
      return this.ctx.ignoreClearRect;
    }, set: function(D) {
      this.ctx.ignoreClearRect = !!D;
    } });
  };
  h.prototype.setLineDash = function(x) {
    this.lineDash = x;
  }, h.prototype.getLineDash = function() {
    return this.lineDash.length % 2 ? this.lineDash.concat(this.lineDash) : this.lineDash.slice();
  }, h.prototype.fill = function() {
    F.call(this, "fill", !1);
  }, h.prototype.stroke = function() {
    F.call(this, "stroke", !1);
  }, h.prototype.beginPath = function() {
    this.path = [{ type: "begin" }];
  }, h.prototype.moveTo = function(x, L) {
    if (isNaN(x) || isNaN(L)) throw ur.error("jsPDF.context2d.moveTo: Invalid arguments", arguments), new Error("Invalid arguments passed to jsPDF.context2d.moveTo");
    var j = this.ctx.transform.applyToPoint(new s(x, L));
    this.path.push({ type: "mt", x: j.x, y: j.y }), this.ctx.lastPoint = new s(x, L);
  }, h.prototype.closePath = function() {
    var x = new s(0, 0), L = 0;
    for (L = this.path.length - 1; L !== -1; L--) if (this.path[L].type === "begin" && jA(this.path[L + 1]) === "object" && typeof this.path[L + 1].x == "number") {
      x = new s(this.path[L + 1].x, this.path[L + 1].y);
      break;
    }
    this.path.push({ type: "close" }), this.ctx.lastPoint = new s(x.x, x.y);
  }, h.prototype.lineTo = function(x, L) {
    if (isNaN(x) || isNaN(L)) throw ur.error("jsPDF.context2d.lineTo: Invalid arguments", arguments), new Error("Invalid arguments passed to jsPDF.context2d.lineTo");
    var j = this.ctx.transform.applyToPoint(new s(x, L));
    this.path.push({ type: "lt", x: j.x, y: j.y }), this.ctx.lastPoint = new s(j.x, j.y);
  }, h.prototype.clip = function() {
    this.ctx.clip_path = JSON.parse(JSON.stringify(this.path)), F.call(this, null, !0);
  }, h.prototype.quadraticCurveTo = function(x, L, j, $) {
    if (isNaN(j) || isNaN($) || isNaN(x) || isNaN(L)) throw ur.error("jsPDF.context2d.quadraticCurveTo: Invalid arguments", arguments), new Error("Invalid arguments passed to jsPDF.context2d.quadraticCurveTo");
    var re = this.ctx.transform.applyToPoint(new s(j, $)), pe = this.ctx.transform.applyToPoint(new s(x, L));
    this.path.push({ type: "qct", x1: pe.x, y1: pe.y, x: re.x, y: re.y }), this.ctx.lastPoint = new s(re.x, re.y);
  }, h.prototype.bezierCurveTo = function(x, L, j, $, re, pe) {
    if (isNaN(re) || isNaN(pe) || isNaN(x) || isNaN(L) || isNaN(j) || isNaN($)) throw ur.error("jsPDF.context2d.bezierCurveTo: Invalid arguments", arguments), new Error("Invalid arguments passed to jsPDF.context2d.bezierCurveTo");
    var de = this.ctx.transform.applyToPoint(new s(re, pe)), ce = this.ctx.transform.applyToPoint(new s(x, L)), Se = this.ctx.transform.applyToPoint(new s(j, $));
    this.path.push({ type: "bct", x1: ce.x, y1: ce.y, x2: Se.x, y2: Se.y, x: de.x, y: de.y }), this.ctx.lastPoint = new s(de.x, de.y);
  }, h.prototype.arc = function(x, L, j, $, re, pe) {
    if (isNaN(x) || isNaN(L) || isNaN(j) || isNaN($) || isNaN(re)) throw ur.error("jsPDF.context2d.arc: Invalid arguments", arguments), new Error("Invalid arguments passed to jsPDF.context2d.arc");
    if (pe = !!pe, !this.ctx.transform.isIdentity) {
      var de = this.ctx.transform.applyToPoint(new s(x, L));
      x = de.x, L = de.y;
      var ce = this.ctx.transform.applyToPoint(new s(0, j)), Se = this.ctx.transform.applyToPoint(new s(0, 0));
      j = Math.sqrt(Math.pow(ce.x - Se.x, 2) + Math.pow(ce.y - Se.y, 2));
    }
    Math.abs(re - $) >= 2 * Math.PI && ($ = 0, re = 2 * Math.PI), this.path.push({ type: "arc", x, y: L, radius: j, startAngle: $, endAngle: re, counterclockwise: pe });
  }, h.prototype.arcTo = function(x, L, j, $, re) {
    throw new Error("arcTo not implemented.");
  }, h.prototype.rect = function(x, L, j, $) {
    if (isNaN(x) || isNaN(L) || isNaN(j) || isNaN($)) throw ur.error("jsPDF.context2d.rect: Invalid arguments", arguments), new Error("Invalid arguments passed to jsPDF.context2d.rect");
    this.moveTo(x, L), this.lineTo(x + j, L), this.lineTo(x + j, L + $), this.lineTo(x, L + $), this.lineTo(x, L), this.lineTo(x + j, L), this.lineTo(x, L);
  }, h.prototype.fillRect = function(x, L, j, $) {
    if (isNaN(x) || isNaN(L) || isNaN(j) || isNaN($)) throw ur.error("jsPDF.context2d.fillRect: Invalid arguments", arguments), new Error("Invalid arguments passed to jsPDF.context2d.fillRect");
    if (!c.call(this)) {
      var re = {};
      this.lineCap !== "butt" && (re.lineCap = this.lineCap, this.lineCap = "butt"), this.lineJoin !== "miter" && (re.lineJoin = this.lineJoin, this.lineJoin = "miter"), this.beginPath(), this.rect(x, L, j, $), this.fill(), re.hasOwnProperty("lineCap") && (this.lineCap = re.lineCap), re.hasOwnProperty("lineJoin") && (this.lineJoin = re.lineJoin);
    }
  }, h.prototype.strokeRect = function(x, L, j, $) {
    if (isNaN(x) || isNaN(L) || isNaN(j) || isNaN($)) throw ur.error("jsPDF.context2d.strokeRect: Invalid arguments", arguments), new Error("Invalid arguments passed to jsPDF.context2d.strokeRect");
    p.call(this) || (this.beginPath(), this.rect(x, L, j, $), this.stroke());
  }, h.prototype.clearRect = function(x, L, j, $) {
    if (isNaN(x) || isNaN(L) || isNaN(j) || isNaN($)) throw ur.error("jsPDF.context2d.clearRect: Invalid arguments", arguments), new Error("Invalid arguments passed to jsPDF.context2d.clearRect");
    this.ignoreClearRect || (this.fillStyle = "#ffffff", this.fillRect(x, L, j, $));
  }, h.prototype.save = function(x) {
    x = typeof x != "boolean" || x;
    for (var L = this.pdf.internal.getCurrentPageInfo().pageNumber, j = 0; j < this.pdf.internal.getNumberOfPages(); j++) this.pdf.setPage(j + 1), this.pdf.internal.out("q");
    if (this.pdf.setPage(L), x) {
      this.ctx.fontSize = this.pdf.internal.getFontSize();
      var $ = new u(this.ctx);
      this.ctxStack.push(this.ctx), this.ctx = $;
    }
  }, h.prototype.restore = function(x) {
    x = typeof x != "boolean" || x;
    for (var L = this.pdf.internal.getCurrentPageInfo().pageNumber, j = 0; j < this.pdf.internal.getNumberOfPages(); j++) this.pdf.setPage(j + 1), this.pdf.internal.out("Q");
    this.pdf.setPage(L), x && this.ctxStack.length !== 0 && (this.ctx = this.ctxStack.pop(), this.fillStyle = this.ctx.fillStyle, this.strokeStyle = this.ctx.strokeStyle, this.font = this.ctx.font, this.lineCap = this.ctx.lineCap, this.lineWidth = this.ctx.lineWidth, this.lineJoin = this.ctx.lineJoin, this.lineDash = this.ctx.lineDash, this.lineDashOffset = this.ctx.lineDashOffset);
  }, h.prototype.toDataURL = function() {
    throw new Error("toDataUrl not implemented.");
  };
  var g = function(x) {
    var L, j, $, re;
    if (x.isCanvasGradient === !0 && (x = x.getColor()), !x) return { r: 0, g: 0, b: 0, a: 0, style: x };
    if (/transparent|rgba\s*\(\s*(\d+)\s*,\s*(\d+)\s*,\s*(\d+)\s*,\s*0+\s*\)/.test(x)) L = 0, j = 0, $ = 0, re = 0;
    else {
      var pe = /rgb\s*\(\s*(\d+)\s*,\s*(\d+)\s*,\s*(\d+)\s*\)/.exec(x);
      if (pe !== null) L = parseInt(pe[1]), j = parseInt(pe[2]), $ = parseInt(pe[3]), re = 1;
      else if ((pe = /rgba\s*\(\s*(\d+)\s*,\s*(\d+)\s*,\s*(\d+)\s*,\s*([\d.]+)\s*\)/.exec(x)) !== null) L = parseInt(pe[1]), j = parseInt(pe[2]), $ = parseInt(pe[3]), re = parseFloat(pe[4]);
      else {
        if (re = 1, typeof x == "string" && x.charAt(0) !== "#") {
          var de = new C5(x);
          x = de.ok ? de.toHex() : "#000000";
        }
        x.length === 4 ? (L = x.substring(1, 2), L += L, j = x.substring(2, 3), j += j, $ = x.substring(3, 4), $ += $) : (L = x.substring(1, 3), j = x.substring(3, 5), $ = x.substring(5, 7)), L = parseInt(L, 16), j = parseInt(j, 16), $ = parseInt($, 16);
      }
    }
    return { r: L, g: j, b: $, a: re, style: x };
  }, c = function() {
    return this.ctx.isFillTransparent || this.globalAlpha == 0;
  }, p = function() {
    return !!(this.ctx.isStrokeTransparent || this.globalAlpha == 0);
  };
  h.prototype.fillText = function(x, L, j, $) {
    if (isNaN(L) || isNaN(j) || typeof x != "string") throw ur.error("jsPDF.context2d.fillText: Invalid arguments", arguments), new Error("Invalid arguments passed to jsPDF.context2d.fillText");
    if ($ = isNaN($) ? void 0 : $, !c.call(this)) {
      var re = ee(this.ctx.transform.rotation), pe = this.ctx.transform.scaleX;
      U.call(this, { text: x, x: L, y: j, scale: pe, angle: re, align: this.textAlign, maxWidth: $ });
    }
  }, h.prototype.strokeText = function(x, L, j, $) {
    if (isNaN(L) || isNaN(j) || typeof x != "string") throw ur.error("jsPDF.context2d.strokeText: Invalid arguments", arguments), new Error("Invalid arguments passed to jsPDF.context2d.strokeText");
    if (!p.call(this)) {
      $ = isNaN($) ? void 0 : $;
      var re = ee(this.ctx.transform.rotation), pe = this.ctx.transform.scaleX;
      U.call(this, { text: x, x: L, y: j, scale: pe, renderingMode: "stroke", angle: re, align: this.textAlign, maxWidth: $ });
    }
  }, h.prototype.measureText = function(x) {
    if (typeof x != "string") throw ur.error("jsPDF.context2d.measureText: Invalid arguments", arguments), new Error("Invalid arguments passed to jsPDF.context2d.measureText");
    var L = this.pdf, j = this.pdf.internal.scaleFactor, $ = L.internal.getFontSize(), re = L.getStringUnitWidth(x) * $ / L.internal.scaleFactor;
    return new function(pe) {
      var de = (pe = pe || {}).width || 0;
      return Object.defineProperty(this, "width", { get: function() {
        return de;
      } }), this;
    }({ width: re *= Math.round(96 * j / 72 * 1e4) / 1e4 });
  }, h.prototype.scale = function(x, L) {
    if (isNaN(x) || isNaN(L)) throw ur.error("jsPDF.context2d.scale: Invalid arguments", arguments), new Error("Invalid arguments passed to jsPDF.context2d.scale");
    var j = new o(x, 0, 0, L, 0, 0);
    this.ctx.transform = this.ctx.transform.multiply(j);
  }, h.prototype.rotate = function(x) {
    if (isNaN(x)) throw ur.error("jsPDF.context2d.rotate: Invalid arguments", arguments), new Error("Invalid arguments passed to jsPDF.context2d.rotate");
    var L = new o(Math.cos(x), Math.sin(x), -Math.sin(x), Math.cos(x), 0, 0);
    this.ctx.transform = this.ctx.transform.multiply(L);
  }, h.prototype.translate = function(x, L) {
    if (isNaN(x) || isNaN(L)) throw ur.error("jsPDF.context2d.translate: Invalid arguments", arguments), new Error("Invalid arguments passed to jsPDF.context2d.translate");
    var j = new o(1, 0, 0, 1, x, L);
    this.ctx.transform = this.ctx.transform.multiply(j);
  }, h.prototype.transform = function(x, L, j, $, re, pe) {
    if (isNaN(x) || isNaN(L) || isNaN(j) || isNaN($) || isNaN(re) || isNaN(pe)) throw ur.error("jsPDF.context2d.transform: Invalid arguments", arguments), new Error("Invalid arguments passed to jsPDF.context2d.transform");
    var de = new o(x, L, j, $, re, pe);
    this.ctx.transform = this.ctx.transform.multiply(de);
  }, h.prototype.setTransform = function(x, L, j, $, re, pe) {
    x = isNaN(x) ? 1 : x, L = isNaN(L) ? 0 : L, j = isNaN(j) ? 0 : j, $ = isNaN($) ? 1 : $, re = isNaN(re) ? 0 : re, pe = isNaN(pe) ? 0 : pe, this.ctx.transform = new o(x, L, j, $, re, pe);
  };
  var m = function() {
    return this.margin[0] > 0 || this.margin[1] > 0 || this.margin[2] > 0 || this.margin[3] > 0;
  };
  h.prototype.drawImage = function(x, L, j, $, re, pe, de, ce, Se) {
    var qe = this.pdf.getImageProperties(x), rt = 1, at = 1, dt = 1, D = 1;
    $ !== void 0 && ce !== void 0 && (dt = ce / $, D = Se / re, rt = qe.width / $ * ce / $, at = qe.height / re * Se / re), pe === void 0 && (pe = L, de = j, L = 0, j = 0), $ !== void 0 && ce === void 0 && (ce = $, Se = re), $ === void 0 && ce === void 0 && (ce = qe.width, Se = qe.height);
    var Ie = this.ctx.transform.decompose(), me = ee(Ie.rotate.shx), ve = new o(), xe = (ve = (ve = (ve = ve.multiply(Ie.translate)).multiply(Ie.skew)).multiply(Ie.scale)).applyToRectangle(new i(pe - L * dt, de - j * D, $ * rt, re * at));
    if (this.autoPaging) {
      for (var Qe, _e = y.call(this, xe), Pe = [], je = 0; je < _e.length; je += 1) Pe.indexOf(_e[je]) === -1 && Pe.push(_e[je]);
      C(Pe);
      for (var Ke = Pe[0], et = Pe[Pe.length - 1], ut = Ke; ut < et + 1; ut++) {
        this.pdf.setPage(ut);
        var yt = this.pdf.internal.pageSize.width - this.margin[3] - this.margin[1], Ft = ut === 1 ? this.posY + this.margin[0] : this.margin[0], Bt = this.pdf.internal.pageSize.height - this.posY - this.margin[0] - this.margin[2], St = this.pdf.internal.pageSize.height - this.margin[0] - this.margin[2], bt = ut === 1 ? 0 : Bt + (ut - 2) * St;
        if (this.ctx.clip_path.length !== 0) {
          var nA = this.path;
          Qe = JSON.parse(JSON.stringify(this.ctx.clip_path)), this.path = E(Qe, this.posX + this.margin[3], -bt + Ft + this.ctx.prevPageLastElemOffset), H.call(this, "fill", !0), this.path = nA;
        }
        var qt = JSON.parse(JSON.stringify(xe));
        qt = E([qt], this.posX + this.margin[3], -bt + Ft + this.ctx.prevPageLastElemOffset)[0];
        var Ot = (ut > Ke || ut < et) && m.call(this);
        Ot && (this.pdf.saveGraphicsState(), this.pdf.rect(this.margin[3], this.margin[0], yt, St, null).clip().discardPath()), this.pdf.addImage(x, "JPEG", qt.x, qt.y, qt.w, qt.h, null, null, me), Ot && this.pdf.restoreGraphicsState();
      }
    } else this.pdf.addImage(x, "JPEG", xe.x, xe.y, xe.w, xe.h, null, null, me);
  };
  var y = function(x, L, j) {
    var $ = [];
    L = L || this.pdf.internal.pageSize.width, j = j || this.pdf.internal.pageSize.height - this.margin[0] - this.margin[2];
    var re = this.posY + this.ctx.prevPageLastElemOffset;
    switch (x.type) {
      default:
      case "mt":
      case "lt":
        $.push(Math.floor((x.y + re) / j) + 1);
        break;
      case "arc":
        $.push(Math.floor((x.y + re - x.radius) / j) + 1), $.push(Math.floor((x.y + re + x.radius) / j) + 1);
        break;
      case "qct":
        var pe = X(this.ctx.lastPoint.x, this.ctx.lastPoint.y, x.x1, x.y1, x.x, x.y);
        $.push(Math.floor((pe.y + re) / j) + 1), $.push(Math.floor((pe.y + pe.h + re) / j) + 1);
        break;
      case "bct":
        var de = Ae(this.ctx.lastPoint.x, this.ctx.lastPoint.y, x.x1, x.y1, x.x2, x.y2, x.x, x.y);
        $.push(Math.floor((de.y + re) / j) + 1), $.push(Math.floor((de.y + de.h + re) / j) + 1);
        break;
      case "rect":
        $.push(Math.floor((x.y + re) / j) + 1), $.push(Math.floor((x.y + x.h + re) / j) + 1);
    }
    for (var ce = 0; ce < $.length; ce += 1) for (; this.pdf.internal.getNumberOfPages() < $[ce]; ) w.call(this);
    return $;
  }, w = function() {
    var x = this.fillStyle, L = this.strokeStyle, j = this.font, $ = this.lineCap, re = this.lineWidth, pe = this.lineJoin;
    this.pdf.addPage(), this.fillStyle = x, this.strokeStyle = L, this.font = j, this.lineCap = $, this.lineWidth = re, this.lineJoin = pe;
  }, E = function(x, L, j) {
    for (var $ = 0; $ < x.length; $++) switch (x[$].type) {
      case "bct":
        x[$].x2 += L, x[$].y2 += j;
      case "qct":
        x[$].x1 += L, x[$].y1 += j;
      default:
        x[$].x += L, x[$].y += j;
    }
    return x;
  }, C = function(x) {
    return x.sort(function(L, j) {
      return L - j;
    });
  }, F = function(x, L) {
    var j = this.fillStyle, $ = this.strokeStyle, re = this.lineCap, pe = this.lineWidth, de = Math.abs(pe * this.ctx.transform.scaleX), ce = this.lineJoin;
    if (this.autoPaging) {
      for (var Se, qe, rt = JSON.parse(JSON.stringify(this.path)), at = JSON.parse(JSON.stringify(this.path)), dt = [], D = 0; D < at.length; D++) if (at[D].x !== void 0) for (var Ie = y.call(this, at[D]), me = 0; me < Ie.length; me += 1) dt.indexOf(Ie[me]) === -1 && dt.push(Ie[me]);
      for (var ve = 0; ve < dt.length; ve++) for (; this.pdf.internal.getNumberOfPages() < dt[ve]; ) w.call(this);
      C(dt);
      for (var xe = dt[0], Qe = dt[dt.length - 1], _e = xe; _e < Qe + 1; _e++) {
        this.pdf.setPage(_e), this.fillStyle = j, this.strokeStyle = $, this.lineCap = re, this.lineWidth = de, this.lineJoin = ce;
        var Pe = this.pdf.internal.pageSize.width - this.margin[3] - this.margin[1], je = _e === 1 ? this.posY + this.margin[0] : this.margin[0], Ke = this.pdf.internal.pageSize.height - this.posY - this.margin[0] - this.margin[2], et = this.pdf.internal.pageSize.height - this.margin[0] - this.margin[2], ut = _e === 1 ? 0 : Ke + (_e - 2) * et;
        if (this.ctx.clip_path.length !== 0) {
          var yt = this.path;
          Se = JSON.parse(JSON.stringify(this.ctx.clip_path)), this.path = E(Se, this.posX + this.margin[3], -ut + je + this.ctx.prevPageLastElemOffset), H.call(this, x, !0), this.path = yt;
        }
        if (qe = JSON.parse(JSON.stringify(rt)), this.path = E(qe, this.posX + this.margin[3], -ut + je + this.ctx.prevPageLastElemOffset), L === !1 || _e === 0) {
          var Ft = (_e > xe || _e < Qe) && m.call(this);
          Ft && (this.pdf.saveGraphicsState(), this.pdf.rect(this.margin[3], this.margin[0], Pe, et, null).clip().discardPath()), H.call(this, x, L), Ft && this.pdf.restoreGraphicsState();
        }
        this.lineWidth = pe;
      }
      this.path = rt;
    } else this.lineWidth = de, H.call(this, x, L), this.lineWidth = pe;
  }, H = function(x, L) {
    if ((x !== "stroke" || L || !p.call(this)) && (x === "stroke" || L || !c.call(this))) {
      for (var j, $, re = [], pe = this.path, de = 0; de < pe.length; de++) {
        var ce = pe[de];
        switch (ce.type) {
          case "begin":
            re.push({ begin: !0 });
            break;
          case "close":
            re.push({ close: !0 });
            break;
          case "mt":
            re.push({ start: ce, deltas: [], abs: [] });
            break;
          case "lt":
            var Se = re.length;
            if (pe[de - 1] && !isNaN(pe[de - 1].x) && (j = [ce.x - pe[de - 1].x, ce.y - pe[de - 1].y], Se > 0)) {
              for (; Se >= 0; Se--) if (re[Se - 1].close !== !0 && re[Se - 1].begin !== !0) {
                re[Se - 1].deltas.push(j), re[Se - 1].abs.push(ce);
                break;
              }
            }
            break;
          case "bct":
            j = [ce.x1 - pe[de - 1].x, ce.y1 - pe[de - 1].y, ce.x2 - pe[de - 1].x, ce.y2 - pe[de - 1].y, ce.x - pe[de - 1].x, ce.y - pe[de - 1].y], re[re.length - 1].deltas.push(j);
            break;
          case "qct":
            var qe = pe[de - 1].x + 2 / 3 * (ce.x1 - pe[de - 1].x), rt = pe[de - 1].y + 2 / 3 * (ce.y1 - pe[de - 1].y), at = ce.x + 2 / 3 * (ce.x1 - ce.x), dt = ce.y + 2 / 3 * (ce.y1 - ce.y), D = ce.x, Ie = ce.y;
            j = [qe - pe[de - 1].x, rt - pe[de - 1].y, at - pe[de - 1].x, dt - pe[de - 1].y, D - pe[de - 1].x, Ie - pe[de - 1].y], re[re.length - 1].deltas.push(j);
            break;
          case "arc":
            re.push({ deltas: [], abs: [], arc: !0 }), Array.isArray(re[re.length - 1].abs) && re[re.length - 1].abs.push(ce);
        }
      }
      $ = L ? null : x === "stroke" ? "stroke" : "fill";
      for (var me = !1, ve = 0; ve < re.length; ve++) if (re[ve].arc) for (var xe = re[ve].abs, Qe = 0; Qe < xe.length; Qe++) {
        var _e = xe[Qe];
        _e.type === "arc" ? M.call(this, _e.x, _e.y, _e.radius, _e.startAngle, _e.endAngle, _e.counterclockwise, void 0, L, !me) : W.call(this, _e.x, _e.y), me = !0;
      }
      else if (re[ve].close === !0) this.pdf.internal.out("h"), me = !1;
      else if (re[ve].begin !== !0) {
        var Pe = re[ve].start.x, je = re[ve].start.y;
        I.call(this, re[ve].deltas, Pe, je), me = !0;
      }
      $ && k.call(this, $), L && O.call(this);
    }
  }, q = function(x) {
    var L = this.pdf.internal.getFontSize() / this.pdf.internal.scaleFactor, j = L * (this.pdf.internal.getLineHeightFactor() - 1);
    switch (this.ctx.textBaseline) {
      case "bottom":
        return x - j;
      case "top":
        return x + L - j;
      case "hanging":
        return x + L - 2 * j;
      case "middle":
        return x + L / 2 - j;
      default:
        return x;
    }
  }, N = function(x) {
    return x + this.pdf.internal.getFontSize() / this.pdf.internal.scaleFactor * (this.pdf.internal.getLineHeightFactor() - 1);
  };
  h.prototype.createLinearGradient = function() {
    var x = function() {
    };
    return x.colorStops = [], x.addColorStop = function(L, j) {
      this.colorStops.push([L, j]);
    }, x.getColor = function() {
      return this.colorStops.length === 0 ? "#000000" : this.colorStops[0][1];
    }, x.isCanvasGradient = !0, x;
  }, h.prototype.createPattern = function() {
    return this.createLinearGradient();
  }, h.prototype.createRadialGradient = function() {
    return this.createLinearGradient();
  };
  var M = function(x, L, j, $, re, pe, de, ce, Se) {
    for (var qe = ue.call(this, j, $, re, pe), rt = 0; rt < qe.length; rt++) {
      var at = qe[rt];
      rt === 0 && (Se ? S.call(this, at.x1 + x, at.y1 + L) : W.call(this, at.x1 + x, at.y1 + L)), le.call(this, x, L, at.x2, at.y2, at.x3, at.y3, at.x4, at.y4);
    }
    ce ? O.call(this) : k.call(this, de);
  }, k = function(x) {
    switch (x) {
      case "stroke":
        this.pdf.internal.out("S");
        break;
      case "fill":
        this.pdf.internal.out("f");
    }
  }, O = function() {
    this.pdf.clip(), this.pdf.discardPath();
  }, S = function(x, L) {
    this.pdf.internal.out(e(x) + " " + A(L) + " m");
  }, U = function(x) {
    var L;
    switch (x.align) {
      case "right":
      case "end":
        L = "right";
        break;
      case "center":
        L = "center";
        break;
      default:
        L = "left";
    }
    var j, $, re, pe = this.pdf.getTextDimensions(x.text), de = q.call(this, x.y), ce = N.call(this, de) - pe.h, Se = this.ctx.transform.applyToPoint(new s(x.x, de));
    if (this.autoPaging) {
      var qe = this.ctx.transform.decompose(), rt = new o();
      rt = (rt = (rt = rt.multiply(qe.translate)).multiply(qe.skew)).multiply(qe.scale);
      for (var at = this.ctx.transform.applyToRectangle(new i(x.x, de, pe.w, pe.h)), dt = rt.applyToRectangle(new i(x.x, ce, pe.w, pe.h)), D = y.call(this, dt), Ie = [], me = 0; me < D.length; me += 1) Ie.indexOf(D[me]) === -1 && Ie.push(D[me]);
      C(Ie);
      for (var ve = Ie[0], xe = Ie[Ie.length - 1], Qe = ve; Qe < xe + 1; Qe++) {
        this.pdf.setPage(Qe);
        var _e = Qe === 1 ? this.posY + this.margin[0] : this.margin[0], Pe = this.pdf.internal.pageSize.height - this.posY - this.margin[0] - this.margin[2], je = this.pdf.internal.pageSize.height - this.margin[2], Ke = je - this.margin[0], et = this.pdf.internal.pageSize.width - this.margin[1], ut = et - this.margin[3], yt = Qe === 1 ? 0 : Pe + (Qe - 2) * Ke;
        if (this.ctx.clip_path.length !== 0) {
          var Ft = this.path;
          j = JSON.parse(JSON.stringify(this.ctx.clip_path)), this.path = E(j, this.posX + this.margin[3], -1 * yt + _e), H.call(this, "fill", !0), this.path = Ft;
        }
        var Bt = E([JSON.parse(JSON.stringify(dt))], this.posX + this.margin[3], -yt + _e + this.ctx.prevPageLastElemOffset)[0];
        x.scale >= 0.01 && ($ = this.pdf.internal.getFontSize(), this.pdf.setFontSize($ * x.scale), re = this.lineWidth, this.lineWidth = re * x.scale);
        var St = this.autoPaging !== "text";
        if (St || Bt.y + Bt.h <= je) {
          if (St || Bt.y >= _e && Bt.x <= et) {
            var bt = St ? x.text : this.pdf.splitTextToSize(x.text, x.maxWidth || et - Bt.x)[0], nA = E([JSON.parse(JSON.stringify(at))], this.posX + this.margin[3], -yt + _e + this.ctx.prevPageLastElemOffset)[0], qt = St && (Qe > ve || Qe < xe) && m.call(this);
            qt && (this.pdf.saveGraphicsState(), this.pdf.rect(this.margin[3], this.margin[0], ut, Ke, null).clip().discardPath()), this.pdf.text(bt, nA.x, nA.y, { angle: x.angle, align: L, renderingMode: x.renderingMode }), qt && this.pdf.restoreGraphicsState();
          }
        } else Bt.y < je && (this.ctx.prevPageLastElemOffset += je - Bt.y);
        x.scale >= 0.01 && (this.pdf.setFontSize($), this.lineWidth = re);
      }
    } else x.scale >= 0.01 && ($ = this.pdf.internal.getFontSize(), this.pdf.setFontSize($ * x.scale), re = this.lineWidth, this.lineWidth = re * x.scale), this.pdf.text(x.text, Se.x + this.posX, Se.y + this.posY, { angle: x.angle, align: L, renderingMode: x.renderingMode, maxWidth: x.maxWidth }), x.scale >= 0.01 && (this.pdf.setFontSize($), this.lineWidth = re);
  }, W = function(x, L, j, $) {
    j = j || 0, $ = $ || 0, this.pdf.internal.out(e(x + j) + " " + A(L + $) + " l");
  }, I = function(x, L, j) {
    return this.pdf.lines(x, L, j, null, null);
  }, le = function(x, L, j, $, re, pe, de, ce) {
    this.pdf.internal.out([t(n(j + x)), t(a($ + L)), t(n(re + x)), t(a(pe + L)), t(n(de + x)), t(a(ce + L)), "c"].join(" "));
  }, ue = function(x, L, j, $) {
    for (var re = 2 * Math.PI, pe = Math.PI / 2; L > j; ) L -= re;
    var de = Math.abs(j - L);
    de < re && $ && (de = re - de);
    for (var ce = [], Se = $ ? -1 : 1, qe = L; de > 1e-5; ) {
      var rt = qe + Se * Math.min(de, pe);
      ce.push(Z.call(this, x, qe, rt)), de -= Math.abs(rt - qe), qe = rt;
    }
    return ce;
  }, Z = function(x, L, j) {
    var $ = (j - L) / 2, re = x * Math.cos($), pe = x * Math.sin($), de = re, ce = -pe, Se = de * de + ce * ce, qe = Se + de * re + ce * pe, rt = 4 / 3 * (Math.sqrt(2 * Se * qe) - qe) / (de * pe - ce * re), at = de - rt * ce, dt = ce + rt * de, D = at, Ie = -dt, me = $ + L, ve = Math.cos(me), xe = Math.sin(me);
    return { x1: x * Math.cos(L), y1: x * Math.sin(L), x2: at * ve - dt * xe, y2: at * xe + dt * ve, x3: D * ve - Ie * xe, y3: D * xe + Ie * ve, x4: x * Math.cos(j), y4: x * Math.sin(j) };
  }, ee = function(x) {
    return 180 * x / Math.PI;
  }, X = function(x, L, j, $, re, pe) {
    var de = x + 0.5 * (j - x), ce = L + 0.5 * ($ - L), Se = re + 0.5 * (j - re), qe = pe + 0.5 * ($ - pe), rt = Math.min(x, re, de, Se), at = Math.max(x, re, de, Se), dt = Math.min(L, pe, ce, qe), D = Math.max(L, pe, ce, qe);
    return new i(rt, dt, at - rt, D - dt);
  }, Ae = function(x, L, j, $, re, pe, de, ce) {
    var Se, qe, rt, at, dt, D, Ie, me, ve, xe, Qe, _e, Pe, je, Ke = j - x, et = $ - L, ut = re - j, yt = pe - $, Ft = de - re, Bt = ce - pe;
    for (qe = 0; qe < 41; qe++) ve = (Ie = (rt = x + (Se = qe / 40) * Ke) + Se * ((dt = j + Se * ut) - rt)) + Se * (dt + Se * (re + Se * Ft - dt) - Ie), xe = (me = (at = L + Se * et) + Se * ((D = $ + Se * yt) - at)) + Se * (D + Se * (pe + Se * Bt - D) - me), qe == 0 ? (Qe = ve, _e = xe, Pe = ve, je = xe) : (Qe = Math.min(Qe, ve), _e = Math.min(_e, xe), Pe = Math.max(Pe, ve), je = Math.max(je, xe));
    return new i(Math.round(Qe), Math.round(_e), Math.round(Pe - Qe), Math.round(je - _e));
  }, oe = function() {
    if (this.prevLineDash || this.ctx.lineDash.length || this.ctx.lineDashOffset) {
      var x, L, j = (x = this.ctx.lineDash, L = this.ctx.lineDashOffset, JSON.stringify({ lineDash: x, lineDashOffset: L }));
      this.prevLineDash !== j && (this.pdf.setLineDash(this.ctx.lineDash, this.ctx.lineDashOffset), this.prevLineDash = j);
    }
  };
})(eA.API), /**
 * @license
 * jsPDF filters PlugIn
 * Copyright (c) 2014 Aras Abbasi
 *
 * Licensed under the MIT License.
 * http://opensource.org/licenses/mit-license
 */
(function(r) {
  var t = function(s) {
    var i, o, l, u, h, g, c, p, m, y;
    for (o = [], l = 0, u = (s += i = "\0\0\0\0".slice(s.length % 4 || 4)).length; u > l; l += 4) (h = (s.charCodeAt(l) << 24) + (s.charCodeAt(l + 1) << 16) + (s.charCodeAt(l + 2) << 8) + s.charCodeAt(l + 3)) !== 0 ? (g = (h = ((h = ((h = ((h = (h - (y = h % 85)) / 85) - (m = h % 85)) / 85) - (p = h % 85)) / 85) - (c = h % 85)) / 85) % 85, o.push(g + 33, c + 33, p + 33, m + 33, y + 33)) : o.push(122);
    return (function(w, E) {
      for (var C = E; C > 0; C--) w.pop();
    })(o, i.length), String.fromCharCode.apply(String, o) + "~>";
  }, e = function(s) {
    var i, o, l, u, h, g = String, c = "length", p = 255, m = "charCodeAt", y = "slice", w = "replace";
    for (s[y](-2), s = s[y](0, -2)[w](/\s/g, "")[w]("z", "!!!!!"), l = [], u = 0, h = (s += i = "uuuuu"[y](s[c] % 5 || 5))[c]; h > u; u += 5) o = 52200625 * (s[m](u) - 33) + 614125 * (s[m](u + 1) - 33) + 7225 * (s[m](u + 2) - 33) + 85 * (s[m](u + 3) - 33) + (s[m](u + 4) - 33), l.push(p & o >> 24, p & o >> 16, p & o >> 8, p & o);
    return (function(E, C) {
      for (var F = C; F > 0; F--) E.pop();
    })(l, i[c]), g.fromCharCode.apply(g, l);
  }, A = function(s) {
    return s.split("").map(function(i) {
      return ("0" + i.charCodeAt().toString(16)).slice(-2);
    }).join("") + ">";
  }, n = function(s) {
    var i = new RegExp(/^([0-9A-Fa-f]{2})+$/);
    if ((s = s.replace(/\s/g, "")).indexOf(">") !== -1 && (s = s.substr(0, s.indexOf(">"))), s.length % 2 && (s += "0"), i.test(s) === !1) return "";
    for (var o = "", l = 0; l < s.length; l += 2) o += String.fromCharCode("0x" + (s[l] + s[l + 1]));
    return o;
  }, a = function(s) {
    for (var i = new Uint8Array(s.length), o = s.length; o--; ) i[o] = s.charCodeAt(o);
    return (i = rp(i)).reduce(function(l, u) {
      return l + String.fromCharCode(u);
    }, "");
  };
  r.processDataByFilters = function(s, i) {
    var o = 0, l = s || "", u = [];
    for (typeof (i = i || []) == "string" && (i = [i]), o = 0; o < i.length; o += 1) switch (i[o]) {
      case "ASCII85Decode":
      case "/ASCII85Decode":
        l = e(l), u.push("/ASCII85Encode");
        break;
      case "ASCII85Encode":
      case "/ASCII85Encode":
        l = t(l), u.push("/ASCII85Decode");
        break;
      case "ASCIIHexDecode":
      case "/ASCIIHexDecode":
        l = n(l), u.push("/ASCIIHexEncode");
        break;
      case "ASCIIHexEncode":
      case "/ASCIIHexEncode":
        l = A(l), u.push("/ASCIIHexDecode");
        break;
      case "FlateEncode":
      case "/FlateEncode":
        l = a(l), u.push("/FlateDecode");
        break;
      default:
        throw new Error('The filter: "' + i[o] + '" is not implemented');
    }
    return { data: l, reverseChain: u.reverse().join(" ") };
  };
})(eA.API), /**
 * @license
 * jsPDF fileloading PlugIn
 * Copyright (c) 2018 Aras Abbasi (aras.abbasi@gmail.com)
 *
 * Licensed under the MIT License.
 * http://opensource.org/licenses/mit-license
 */
(function(r) {
  r.loadFile = function(t, e, A) {
    return (function(n, a, s) {
      a = a !== !1, s = typeof s == "function" ? s : function() {
      };
      var i = void 0;
      try {
        i = (function(o, l, u) {
          var h = new XMLHttpRequest(), g = 0, c = function(p) {
            var m = p.length, y = [], w = String.fromCharCode;
            for (g = 0; g < m; g += 1) y.push(w(255 & p.charCodeAt(g)));
            return y.join("");
          };
          if (h.open("GET", o, !l), h.overrideMimeType("text/plain; charset=x-user-defined"), l === !1 && (h.onload = function() {
            h.status === 200 ? u(c(this.responseText)) : u(void 0);
          }), h.send(null), l && h.status === 200) return c(h.responseText);
        })(n, a, s);
      } catch {
      }
      return i;
    })(t, e, A);
  }, r.loadImageFile = r.loadFile;
})(eA.API), (function(r) {
  function t() {
    return (cA.html2canvas ? Promise.resolve(cA.html2canvas) : Promise.resolve().then(() => fN)).catch(function(i) {
      return Promise.reject(new Error("Could not load html2canvas: " + i));
    }).then(function(i) {
      return i.default ? i.default : i;
    });
  }
  function e() {
    return (cA.DOMPurify ? Promise.resolve(cA.DOMPurify) : Promise.resolve().then(() => jN)).catch(function(i) {
      return Promise.reject(new Error("Could not load dompurify: " + i));
    }).then(function(i) {
      return i.default ? i.default : i;
    });
  }
  var A = function(i) {
    var o = jA(i);
    return o === "undefined" ? "undefined" : o === "string" || i instanceof String ? "string" : o === "number" || i instanceof Number ? "number" : o === "function" || i instanceof Function ? "function" : i && i.constructor === Array ? "array" : i && i.nodeType === 1 ? "element" : o === "object" ? "object" : "unknown";
  }, n = function(i, o) {
    var l = document.createElement(i);
    for (var u in o.className && (l.className = o.className), o.innerHTML && o.dompurify && (l.innerHTML = o.dompurify.sanitize(o.innerHTML)), o.style) l.style[u] = o.style[u];
    return l;
  }, a = function i(o, l) {
    for (var u = o.nodeType === 3 ? document.createTextNode(o.nodeValue) : o.cloneNode(!1), h = o.firstChild; h; h = h.nextSibling) l !== !0 && h.nodeType === 1 && h.nodeName === "SCRIPT" || u.appendChild(i(h, l));
    return o.nodeType === 1 && (o.nodeName === "CANVAS" ? (u.width = o.width, u.height = o.height, u.getContext("2d").drawImage(o, 0, 0)) : o.nodeName !== "TEXTAREA" && o.nodeName !== "SELECT" || (u.value = o.value), u.addEventListener("load", function() {
      u.scrollTop = o.scrollTop, u.scrollLeft = o.scrollLeft;
    }, !0)), u;
  }, s = function i(o) {
    var l = Object.assign(i.convert(Promise.resolve()), JSON.parse(JSON.stringify(i.template))), u = i.convert(Promise.resolve(), l);
    return (u = u.setProgress(1, i, 1, [i])).set(o);
  };
  (s.prototype = Object.create(Promise.prototype)).constructor = s, s.convert = function(i, o) {
    return i.__proto__ = o || s.prototype, i;
  }, s.template = { prop: { src: null, container: null, overlay: null, canvas: null, img: null, pdf: null, pageSize: null, callback: function() {
  } }, progress: { val: 0, state: null, n: 0, stack: [] }, opt: { filename: "file.pdf", margin: [0, 0, 0, 0], enableLinks: !0, x: 0, y: 0, html2canvas: {}, jsPDF: {}, backgroundColor: "transparent" } }, s.prototype.from = function(i, o) {
    return this.then(function() {
      switch (o = o || (function(l) {
        switch (A(l)) {
          case "string":
            return "string";
          case "element":
            return l.nodeName.toLowerCase() === "canvas" ? "canvas" : "element";
          default:
            return "unknown";
        }
      })(i), o) {
        case "string":
          return this.then(e).then(function(l) {
            return this.set({ src: n("div", { innerHTML: i, dompurify: l }) });
          });
        case "element":
          return this.set({ src: i });
        case "canvas":
          return this.set({ canvas: i });
        case "img":
          return this.set({ img: i });
        default:
          return this.error("Unknown source type.");
      }
    });
  }, s.prototype.to = function(i) {
    switch (i) {
      case "container":
        return this.toContainer();
      case "canvas":
        return this.toCanvas();
      case "img":
        return this.toImg();
      case "pdf":
        return this.toPdf();
      default:
        return this.error("Invalid target.");
    }
  }, s.prototype.toContainer = function() {
    return this.thenList([function() {
      return this.prop.src || this.error("Cannot duplicate - no source HTML.");
    }, function() {
      return this.prop.pageSize || this.setPageSize();
    }]).then(function() {
      var i = { position: "relative", display: "inline-block", width: (typeof this.opt.width != "number" || isNaN(this.opt.width) || typeof this.opt.windowWidth != "number" || isNaN(this.opt.windowWidth) ? Math.max(this.prop.src.clientWidth, this.prop.src.scrollWidth, this.prop.src.offsetWidth) : this.opt.windowWidth) + "px", left: 0, right: 0, top: 0, margin: "auto", backgroundColor: this.opt.backgroundColor }, o = a(this.prop.src, this.opt.html2canvas.javascriptEnabled);
      o.tagName === "BODY" && (i.height = Math.max(document.body.scrollHeight, document.body.offsetHeight, document.documentElement.clientHeight, document.documentElement.scrollHeight, document.documentElement.offsetHeight) + "px"), this.prop.overlay = n("div", { className: "html2pdf__overlay", style: { position: "fixed", overflow: "hidden", zIndex: 1e3, left: "-100000px", right: 0, bottom: 0, top: 0 } }), this.prop.container = n("div", { className: "html2pdf__container", style: i }), this.prop.container.appendChild(o), this.prop.container.firstChild.appendChild(n("div", { style: { clear: "both", border: "0 none transparent", margin: 0, padding: 0, height: 0 } })), this.prop.container.style.float = "none", this.prop.overlay.appendChild(this.prop.container), document.body.appendChild(this.prop.overlay), this.prop.container.firstChild.style.position = "relative", this.prop.container.height = Math.max(this.prop.container.firstChild.clientHeight, this.prop.container.firstChild.scrollHeight, this.prop.container.firstChild.offsetHeight) + "px";
    });
  }, s.prototype.toCanvas = function() {
    var i = [function() {
      return document.body.contains(this.prop.container) || this.toContainer();
    }];
    return this.thenList(i).then(t).then(function(o) {
      var l = Object.assign({}, this.opt.html2canvas);
      return delete l.onrendered, o(this.prop.container, l);
    }).then(function(o) {
      (this.opt.html2canvas.onrendered || function() {
      })(o), this.prop.canvas = o, document.body.removeChild(this.prop.overlay);
    });
  }, s.prototype.toContext2d = function() {
    var i = [function() {
      return document.body.contains(this.prop.container) || this.toContainer();
    }];
    return this.thenList(i).then(t).then(function(o) {
      var l = this.opt.jsPDF, u = this.opt.fontFaces, h = typeof this.opt.width != "number" || isNaN(this.opt.width) || typeof this.opt.windowWidth != "number" || isNaN(this.opt.windowWidth) ? 1 : this.opt.width / this.opt.windowWidth, g = Object.assign({ async: !0, allowTaint: !0, scale: h, scrollX: this.opt.scrollX || 0, scrollY: this.opt.scrollY || 0, backgroundColor: "#ffffff", imageTimeout: 15e3, logging: !0, proxy: null, removeContainer: !0, foreignObjectRendering: !1, useCORS: !1 }, this.opt.html2canvas);
      if (delete g.onrendered, l.context2d.autoPaging = this.opt.autoPaging === void 0 || this.opt.autoPaging, l.context2d.posX = this.opt.x, l.context2d.posY = this.opt.y, l.context2d.margin = this.opt.margin, l.context2d.fontFaces = u, u) for (var c = 0; c < u.length; ++c) {
        var p = u[c], m = p.src.find(function(y) {
          return y.format === "truetype";
        });
        m && l.addFont(m.url, p.ref.name, p.ref.style);
      }
      return g.windowHeight = g.windowHeight || 0, g.windowHeight = g.windowHeight == 0 ? Math.max(this.prop.container.clientHeight, this.prop.container.scrollHeight, this.prop.container.offsetHeight) : g.windowHeight, l.context2d.save(!0), o(this.prop.container, g);
    }).then(function(o) {
      this.opt.jsPDF.context2d.restore(!0), (this.opt.html2canvas.onrendered || function() {
      })(o), this.prop.canvas = o, document.body.removeChild(this.prop.overlay);
    });
  }, s.prototype.toImg = function() {
    return this.thenList([function() {
      return this.prop.canvas || this.toCanvas();
    }]).then(function() {
      var i = this.prop.canvas.toDataURL("image/" + this.opt.image.type, this.opt.image.quality);
      this.prop.img = document.createElement("img"), this.prop.img.src = i;
    });
  }, s.prototype.toPdf = function() {
    return this.thenList([function() {
      return this.toContext2d();
    }]).then(function() {
      this.prop.pdf = this.prop.pdf || this.opt.jsPDF;
    });
  }, s.prototype.output = function(i, o, l) {
    return (l = l || "pdf").toLowerCase() === "img" || l.toLowerCase() === "image" ? this.outputImg(i, o) : this.outputPdf(i, o);
  }, s.prototype.outputPdf = function(i, o) {
    return this.thenList([function() {
      return this.prop.pdf || this.toPdf();
    }]).then(function() {
      return this.prop.pdf.output(i, o);
    });
  }, s.prototype.outputImg = function(i) {
    return this.thenList([function() {
      return this.prop.img || this.toImg();
    }]).then(function() {
      switch (i) {
        case void 0:
        case "img":
          return this.prop.img;
        case "datauristring":
        case "dataurlstring":
          return this.prop.img.src;
        case "datauri":
        case "dataurl":
          return document.location.href = this.prop.img.src;
        default:
          throw 'Image output type "' + i + '" is not supported.';
      }
    });
  }, s.prototype.save = function(i) {
    return this.thenList([function() {
      return this.prop.pdf || this.toPdf();
    }]).set(i ? { filename: i } : null).then(function() {
      this.prop.pdf.save(this.opt.filename);
    });
  }, s.prototype.doCallback = function() {
    return this.thenList([function() {
      return this.prop.pdf || this.toPdf();
    }]).then(function() {
      this.prop.callback(this.prop.pdf);
    });
  }, s.prototype.set = function(i) {
    if (A(i) !== "object") return this;
    var o = Object.keys(i || {}).map(function(l) {
      if (l in s.template.prop) return function() {
        this.prop[l] = i[l];
      };
      switch (l) {
        case "margin":
          return this.setMargin.bind(this, i.margin);
        case "jsPDF":
          return function() {
            return this.opt.jsPDF = i.jsPDF, this.setPageSize();
          };
        case "pageSize":
          return this.setPageSize.bind(this, i.pageSize);
        default:
          return function() {
            this.opt[l] = i[l];
          };
      }
    }, this);
    return this.then(function() {
      return this.thenList(o);
    });
  }, s.prototype.get = function(i, o) {
    return this.then(function() {
      var l = i in s.template.prop ? this.prop[i] : this.opt[i];
      return o ? o(l) : l;
    });
  }, s.prototype.setMargin = function(i) {
    return this.then(function() {
      switch (A(i)) {
        case "number":
          i = [i, i, i, i];
        case "array":
          if (i.length === 2 && (i = [i[0], i[1], i[0], i[1]]), i.length === 4) break;
        default:
          return this.error("Invalid margin array.");
      }
      this.opt.margin = i;
    }).then(this.setPageSize);
  }, s.prototype.setPageSize = function(i) {
    function o(l, u) {
      return Math.floor(l * u / 72 * 96);
    }
    return this.then(function() {
      (i = i || eA.getPageSize(this.opt.jsPDF)).hasOwnProperty("inner") || (i.inner = { width: i.width - this.opt.margin[1] - this.opt.margin[3], height: i.height - this.opt.margin[0] - this.opt.margin[2] }, i.inner.px = { width: o(i.inner.width, i.k), height: o(i.inner.height, i.k) }, i.inner.ratio = i.inner.height / i.inner.width), this.prop.pageSize = i;
    });
  }, s.prototype.setProgress = function(i, o, l, u) {
    return i != null && (this.progress.val = i), o != null && (this.progress.state = o), l != null && (this.progress.n = l), u != null && (this.progress.stack = u), this.progress.ratio = this.progress.val / this.progress.state, this;
  }, s.prototype.updateProgress = function(i, o, l, u) {
    return this.setProgress(i ? this.progress.val + i : null, o || null, l ? this.progress.n + l : null, u ? this.progress.stack.concat(u) : null);
  }, s.prototype.then = function(i, o) {
    var l = this;
    return this.thenCore(i, o, function(u, h) {
      return l.updateProgress(null, null, 1, [u]), Promise.prototype.then.call(this, function(g) {
        return l.updateProgress(null, u), g;
      }).then(u, h).then(function(g) {
        return l.updateProgress(1), g;
      });
    });
  }, s.prototype.thenCore = function(i, o, l) {
    l = l || Promise.prototype.then;
    var u = this;
    i && (i = i.bind(u)), o && (o = o.bind(u));
    var h = Promise.toString().indexOf("[native code]") !== -1 && Promise.name === "Promise" ? u : s.convert(Object.assign({}, u), Promise.prototype), g = l.call(h, i, o);
    return s.convert(g, u.__proto__);
  }, s.prototype.thenExternal = function(i, o) {
    return Promise.prototype.then.call(this, i, o);
  }, s.prototype.thenList = function(i) {
    var o = this;
    return i.forEach(function(l) {
      o = o.thenCore(l);
    }), o;
  }, s.prototype.catch = function(i) {
    i && (i = i.bind(this));
    var o = Promise.prototype.catch.call(this, i);
    return s.convert(o, this);
  }, s.prototype.catchExternal = function(i) {
    return Promise.prototype.catch.call(this, i);
  }, s.prototype.error = function(i) {
    return this.then(function() {
      throw new Error(i);
    });
  }, s.prototype.using = s.prototype.set, s.prototype.saveAs = s.prototype.save, s.prototype.export = s.prototype.output, s.prototype.run = s.prototype.then, eA.getPageSize = function(i, o, l) {
    if (jA(i) === "object") {
      var u = i;
      i = u.orientation, o = u.unit || o, l = u.format || l;
    }
    o = o || "mm", l = l || "a4", i = ("" + (i || "P")).toLowerCase();
    var h, g = ("" + l).toLowerCase(), c = { a0: [2383.94, 3370.39], a1: [1683.78, 2383.94], a2: [1190.55, 1683.78], a3: [841.89, 1190.55], a4: [595.28, 841.89], a5: [419.53, 595.28], a6: [297.64, 419.53], a7: [209.76, 297.64], a8: [147.4, 209.76], a9: [104.88, 147.4], a10: [73.7, 104.88], b0: [2834.65, 4008.19], b1: [2004.09, 2834.65], b2: [1417.32, 2004.09], b3: [1000.63, 1417.32], b4: [708.66, 1000.63], b5: [498.9, 708.66], b6: [354.33, 498.9], b7: [249.45, 354.33], b8: [175.75, 249.45], b9: [124.72, 175.75], b10: [87.87, 124.72], c0: [2599.37, 3676.54], c1: [1836.85, 2599.37], c2: [1298.27, 1836.85], c3: [918.43, 1298.27], c4: [649.13, 918.43], c5: [459.21, 649.13], c6: [323.15, 459.21], c7: [229.61, 323.15], c8: [161.57, 229.61], c9: [113.39, 161.57], c10: [79.37, 113.39], dl: [311.81, 623.62], letter: [612, 792], "government-letter": [576, 756], legal: [612, 1008], "junior-legal": [576, 360], ledger: [1224, 792], tabloid: [792, 1224], "credit-card": [153, 243] };
    switch (o) {
      case "pt":
        h = 1;
        break;
      case "mm":
        h = 72 / 25.4;
        break;
      case "cm":
        h = 72 / 2.54;
        break;
      case "in":
        h = 72;
        break;
      case "px":
        h = 0.75;
        break;
      case "pc":
      case "em":
        h = 12;
        break;
      case "ex":
        h = 6;
        break;
      default:
        throw "Invalid unit: " + o;
    }
    var p, m = 0, y = 0;
    if (c.hasOwnProperty(g)) m = c[g][1] / h, y = c[g][0] / h;
    else try {
      m = l[1], y = l[0];
    } catch {
      throw new Error("Invalid format: " + l);
    }
    if (i === "p" || i === "portrait") i = "p", y > m && (p = y, y = m, m = p);
    else {
      if (i !== "l" && i !== "landscape") throw "Invalid orientation: " + i;
      i = "l", m > y && (p = y, y = m, m = p);
    }
    return { width: y, height: m, unit: o, k: h, orientation: i };
  }, r.html = function(i, o) {
    (o = o || {}).callback = o.callback || function() {
    }, o.html2canvas = o.html2canvas || {}, o.html2canvas.canvas = o.html2canvas.canvas || this.canvas, o.jsPDF = o.jsPDF || this, o.fontFaces = o.fontFaces ? o.fontFaces.map(Of) : null;
    var l = new s(o);
    return o.worker ? l : l.from(i).doCallback();
  };
})(eA.API), eA.API.addJS = function(r) {
  return _1 = r, this.internal.events.subscribe("postPutResources", function() {
    pu = this.internal.newObject(), this.internal.out("<<"), this.internal.out("/Names [(EmbeddedJS) " + (pu + 1) + " 0 R]"), this.internal.out(">>"), this.internal.out("endobj"), I1 = this.internal.newObject(), this.internal.out("<<"), this.internal.out("/S /JavaScript"), this.internal.out("/JS (" + _1 + ")"), this.internal.out(">>"), this.internal.out("endobj");
  }), this.internal.events.subscribe("putCatalog", function() {
    pu !== void 0 && I1 !== void 0 && this.internal.out("/Names <</JavaScript " + pu + " 0 R>>");
  }), this;
}, /**
 * @license
 * Copyright (c) 2014 Steven Spungin (TwelveTone LLC)  steven@twelvetone.tv
 *
 * Licensed under the MIT License.
 * http://opensource.org/licenses/mit-license
 */
(function(r) {
  var t;
  r.events.push(["postPutResources", function() {
    var e = this, A = /^(\d+) 0 obj$/;
    if (this.outline.root.children.length > 0) for (var n = e.outline.render().split(/\r\n/), a = 0; a < n.length; a++) {
      var s = n[a], i = A.exec(s);
      if (i != null) {
        var o = i[1];
        e.internal.newObjectDeferredBegin(o, !1);
      }
      e.internal.write(s);
    }
    if (this.outline.createNamedDestinations) {
      var l = this.internal.pages.length, u = [];
      for (a = 0; a < l; a++) {
        var h = e.internal.newObject();
        u.push(h);
        var g = e.internal.getPageInfo(a + 1);
        e.internal.write("<< /D[" + g.objId + " 0 R /XYZ null null null]>> endobj");
      }
      var c = e.internal.newObject();
      for (e.internal.write("<< /Names [ "), a = 0; a < u.length; a++) e.internal.write("(page_" + (a + 1) + ")" + u[a] + " 0 R");
      e.internal.write(" ] >>", "endobj"), t = e.internal.newObject(), e.internal.write("<< /Dests " + c + " 0 R"), e.internal.write(">>", "endobj");
    }
  }]), r.events.push(["putCatalog", function() {
    var e = this;
    e.outline.root.children.length > 0 && (e.internal.write("/Outlines", this.outline.makeRef(this.outline.root)), this.outline.createNamedDestinations && e.internal.write("/Names " + t + " 0 R"));
  }]), r.events.push(["initialized", function() {
    var e = this;
    e.outline = { createNamedDestinations: !1, root: { children: [] } }, e.outline.add = function(A, n, a) {
      var s = { title: n, options: a, children: [] };
      return A == null && (A = this.root), A.children.push(s), s;
    }, e.outline.render = function() {
      return this.ctx = {}, this.ctx.val = "", this.ctx.pdf = e, this.genIds_r(this.root), this.renderRoot(this.root), this.renderItems(this.root), this.ctx.val;
    }, e.outline.genIds_r = function(A) {
      A.id = e.internal.newObjectDeferred();
      for (var n = 0; n < A.children.length; n++) this.genIds_r(A.children[n]);
    }, e.outline.renderRoot = function(A) {
      this.objStart(A), this.line("/Type /Outlines"), A.children.length > 0 && (this.line("/First " + this.makeRef(A.children[0])), this.line("/Last " + this.makeRef(A.children[A.children.length - 1]))), this.line("/Count " + this.count_r({ count: 0 }, A)), this.objEnd();
    }, e.outline.renderItems = function(A) {
      for (var n = this.ctx.pdf.internal.getVerticalCoordinateString, a = 0; a < A.children.length; a++) {
        var s = A.children[a];
        this.objStart(s), this.line("/Title " + this.makeString(s.title)), this.line("/Parent " + this.makeRef(A)), a > 0 && this.line("/Prev " + this.makeRef(A.children[a - 1])), a < A.children.length - 1 && this.line("/Next " + this.makeRef(A.children[a + 1])), s.children.length > 0 && (this.line("/First " + this.makeRef(s.children[0])), this.line("/Last " + this.makeRef(s.children[s.children.length - 1])));
        var i = this.count = this.count_r({ count: 0 }, s);
        if (i > 0 && this.line("/Count " + i), s.options && s.options.pageNumber) {
          var o = e.internal.getPageInfo(s.options.pageNumber);
          this.line("/Dest [" + o.objId + " 0 R /XYZ 0 " + n(0) + " 0]");
        }
        this.objEnd();
      }
      for (var l = 0; l < A.children.length; l++) this.renderItems(A.children[l]);
    }, e.outline.line = function(A) {
      this.ctx.val += A + `\r
`;
    }, e.outline.makeRef = function(A) {
      return A.id + " 0 R";
    }, e.outline.makeString = function(A) {
      return "(" + e.internal.pdfEscape(A) + ")";
    }, e.outline.objStart = function(A) {
      this.ctx.val += `\r
` + A.id + ` 0 obj\r
<<\r
`;
    }, e.outline.objEnd = function() {
      this.ctx.val += `>> \r
endobj\r
`;
    }, e.outline.count_r = function(A, n) {
      for (var a = 0; a < n.children.length; a++) A.count++, this.count_r(A, n.children[a]);
      return A.count;
    };
  }]);
})(eA.API), /**
 * @license
 *
 * Licensed under the MIT License.
 * http://opensource.org/licenses/mit-license
 */
(function(r) {
  var t = [192, 193, 194, 195, 196, 197, 198, 199];
  r.processJPEG = function(e, A, n, a, s, i) {
    var o, l = this.decode.DCT_DECODE, u = null;
    if (typeof e == "string" || this.__addimage__.isArrayBuffer(e) || this.__addimage__.isArrayBufferView(e)) {
      switch (e = s || e, e = this.__addimage__.isArrayBuffer(e) ? new Uint8Array(e) : e, o = (function(h) {
        for (var g, c = 256 * h.charCodeAt(4) + h.charCodeAt(5), p = h.length, m = { width: 0, height: 0, numcomponents: 1 }, y = 4; y < p; y += 2) {
          if (y += c, t.indexOf(h.charCodeAt(y + 1)) !== -1) {
            g = 256 * h.charCodeAt(y + 5) + h.charCodeAt(y + 6), m = { width: 256 * h.charCodeAt(y + 7) + h.charCodeAt(y + 8), height: g, numcomponents: h.charCodeAt(y + 9) };
            break;
          }
          c = 256 * h.charCodeAt(y + 2) + h.charCodeAt(y + 3);
        }
        return m;
      })(e = this.__addimage__.isArrayBufferView(e) ? this.__addimage__.arrayBufferToBinaryString(e) : e), o.numcomponents) {
        case 1:
          i = this.color_spaces.DEVICE_GRAY;
          break;
        case 4:
          i = this.color_spaces.DEVICE_CMYK;
          break;
        case 3:
          i = this.color_spaces.DEVICE_RGB;
      }
      u = { data: e, width: o.width, height: o.height, colorSpace: i, bitsPerComponent: 8, filter: l, index: A, alias: n };
    }
    return u;
  };
})(eA.API), eA.API.processPNG = function(r, t, e, A) {
  if (this.__addimage__.isArrayBuffer(r) && (r = new Uint8Array(r)), this.__addimage__.isArrayBufferView(r)) {
    var n, a = aD(r, { checkCrc: !0 }), s = a.width, i = a.height, o = a.channels, l = a.palette, u = a.depth;
    n = l && o === 1 ? (function(M) {
      for (var k = M.width, O = M.height, S = M.data, U = M.palette, W = M.depth, I = !1, le = [], ue = [], Z = void 0, ee = !1, X = 0, Ae = 0; Ae < U.length; Ae++) {
        var oe = R0(U[Ae], 4), x = oe[0], L = oe[1], j = oe[2], $ = oe[3];
        le.push(x, L, j), $ != null && ($ === 0 ? (X++, ue.length < 1 && ue.push(Ae)) : $ < 255 && (ee = !0));
      }
      if (ee || X > 1) {
        I = !0, ue = void 0;
        var re = k * O;
        Z = new Uint8Array(re);
        for (var pe = new DataView(S.buffer), de = 0; de < re; de++) {
          var ce = Hf(pe, de, W), Se = R0(U[ce], 4)[3];
          Z[de] = Se;
        }
      } else X === 0 && (ue = void 0);
      return { colorSpace: "Indexed", colorsPerPixel: 1, sMaskBitsPerComponent: I ? 8 : void 0, colorBytes: S, alphaBytes: Z, needSMask: I, palette: le, mask: ue };
    })(a) : o === 2 || o === 4 ? (function(M) {
      for (var k = M.data, O = M.width, S = M.height, U = M.channels, W = M.depth, I = U === 2 ? "DeviceGray" : "DeviceRGB", le = U - 1, ue = O * S, Z = le, ee = ue * Z, X = 1 * ue, Ae = Math.ceil(ee * W / 8), oe = Math.ceil(X * W / 8), x = new Uint8Array(Ae), L = new Uint8Array(oe), j = new DataView(k.buffer), $ = new DataView(x.buffer), re = new DataView(L.buffer), pe = !1, de = 0; de < ue; de++) {
        for (var ce = de * U, Se = 0; Se < Z; Se++) q1($, Hf(j, ce + Se, W), de * Z + Se, W);
        var qe = Hf(j, ce + Z, W);
        qe < (1 << W) - 1 && (pe = !0), q1(re, qe, 1 * de, W);
      }
      return { colorSpace: I, colorsPerPixel: le, sMaskBitsPerComponent: pe ? W : void 0, colorBytes: x, alphaBytes: L, needSMask: pe };
    })(a) : (function(M) {
      var k = M.data, O = M.channels === 1 ? "DeviceGray" : "DeviceRGB";
      return { colorSpace: O, colorsPerPixel: O === "DeviceGray" ? 1 : 3, colorBytes: k instanceof Uint16Array ? (function(S) {
        for (var U = S.length, W = new Uint8Array(2 * U), I = new DataView(W.buffer, W.byteOffset, W.byteLength), le = 0; le < U; le++) I.setUint16(2 * le, S[le], !1);
        return W;
      })(k) : k, needSMask: !1 };
    })(a);
    var h, g, c, p = n, m = p.colorSpace, y = p.colorsPerPixel, w = p.sMaskBitsPerComponent, E = p.colorBytes, C = p.alphaBytes, F = p.needSMask, H = p.palette, q = p.mask, N = null;
    return A !== eA.API.image_compression.NONE && typeof rp == "function" ? (N = (function(M) {
      var k;
      switch (M) {
        case eA.API.image_compression.FAST:
          k = 11;
          break;
        case eA.API.image_compression.MEDIUM:
          k = 13;
          break;
        case eA.API.image_compression.SLOW:
          k = 14;
          break;
        default:
          k = 12;
      }
      return k;
    })(A), h = this.decode.FLATE_DECODE, g = "/Predictor ".concat(N, " /Colors ").concat(y, " /BitsPerComponent ").concat(u, " /Columns ").concat(s), r = R1(E, Math.ceil(s * y * u / 8), y, u, A), F && (c = R1(C, Math.ceil(s * w / 8), 1, w, A))) : (h = void 0, g = void 0, r = E, F && (c = C)), (this.__addimage__.isArrayBuffer(r) || this.__addimage__.isArrayBufferView(r)) && (r = this.__addimage__.arrayBufferToBinaryString(r)), (c && this.__addimage__.isArrayBuffer(c) || this.__addimage__.isArrayBufferView(c)) && (c = this.__addimage__.arrayBufferToBinaryString(c)), { alias: e, data: r, index: t, filter: h, decodeParameters: g, transparency: q, palette: H, sMask: c, predictor: N, width: s, height: i, bitsPerComponent: u, sMaskBitsPerComponent: w, colorSpace: m };
  }
}, (function(r) {
  r.processGIF89A = function(t, e, A, n) {
    var a = new xD(t), s = a.width, i = a.height, o = [];
    a.decodeAndBlitFrameRGBA(0, o);
    var l = { data: o, width: s, height: i }, u = new Pf(100).encode(l, 100);
    return r.processJPEG.call(this, u, e, A, n);
  }, r.processGIF87A = r.processGIF89A;
})(eA.API), Wa.prototype.parseHeader = function() {
  if (this.fileSize = this.datav.getUint32(this.pos, !0), this.pos += 4, this.reserved = this.datav.getUint32(this.pos, !0), this.pos += 4, this.offset = this.datav.getUint32(this.pos, !0), this.pos += 4, this.headerSize = this.datav.getUint32(this.pos, !0), this.pos += 4, this.width = this.datav.getUint32(this.pos, !0), this.pos += 4, this.height = this.datav.getInt32(this.pos, !0), this.pos += 4, this.planes = this.datav.getUint16(this.pos, !0), this.pos += 2, this.bitPP = this.datav.getUint16(this.pos, !0), this.pos += 2, this.compress = this.datav.getUint32(this.pos, !0), this.pos += 4, this.rawSize = this.datav.getUint32(this.pos, !0), this.pos += 4, this.hr = this.datav.getUint32(this.pos, !0), this.pos += 4, this.vr = this.datav.getUint32(this.pos, !0), this.pos += 4, this.colors = this.datav.getUint32(this.pos, !0), this.pos += 4, this.importantColors = this.datav.getUint32(this.pos, !0), this.pos += 4, this.bitPP === 16 && this.is_with_alpha && (this.bitPP = 15), this.bitPP < 15) {
    var r = this.colors === 0 ? 1 << this.bitPP : this.colors;
    this.palette = new Array(r);
    for (var t = 0; t < r; t++) {
      var e = this.datav.getUint8(this.pos++, !0), A = this.datav.getUint8(this.pos++, !0), n = this.datav.getUint8(this.pos++, !0), a = this.datav.getUint8(this.pos++, !0);
      this.palette[t] = { red: n, green: A, blue: e, quad: a };
    }
  }
  this.height < 0 && (this.height *= -1, this.bottom_up = !1);
}, Wa.prototype.parseBGR = function() {
  this.pos = this.offset;
  try {
    var r = "bit" + this.bitPP, t = this.width * this.height * 4;
    this.data = new Uint8Array(t), this[r]();
  } catch (e) {
    ur.log("bit decode error:" + e);
  }
}, Wa.prototype.bit1 = function() {
  var r, t = Math.ceil(this.width / 8), e = t % 4;
  for (r = this.height - 1; r >= 0; r--) {
    for (var A = this.bottom_up ? r : this.height - 1 - r, n = 0; n < t; n++) for (var a = this.datav.getUint8(this.pos++, !0), s = A * this.width * 4 + 8 * n * 4, i = 0; i < 8 && 8 * n + i < this.width; i++) {
      var o = this.palette[a >> 7 - i & 1];
      this.data[s + 4 * i] = o.blue, this.data[s + 4 * i + 1] = o.green, this.data[s + 4 * i + 2] = o.red, this.data[s + 4 * i + 3] = 255;
    }
    e !== 0 && (this.pos += 4 - e);
  }
}, Wa.prototype.bit4 = function() {
  for (var r = Math.ceil(this.width / 2), t = r % 4, e = this.height - 1; e >= 0; e--) {
    for (var A = this.bottom_up ? e : this.height - 1 - e, n = 0; n < r; n++) {
      var a = this.datav.getUint8(this.pos++, !0), s = A * this.width * 4 + 2 * n * 4, i = a >> 4, o = 15 & a, l = this.palette[i];
      if (this.data[s] = l.blue, this.data[s + 1] = l.green, this.data[s + 2] = l.red, this.data[s + 3] = 255, 2 * n + 1 >= this.width) break;
      l = this.palette[o], this.data[s + 4] = l.blue, this.data[s + 4 + 1] = l.green, this.data[s + 4 + 2] = l.red, this.data[s + 4 + 3] = 255;
    }
    t !== 0 && (this.pos += 4 - t);
  }
}, Wa.prototype.bit8 = function() {
  for (var r = this.width % 4, t = this.height - 1; t >= 0; t--) {
    for (var e = this.bottom_up ? t : this.height - 1 - t, A = 0; A < this.width; A++) {
      var n = this.datav.getUint8(this.pos++, !0), a = e * this.width * 4 + 4 * A;
      if (n < this.palette.length) {
        var s = this.palette[n];
        this.data[a] = s.red, this.data[a + 1] = s.green, this.data[a + 2] = s.blue, this.data[a + 3] = 255;
      } else this.data[a] = 255, this.data[a + 1] = 255, this.data[a + 2] = 255, this.data[a + 3] = 255;
    }
    r !== 0 && (this.pos += 4 - r);
  }
}, Wa.prototype.bit15 = function() {
  for (var r = this.width % 3, t = parseInt("11111", 2), e = this.height - 1; e >= 0; e--) {
    for (var A = this.bottom_up ? e : this.height - 1 - e, n = 0; n < this.width; n++) {
      var a = this.datav.getUint16(this.pos, !0);
      this.pos += 2;
      var s = (a & t) / t * 255 | 0, i = (a >> 5 & t) / t * 255 | 0, o = (a >> 10 & t) / t * 255 | 0, l = a >> 15 ? 255 : 0, u = A * this.width * 4 + 4 * n;
      this.data[u] = o, this.data[u + 1] = i, this.data[u + 2] = s, this.data[u + 3] = l;
    }
    this.pos += r;
  }
}, Wa.prototype.bit16 = function() {
  for (var r = this.width % 3, t = parseInt("11111", 2), e = parseInt("111111", 2), A = this.height - 1; A >= 0; A--) {
    for (var n = this.bottom_up ? A : this.height - 1 - A, a = 0; a < this.width; a++) {
      var s = this.datav.getUint16(this.pos, !0);
      this.pos += 2;
      var i = (s & t) / t * 255 | 0, o = (s >> 5 & e) / e * 255 | 0, l = (s >> 11) / t * 255 | 0, u = n * this.width * 4 + 4 * a;
      this.data[u] = l, this.data[u + 1] = o, this.data[u + 2] = i, this.data[u + 3] = 255;
    }
    this.pos += r;
  }
}, Wa.prototype.bit24 = function() {
  for (var r = this.height - 1; r >= 0; r--) {
    for (var t = this.bottom_up ? r : this.height - 1 - r, e = 0; e < this.width; e++) {
      var A = this.datav.getUint8(this.pos++, !0), n = this.datav.getUint8(this.pos++, !0), a = this.datav.getUint8(this.pos++, !0), s = t * this.width * 4 + 4 * e;
      this.data[s] = a, this.data[s + 1] = n, this.data[s + 2] = A, this.data[s + 3] = 255;
    }
    this.pos += this.width % 4;
  }
}, Wa.prototype.bit32 = function() {
  for (var r = this.height - 1; r >= 0; r--) for (var t = this.bottom_up ? r : this.height - 1 - r, e = 0; e < this.width; e++) {
    var A = this.datav.getUint8(this.pos++, !0), n = this.datav.getUint8(this.pos++, !0), a = this.datav.getUint8(this.pos++, !0), s = this.datav.getUint8(this.pos++, !0), i = t * this.width * 4 + 4 * e;
    this.data[i] = a, this.data[i + 1] = n, this.data[i + 2] = A, this.data[i + 3] = s;
  }
}, Wa.prototype.getData = function() {
  return this.data;
}, /**
 * @license
 * Copyright (c) 2018 Aras Abbasi
 *
 * Licensed under the MIT License.
 * http://opensource.org/licenses/mit-license
 */
(function(r) {
  r.processBMP = function(t, e, A, n) {
    var a = new Wa(t, !1), s = a.width, i = a.height, o = { data: a.getData(), width: s, height: i }, l = new Pf(100).encode(o, 100);
    return r.processJPEG.call(this, l, e, A, n);
  };
})(eA.API), W1.prototype.getData = function() {
  return this.data;
}, /**
 * @license
 * Copyright (c) 2019 Aras Abbasi
 *
 * Licensed under the MIT License.
 * http://opensource.org/licenses/mit-license
 */
(function(r) {
  r.processWEBP = function(t, e, A, n) {
    var a = new W1(t), s = a.width, i = a.height, o = { data: a.getData(), width: s, height: i }, l = new Pf(100).encode(o, 100);
    return r.processJPEG.call(this, l, e, A, n);
  };
})(eA.API), eA.API.processRGBA = function(r, t, e) {
  for (var A = r.data, n = A.length, a = new Uint8Array(n / 4 * 3), s = new Uint8Array(n / 4), i = 0, o = 0, l = 0; l < n; l += 4) {
    var u = A[l], h = A[l + 1], g = A[l + 2], c = A[l + 3];
    a[i++] = u, a[i++] = h, a[i++] = g, s[o++] = c;
  }
  var p = this.__addimage__.arrayBufferToBinaryString(a);
  return { alpha: this.__addimage__.arrayBufferToBinaryString(s), data: p, index: t, alias: e, colorSpace: "DeviceRGB", bitsPerComponent: 8, width: r.width, height: r.height };
}, eA.API.setLanguage = function(r) {
  return this.internal.languageSettings === void 0 && (this.internal.languageSettings = {}, this.internal.languageSettings.isSubscribed = !1), { af: "Afrikaans", sq: "Albanian", ar: "Arabic (Standard)", "ar-DZ": "Arabic (Algeria)", "ar-BH": "Arabic (Bahrain)", "ar-EG": "Arabic (Egypt)", "ar-IQ": "Arabic (Iraq)", "ar-JO": "Arabic (Jordan)", "ar-KW": "Arabic (Kuwait)", "ar-LB": "Arabic (Lebanon)", "ar-LY": "Arabic (Libya)", "ar-MA": "Arabic (Morocco)", "ar-OM": "Arabic (Oman)", "ar-QA": "Arabic (Qatar)", "ar-SA": "Arabic (Saudi Arabia)", "ar-SY": "Arabic (Syria)", "ar-TN": "Arabic (Tunisia)", "ar-AE": "Arabic (U.A.E.)", "ar-YE": "Arabic (Yemen)", an: "Aragonese", hy: "Armenian", as: "Assamese", ast: "Asturian", az: "Azerbaijani", eu: "Basque", be: "Belarusian", bn: "Bengali", bs: "Bosnian", br: "Breton", bg: "Bulgarian", my: "Burmese", ca: "Catalan", ch: "Chamorro", ce: "Chechen", zh: "Chinese", "zh-HK": "Chinese (Hong Kong)", "zh-CN": "Chinese (PRC)", "zh-SG": "Chinese (Singapore)", "zh-TW": "Chinese (Taiwan)", cv: "Chuvash", co: "Corsican", cr: "Cree", hr: "Croatian", cs: "Czech", da: "Danish", nl: "Dutch (Standard)", "nl-BE": "Dutch (Belgian)", en: "English", "en-AU": "English (Australia)", "en-BZ": "English (Belize)", "en-CA": "English (Canada)", "en-IE": "English (Ireland)", "en-JM": "English (Jamaica)", "en-NZ": "English (New Zealand)", "en-PH": "English (Philippines)", "en-ZA": "English (South Africa)", "en-TT": "English (Trinidad & Tobago)", "en-GB": "English (United Kingdom)", "en-US": "English (United States)", "en-ZW": "English (Zimbabwe)", eo: "Esperanto", et: "Estonian", fo: "Faeroese", fj: "Fijian", fi: "Finnish", fr: "French (Standard)", "fr-BE": "French (Belgium)", "fr-CA": "French (Canada)", "fr-FR": "French (France)", "fr-LU": "French (Luxembourg)", "fr-MC": "French (Monaco)", "fr-CH": "French (Switzerland)", fy: "Frisian", fur: "Friulian", gd: "Gaelic (Scots)", "gd-IE": "Gaelic (Irish)", gl: "Galacian", ka: "Georgian", de: "German (Standard)", "de-AT": "German (Austria)", "de-DE": "German (Germany)", "de-LI": "German (Liechtenstein)", "de-LU": "German (Luxembourg)", "de-CH": "German (Switzerland)", el: "Greek", gu: "Gujurati", ht: "Haitian", he: "Hebrew", hi: "Hindi", hu: "Hungarian", is: "Icelandic", id: "Indonesian", iu: "Inuktitut", ga: "Irish", it: "Italian (Standard)", "it-CH": "Italian (Switzerland)", ja: "Japanese", kn: "Kannada", ks: "Kashmiri", kk: "Kazakh", km: "Khmer", ky: "Kirghiz", tlh: "Klingon", ko: "Korean", "ko-KP": "Korean (North Korea)", "ko-KR": "Korean (South Korea)", la: "Latin", lv: "Latvian", lt: "Lithuanian", lb: "Luxembourgish", mk: "North Macedonia", ms: "Malay", ml: "Malayalam", mt: "Maltese", mi: "Maori", mr: "Marathi", mo: "Moldavian", nv: "Navajo", ng: "Ndonga", ne: "Nepali", no: "Norwegian", nb: "Norwegian (Bokmal)", nn: "Norwegian (Nynorsk)", oc: "Occitan", or: "Oriya", om: "Oromo", fa: "Persian", "fa-IR": "Persian/Iran", pl: "Polish", pt: "Portuguese", "pt-BR": "Portuguese (Brazil)", pa: "Punjabi", "pa-IN": "Punjabi (India)", "pa-PK": "Punjabi (Pakistan)", qu: "Quechua", rm: "Rhaeto-Romanic", ro: "Romanian", "ro-MO": "Romanian (Moldavia)", ru: "Russian", "ru-MO": "Russian (Moldavia)", sz: "Sami (Lappish)", sg: "Sango", sa: "Sanskrit", sc: "Sardinian", sd: "Sindhi", si: "Singhalese", sr: "Serbian", sk: "Slovak", sl: "Slovenian", so: "Somani", sb: "Sorbian", es: "Spanish", "es-AR": "Spanish (Argentina)", "es-BO": "Spanish (Bolivia)", "es-CL": "Spanish (Chile)", "es-CO": "Spanish (Colombia)", "es-CR": "Spanish (Costa Rica)", "es-DO": "Spanish (Dominican Republic)", "es-EC": "Spanish (Ecuador)", "es-SV": "Spanish (El Salvador)", "es-GT": "Spanish (Guatemala)", "es-HN": "Spanish (Honduras)", "es-MX": "Spanish (Mexico)", "es-NI": "Spanish (Nicaragua)", "es-PA": "Spanish (Panama)", "es-PY": "Spanish (Paraguay)", "es-PE": "Spanish (Peru)", "es-PR": "Spanish (Puerto Rico)", "es-ES": "Spanish (Spain)", "es-UY": "Spanish (Uruguay)", "es-VE": "Spanish (Venezuela)", sx: "Sutu", sw: "Swahili", sv: "Swedish", "sv-FI": "Swedish (Finland)", "sv-SV": "Swedish (Sweden)", ta: "Tamil", tt: "Tatar", te: "Teluga", th: "Thai", tig: "Tigre", ts: "Tsonga", tn: "Tswana", tr: "Turkish", tk: "Turkmen", uk: "Ukrainian", hsb: "Upper Sorbian", ur: "Urdu", ve: "Venda", vi: "Vietnamese", vo: "Volapuk", wa: "Walloon", cy: "Welsh", xh: "Xhosa", ji: "Yiddish", zu: "Zulu" }[r] !== void 0 && (this.internal.languageSettings.languageCode = r, this.internal.languageSettings.isSubscribed === !1 && (this.internal.events.subscribe("putCatalog", function() {
    this.internal.write("/Lang (" + this.internal.languageSettings.languageCode + ")");
  }), this.internal.languageSettings.isSubscribed = !0)), this;
}, uo = eA.API, vu = uo.getCharWidthsArray = function(r, t) {
  var e, A, n = (t = t || {}).font || this.internal.getFont(), a = t.fontSize || this.internal.getFontSize(), s = t.charSpace || this.internal.getCharSpace(), i = t.widths ? t.widths : n.metadata.Unicode.widths, o = i.fof ? i.fof : 1, l = t.kerning ? t.kerning : n.metadata.Unicode.kerning, u = l.fof ? l.fof : 1, h = t.doKerning !== !1, g = 0, c = r.length, p = 0, m = i[0] || o, y = [];
  for (e = 0; e < c; e++) A = r.charCodeAt(e), typeof n.metadata.widthOfString == "function" ? y.push((n.metadata.widthOfGlyph(n.metadata.characterToGlyph(A)) + s * (1e3 / a) || 0) / 1e3) : (g = h && jA(l[A]) === "object" && !isNaN(parseInt(l[A][p], 10)) ? l[A][p] / u : 0, y.push((i[A] || m) / o + g)), p = A;
  return y;
}, N1 = uo.getStringUnitWidth = function(r, t) {
  var e = (t = t || {}).fontSize || this.internal.getFontSize(), A = t.font || this.internal.getFont(), n = t.charSpace || this.internal.getCharSpace();
  return uo.processArabic && (r = uo.processArabic(r)), typeof A.metadata.widthOfString == "function" ? A.metadata.widthOfString(r, e, n) / e : vu.apply(this, arguments).reduce(function(a, s) {
    return a + s;
  }, 0);
}, M1 = function(r, t, e, A) {
  for (var n = [], a = 0, s = r.length, i = 0; a !== s && i + t[a] < e; ) i += t[a], a++;
  n.push(r.slice(0, a));
  var o = a;
  for (i = 0; a !== s; ) i + t[a] > A && (n.push(r.slice(o, a)), i = 0, o = a), i += t[a], a++;
  return o !== a && n.push(r.slice(o, a)), n;
}, O1 = function(r, t, e) {
  e || (e = {});
  var A, n, a, s, i, o, l, u = [], h = [u], g = e.textIndent || 0, c = 0, p = 0, m = r.split(" "), y = vu.apply(this, [" ", e])[0];
  if (o = e.lineIndent === -1 ? m[0].length + 2 : e.lineIndent || 0) {
    var w = Array(o).join(" "), E = [];
    m.map(function(F) {
      (F = F.split(/\s*\n/)).length > 1 ? E = E.concat(F.map(function(H, q) {
        return (q && H.length ? `
` : "") + H;
      })) : E.push(F[0]);
    }), m = E, o = N1.apply(this, [w, e]);
  }
  for (a = 0, s = m.length; a < s; a++) {
    var C = 0;
    if (A = m[a], o && A[0] == `
` && (A = A.substr(1), C = 1), g + c + (p = (n = vu.apply(this, [A, e])).reduce(function(F, H) {
      return F + H;
    }, 0)) > t || C) {
      if (p > t) {
        for (i = M1.apply(this, [A, n, t - (g + c), t]), u.push(i.shift()), u = [i.pop()]; i.length; ) h.push([i.shift()]);
        p = n.slice(A.length - (u[0] ? u[0].length : 0)).reduce(function(F, H) {
          return F + H;
        }, 0);
      } else u = [A];
      h.push(u), g = p + o, c = y;
    } else u.push(A), g += c + p, c = y;
  }
  return l = o ? function(F, H) {
    return (H ? w : "") + F.join(" ");
  } : function(F) {
    return F.join(" ");
  }, h.map(l);
}, uo.splitTextToSize = function(r, t, e) {
  var A, n = (e = e || {}).fontSize || this.internal.getFontSize(), a = (function(u) {
    if (u.widths && u.kerning) return { widths: u.widths, kerning: u.kerning };
    var h = this.internal.getFont(u.fontName, u.fontStyle), g = "Unicode";
    return h.metadata[g] ? { widths: h.metadata[g].widths || { 0: 1 }, kerning: h.metadata[g].kerning || {} } : { font: h.metadata, fontSize: this.internal.getFontSize(), charSpace: this.internal.getCharSpace() };
  }).call(this, e);
  A = Array.isArray(r) ? r : String(r).split(/\r?\n/);
  var s = 1 * this.internal.scaleFactor * t / n;
  a.textIndent = e.textIndent ? 1 * e.textIndent * this.internal.scaleFactor / n : 0, a.lineIndent = e.lineIndent;
  var i, o, l = [];
  for (i = 0, o = A.length; i < o; i++) l = l.concat(O1.apply(this, [A[i], s, a]));
  return l;
}, (function(r) {
  r.__fontmetrics__ = r.__fontmetrics__ || {};
  for (var t = "0123456789abcdef", e = "klmnopqrstuvwxyz", A = {}, n = {}, a = 0; a < 16; a++) A[e[a]] = t[a], n[t[a]] = e[a];
  var s = function(g) {
    return "0x" + parseInt(g, 10).toString(16);
  }, i = r.__fontmetrics__.compress = function(g) {
    var c, p, m, y, w = ["{"];
    for (var E in g) {
      if (c = g[E], isNaN(parseInt(E, 10)) ? p = "'" + E + "'" : (E = parseInt(E, 10), p = (p = s(E).slice(2)).slice(0, -1) + n[p.slice(-1)]), typeof c == "number") c < 0 ? (m = s(c).slice(3), y = "-") : (m = s(c).slice(2), y = ""), m = y + m.slice(0, -1) + n[m.slice(-1)];
      else {
        if (jA(c) !== "object") throw new Error("Don't know what to do with value type " + jA(c) + ".");
        m = i(c);
      }
      w.push(p + m);
    }
    return w.push("}"), w.join("");
  }, o = r.__fontmetrics__.uncompress = function(g) {
    if (typeof g != "string") throw new Error("Invalid argument passed to uncompress.");
    for (var c, p, m, y, w = {}, E = 1, C = w, F = [], H = "", q = "", N = g.length - 1, M = 1; M < N; M += 1) (y = g[M]) == "'" ? c ? (m = c.join(""), c = void 0) : c = [] : c ? c.push(y) : y == "{" ? (F.push([C, m]), C = {}, m = void 0) : y == "}" ? ((p = F.pop())[0][p[1]] = C, m = void 0, C = p[0]) : y == "-" ? E = -1 : m === void 0 ? A.hasOwnProperty(y) ? (H += A[y], m = parseInt(H, 16) * E, E = 1, H = "") : H += y : A.hasOwnProperty(y) ? (q += A[y], C[m] = parseInt(q, 16) * E, E = 1, m = void 0, q = "") : q += y;
    return w;
  }, l = { codePages: ["WinAnsiEncoding"], WinAnsiEncoding: o("{19m8n201n9q201o9r201s9l201t9m201u8m201w9n201x9o201y8o202k8q202l8r202m9p202q8p20aw8k203k8t203t8v203u9v2cq8s212m9t15m8w15n9w2dw9s16k8u16l9u17s9z17x8y17y9y}") }, u = { Unicode: { Courier: l, "Courier-Bold": l, "Courier-BoldOblique": l, "Courier-Oblique": l, Helvetica: l, "Helvetica-Bold": l, "Helvetica-BoldOblique": l, "Helvetica-Oblique": l, "Times-Roman": l, "Times-Bold": l, "Times-BoldItalic": l, "Times-Italic": l } }, h = { Unicode: { "Courier-Oblique": o("{'widths'{k3w'fof'6o}'kerning'{'fof'-6o}}"), "Times-BoldItalic": o("{'widths'{k3o2q4ycx2r201n3m201o6o201s2l201t2l201u2l201w3m201x3m201y3m2k1t2l2r202m2n2n3m2o3m2p5n202q6o2r1w2s2l2t2l2u3m2v3t2w1t2x2l2y1t2z1w3k3m3l3m3m3m3n3m3o3m3p3m3q3m3r3m3s3m203t2l203u2l3v2l3w3t3x3t3y3t3z3m4k5n4l4m4m4m4n4m4o4s4p4m4q4m4r4s4s4y4t2r4u3m4v4m4w3x4x5t4y4s4z4s5k3x5l4s5m4m5n3r5o3x5p4s5q4m5r5t5s4m5t3x5u3x5v2l5w1w5x2l5y3t5z3m6k2l6l3m6m3m6n2w6o3m6p2w6q2l6r3m6s3r6t1w6u1w6v3m6w1w6x4y6y3r6z3m7k3m7l3m7m2r7n2r7o1w7p3r7q2w7r4m7s3m7t2w7u2r7v2n7w1q7x2n7y3t202l3mcl4mal2ram3man3mao3map3mar3mas2lat4uau1uav3maw3way4uaz2lbk2sbl3t'fof'6obo2lbp3tbq3mbr1tbs2lbu1ybv3mbz3mck4m202k3mcm4mcn4mco4mcp4mcq5ycr4mcs4mct4mcu4mcv4mcw2r2m3rcy2rcz2rdl4sdm4sdn4sdo4sdp4sdq4sds4sdt4sdu4sdv4sdw4sdz3mek3mel3mem3men3meo3mep3meq4ser2wes2wet2weu2wev2wew1wex1wey1wez1wfl3rfm3mfn3mfo3mfp3mfq3mfr3tfs3mft3rfu3rfv3rfw3rfz2w203k6o212m6o2dw2l2cq2l3t3m3u2l17s3x19m3m}'kerning'{cl{4qu5kt5qt5rs17ss5ts}201s{201ss}201t{cks4lscmscnscoscpscls2wu2yu201ts}201x{2wu2yu}2k{201ts}2w{4qx5kx5ou5qx5rs17su5tu}2x{17su5tu5ou}2y{4qx5kx5ou5qx5rs17ss5ts}'fof'-6ofn{17sw5tw5ou5qw5rs}7t{cksclscmscnscoscps4ls}3u{17su5tu5os5qs}3v{17su5tu5os5qs}7p{17su5tu}ck{4qu5kt5qt5rs17ss5ts}4l{4qu5kt5qt5rs17ss5ts}cm{4qu5kt5qt5rs17ss5ts}cn{4qu5kt5qt5rs17ss5ts}co{4qu5kt5qt5rs17ss5ts}cp{4qu5kt5qt5rs17ss5ts}6l{4qu5ou5qw5rt17su5tu}5q{ckuclucmucnucoucpu4lu}5r{ckuclucmucnucoucpu4lu}7q{cksclscmscnscoscps4ls}6p{4qu5ou5qw5rt17sw5tw}ek{4qu5ou5qw5rt17su5tu}el{4qu5ou5qw5rt17su5tu}em{4qu5ou5qw5rt17su5tu}en{4qu5ou5qw5rt17su5tu}eo{4qu5ou5qw5rt17su5tu}ep{4qu5ou5qw5rt17su5tu}es{17ss5ts5qs4qu}et{4qu5ou5qw5rt17sw5tw}eu{4qu5ou5qw5rt17ss5ts}ev{17ss5ts5qs4qu}6z{17sw5tw5ou5qw5rs}fm{17sw5tw5ou5qw5rs}7n{201ts}fo{17sw5tw5ou5qw5rs}fp{17sw5tw5ou5qw5rs}fq{17sw5tw5ou5qw5rs}7r{cksclscmscnscoscps4ls}fs{17sw5tw5ou5qw5rs}ft{17su5tu}fu{17su5tu}fv{17su5tu}fw{17su5tu}fz{cksclscmscnscoscps4ls}}}"), "Helvetica-Bold": o("{'widths'{k3s2q4scx1w201n3r201o6o201s1w201t1w201u1w201w3m201x3m201y3m2k1w2l2l202m2n2n3r2o3r2p5t202q6o2r1s2s2l2t2l2u2r2v3u2w1w2x2l2y1w2z1w3k3r3l3r3m3r3n3r3o3r3p3r3q3r3r3r3s3r203t2l203u2l3v2l3w3u3x3u3y3u3z3x4k6l4l4s4m4s4n4s4o4s4p4m4q3x4r4y4s4s4t1w4u3r4v4s4w3x4x5n4y4s4z4y5k4m5l4y5m4s5n4m5o3x5p4s5q4m5r5y5s4m5t4m5u3x5v2l5w1w5x2l5y3u5z3r6k2l6l3r6m3x6n3r6o3x6p3r6q2l6r3x6s3x6t1w6u1w6v3r6w1w6x5t6y3x6z3x7k3x7l3x7m2r7n3r7o2l7p3x7q3r7r4y7s3r7t3r7u3m7v2r7w1w7x2r7y3u202l3rcl4sal2lam3ran3rao3rap3rar3ras2lat4tau2pav3raw3uay4taz2lbk2sbl3u'fof'6obo2lbp3xbq3rbr1wbs2lbu2obv3rbz3xck4s202k3rcm4scn4sco4scp4scq6ocr4scs4mct4mcu4mcv4mcw1w2m2zcy1wcz1wdl4sdm4ydn4ydo4ydp4ydq4yds4ydt4sdu4sdv4sdw4sdz3xek3rel3rem3ren3reo3rep3req5ter3res3ret3reu3rev3rew1wex1wey1wez1wfl3xfm3xfn3xfo3xfp3xfq3xfr3ufs3xft3xfu3xfv3xfw3xfz3r203k6o212m6o2dw2l2cq2l3t3r3u2l17s4m19m3r}'kerning'{cl{4qs5ku5ot5qs17sv5tv}201t{2ww4wy2yw}201w{2ks}201x{2ww4wy2yw}2k{201ts201xs}2w{7qs4qu5kw5os5qw5rs17su5tu7tsfzs}2x{5ow5qs}2y{7qs4qu5kw5os5qw5rs17su5tu7tsfzs}'fof'-6o7p{17su5tu5ot}ck{4qs5ku5ot5qs17sv5tv}4l{4qs5ku5ot5qs17sv5tv}cm{4qs5ku5ot5qs17sv5tv}cn{4qs5ku5ot5qs17sv5tv}co{4qs5ku5ot5qs17sv5tv}cp{4qs5ku5ot5qs17sv5tv}6l{17st5tt5os}17s{2kwclvcmvcnvcovcpv4lv4wwckv}5o{2kucltcmtcntcotcpt4lt4wtckt}5q{2ksclscmscnscoscps4ls4wvcks}5r{2ks4ws}5t{2kwclvcmvcnvcovcpv4lv4wwckv}eo{17st5tt5os}fu{17su5tu5ot}6p{17ss5ts}ek{17st5tt5os}el{17st5tt5os}em{17st5tt5os}en{17st5tt5os}6o{201ts}ep{17st5tt5os}es{17ss5ts}et{17ss5ts}eu{17ss5ts}ev{17ss5ts}6z{17su5tu5os5qt}fm{17su5tu5os5qt}fn{17su5tu5os5qt}fo{17su5tu5os5qt}fp{17su5tu5os5qt}fq{17su5tu5os5qt}fs{17su5tu5os5qt}ft{17su5tu5ot}7m{5os}fv{17su5tu5ot}fw{17su5tu5ot}}}"), Courier: o("{'widths'{k3w'fof'6o}'kerning'{'fof'-6o}}"), "Courier-BoldOblique": o("{'widths'{k3w'fof'6o}'kerning'{'fof'-6o}}"), "Times-Bold": o("{'widths'{k3q2q5ncx2r201n3m201o6o201s2l201t2l201u2l201w3m201x3m201y3m2k1t2l2l202m2n2n3m2o3m2p6o202q6o2r1w2s2l2t2l2u3m2v3t2w1t2x2l2y1t2z1w3k3m3l3m3m3m3n3m3o3m3p3m3q3m3r3m3s3m203t2l203u2l3v2l3w3t3x3t3y3t3z3m4k5x4l4s4m4m4n4s4o4s4p4m4q3x4r4y4s4y4t2r4u3m4v4y4w4m4x5y4y4s4z4y5k3x5l4y5m4s5n3r5o4m5p4s5q4s5r6o5s4s5t4s5u4m5v2l5w1w5x2l5y3u5z3m6k2l6l3m6m3r6n2w6o3r6p2w6q2l6r3m6s3r6t1w6u2l6v3r6w1w6x5n6y3r6z3m7k3r7l3r7m2w7n2r7o2l7p3r7q3m7r4s7s3m7t3m7u2w7v2r7w1q7x2r7y3o202l3mcl4sal2lam3man3mao3map3mar3mas2lat4uau1yav3maw3tay4uaz2lbk2sbl3t'fof'6obo2lbp3rbr1tbs2lbu2lbv3mbz3mck4s202k3mcm4scn4sco4scp4scq6ocr4scs4mct4mcu4mcv4mcw2r2m3rcy2rcz2rdl4sdm4ydn4ydo4ydp4ydq4yds4ydt4sdu4sdv4sdw4sdz3rek3mel3mem3men3meo3mep3meq4ser2wes2wet2weu2wev2wew1wex1wey1wez1wfl3rfm3mfn3mfo3mfp3mfq3mfr3tfs3mft3rfu3rfv3rfw3rfz3m203k6o212m6o2dw2l2cq2l3t3m3u2l17s4s19m3m}'kerning'{cl{4qt5ks5ot5qy5rw17sv5tv}201t{cks4lscmscnscoscpscls4wv}2k{201ts}2w{4qu5ku7mu5os5qx5ru17su5tu}2x{17su5tu5ou5qs}2y{4qv5kv7mu5ot5qz5ru17su5tu}'fof'-6o7t{cksclscmscnscoscps4ls}3u{17su5tu5os5qu}3v{17su5tu5os5qu}fu{17su5tu5ou5qu}7p{17su5tu5ou5qu}ck{4qt5ks5ot5qy5rw17sv5tv}4l{4qt5ks5ot5qy5rw17sv5tv}cm{4qt5ks5ot5qy5rw17sv5tv}cn{4qt5ks5ot5qy5rw17sv5tv}co{4qt5ks5ot5qy5rw17sv5tv}cp{4qt5ks5ot5qy5rw17sv5tv}6l{17st5tt5ou5qu}17s{ckuclucmucnucoucpu4lu4wu}5o{ckuclucmucnucoucpu4lu4wu}5q{ckzclzcmzcnzcozcpz4lz4wu}5r{ckxclxcmxcnxcoxcpx4lx4wu}5t{ckuclucmucnucoucpu4lu4wu}7q{ckuclucmucnucoucpu4lu}6p{17sw5tw5ou5qu}ek{17st5tt5qu}el{17st5tt5ou5qu}em{17st5tt5qu}en{17st5tt5qu}eo{17st5tt5qu}ep{17st5tt5ou5qu}es{17ss5ts5qu}et{17sw5tw5ou5qu}eu{17sw5tw5ou5qu}ev{17ss5ts5qu}6z{17sw5tw5ou5qu5rs}fm{17sw5tw5ou5qu5rs}fn{17sw5tw5ou5qu5rs}fo{17sw5tw5ou5qu5rs}fp{17sw5tw5ou5qu5rs}fq{17sw5tw5ou5qu5rs}7r{cktcltcmtcntcotcpt4lt5os}fs{17sw5tw5ou5qu5rs}ft{17su5tu5ou5qu}7m{5os}fv{17su5tu5ou5qu}fw{17su5tu5ou5qu}fz{cksclscmscnscoscps4ls}}}"), Symbol: o("{'widths'{k3uaw4r19m3m2k1t2l2l202m2y2n3m2p5n202q6o3k3m2s2l2t2l2v3r2w1t3m3m2y1t2z1wbk2sbl3r'fof'6o3n3m3o3m3p3m3q3m3r3m3s3m3t3m3u1w3v1w3w3r3x3r3y3r3z2wbp3t3l3m5v2l5x2l5z3m2q4yfr3r7v3k7w1o7x3k}'kerning'{'fof'-6o}}"), Helvetica: o("{'widths'{k3p2q4mcx1w201n3r201o6o201s1q201t1q201u1q201w2l201x2l201y2l2k1w2l1w202m2n2n3r2o3r2p5t202q6o2r1n2s2l2t2l2u2r2v3u2w1w2x2l2y1w2z1w3k3r3l3r3m3r3n3r3o3r3p3r3q3r3r3r3s3r203t2l203u2l3v1w3w3u3x3u3y3u3z3r4k6p4l4m4m4m4n4s4o4s4p4m4q3x4r4y4s4s4t1w4u3m4v4m4w3r4x5n4y4s4z4y5k4m5l4y5m4s5n4m5o3x5p4s5q4m5r5y5s4m5t4m5u3x5v1w5w1w5x1w5y2z5z3r6k2l6l3r6m3r6n3m6o3r6p3r6q1w6r3r6s3r6t1q6u1q6v3m6w1q6x5n6y3r6z3r7k3r7l3r7m2l7n3m7o1w7p3r7q3m7r4s7s3m7t3m7u3m7v2l7w1u7x2l7y3u202l3rcl4mal2lam3ran3rao3rap3rar3ras2lat4tau2pav3raw3uay4taz2lbk2sbl3u'fof'6obo2lbp3rbr1wbs2lbu2obv3rbz3xck4m202k3rcm4mcn4mco4mcp4mcq6ocr4scs4mct4mcu4mcv4mcw1w2m2ncy1wcz1wdl4sdm4ydn4ydo4ydp4ydq4yds4ydt4sdu4sdv4sdw4sdz3xek3rel3rem3ren3reo3rep3req5ter3mes3ret3reu3rev3rew1wex1wey1wez1wfl3rfm3rfn3rfo3rfp3rfq3rfr3ufs3xft3rfu3rfv3rfw3rfz3m203k6o212m6o2dw2l2cq2l3t3r3u1w17s4m19m3r}'kerning'{5q{4wv}cl{4qs5kw5ow5qs17sv5tv}201t{2wu4w1k2yu}201x{2wu4wy2yu}17s{2ktclucmucnu4otcpu4lu4wycoucku}2w{7qs4qz5k1m17sy5ow5qx5rsfsu5ty7tufzu}2x{17sy5ty5oy5qs}2y{7qs4qz5k1m17sy5ow5qx5rsfsu5ty7tufzu}'fof'-6o7p{17sv5tv5ow}ck{4qs5kw5ow5qs17sv5tv}4l{4qs5kw5ow5qs17sv5tv}cm{4qs5kw5ow5qs17sv5tv}cn{4qs5kw5ow5qs17sv5tv}co{4qs5kw5ow5qs17sv5tv}cp{4qs5kw5ow5qs17sv5tv}6l{17sy5ty5ow}do{17st5tt}4z{17st5tt}7s{fst}dm{17st5tt}dn{17st5tt}5o{ckwclwcmwcnwcowcpw4lw4wv}dp{17st5tt}dq{17st5tt}7t{5ow}ds{17st5tt}5t{2ktclucmucnu4otcpu4lu4wycoucku}fu{17sv5tv5ow}6p{17sy5ty5ow5qs}ek{17sy5ty5ow}el{17sy5ty5ow}em{17sy5ty5ow}en{5ty}eo{17sy5ty5ow}ep{17sy5ty5ow}es{17sy5ty5qs}et{17sy5ty5ow5qs}eu{17sy5ty5ow5qs}ev{17sy5ty5ow5qs}6z{17sy5ty5ow5qs}fm{17sy5ty5ow5qs}fn{17sy5ty5ow5qs}fo{17sy5ty5ow5qs}fp{17sy5ty5qs}fq{17sy5ty5ow5qs}7r{5ow}fs{17sy5ty5ow5qs}ft{17sv5tv5ow}7m{5ow}fv{17sv5tv5ow}fw{17sv5tv5ow}}}"), "Helvetica-BoldOblique": o("{'widths'{k3s2q4scx1w201n3r201o6o201s1w201t1w201u1w201w3m201x3m201y3m2k1w2l2l202m2n2n3r2o3r2p5t202q6o2r1s2s2l2t2l2u2r2v3u2w1w2x2l2y1w2z1w3k3r3l3r3m3r3n3r3o3r3p3r3q3r3r3r3s3r203t2l203u2l3v2l3w3u3x3u3y3u3z3x4k6l4l4s4m4s4n4s4o4s4p4m4q3x4r4y4s4s4t1w4u3r4v4s4w3x4x5n4y4s4z4y5k4m5l4y5m4s5n4m5o3x5p4s5q4m5r5y5s4m5t4m5u3x5v2l5w1w5x2l5y3u5z3r6k2l6l3r6m3x6n3r6o3x6p3r6q2l6r3x6s3x6t1w6u1w6v3r6w1w6x5t6y3x6z3x7k3x7l3x7m2r7n3r7o2l7p3x7q3r7r4y7s3r7t3r7u3m7v2r7w1w7x2r7y3u202l3rcl4sal2lam3ran3rao3rap3rar3ras2lat4tau2pav3raw3uay4taz2lbk2sbl3u'fof'6obo2lbp3xbq3rbr1wbs2lbu2obv3rbz3xck4s202k3rcm4scn4sco4scp4scq6ocr4scs4mct4mcu4mcv4mcw1w2m2zcy1wcz1wdl4sdm4ydn4ydo4ydp4ydq4yds4ydt4sdu4sdv4sdw4sdz3xek3rel3rem3ren3reo3rep3req5ter3res3ret3reu3rev3rew1wex1wey1wez1wfl3xfm3xfn3xfo3xfp3xfq3xfr3ufs3xft3xfu3xfv3xfw3xfz3r203k6o212m6o2dw2l2cq2l3t3r3u2l17s4m19m3r}'kerning'{cl{4qs5ku5ot5qs17sv5tv}201t{2ww4wy2yw}201w{2ks}201x{2ww4wy2yw}2k{201ts201xs}2w{7qs4qu5kw5os5qw5rs17su5tu7tsfzs}2x{5ow5qs}2y{7qs4qu5kw5os5qw5rs17su5tu7tsfzs}'fof'-6o7p{17su5tu5ot}ck{4qs5ku5ot5qs17sv5tv}4l{4qs5ku5ot5qs17sv5tv}cm{4qs5ku5ot5qs17sv5tv}cn{4qs5ku5ot5qs17sv5tv}co{4qs5ku5ot5qs17sv5tv}cp{4qs5ku5ot5qs17sv5tv}6l{17st5tt5os}17s{2kwclvcmvcnvcovcpv4lv4wwckv}5o{2kucltcmtcntcotcpt4lt4wtckt}5q{2ksclscmscnscoscps4ls4wvcks}5r{2ks4ws}5t{2kwclvcmvcnvcovcpv4lv4wwckv}eo{17st5tt5os}fu{17su5tu5ot}6p{17ss5ts}ek{17st5tt5os}el{17st5tt5os}em{17st5tt5os}en{17st5tt5os}6o{201ts}ep{17st5tt5os}es{17ss5ts}et{17ss5ts}eu{17ss5ts}ev{17ss5ts}6z{17su5tu5os5qt}fm{17su5tu5os5qt}fn{17su5tu5os5qt}fo{17su5tu5os5qt}fp{17su5tu5os5qt}fq{17su5tu5os5qt}fs{17su5tu5os5qt}ft{17su5tu5ot}7m{5os}fv{17su5tu5ot}fw{17su5tu5ot}}}"), ZapfDingbats: o("{'widths'{k4u2k1w'fof'6o}'kerning'{'fof'-6o}}"), "Courier-Bold": o("{'widths'{k3w'fof'6o}'kerning'{'fof'-6o}}"), "Times-Italic": o("{'widths'{k3n2q4ycx2l201n3m201o5t201s2l201t2l201u2l201w3r201x3r201y3r2k1t2l2l202m2n2n3m2o3m2p5n202q5t2r1p2s2l2t2l2u3m2v4n2w1t2x2l2y1t2z1w3k3m3l3m3m3m3n3m3o3m3p3m3q3m3r3m3s3m203t2l203u2l3v2l3w4n3x4n3y4n3z3m4k5w4l3x4m3x4n4m4o4s4p3x4q3x4r4s4s4s4t2l4u2w4v4m4w3r4x5n4y4m4z4s5k3x5l4s5m3x5n3m5o3r5p4s5q3x5r5n5s3x5t3r5u3r5v2r5w1w5x2r5y2u5z3m6k2l6l3m6m3m6n2w6o3m6p2w6q1w6r3m6s3m6t1w6u1w6v2w6w1w6x4s6y3m6z3m7k3m7l3m7m2r7n2r7o1w7p3m7q2w7r4m7s2w7t2w7u2r7v2s7w1v7x2s7y3q202l3mcl3xal2ram3man3mao3map3mar3mas2lat4wau1vav3maw4nay4waz2lbk2sbl4n'fof'6obo2lbp3mbq3obr1tbs2lbu1zbv3mbz3mck3x202k3mcm3xcn3xco3xcp3xcq5tcr4mcs3xct3xcu3xcv3xcw2l2m2ucy2lcz2ldl4mdm4sdn4sdo4sdp4sdq4sds4sdt4sdu4sdv4sdw4sdz3mek3mel3mem3men3meo3mep3meq4mer2wes2wet2weu2wev2wew1wex1wey1wez1wfl3mfm3mfn3mfo3mfp3mfq3mfr4nfs3mft3mfu3mfv3mfw3mfz2w203k6o212m6m2dw2l2cq2l3t3m3u2l17s3r19m3m}'kerning'{cl{5kt4qw}201s{201sw}201t{201tw2wy2yy6q-t}201x{2wy2yy}2k{201tw}2w{7qs4qy7rs5ky7mw5os5qx5ru17su5tu}2x{17ss5ts5os}2y{7qs4qy7rs5ky7mw5os5qx5ru17su5tu}'fof'-6o6t{17ss5ts5qs}7t{5os}3v{5qs}7p{17su5tu5qs}ck{5kt4qw}4l{5kt4qw}cm{5kt4qw}cn{5kt4qw}co{5kt4qw}cp{5kt4qw}6l{4qs5ks5ou5qw5ru17su5tu}17s{2ks}5q{ckvclvcmvcnvcovcpv4lv}5r{ckuclucmucnucoucpu4lu}5t{2ks}6p{4qs5ks5ou5qw5ru17su5tu}ek{4qs5ks5ou5qw5ru17su5tu}el{4qs5ks5ou5qw5ru17su5tu}em{4qs5ks5ou5qw5ru17su5tu}en{4qs5ks5ou5qw5ru17su5tu}eo{4qs5ks5ou5qw5ru17su5tu}ep{4qs5ks5ou5qw5ru17su5tu}es{5ks5qs4qs}et{4qs5ks5ou5qw5ru17su5tu}eu{4qs5ks5qw5ru17su5tu}ev{5ks5qs4qs}ex{17ss5ts5qs}6z{4qv5ks5ou5qw5ru17su5tu}fm{4qv5ks5ou5qw5ru17su5tu}fn{4qv5ks5ou5qw5ru17su5tu}fo{4qv5ks5ou5qw5ru17su5tu}fp{4qv5ks5ou5qw5ru17su5tu}fq{4qv5ks5ou5qw5ru17su5tu}7r{5os}fs{4qv5ks5ou5qw5ru17su5tu}ft{17su5tu5qs}fu{17su5tu5qs}fv{17su5tu5qs}fw{17su5tu5qs}}}"), "Times-Roman": o("{'widths'{k3n2q4ycx2l201n3m201o6o201s2l201t2l201u2l201w2w201x2w201y2w2k1t2l2l202m2n2n3m2o3m2p5n202q6o2r1m2s2l2t2l2u3m2v3s2w1t2x2l2y1t2z1w3k3m3l3m3m3m3n3m3o3m3p3m3q3m3r3m3s3m203t2l203u2l3v1w3w3s3x3s3y3s3z2w4k5w4l4s4m4m4n4m4o4s4p3x4q3r4r4s4s4s4t2l4u2r4v4s4w3x4x5t4y4s4z4s5k3r5l4s5m4m5n3r5o3x5p4s5q4s5r5y5s4s5t4s5u3x5v2l5w1w5x2l5y2z5z3m6k2l6l2w6m3m6n2w6o3m6p2w6q2l6r3m6s3m6t1w6u1w6v3m6w1w6x4y6y3m6z3m7k3m7l3m7m2l7n2r7o1w7p3m7q3m7r4s7s3m7t3m7u2w7v3k7w1o7x3k7y3q202l3mcl4sal2lam3man3mao3map3mar3mas2lat4wau1vav3maw3say4waz2lbk2sbl3s'fof'6obo2lbp3mbq2xbr1tbs2lbu1zbv3mbz2wck4s202k3mcm4scn4sco4scp4scq5tcr4mcs3xct3xcu3xcv3xcw2l2m2tcy2lcz2ldl4sdm4sdn4sdo4sdp4sdq4sds4sdt4sdu4sdv4sdw4sdz3mek2wel2wem2wen2weo2wep2weq4mer2wes2wet2weu2wev2wew1wex1wey1wez1wfl3mfm3mfn3mfo3mfp3mfq3mfr3sfs3mft3mfu3mfv3mfw3mfz3m203k6o212m6m2dw2l2cq2l3t3m3u1w17s4s19m3m}'kerning'{cl{4qs5ku17sw5ou5qy5rw201ss5tw201ws}201s{201ss}201t{ckw4lwcmwcnwcowcpwclw4wu201ts}2k{201ts}2w{4qs5kw5os5qx5ru17sx5tx}2x{17sw5tw5ou5qu}2y{4qs5kw5os5qx5ru17sx5tx}'fof'-6o7t{ckuclucmucnucoucpu4lu5os5rs}3u{17su5tu5qs}3v{17su5tu5qs}7p{17sw5tw5qs}ck{4qs5ku17sw5ou5qy5rw201ss5tw201ws}4l{4qs5ku17sw5ou5qy5rw201ss5tw201ws}cm{4qs5ku17sw5ou5qy5rw201ss5tw201ws}cn{4qs5ku17sw5ou5qy5rw201ss5tw201ws}co{4qs5ku17sw5ou5qy5rw201ss5tw201ws}cp{4qs5ku17sw5ou5qy5rw201ss5tw201ws}6l{17su5tu5os5qw5rs}17s{2ktclvcmvcnvcovcpv4lv4wuckv}5o{ckwclwcmwcnwcowcpw4lw4wu}5q{ckyclycmycnycoycpy4ly4wu5ms}5r{cktcltcmtcntcotcpt4lt4ws}5t{2ktclvcmvcnvcovcpv4lv4wuckv}7q{cksclscmscnscoscps4ls}6p{17su5tu5qw5rs}ek{5qs5rs}el{17su5tu5os5qw5rs}em{17su5tu5os5qs5rs}en{17su5qs5rs}eo{5qs5rs}ep{17su5tu5os5qw5rs}es{5qs}et{17su5tu5qw5rs}eu{17su5tu5qs5rs}ev{5qs}6z{17sv5tv5os5qx5rs}fm{5os5qt5rs}fn{17sv5tv5os5qx5rs}fo{17sv5tv5os5qx5rs}fp{5os5qt5rs}fq{5os5qt5rs}7r{ckuclucmucnucoucpu4lu5os}fs{17sv5tv5os5qx5rs}ft{17ss5ts5qs}fu{17sw5tw5qs}fv{17sw5tw5qs}fw{17ss5ts5qs}fz{ckuclucmucnucoucpu4lu5os5rs}}}"), "Helvetica-Oblique": o("{'widths'{k3p2q4mcx1w201n3r201o6o201s1q201t1q201u1q201w2l201x2l201y2l2k1w2l1w202m2n2n3r2o3r2p5t202q6o2r1n2s2l2t2l2u2r2v3u2w1w2x2l2y1w2z1w3k3r3l3r3m3r3n3r3o3r3p3r3q3r3r3r3s3r203t2l203u2l3v1w3w3u3x3u3y3u3z3r4k6p4l4m4m4m4n4s4o4s4p4m4q3x4r4y4s4s4t1w4u3m4v4m4w3r4x5n4y4s4z4y5k4m5l4y5m4s5n4m5o3x5p4s5q4m5r5y5s4m5t4m5u3x5v1w5w1w5x1w5y2z5z3r6k2l6l3r6m3r6n3m6o3r6p3r6q1w6r3r6s3r6t1q6u1q6v3m6w1q6x5n6y3r6z3r7k3r7l3r7m2l7n3m7o1w7p3r7q3m7r4s7s3m7t3m7u3m7v2l7w1u7x2l7y3u202l3rcl4mal2lam3ran3rao3rap3rar3ras2lat4tau2pav3raw3uay4taz2lbk2sbl3u'fof'6obo2lbp3rbr1wbs2lbu2obv3rbz3xck4m202k3rcm4mcn4mco4mcp4mcq6ocr4scs4mct4mcu4mcv4mcw1w2m2ncy1wcz1wdl4sdm4ydn4ydo4ydp4ydq4yds4ydt4sdu4sdv4sdw4sdz3xek3rel3rem3ren3reo3rep3req5ter3mes3ret3reu3rev3rew1wex1wey1wez1wfl3rfm3rfn3rfo3rfp3rfq3rfr3ufs3xft3rfu3rfv3rfw3rfz3m203k6o212m6o2dw2l2cq2l3t3r3u1w17s4m19m3r}'kerning'{5q{4wv}cl{4qs5kw5ow5qs17sv5tv}201t{2wu4w1k2yu}201x{2wu4wy2yu}17s{2ktclucmucnu4otcpu4lu4wycoucku}2w{7qs4qz5k1m17sy5ow5qx5rsfsu5ty7tufzu}2x{17sy5ty5oy5qs}2y{7qs4qz5k1m17sy5ow5qx5rsfsu5ty7tufzu}'fof'-6o7p{17sv5tv5ow}ck{4qs5kw5ow5qs17sv5tv}4l{4qs5kw5ow5qs17sv5tv}cm{4qs5kw5ow5qs17sv5tv}cn{4qs5kw5ow5qs17sv5tv}co{4qs5kw5ow5qs17sv5tv}cp{4qs5kw5ow5qs17sv5tv}6l{17sy5ty5ow}do{17st5tt}4z{17st5tt}7s{fst}dm{17st5tt}dn{17st5tt}5o{ckwclwcmwcnwcowcpw4lw4wv}dp{17st5tt}dq{17st5tt}7t{5ow}ds{17st5tt}5t{2ktclucmucnu4otcpu4lu4wycoucku}fu{17sv5tv5ow}6p{17sy5ty5ow5qs}ek{17sy5ty5ow}el{17sy5ty5ow}em{17sy5ty5ow}en{5ty}eo{17sy5ty5ow}ep{17sy5ty5ow}es{17sy5ty5qs}et{17sy5ty5ow5qs}eu{17sy5ty5ow5qs}ev{17sy5ty5ow5qs}6z{17sy5ty5ow5qs}fm{17sy5ty5ow5qs}fn{17sy5ty5ow5qs}fo{17sy5ty5ow5qs}fp{17sy5ty5qs}fq{17sy5ty5ow5qs}7r{5ow}fs{17sy5ty5ow5qs}ft{17sv5tv5ow}7m{5ow}fv{17sv5tv5ow}fw{17sv5tv5ow}}}") } };
  r.events.push(["addFont", function(g) {
    var c = g.font, p = h.Unicode[c.postScriptName];
    p && (c.metadata.Unicode = {}, c.metadata.Unicode.widths = p.widths, c.metadata.Unicode.kerning = p.kerning);
    var m = u.Unicode[c.postScriptName];
    m && (c.metadata.Unicode.encoding = m, c.encoding = m.codePages[0]);
  }]);
})(eA.API), /**
 * @license
 * Licensed under the MIT License.
 * http://opensource.org/licenses/mit-license
 */
(function(r) {
  var t = function(e) {
    for (var A = e.length, n = new Uint8Array(A), a = 0; a < A; a++) n[a] = e.charCodeAt(a);
    return n;
  };
  r.API.events.push(["addFont", function(e) {
    var A = void 0, n = e.font, a = e.instance;
    if (!n.isStandardFont) {
      if (a === void 0) throw new Error("Font does not exist in vFS, import fonts or remove declaration doc.addFont('" + n.postScriptName + "').");
      if (typeof (A = a.existsFileInVFS(n.postScriptName) === !1 ? a.loadFile(n.postScriptName) : a.getFileFromVFS(n.postScriptName)) != "string") throw new Error("Font is not stored as string-data in vFS, import fonts or remove declaration doc.addFont('" + n.postScriptName + "').");
      (function(s, i) {
        i = /^\x00\x01\x00\x00/.test(i) ? t(i) : t(zu(i)), s.metadata = r.API.TTFFont.open(i), s.metadata.Unicode = s.metadata.Unicode || { encoding: {}, kerning: {}, widths: [] }, s.metadata.glyIdsUsed = [0];
      })(n, A);
    }
  }]);
})(eA), eA.API.addSvgAsImage = function(r, t, e, A, n, a, s, i) {
  if (isNaN(t) || isNaN(e)) throw ur.error("jsPDF.addSvgAsImage: Invalid coordinates", arguments), new Error("Invalid coordinates passed to jsPDF.addSvgAsImage");
  if (isNaN(A) || isNaN(n)) throw ur.error("jsPDF.addSvgAsImage: Invalid measurements", arguments), new Error("Invalid measurements (width and/or height) passed to jsPDF.addSvgAsImage");
  var o = document.createElement("canvas");
  o.width = A, o.height = n;
  var l = o.getContext("2d");
  l.fillStyle = "#fff", l.fillRect(0, 0, o.width, o.height);
  var u = { ignoreMouse: !0, ignoreAnimation: !0, ignoreDimensions: !0 }, h = this;
  return (cA.canvg ? Promise.resolve(cA.canvg) : Promise.resolve().then(() => J8)).catch(function(g) {
    return Promise.reject(new Error("Could not load canvg: " + g));
  }).then(function(g) {
    return g.default ? g.default : g;
  }).then(function(g) {
    return g.fromString(l, r, u);
  }, function() {
    return Promise.reject(new Error("Could not load canvg."));
  }).then(function(g) {
    return g.render(u);
  }).then(function() {
    h.addImage(o.toDataURL("image/jpeg", 1), t, e, A, n, s, i);
  });
}, eA.API.putTotalPages = function(r) {
  var t, e = 0;
  parseInt(this.internal.getFont().id.substr(1), 10) < 15 ? (t = new RegExp(r, "g"), e = this.internal.getNumberOfPages()) : (t = new RegExp(this.pdfEscape16(r, this.internal.getFont()), "g"), e = this.pdfEscape16(this.internal.getNumberOfPages() + "", this.internal.getFont()));
  for (var A = 1; A <= this.internal.getNumberOfPages(); A++) for (var n = 0; n < this.internal.pages[A].length; n++) this.internal.pages[A][n] = this.internal.pages[A][n].replace(t, e);
  return this;
}, eA.API.viewerPreferences = function(r, t) {
  var e;
  r = r || {}, t = t || !1;
  var A, n, a, s = { HideToolbar: { defaultValue: !1, value: !1, type: "boolean", explicitSet: !1, valueSet: [!0, !1], pdfVersion: 1.3 }, HideMenubar: { defaultValue: !1, value: !1, type: "boolean", explicitSet: !1, valueSet: [!0, !1], pdfVersion: 1.3 }, HideWindowUI: { defaultValue: !1, value: !1, type: "boolean", explicitSet: !1, valueSet: [!0, !1], pdfVersion: 1.3 }, FitWindow: { defaultValue: !1, value: !1, type: "boolean", explicitSet: !1, valueSet: [!0, !1], pdfVersion: 1.3 }, CenterWindow: { defaultValue: !1, value: !1, type: "boolean", explicitSet: !1, valueSet: [!0, !1], pdfVersion: 1.3 }, DisplayDocTitle: { defaultValue: !1, value: !1, type: "boolean", explicitSet: !1, valueSet: [!0, !1], pdfVersion: 1.4 }, NonFullScreenPageMode: { defaultValue: "UseNone", value: "UseNone", type: "name", explicitSet: !1, valueSet: ["UseNone", "UseOutlines", "UseThumbs", "UseOC"], pdfVersion: 1.3 }, Direction: { defaultValue: "L2R", value: "L2R", type: "name", explicitSet: !1, valueSet: ["L2R", "R2L"], pdfVersion: 1.3 }, ViewArea: { defaultValue: "CropBox", value: "CropBox", type: "name", explicitSet: !1, valueSet: ["MediaBox", "CropBox", "TrimBox", "BleedBox", "ArtBox"], pdfVersion: 1.4 }, ViewClip: { defaultValue: "CropBox", value: "CropBox", type: "name", explicitSet: !1, valueSet: ["MediaBox", "CropBox", "TrimBox", "BleedBox", "ArtBox"], pdfVersion: 1.4 }, PrintArea: { defaultValue: "CropBox", value: "CropBox", type: "name", explicitSet: !1, valueSet: ["MediaBox", "CropBox", "TrimBox", "BleedBox", "ArtBox"], pdfVersion: 1.4 }, PrintClip: { defaultValue: "CropBox", value: "CropBox", type: "name", explicitSet: !1, valueSet: ["MediaBox", "CropBox", "TrimBox", "BleedBox", "ArtBox"], pdfVersion: 1.4 }, PrintScaling: { defaultValue: "AppDefault", value: "AppDefault", type: "name", explicitSet: !1, valueSet: ["AppDefault", "None"], pdfVersion: 1.6 }, Duplex: { defaultValue: "", value: "none", type: "name", explicitSet: !1, valueSet: ["Simplex", "DuplexFlipShortEdge", "DuplexFlipLongEdge", "none"], pdfVersion: 1.7 }, PickTrayByPDFSize: { defaultValue: !1, value: !1, type: "boolean", explicitSet: !1, valueSet: [!0, !1], pdfVersion: 1.7 }, PrintPageRange: { defaultValue: "", value: "", type: "array", explicitSet: !1, valueSet: null, pdfVersion: 1.7 }, NumCopies: { defaultValue: 1, value: 1, type: "integer", explicitSet: !1, valueSet: null, pdfVersion: 1.7 } }, i = Object.keys(s), o = [], l = 0, u = 0, h = 0;
  function g(p, m) {
    var y, w = !1;
    for (y = 0; y < p.length; y += 1) p[y] === m && (w = !0);
    return w;
  }
  if (this.internal.viewerpreferences === void 0 && (this.internal.viewerpreferences = {}, this.internal.viewerpreferences.configuration = JSON.parse(JSON.stringify(s)), this.internal.viewerpreferences.isSubscribed = !1), e = this.internal.viewerpreferences.configuration, r === "reset" || t === !0) {
    var c = i.length;
    for (h = 0; h < c; h += 1) e[i[h]].value = e[i[h]].defaultValue, e[i[h]].explicitSet = !1;
  }
  if (jA(r) === "object") {
    for (n in r) if (a = r[n], g(i, n) && a !== void 0) {
      if (e[n].type === "boolean" && typeof a == "boolean") e[n].value = a;
      else if (e[n].type === "name" && g(e[n].valueSet, a)) e[n].value = a;
      else if (e[n].type === "integer" && Number.isInteger(a)) e[n].value = a;
      else if (e[n].type === "array") {
        for (l = 0; l < a.length; l += 1) if (A = !0, a[l].length === 1 && typeof a[l][0] == "number") o.push(String(a[l] - 1));
        else if (a[l].length > 1) {
          for (u = 0; u < a[l].length; u += 1) typeof a[l][u] != "number" && (A = !1);
          A === !0 && o.push([a[l][0] - 1, a[l][1] - 1].join(" "));
        }
        e[n].value = "[" + o.join(" ") + "]";
      } else e[n].value = e[n].defaultValue;
      e[n].explicitSet = !0;
    }
  }
  return this.internal.viewerpreferences.isSubscribed === !1 && (this.internal.events.subscribe("putCatalog", function() {
    var p, m = [];
    for (p in e) e[p].explicitSet === !0 && (e[p].type === "name" ? m.push("/" + p + " /" + e[p].value) : m.push("/" + p + " " + e[p].value));
    m.length !== 0 && this.internal.write(`/ViewerPreferences
<<
` + m.join(`
`) + `
>>`);
  }), this.internal.viewerpreferences.isSubscribed = !0), this.internal.viewerpreferences.configuration = e, this;
}, /** ====================================================================
 * @license
 * jsPDF XMP metadata plugin
 * Copyright (c) 2016 Jussi Utunen, u-jussi@suomi24.fi
 *
 * Permission is hereby granted, free of charge, to any person obtaining
 * a copy of this software and associated documentation files (the
 * "Software"), to deal in the Software without restriction, including
 * without limitation the rights to use, copy, modify, merge, publish,
 * distribute, sublicense, and/or sell copies of the Software, and to
 * permit persons to whom the Software is furnished to do so, subject to
 * the following conditions:
 *
 * The above copyright notice and this permission notice shall be
 * included in all copies or substantial portions of the Software.
 *
 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
 * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
 * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
 * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
 * LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
 * OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
 * WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
 * ====================================================================
 */
(function(r) {
  var t = function() {
    var A = '<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"><rdf:Description rdf:about="" xmlns:jspdf="' + this.internal.__metadata__.namespaceuri + '"><jspdf:metadata>', n = unescape(encodeURIComponent('<x:xmpmeta xmlns:x="adobe:ns:meta/">')), a = unescape(encodeURIComponent(A)), s = unescape(encodeURIComponent(this.internal.__metadata__.metadata)), i = unescape(encodeURIComponent("</jspdf:metadata></rdf:Description></rdf:RDF>")), o = unescape(encodeURIComponent("</x:xmpmeta>")), l = a.length + s.length + i.length + n.length + o.length;
    this.internal.__metadata__.metadata_object_number = this.internal.newObject(), this.internal.write("<< /Type /Metadata /Subtype /XML /Length " + l + " >>"), this.internal.write("stream"), this.internal.write(n + a + s + i + o), this.internal.write("endstream"), this.internal.write("endobj");
  }, e = function() {
    this.internal.__metadata__.metadata_object_number && this.internal.write("/Metadata " + this.internal.__metadata__.metadata_object_number + " 0 R");
  };
  r.addMetadata = function(A, n) {
    return this.internal.__metadata__ === void 0 && (this.internal.__metadata__ = { metadata: A, namespaceuri: n || "http://jspdf.default.namespaceuri/" }, this.internal.events.subscribe("putCatalog", e), this.internal.events.subscribe("postPutResources", t)), this;
  };
})(eA.API), (function(r) {
  var t = r.API, e = t.pdfEscape16 = function(a, s) {
    for (var i, o = s.metadata.Unicode.widths, l = ["", "0", "00", "000", "0000"], u = [""], h = 0, g = a.length; h < g; ++h) {
      if (i = s.metadata.characterToGlyph(a.charCodeAt(h)), s.metadata.glyIdsUsed.push(i), s.metadata.toUnicode[i] = a.charCodeAt(h), o.indexOf(i) == -1 && (o.push(i), o.push([parseInt(s.metadata.widthOfGlyph(i), 10)])), i == "0") return u.join("");
      i = i.toString(16), u.push(l[4 - i.length], i);
    }
    return u.join("");
  }, A = function(a) {
    var s, i, o, l, u, h, g;
    for (u = `/CIDInit /ProcSet findresource begin
12 dict begin
begincmap
/CIDSystemInfo <<
  /Registry (Adobe)
  /Ordering (UCS)
  /Supplement 0
>> def
/CMapName /Adobe-Identity-UCS def
/CMapType 2 def
1 begincodespacerange
<0000><ffff>
endcodespacerange`, o = [], h = 0, g = (i = Object.keys(a).sort(function(c, p) {
      return c - p;
    })).length; h < g; h++) s = i[h], o.length >= 100 && (u += `
` + o.length + ` beginbfchar
` + o.join(`
`) + `
endbfchar`, o = []), a[s] !== void 0 && a[s] !== null && typeof a[s].toString == "function" && (l = ("0000" + a[s].toString(16)).slice(-4), s = ("0000" + (+s).toString(16)).slice(-4), o.push("<" + s + "><" + l + ">"));
    return o.length && (u += `
` + o.length + ` beginbfchar
` + o.join(`
`) + `
endbfchar
`), u + `endcmap
CMapName currentdict /CMap defineresource pop
end
end`;
  };
  t.events.push(["putFont", function(a) {
    (function(s) {
      var i = s.font, o = s.out, l = s.newObject, u = s.putStream;
      if (i.metadata instanceof r.API.TTFFont && i.encoding === "Identity-H") {
        for (var h = i.metadata.Unicode.widths, g = i.metadata.subset.encode(i.metadata.glyIdsUsed, 1), c = "", p = 0; p < g.length; p++) c += String.fromCharCode(g[p]);
        var m = l();
        u({ data: c, addLength1: !0, objectId: m }), o("endobj");
        var y = l();
        u({ data: A(i.metadata.toUnicode), addLength1: !0, objectId: y }), o("endobj");
        var w = l();
        o("<<"), o("/Type /FontDescriptor"), o("/FontName /" + wo(i.fontName)), o("/FontFile2 " + m + " 0 R"), o("/FontBBox " + r.API.PDFObject.convert(i.metadata.bbox)), o("/Flags " + i.metadata.flags), o("/StemV " + i.metadata.stemV), o("/ItalicAngle " + i.metadata.italicAngle), o("/Ascent " + i.metadata.ascender), o("/Descent " + i.metadata.decender), o("/CapHeight " + i.metadata.capHeight), o(">>"), o("endobj");
        var E = l();
        o("<<"), o("/Type /Font"), o("/BaseFont /" + wo(i.fontName)), o("/FontDescriptor " + w + " 0 R"), o("/W " + r.API.PDFObject.convert(h)), o("/CIDToGIDMap /Identity"), o("/DW 1000"), o("/Subtype /CIDFontType2"), o("/CIDSystemInfo"), o("<<"), o("/Supplement 0"), o("/Registry (Adobe)"), o("/Ordering (" + i.encoding + ")"), o(">>"), o(">>"), o("endobj"), i.objectNumber = l(), o("<<"), o("/Type /Font"), o("/Subtype /Type0"), o("/ToUnicode " + y + " 0 R"), o("/BaseFont /" + wo(i.fontName)), o("/Encoding /" + i.encoding), o("/DescendantFonts [" + E + " 0 R]"), o(">>"), o("endobj"), i.isAlreadyPutted = !0;
      }
    })(a);
  }]), t.events.push(["putFont", function(a) {
    (function(s) {
      var i = s.font, o = s.out, l = s.newObject, u = s.putStream;
      if (i.metadata instanceof r.API.TTFFont && i.encoding === "WinAnsiEncoding") {
        for (var h = i.metadata.rawData, g = "", c = 0; c < h.length; c++) g += String.fromCharCode(h[c]);
        var p = l();
        u({ data: g, addLength1: !0, objectId: p }), o("endobj");
        var m = l();
        u({ data: A(i.metadata.toUnicode), addLength1: !0, objectId: m }), o("endobj");
        var y = l();
        o("<<"), o("/Descent " + i.metadata.decender), o("/CapHeight " + i.metadata.capHeight), o("/StemV " + i.metadata.stemV), o("/Type /FontDescriptor"), o("/FontFile2 " + p + " 0 R"), o("/Flags 96"), o("/FontBBox " + r.API.PDFObject.convert(i.metadata.bbox)), o("/FontName /" + wo(i.fontName)), o("/ItalicAngle " + i.metadata.italicAngle), o("/Ascent " + i.metadata.ascender), o(">>"), o("endobj"), i.objectNumber = l();
        for (var w = 0; w < i.metadata.hmtx.widths.length; w++) i.metadata.hmtx.widths[w] = parseInt(i.metadata.hmtx.widths[w] * (1e3 / i.metadata.head.unitsPerEm));
        o("<</Subtype/TrueType/Type/Font/ToUnicode " + m + " 0 R/BaseFont/" + wo(i.fontName) + "/FontDescriptor " + y + " 0 R/Encoding/" + i.encoding + " /FirstChar 29 /LastChar 255 /Widths " + r.API.PDFObject.convert(i.metadata.hmtx.widths) + ">>"), o("endobj"), i.isAlreadyPutted = !0;
      }
    })(a);
  }]);
  var n = function(a) {
    var s, i = a.text || "", o = a.x, l = a.y, u = a.options || {}, h = a.mutex || {}, g = h.pdfEscape, c = h.activeFontKey, p = h.fonts, m = c, y = "", w = 0, E = "", C = p[m].encoding;
    if (p[m].encoding !== "Identity-H") return { text: i, x: o, y: l, options: u, mutex: h };
    for (E = i, m = c, Array.isArray(i) && (E = i[0]), w = 0; w < E.length; w += 1) p[m].metadata.hasOwnProperty("cmap") && (s = p[m].metadata.cmap.unicode.codeMap[E[w].charCodeAt(0)]), s || E[w].charCodeAt(0) < 256 && p[m].metadata.hasOwnProperty("Unicode") ? y += E[w] : y += "";
    var F = "";
    return parseInt(m.slice(1)) < 14 || C === "WinAnsiEncoding" ? F = g(y, m).split("").map(function(H) {
      return H.charCodeAt(0).toString(16);
    }).join("") : C === "Identity-H" && (F = e(y, p[m])), h.isHex = !0, { text: F, x: o, y: l, options: u, mutex: h };
  };
  t.events.push(["postProcessText", function(a) {
    var s = a.text || "", i = [], o = { text: s, x: a.x, y: a.y, options: a.options, mutex: a.mutex };
    if (Array.isArray(s)) {
      var l = 0;
      for (l = 0; l < s.length; l += 1) Array.isArray(s[l]) && s[l].length === 3 ? i.push([n(Object.assign({}, o, { text: s[l][0] })).text, s[l][1], s[l][2]]) : i.push(n(Object.assign({}, o, { text: s[l] })).text);
      a.text = i;
    } else a.text = n(Object.assign({}, o, { text: s })).text;
  }]);
})(eA), /**
 * @license
 * jsPDF virtual FileSystem functionality
 *
 * Licensed under the MIT License.
 * http://opensource.org/licenses/mit-license
 */
(function(r) {
  var t = function() {
    return this.internal.vFS === void 0 && (this.internal.vFS = {}), !0;
  };
  r.existsFileInVFS = function(e) {
    return t.call(this), this.internal.vFS[e] !== void 0;
  }, r.addFileToVFS = function(e, A) {
    return t.call(this), this.internal.vFS[e] = A, this;
  }, r.getFileFromVFS = function(e) {
    return t.call(this), this.internal.vFS[e] !== void 0 ? this.internal.vFS[e] : null;
  };
})(eA.API), /**
 * @license
 * Unicode Bidi Engine based on the work of Alex Shensis (@asthensis)
 * MIT License
 */
(function(r) {
  r.__bidiEngine__ = r.prototype.__bidiEngine__ = function(A) {
    var n, a, s, i, o, l, u, h = t, g = [[0, 3, 0, 1, 0, 0, 0], [0, 3, 0, 1, 2, 2, 0], [0, 3, 0, 17, 2, 0, 1], [0, 3, 5, 5, 4, 1, 0], [0, 3, 21, 21, 4, 0, 1], [0, 3, 5, 5, 4, 2, 0]], c = [[2, 0, 1, 1, 0, 1, 0], [2, 0, 1, 1, 0, 2, 0], [2, 0, 2, 1, 3, 2, 0], [2, 0, 2, 33, 3, 1, 1]], p = { L: 0, R: 1, EN: 2, AN: 3, N: 4, B: 5, S: 6 }, m = { 0: 0, 5: 1, 6: 2, 7: 3, 32: 4, 251: 5, 254: 6, 255: 7 }, y = ["(", ")", "(", "<", ">", "<", "[", "]", "[", "{", "}", "{", "«", "»", "«", "‹", "›", "‹", "⁅", "⁆", "⁅", "⁽", "⁾", "⁽", "₍", "₎", "₍", "≤", "≥", "≤", "〈", "〉", "〈", "﹙", "﹚", "﹙", "﹛", "﹜", "﹛", "﹝", "﹞", "﹝", "﹤", "﹥", "﹤"], w = new RegExp(/^([1-4|9]|1[0-9]|2[0-9]|3[0168]|4[04589]|5[012]|7[78]|159|16[0-9]|17[0-2]|21[569]|22[03489]|250)$/), E = !1, C = 0;
    this.__bidiEngine__ = {};
    var F = function(S) {
      var U = S.charCodeAt(), W = U >> 8, I = m[W];
      return I !== void 0 ? h[256 * I + (255 & U)] : W === 252 || W === 253 ? "AL" : w.test(W) ? "L" : W === 8 ? "R" : "N";
    }, H = function(S) {
      for (var U, W = 0; W < S.length; W++) {
        if ((U = F(S.charAt(W))) === "L") return !1;
        if (U === "R") return !0;
      }
      return !1;
    }, q = function(S, U, W, I) {
      var le, ue, Z, ee, X = U[I];
      switch (X) {
        case "L":
        case "R":
        case "LRE":
        case "RLE":
        case "LRO":
        case "RLO":
        case "PDF":
          E = !1;
          break;
        case "N":
        case "AN":
          break;
        case "EN":
          E && (X = "AN");
          break;
        case "AL":
          E = !0, X = "R";
          break;
        case "WS":
        case "BN":
          X = "N";
          break;
        case "CS":
          I < 1 || I + 1 >= U.length || (le = W[I - 1]) !== "EN" && le !== "AN" || (ue = U[I + 1]) !== "EN" && ue !== "AN" ? X = "N" : E && (ue = "AN"), X = ue === le ? ue : "N";
          break;
        case "ES":
          X = (le = I > 0 ? W[I - 1] : "B") === "EN" && I + 1 < U.length && U[I + 1] === "EN" ? "EN" : "N";
          break;
        case "ET":
          if (I > 0 && W[I - 1] === "EN") {
            X = "EN";
            break;
          }
          if (E) {
            X = "N";
            break;
          }
          for (Z = I + 1, ee = U.length; Z < ee && U[Z] === "ET"; ) Z++;
          X = Z < ee && U[Z] === "EN" ? "EN" : "N";
          break;
        case "NSM":
          if (s && !i) {
            for (ee = U.length, Z = I + 1; Z < ee && U[Z] === "NSM"; ) Z++;
            if (Z < ee) {
              var Ae = S[I], oe = Ae >= 1425 && Ae <= 2303 || Ae === 64286;
              if (le = U[Z], oe && (le === "R" || le === "AL")) {
                X = "R";
                break;
              }
            }
          }
          X = I < 1 || (le = U[I - 1]) === "B" ? "N" : W[I - 1];
          break;
        case "B":
          E = !1, n = !0, X = C;
          break;
        case "S":
          a = !0, X = "N";
      }
      return X;
    }, N = function(S, U, W) {
      var I = S.split("");
      return W && M(I, W, { hiLevel: C }), I.reverse(), U && U.reverse(), I.join("");
    }, M = function(S, U, W) {
      var I, le, ue, Z, ee, X = -1, Ae = S.length, oe = 0, x = [], L = C ? c : g, j = [];
      for (E = !1, n = !1, a = !1, le = 0; le < Ae; le++) j[le] = F(S[le]);
      for (ue = 0; ue < Ae; ue++) {
        if (ee = oe, x[ue] = q(S, j, x, ue), I = 240 & (oe = L[ee][p[x[ue]]]), oe &= 15, U[ue] = Z = L[oe][5], I > 0) if (I === 16) {
          for (le = X; le < ue; le++) U[le] = 1;
          X = -1;
        } else X = -1;
        if (L[oe][6]) X === -1 && (X = ue);
        else if (X > -1) {
          for (le = X; le < ue; le++) U[le] = Z;
          X = -1;
        }
        j[ue] === "B" && (U[ue] = 0), W.hiLevel |= Z;
      }
      a && (function($, re, pe) {
        for (var de = 0; de < pe; de++) if ($[de] === "S") {
          re[de] = C;
          for (var ce = de - 1; ce >= 0 && $[ce] === "WS"; ce--) re[ce] = C;
        }
      })(j, U, Ae);
    }, k = function(S, U, W, I, le) {
      if (!(le.hiLevel < S)) {
        if (S === 1 && C === 1 && !n) return U.reverse(), void (W && W.reverse());
        for (var ue, Z, ee, X, Ae = U.length, oe = 0; oe < Ae; ) {
          if (I[oe] >= S) {
            for (ee = oe + 1; ee < Ae && I[ee] >= S; ) ee++;
            for (X = oe, Z = ee - 1; X < Z; X++, Z--) ue = U[X], U[X] = U[Z], U[Z] = ue, W && (ue = W[X], W[X] = W[Z], W[Z] = ue);
            oe = ee;
          }
          oe++;
        }
      }
    }, O = function(S, U, W) {
      var I = S.split(""), le = { hiLevel: C };
      return W || (W = []), M(I, W, le), (function(ue, Z, ee) {
        if (ee.hiLevel !== 0 && u) for (var X, Ae = 0; Ae < ue.length; Ae++) Z[Ae] === 1 && (X = y.indexOf(ue[Ae])) >= 0 && (ue[Ae] = y[X + 1]);
      })(I, W, le), k(2, I, U, W, le), k(1, I, U, W, le), I.join("");
    };
    return this.__bidiEngine__.doBidiReorder = function(S, U, W) {
      if ((function(le, ue) {
        if (ue) for (var Z = 0; Z < le.length; Z++) ue[Z] = Z;
        i === void 0 && (i = H(le)), l === void 0 && (l = H(le));
      })(S, U), s || !o || l) if (s && o && i ^ l) C = i ? 1 : 0, S = N(S, U, W);
      else if (!s && o && l) C = i ? 1 : 0, S = O(S, U, W), S = N(S, U);
      else if (!s || i || o || l) {
        if (s && !o && i ^ l) S = N(S, U), i ? (C = 0, S = O(S, U, W)) : (C = 1, S = O(S, U, W), S = N(S, U));
        else if (s && i && !o && l) C = 1, S = O(S, U, W), S = N(S, U);
        else if (!s && !o && i ^ l) {
          var I = u;
          i ? (C = 1, S = O(S, U, W), C = 0, u = !1, S = O(S, U, W), u = I) : (C = 0, S = O(S, U, W), S = N(S, U), C = 1, u = !1, S = O(S, U, W), u = I, S = N(S, U));
        }
      } else C = 0, S = O(S, U, W);
      else C = i ? 1 : 0, S = O(S, U, W);
      return S;
    }, this.__bidiEngine__.setOptions = function(S) {
      S && (s = S.isInputVisual, o = S.isOutputVisual, i = S.isInputRtl, l = S.isOutputRtl, u = S.isSymmetricSwapping);
    }, this.__bidiEngine__.setOptions(A), this.__bidiEngine__;
  };
  var t = ["BN", "BN", "BN", "BN", "BN", "BN", "BN", "BN", "BN", "S", "B", "S", "WS", "B", "BN", "BN", "BN", "BN", "BN", "BN", "BN", "BN", "BN", "BN", "BN", "BN", "BN", "BN", "B", "B", "B", "S", "WS", "N", "N", "ET", "ET", "ET", "N", "N", "N", "N", "N", "ES", "CS", "ES", "CS", "CS", "EN", "EN", "EN", "EN", "EN", "EN", "EN", "EN", "EN", "EN", "CS", "N", "N", "N", "N", "N", "N", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "N", "N", "N", "N", "N", "N", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "N", "N", "N", "N", "BN", "BN", "BN", "BN", "BN", "BN", "B", "BN", "BN", "BN", "BN", "BN", "BN", "BN", "BN", "BN", "BN", "BN", "BN", "BN", "BN", "BN", "BN", "BN", "BN", "BN", "BN", "BN", "BN", "BN", "BN", "BN", "BN", "CS", "N", "ET", "ET", "ET", "ET", "N", "N", "N", "N", "L", "N", "N", "BN", "N", "N", "ET", "ET", "EN", "EN", "N", "L", "N", "N", "N", "EN", "L", "N", "N", "N", "N", "N", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "N", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "N", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "N", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "N", "N", "L", "L", "L", "L", "L", "L", "L", "N", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "N", "L", "N", "N", "N", "N", "N", "ET", "N", "NSM", "NSM", "NSM", "NSM", "NSM", "NSM", "NSM", "NSM", "NSM", "NSM", "NSM", "NSM", "NSM", "NSM", "NSM", "NSM", "NSM", "NSM", "NSM", "NSM", "NSM", "NSM", "NSM", "NSM", "NSM", "NSM", "NSM", "NSM", "NSM", "NSM", "NSM", "NSM", "NSM", "NSM", "NSM", "NSM", "NSM", "NSM", "NSM", "NSM", "NSM", "NSM", "NSM", "NSM", "NSM", "R", "NSM", "R", "NSM", "NSM", "R", "NSM", "NSM", "R", "NSM", "N", "N", "N", "N", "N", "N", "N", "N", "R", "R", "R", "R", "R", "R", "R", "R", "R", "R", "R", "R", "R", "R", "R", "R", "R", "R", "R", "R", "R", "R", "R", "R", "R", "R", "R", "N", "N", "N", "N", "N", "R", "R", "R", "R", "R", "N", "N", "N", "N", "N", "N", "N", "N", "N", "N", "N", "AN", "AN", "AN", "AN", "AN", "AN", "N", "N", "AL", "ET", "ET", "AL", "CS", "AL", "N", "N", "NSM", "NSM", "NSM", "NSM", "NSM", "NSM", "NSM", "NSM", "NSM", "NSM", "NSM", "AL", "AL", "N", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "NSM", "NSM", "NSM", "NSM", "NSM", "NSM", "NSM", "NSM", "NSM", "NSM", "NSM", "NSM", "NSM", "NSM", "NSM", "NSM", "NSM", "NSM", "NSM", "NSM", "NSM", "AN", "AN", "AN", "AN", "AN", "AN", "AN", "AN", "AN", "AN", "ET", "AN", "AN", "AL", "AL", "AL", "NSM", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "NSM", "NSM", "NSM", "NSM", "NSM", "NSM", "NSM", "AN", "N", "NSM", "NSM", "NSM", "NSM", "NSM", "NSM", "AL", "AL", "NSM", "NSM", "N", "NSM", "NSM", "NSM", "NSM", "AL", "AL", "EN", "EN", "EN", "EN", "EN", "EN", "EN", "EN", "EN", "EN", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "N", "AL", "AL", "NSM", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "NSM", "NSM", "NSM", "NSM", "NSM", "NSM", "NSM", "NSM", "NSM", "NSM", "NSM", "NSM", "NSM", "NSM", "NSM", "NSM", "NSM", "NSM", "NSM", "NSM", "NSM", "NSM", "NSM", "NSM", "NSM", "NSM", "NSM", "N", "N", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "NSM", "NSM", "NSM", "NSM", "NSM", "NSM", "NSM", "NSM", "NSM", "NSM", "NSM", "AL", "N", "N", "N", "N", "N", "N", "N", "N", "N", "N", "N", "N", "N", "N", "R", "R", "R", "R", "R", "R", "R", "R", "R", "R", "R", "R", "R", "R", "R", "R", "R", "R", "R", "R", "R", "R", "R", "R", "R", "R", "R", "R", "R", "R", "R", "R", "R", "R", "R", "R", "R", "R", "R", "R", "R", "R", "R", "NSM", "NSM", "NSM", "NSM", "NSM", "NSM", "NSM", "NSM", "NSM", "R", "R", "N", "N", "N", "N", "R", "N", "N", "N", "N", "N", "WS", "WS", "WS", "WS", "WS", "WS", "WS", "WS", "WS", "WS", "WS", "BN", "BN", "BN", "L", "R", "N", "N", "N", "N", "N", "N", "N", "N", "N", "N", "N", "N", "N", "N", "N", "N", "N", "N", "N", "N", "N", "N", "N", "N", "WS", "B", "LRE", "RLE", "PDF", "LRO", "RLO", "CS", "ET", "ET", "ET", "ET", "ET", "N", "N", "N", "N", "N", "N", "N", "N", "N", "N", "N", "N", "N", "N", "N", "CS", "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", "WS", "BN", "BN", "BN", "BN", "BN", "N", "LRI", "RLI", "FSI", "PDI", "BN", "BN", "BN", "BN", "BN", "BN", "EN", "L", "N", "N", "EN", "EN", "EN", "EN", "EN", "EN", "ES", "ES", "N", "N", "N", "L", "EN", "EN", "EN", "EN", "EN", "EN", "EN", "EN", "EN", "EN", "ES", "ES", "N", "N", "N", "N", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "N", "N", "N", "ET", "ET", "ET", "ET", "ET", "ET", "ET", "ET", "ET", "ET", "ET", "ET", "ET", "ET", "ET", "ET", "ET", "ET", "ET", "ET", "ET", "ET", "ET", "ET", "ET", "ET", "ET", "ET", "ET", "ET", "ET", "N", "N", "N", "N", "N", "N", "N", "N", "N", "N", "N", "N", "N", "N", "N", "N", "N", "NSM", "NSM", "NSM", "NSM", "NSM", "NSM", "NSM", "NSM", "NSM", "NSM", "NSM", "NSM", "NSM", "NSM", "NSM", "NSM", "NSM", "NSM", "NSM", "NSM", "NSM", "NSM", "NSM", "NSM", "NSM", "NSM", "NSM", "NSM", "NSM", "NSM", "NSM", "NSM", "NSM", "N", "N", "N", "N", "N", "N", "N", "N", "N", "N", "N", "N", "N", "N", "N", "L", "L", "L", "L", "L", "L", "L", "N", "N", "N", "N", "N", "N", "N", "N", "N", "N", "N", "N", "L", "L", "L", "L", "L", "N", "N", "N", "N", "N", "R", "NSM", "R", "R", "R", "R", "R", "R", "R", "R", "R", "R", "ES", "R", "R", "R", "R", "R", "R", "R", "R", "R", "R", "R", "R", "R", "N", "R", "R", "R", "R", "R", "N", "R", "N", "R", "R", "N", "R", "R", "N", "R", "R", "R", "R", "R", "R", "R", "R", "R", "R", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "N", "N", "N", "N", "N", "N", "N", "N", "N", "N", "N", "N", "N", "N", "N", "N", "N", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "NSM", "NSM", "NSM", "NSM", "NSM", "NSM", "NSM", "NSM", "NSM", "NSM", "NSM", "NSM", "NSM", "NSM", "NSM", "NSM", "N", "N", "N", "N", "N", "N", "N", "N", "N", "N", "N", "N", "N", "N", "N", "N", "NSM", "NSM", "NSM", "NSM", "NSM", "NSM", "NSM", "NSM", "NSM", "NSM", "NSM", "NSM", "NSM", "NSM", "NSM", "NSM", "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", "CS", "N", "CS", "N", "N", "CS", "N", "N", "N", "N", "N", "N", "N", "N", "N", "ET", "N", "N", "ES", "ES", "N", "N", "N", "N", "N", "ET", "ET", "N", "N", "N", "N", "N", "AL", "AL", "AL", "AL", "AL", "N", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "N", "N", "BN", "N", "N", "N", "ET", "ET", "ET", "N", "N", "N", "N", "N", "ES", "CS", "ES", "CS", "CS", "EN", "EN", "EN", "EN", "EN", "EN", "EN", "EN", "EN", "EN", "CS", "N", "N", "N", "N", "N", "N", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "N", "N", "N", "N", "N", "N", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "N", "N", "N", "N", "N", "N", "N", "N", "N", "N", "N", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "N", "N", "N", "L", "L", "L", "L", "L", "L", "N", "N", "L", "L", "L", "L", "L", "L", "N", "N", "L", "L", "L", "L", "L", "L", "N", "N", "L", "L", "L", "N", "N", "N", "ET", "ET", "N", "N", "N", "ET", "ET", "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"], e = new r.__bidiEngine__({ isInputVisual: !0 });
  r.API.events.push(["postProcessText", function(A) {
    var n = A.text;
    A.x, A.y;
    var a = A.options || {};
    A.mutex, a.lang;
    var s = [];
    if (a.isInputVisual = typeof a.isInputVisual != "boolean" || a.isInputVisual, e.setOptions(a), Object.prototype.toString.call(n) === "[object Array]") {
      var i = 0;
      for (s = [], i = 0; i < n.length; i += 1) Object.prototype.toString.call(n[i]) === "[object Array]" ? s.push([e.doBidiReorder(n[i][0]), n[i][1], n[i][2]]) : s.push([e.doBidiReorder(n[i])]);
      A.text = s;
    } else A.text = e.doBidiReorder(n);
    e.setOptions({ isInputVisual: !0 });
  }]);
})(eA), eA.API.TTFFont = (function() {
  function r(t) {
    var e;
    if (this.rawData = t, e = this.contents = new gs(t), this.contents.pos = 4, e.readString(4) === "ttcf") throw new Error("TTCF not supported.");
    e.pos = 0, this.parse(), this.subset = new PD(this), this.registerTTF();
  }
  return r.open = function(t) {
    return new r(t);
  }, r.prototype.parse = function() {
    return this.directory = new SD(this.contents), this.head = new TD(this), this.name = new ID(this), this.cmap = new I5(this), this.toUnicode = {}, this.hhea = new QD(this), this.maxp = new _D(this), this.hmtx = new ND(this), this.post = new kD(this), this.os2 = new DD(this), this.loca = new HD(this), this.glyf = new MD(this), this.ascender = this.os2.exists && this.os2.ascender || this.hhea.ascender, this.decender = this.os2.exists && this.os2.decender || this.hhea.decender, this.lineGap = this.os2.exists && this.os2.lineGap || this.hhea.lineGap, this.bbox = [this.head.xMin, this.head.yMin, this.head.xMax, this.head.yMax];
  }, r.prototype.registerTTF = function() {
    var t, e, A, n, a;
    if (this.scaleFactor = 1e3 / this.head.unitsPerEm, this.bbox = (function() {
      var s, i, o, l;
      for (l = [], s = 0, i = (o = this.bbox).length; s < i; s++) t = o[s], l.push(Math.round(t * this.scaleFactor));
      return l;
    }).call(this), this.stemV = 0, this.post.exists ? (A = 255 & (n = this.post.italic_angle), 32768 & (e = n >> 16) && (e = -(1 + (65535 ^ e))), this.italicAngle = +(e + "." + A)) : this.italicAngle = 0, this.ascender = Math.round(this.ascender * this.scaleFactor), this.decender = Math.round(this.decender * this.scaleFactor), this.lineGap = Math.round(this.lineGap * this.scaleFactor), this.capHeight = this.os2.exists && this.os2.capHeight || this.ascender, this.xHeight = this.os2.exists && this.os2.xHeight || 0, this.familyClass = (this.os2.exists && this.os2.familyClass || 0) >> 8, this.isSerif = (a = this.familyClass) === 1 || a === 2 || a === 3 || a === 4 || a === 5 || a === 7, this.isScript = this.familyClass === 10, this.flags = 0, this.post.isFixedPitch && (this.flags |= 1), this.isSerif && (this.flags |= 2), this.isScript && (this.flags |= 8), this.italicAngle !== 0 && (this.flags |= 64), this.flags |= 32, !this.cmap.unicode) throw new Error("No unicode cmap for font");
  }, r.prototype.characterToGlyph = function(t) {
    var e;
    return ((e = this.cmap.unicode) != null ? e.codeMap[t] : void 0) || 0;
  }, r.prototype.widthOfGlyph = function(t) {
    var e;
    return e = 1e3 / this.head.unitsPerEm, this.hmtx.forGlyph(t).advance * e;
  }, r.prototype.widthOfString = function(t, e, A) {
    var n, a, s, i;
    for (s = 0, a = 0, i = (t = "" + t).length; 0 <= i ? a < i : a > i; a = 0 <= i ? ++a : --a) n = t.charCodeAt(a), s += this.widthOfGlyph(this.characterToGlyph(n)) + A * (1e3 / e) || 0;
    return s * (e / 1e3);
  }, r.prototype.lineHeight = function(t, e) {
    var A;
    return e == null && (e = !1), A = e ? this.lineGap : 0, (this.ascender + A - this.decender) / 1e3 * t;
  }, r;
})();
var Za, gs = (function() {
  function r(t) {
    this.data = t ?? [], this.pos = 0, this.length = this.data.length;
  }
  return r.prototype.readByte = function() {
    return this.data[this.pos++];
  }, r.prototype.writeByte = function(t) {
    return this.data[this.pos++] = t;
  }, r.prototype.readUInt32 = function() {
    return 16777216 * this.readByte() + (this.readByte() << 16) + (this.readByte() << 8) + this.readByte();
  }, r.prototype.writeUInt32 = function(t) {
    return this.writeByte(t >>> 24 & 255), this.writeByte(t >> 16 & 255), this.writeByte(t >> 8 & 255), this.writeByte(255 & t);
  }, r.prototype.readInt32 = function() {
    var t;
    return (t = this.readUInt32()) >= 2147483648 ? t - 4294967296 : t;
  }, r.prototype.writeInt32 = function(t) {
    return t < 0 && (t += 4294967296), this.writeUInt32(t);
  }, r.prototype.readUInt16 = function() {
    return this.readByte() << 8 | this.readByte();
  }, r.prototype.writeUInt16 = function(t) {
    return this.writeByte(t >> 8 & 255), this.writeByte(255 & t);
  }, r.prototype.readInt16 = function() {
    var t;
    return (t = this.readUInt16()) >= 32768 ? t - 65536 : t;
  }, r.prototype.writeInt16 = function(t) {
    return t < 0 && (t += 65536), this.writeUInt16(t);
  }, r.prototype.readString = function(t) {
    var e, A;
    for (A = [], e = 0; 0 <= t ? e < t : e > t; e = 0 <= t ? ++e : --e) A[e] = String.fromCharCode(this.readByte());
    return A.join("");
  }, r.prototype.writeString = function(t) {
    var e, A, n;
    for (n = [], e = 0, A = t.length; 0 <= A ? e < A : e > A; e = 0 <= A ? ++e : --e) n.push(this.writeByte(t.charCodeAt(e)));
    return n;
  }, r.prototype.readShort = function() {
    return this.readInt16();
  }, r.prototype.writeShort = function(t) {
    return this.writeInt16(t);
  }, r.prototype.readLongLong = function() {
    var t, e, A, n, a, s, i, o;
    return t = this.readByte(), e = this.readByte(), A = this.readByte(), n = this.readByte(), a = this.readByte(), s = this.readByte(), i = this.readByte(), o = this.readByte(), 128 & t ? -1 * (72057594037927940 * (255 ^ t) + 281474976710656 * (255 ^ e) + 1099511627776 * (255 ^ A) + 4294967296 * (255 ^ n) + 16777216 * (255 ^ a) + 65536 * (255 ^ s) + 256 * (255 ^ i) + (255 ^ o) + 1) : 72057594037927940 * t + 281474976710656 * e + 1099511627776 * A + 4294967296 * n + 16777216 * a + 65536 * s + 256 * i + o;
  }, r.prototype.writeLongLong = function(t) {
    var e, A;
    return e = Math.floor(t / 4294967296), A = 4294967295 & t, this.writeByte(e >> 24 & 255), this.writeByte(e >> 16 & 255), this.writeByte(e >> 8 & 255), this.writeByte(255 & e), this.writeByte(A >> 24 & 255), this.writeByte(A >> 16 & 255), this.writeByte(A >> 8 & 255), this.writeByte(255 & A);
  }, r.prototype.readInt = function() {
    return this.readInt32();
  }, r.prototype.writeInt = function(t) {
    return this.writeInt32(t);
  }, r.prototype.read = function(t) {
    var e, A;
    for (e = [], A = 0; 0 <= t ? A < t : A > t; A = 0 <= t ? ++A : --A) e.push(this.readByte());
    return e;
  }, r.prototype.write = function(t) {
    var e, A, n, a;
    for (a = [], A = 0, n = t.length; A < n; A++) e = t[A], a.push(this.writeByte(e));
    return a;
  }, r;
})(), SD = (function() {
  var r;
  function t(e) {
    var A, n, a;
    for (this.scalarType = e.readInt(), this.tableCount = e.readShort(), this.searchRange = e.readShort(), this.entrySelector = e.readShort(), this.rangeShift = e.readShort(), this.tables = {}, n = 0, a = this.tableCount; 0 <= a ? n < a : n > a; n = 0 <= a ? ++n : --n) A = { tag: e.readString(4), checksum: e.readInt(), offset: e.readInt(), length: e.readInt() }, this.tables[A.tag] = A;
  }
  return t.prototype.encode = function(e) {
    var A, n, a, s, i, o, l, u, h, g, c, p, m;
    for (m in c = Object.keys(e).length, o = Math.log(2), h = 16 * Math.floor(Math.log(c) / o), s = Math.floor(h / o), u = 16 * c - h, (n = new gs()).writeInt(this.scalarType), n.writeShort(c), n.writeShort(h), n.writeShort(s), n.writeShort(u), a = 16 * c, l = n.pos + a, i = null, p = [], e) for (g = e[m], n.writeString(m), n.writeInt(r(g)), n.writeInt(l), n.writeInt(g.length), p = p.concat(g), m === "head" && (i = l), l += g.length; l % 4; ) p.push(0), l++;
    return n.write(p), A = 2981146554 - r(n.data), n.pos = i + 8, n.writeUInt32(A), n.data;
  }, r = function(e) {
    var A, n, a, s;
    for (e = _5.call(e); e.length % 4; ) e.push(0);
    for (a = new gs(e), n = 0, A = 0, s = e.length; A < s; A = A += 4) n += a.readUInt32();
    return 4294967295 & n;
  }, t;
})(), UD = {}.hasOwnProperty, di = function(r, t) {
  for (var e in t) UD.call(t, e) && (r[e] = t[e]);
  function A() {
    this.constructor = r;
  }
  return A.prototype = t.prototype, r.prototype = new A(), r.__super__ = t.prototype, r;
};
Za = (function() {
  function r(t) {
    var e;
    this.file = t, e = this.file.directory.tables[this.tag], this.exists = !!e, e && (this.offset = e.offset, this.length = e.length, this.parse(this.file.contents));
  }
  return r.prototype.parse = function() {
  }, r.prototype.encode = function() {
  }, r.prototype.raw = function() {
    return this.exists ? (this.file.contents.pos = this.offset, this.file.contents.read(this.length)) : null;
  }, r;
})();
var TD = (function() {
  function r() {
    return r.__super__.constructor.apply(this, arguments);
  }
  return di(r, Za), r.prototype.tag = "head", r.prototype.parse = function(t) {
    return t.pos = this.offset, this.version = t.readInt(), this.revision = t.readInt(), this.checkSumAdjustment = t.readInt(), this.magicNumber = t.readInt(), this.flags = t.readShort(), this.unitsPerEm = t.readShort(), this.created = t.readLongLong(), this.modified = t.readLongLong(), this.xMin = t.readShort(), this.yMin = t.readShort(), this.xMax = t.readShort(), this.yMax = t.readShort(), this.macStyle = t.readShort(), this.lowestRecPPEM = t.readShort(), this.fontDirectionHint = t.readShort(), this.indexToLocFormat = t.readShort(), this.glyphDataFormat = t.readShort();
  }, r.prototype.encode = function(t) {
    var e;
    return (e = new gs()).writeInt(this.version), e.writeInt(this.revision), e.writeInt(this.checkSumAdjustment), e.writeInt(this.magicNumber), e.writeShort(this.flags), e.writeShort(this.unitsPerEm), e.writeLongLong(this.created), e.writeLongLong(this.modified), e.writeShort(this.xMin), e.writeShort(this.yMin), e.writeShort(this.xMax), e.writeShort(this.yMax), e.writeShort(this.macStyle), e.writeShort(this.lowestRecPPEM), e.writeShort(this.fontDirectionHint), e.writeShort(t), e.writeShort(this.glyphDataFormat), e.data;
  }, r;
})(), G1 = (function() {
  function r(t, e) {
    var A, n, a, s, i, o, l, u, h, g, c, p, m, y, w, E, C;
    switch (this.platformID = t.readUInt16(), this.encodingID = t.readShort(), this.offset = e + t.readInt(), h = t.pos, t.pos = this.offset, this.format = t.readUInt16(), this.length = t.readUInt16(), this.language = t.readUInt16(), this.isUnicode = this.platformID === 3 && this.encodingID === 1 && this.format === 4 || this.platformID === 0 && this.format === 4, this.codeMap = {}, this.format) {
      case 0:
        for (o = 0; o < 256; ++o) this.codeMap[o] = t.readByte();
        break;
      case 4:
        for (c = t.readUInt16(), g = c / 2, t.pos += 6, a = (function() {
          var F, H;
          for (H = [], o = F = 0; 0 <= g ? F < g : F > g; o = 0 <= g ? ++F : --F) H.push(t.readUInt16());
          return H;
        })(), t.pos += 2, m = (function() {
          var F, H;
          for (H = [], o = F = 0; 0 <= g ? F < g : F > g; o = 0 <= g ? ++F : --F) H.push(t.readUInt16());
          return H;
        })(), l = (function() {
          var F, H;
          for (H = [], o = F = 0; 0 <= g ? F < g : F > g; o = 0 <= g ? ++F : --F) H.push(t.readUInt16());
          return H;
        })(), u = (function() {
          var F, H;
          for (H = [], o = F = 0; 0 <= g ? F < g : F > g; o = 0 <= g ? ++F : --F) H.push(t.readUInt16());
          return H;
        })(), n = (this.length - t.pos + this.offset) / 2, i = (function() {
          var F, H;
          for (H = [], o = F = 0; 0 <= n ? F < n : F > n; o = 0 <= n ? ++F : --F) H.push(t.readUInt16());
          return H;
        })(), o = w = 0, C = a.length; w < C; o = ++w) for (y = a[o], A = E = p = m[o]; p <= y ? E <= y : E >= y; A = p <= y ? ++E : --E) u[o] === 0 ? s = A + l[o] : (s = i[u[o] / 2 + (A - p) - (g - o)] || 0) !== 0 && (s += l[o]), this.codeMap[A] = 65535 & s;
    }
    t.pos = h;
  }
  return r.encode = function(t, e) {
    var A, n, a, s, i, o, l, u, h, g, c, p, m, y, w, E, C, F, H, q, N, M, k, O, S, U, W, I, le, ue, Z, ee, X, Ae, oe, x, L, j, $, re, pe, de, ce, Se, qe, rt;
    switch (I = new gs(), s = Object.keys(t).sort(function(at, dt) {
      return at - dt;
    }), e) {
      case "macroman":
        for (m = 0, y = (function() {
          var at = [];
          for (p = 0; p < 256; ++p) at.push(0);
          return at;
        })(), E = { 0: 0 }, a = {}, le = 0, X = s.length; le < X; le++) E[ce = t[n = s[le]]] == null && (E[ce] = ++m), a[n] = { old: t[n], new: E[t[n]] }, y[n] = E[t[n]];
        return I.writeUInt16(1), I.writeUInt16(0), I.writeUInt32(12), I.writeUInt16(0), I.writeUInt16(262), I.writeUInt16(0), I.write(y), { charMap: a, subtable: I.data, maxGlyphID: m + 1 };
      case "unicode":
        for (U = [], h = [], C = 0, E = {}, A = {}, w = l = null, ue = 0, Ae = s.length; ue < Ae; ue++) E[H = t[n = s[ue]]] == null && (E[H] = ++C), A[n] = { old: H, new: E[H] }, i = E[H] - n, w != null && i === l || (w && h.push(w), U.push(n), l = i), w = n;
        for (w && h.push(w), h.push(65535), U.push(65535), O = 2 * (k = U.length), M = 2 * Math.pow(Math.log(k) / Math.LN2, 2), g = Math.log(M / 2) / Math.LN2, N = 2 * k - M, o = [], q = [], c = [], p = Z = 0, oe = U.length; Z < oe; p = ++Z) {
          if (S = U[p], u = h[p], S === 65535) {
            o.push(0), q.push(0);
            break;
          }
          if (S - (W = A[S].new) >= 32768) for (o.push(0), q.push(2 * (c.length + k - p)), n = ee = S; S <= u ? ee <= u : ee >= u; n = S <= u ? ++ee : --ee) c.push(A[n].new);
          else o.push(W - S), q.push(0);
        }
        for (I.writeUInt16(3), I.writeUInt16(1), I.writeUInt32(12), I.writeUInt16(4), I.writeUInt16(16 + 8 * k + 2 * c.length), I.writeUInt16(0), I.writeUInt16(O), I.writeUInt16(M), I.writeUInt16(g), I.writeUInt16(N), pe = 0, x = h.length; pe < x; pe++) n = h[pe], I.writeUInt16(n);
        for (I.writeUInt16(0), de = 0, L = U.length; de < L; de++) n = U[de], I.writeUInt16(n);
        for (Se = 0, j = o.length; Se < j; Se++) i = o[Se], I.writeUInt16(i);
        for (qe = 0, $ = q.length; qe < $; qe++) F = q[qe], I.writeUInt16(F);
        for (rt = 0, re = c.length; rt < re; rt++) m = c[rt], I.writeUInt16(m);
        return { charMap: A, subtable: I.data, maxGlyphID: C + 1 };
    }
  }, r;
})(), I5 = (function() {
  function r() {
    return r.__super__.constructor.apply(this, arguments);
  }
  return di(r, Za), r.prototype.tag = "cmap", r.prototype.parse = function(t) {
    var e, A, n;
    for (t.pos = this.offset, this.version = t.readUInt16(), n = t.readUInt16(), this.tables = [], this.unicode = null, A = 0; 0 <= n ? A < n : A > n; A = 0 <= n ? ++A : --A) e = new G1(t, this.offset), this.tables.push(e), e.isUnicode && this.unicode == null && (this.unicode = e);
    return !0;
  }, r.encode = function(t, e) {
    var A, n;
    return e == null && (e = "macroman"), A = G1.encode(t, e), (n = new gs()).writeUInt16(0), n.writeUInt16(1), A.table = n.data.concat(A.subtable), A;
  }, r;
})(), QD = (function() {
  function r() {
    return r.__super__.constructor.apply(this, arguments);
  }
  return di(r, Za), r.prototype.tag = "hhea", r.prototype.parse = function(t) {
    return t.pos = this.offset, this.version = t.readInt(), this.ascender = t.readShort(), this.decender = t.readShort(), this.lineGap = t.readShort(), this.advanceWidthMax = t.readShort(), this.minLeftSideBearing = t.readShort(), this.minRightSideBearing = t.readShort(), this.xMaxExtent = t.readShort(), this.caretSlopeRise = t.readShort(), this.caretSlopeRun = t.readShort(), this.caretOffset = t.readShort(), t.pos += 8, this.metricDataFormat = t.readShort(), this.numberOfMetrics = t.readUInt16();
  }, r;
})(), DD = (function() {
  function r() {
    return r.__super__.constructor.apply(this, arguments);
  }
  return di(r, Za), r.prototype.tag = "OS/2", r.prototype.parse = function(t) {
    if (t.pos = this.offset, this.version = t.readUInt16(), this.averageCharWidth = t.readShort(), this.weightClass = t.readUInt16(), this.widthClass = t.readUInt16(), this.type = t.readShort(), this.ySubscriptXSize = t.readShort(), this.ySubscriptYSize = t.readShort(), this.ySubscriptXOffset = t.readShort(), this.ySubscriptYOffset = t.readShort(), this.ySuperscriptXSize = t.readShort(), this.ySuperscriptYSize = t.readShort(), this.ySuperscriptXOffset = t.readShort(), this.ySuperscriptYOffset = t.readShort(), this.yStrikeoutSize = t.readShort(), this.yStrikeoutPosition = t.readShort(), this.familyClass = t.readShort(), this.panose = (function() {
      var e, A;
      for (A = [], e = 0; e < 10; ++e) A.push(t.readByte());
      return A;
    })(), this.charRange = (function() {
      var e, A;
      for (A = [], e = 0; e < 4; ++e) A.push(t.readInt());
      return A;
    })(), this.vendorID = t.readString(4), this.selection = t.readShort(), this.firstCharIndex = t.readShort(), this.lastCharIndex = t.readShort(), this.version > 0 && (this.ascent = t.readShort(), this.descent = t.readShort(), this.lineGap = t.readShort(), this.winAscent = t.readShort(), this.winDescent = t.readShort(), this.codePageRange = (function() {
      var e, A;
      for (A = [], e = 0; e < 2; e = ++e) A.push(t.readInt());
      return A;
    })(), this.version > 1)) return this.xHeight = t.readShort(), this.capHeight = t.readShort(), this.defaultChar = t.readShort(), this.breakChar = t.readShort(), this.maxContext = t.readShort();
  }, r;
})(), kD = (function() {
  function r() {
    return r.__super__.constructor.apply(this, arguments);
  }
  return di(r, Za), r.prototype.tag = "post", r.prototype.parse = function(t) {
    var e, A, n;
    switch (t.pos = this.offset, this.format = t.readInt(), this.italicAngle = t.readInt(), this.underlinePosition = t.readShort(), this.underlineThickness = t.readShort(), this.isFixedPitch = t.readInt(), this.minMemType42 = t.readInt(), this.maxMemType42 = t.readInt(), this.minMemType1 = t.readInt(), this.maxMemType1 = t.readInt(), this.format) {
      case 65536:
      case 196608:
        break;
      case 131072:
        var a;
        for (A = t.readUInt16(), this.glyphNameIndex = [], a = 0; 0 <= A ? a < A : a > A; a = 0 <= A ? ++a : --a) this.glyphNameIndex.push(t.readUInt16());
        for (this.names = [], n = []; t.pos < this.offset + this.length; ) e = t.readByte(), n.push(this.names.push(t.readString(e)));
        return n;
      case 151552:
        return A = t.readUInt16(), this.offsets = t.read(A);
      case 262144:
        return this.map = (function() {
          var s, i, o;
          for (o = [], a = s = 0, i = this.file.maxp.numGlyphs; 0 <= i ? s < i : s > i; a = 0 <= i ? ++s : --s) o.push(t.readUInt32());
          return o;
        }).call(this);
    }
  }, r;
})(), LD = function(r, t) {
  this.raw = r, this.length = r.length, this.platformID = t.platformID, this.encodingID = t.encodingID, this.languageID = t.languageID;
}, ID = (function() {
  function r() {
    return r.__super__.constructor.apply(this, arguments);
  }
  return di(r, Za), r.prototype.tag = "name", r.prototype.parse = function(t) {
    var e, A, n, a, s, i, o, l, u, h, g;
    for (t.pos = this.offset, t.readShort(), e = t.readShort(), i = t.readShort(), A = [], a = 0; 0 <= e ? a < e : a > e; a = 0 <= e ? ++a : --a) A.push({ platformID: t.readShort(), encodingID: t.readShort(), languageID: t.readShort(), nameID: t.readShort(), length: t.readShort(), offset: this.offset + i + t.readShort() });
    for (o = {}, a = u = 0, h = A.length; u < h; a = ++u) n = A[a], t.pos = n.offset, l = t.readString(n.length), s = new LD(l, n), o[g = n.nameID] == null && (o[g] = []), o[n.nameID].push(s);
    this.strings = o, this.copyright = o[0], this.fontFamily = o[1], this.fontSubfamily = o[2], this.uniqueSubfamily = o[3], this.fontName = o[4], this.version = o[5];
    try {
      this.postscriptName = o[6][0].raw.replace(/[\x00-\x19\x80-\xff]/g, "");
    } catch {
      this.postscriptName = o[4][0].raw.replace(/[\x00-\x19\x80-\xff]/g, "");
    }
    return this.trademark = o[7], this.manufacturer = o[8], this.designer = o[9], this.description = o[10], this.vendorUrl = o[11], this.designerUrl = o[12], this.license = o[13], this.licenseUrl = o[14], this.preferredFamily = o[15], this.preferredSubfamily = o[17], this.compatibleFull = o[18], this.sampleText = o[19];
  }, r;
})(), _D = (function() {
  function r() {
    return r.__super__.constructor.apply(this, arguments);
  }
  return di(r, Za), r.prototype.tag = "maxp", r.prototype.parse = function(t) {
    return t.pos = this.offset, this.version = t.readInt(), this.numGlyphs = t.readUInt16(), this.maxPoints = t.readUInt16(), this.maxContours = t.readUInt16(), this.maxCompositePoints = t.readUInt16(), this.maxComponentContours = t.readUInt16(), this.maxZones = t.readUInt16(), this.maxTwilightPoints = t.readUInt16(), this.maxStorage = t.readUInt16(), this.maxFunctionDefs = t.readUInt16(), this.maxInstructionDefs = t.readUInt16(), this.maxStackElements = t.readUInt16(), this.maxSizeOfInstructions = t.readUInt16(), this.maxComponentElements = t.readUInt16(), this.maxComponentDepth = t.readUInt16();
  }, r;
})(), ND = (function() {
  function r() {
    return r.__super__.constructor.apply(this, arguments);
  }
  return di(r, Za), r.prototype.tag = "hmtx", r.prototype.parse = function(t) {
    var e, A, n, a, s, i, o;
    for (t.pos = this.offset, this.metrics = [], e = 0, i = this.file.hhea.numberOfMetrics; 0 <= i ? e < i : e > i; e = 0 <= i ? ++e : --e) this.metrics.push({ advance: t.readUInt16(), lsb: t.readInt16() });
    for (n = this.file.maxp.numGlyphs - this.file.hhea.numberOfMetrics, this.leftSideBearings = (function() {
      var l, u;
      for (u = [], e = l = 0; 0 <= n ? l < n : l > n; e = 0 <= n ? ++l : --l) u.push(t.readInt16());
      return u;
    })(), this.widths = (function() {
      var l, u, h, g;
      for (g = [], l = 0, u = (h = this.metrics).length; l < u; l++) a = h[l], g.push(a.advance);
      return g;
    }).call(this), A = this.widths[this.widths.length - 1], o = [], e = s = 0; 0 <= n ? s < n : s > n; e = 0 <= n ? ++s : --s) o.push(this.widths.push(A));
    return o;
  }, r.prototype.forGlyph = function(t) {
    return t in this.metrics ? this.metrics[t] : { advance: this.metrics[this.metrics.length - 1].advance, lsb: this.leftSideBearings[t - this.metrics.length] };
  }, r;
})(), _5 = [].slice, MD = (function() {
  function r() {
    return r.__super__.constructor.apply(this, arguments);
  }
  return di(r, Za), r.prototype.tag = "glyf", r.prototype.parse = function() {
    return this.cache = {};
  }, r.prototype.glyphFor = function(t) {
    var e, A, n, a, s, i, o, l, u, h;
    return t in this.cache ? this.cache[t] : (a = this.file.loca, e = this.file.contents, A = a.indexOf(t), (n = a.lengthOf(t)) === 0 ? this.cache[t] = null : (e.pos = this.offset + A, s = (i = new gs(e.read(n))).readShort(), l = i.readShort(), h = i.readShort(), o = i.readShort(), u = i.readShort(), this.cache[t] = s === -1 ? new RD(i, l, h, o, u) : new OD(i, s, l, h, o, u), this.cache[t]));
  }, r.prototype.encode = function(t, e, A) {
    var n, a, s, i, o;
    for (s = [], a = [], i = 0, o = e.length; i < o; i++) n = t[e[i]], a.push(s.length), n && (s = s.concat(n.encode(A)));
    return a.push(s.length), { table: s, offsets: a };
  }, r;
})(), OD = (function() {
  function r(t, e, A, n, a, s) {
    this.raw = t, this.numberOfContours = e, this.xMin = A, this.yMin = n, this.xMax = a, this.yMax = s, this.compound = !1;
  }
  return r.prototype.encode = function() {
    return this.raw.data;
  }, r;
})(), RD = (function() {
  function r(t, e, A, n, a) {
    var s, i;
    for (this.raw = t, this.xMin = e, this.yMin = A, this.xMax = n, this.yMax = a, this.compound = !0, this.glyphIDs = [], this.glyphOffsets = [], s = this.raw; i = s.readShort(), this.glyphOffsets.push(s.pos), this.glyphIDs.push(s.readUInt16()), 32 & i; ) s.pos += 1 & i ? 4 : 2, 128 & i ? s.pos += 8 : 64 & i ? s.pos += 4 : 8 & i && (s.pos += 2);
  }
  return r.prototype.encode = function() {
    var t, e, A;
    for (e = new gs(_5.call(this.raw.data)), t = 0, A = this.glyphIDs.length; t < A; ++t) e.pos = this.glyphOffsets[t];
    return e.data;
  }, r;
})(), HD = (function() {
  function r() {
    return r.__super__.constructor.apply(this, arguments);
  }
  return di(r, Za), r.prototype.tag = "loca", r.prototype.parse = function(t) {
    var e, A;
    return t.pos = this.offset, e = this.file.head.indexToLocFormat, this.offsets = e === 0 ? (function() {
      var n, a;
      for (a = [], A = 0, n = this.length; A < n; A += 2) a.push(2 * t.readUInt16());
      return a;
    }).call(this) : (function() {
      var n, a;
      for (a = [], A = 0, n = this.length; A < n; A += 4) a.push(t.readUInt32());
      return a;
    }).call(this);
  }, r.prototype.indexOf = function(t) {
    return this.offsets[t];
  }, r.prototype.lengthOf = function(t) {
    return this.offsets[t + 1] - this.offsets[t];
  }, r.prototype.encode = function(t, e) {
    for (var A = new Uint32Array(this.offsets.length), n = 0, a = 0, s = 0; s < A.length; ++s) if (A[s] = n, a < e.length && e[a] == s) {
      ++a, A[s] = n;
      var i = this.offsets[s], o = this.offsets[s + 1] - i;
      o > 0 && (n += o);
    }
    for (var l = new Array(4 * A.length), u = 0; u < A.length; ++u) l[4 * u + 3] = 255 & A[u], l[4 * u + 2] = (65280 & A[u]) >> 8, l[4 * u + 1] = (16711680 & A[u]) >> 16, l[4 * u] = (4278190080 & A[u]) >> 24;
    return l;
  }, r;
})(), PD = (function() {
  function r(t) {
    this.font = t, this.subset = {}, this.unicodes = {}, this.next = 33;
  }
  return r.prototype.generateCmap = function() {
    var t, e, A, n, a;
    for (e in n = this.font.cmap.tables[0].codeMap, t = {}, a = this.subset) A = a[e], t[e] = n[A];
    return t;
  }, r.prototype.glyphsFor = function(t) {
    var e, A, n, a, s, i, o;
    for (n = {}, s = 0, i = t.length; s < i; s++) n[a = t[s]] = this.font.glyf.glyphFor(a);
    for (a in e = [], n) (A = n[a]) != null && A.compound && e.push.apply(e, A.glyphIDs);
    if (e.length > 0) for (a in o = this.glyphsFor(e)) A = o[a], n[a] = A;
    return n;
  }, r.prototype.encode = function(t, e) {
    var A, n, a, s, i, o, l, u, h, g, c, p, m, y, w;
    for (n in A = I5.encode(this.generateCmap(), "unicode"), s = this.glyphsFor(t), c = { 0: 0 }, w = A.charMap) c[(o = w[n]).old] = o.new;
    for (p in g = A.maxGlyphID, s) p in c || (c[p] = g++);
    return u = (function(E) {
      var C, F;
      for (C in F = {}, E) F[E[C]] = C;
      return F;
    })(c), h = Object.keys(u).sort(function(E, C) {
      return E - C;
    }), m = (function() {
      var E, C, F;
      for (F = [], E = 0, C = h.length; E < C; E++) i = h[E], F.push(u[i]);
      return F;
    })(), a = this.font.glyf.encode(s, m, c), l = this.font.loca.encode(a.offsets, m), y = { cmap: this.font.cmap.raw(), glyf: a.table, loca: l, hmtx: this.font.hmtx.raw(), hhea: this.font.hhea.raw(), maxp: this.font.maxp.raw(), post: this.font.post.raw(), name: this.font.name.raw(), head: this.font.head.encode(e) }, this.font.os2.exists && (y["OS/2"] = this.font.os2.raw()), this.font.directory.encode(y);
  }, r;
})();
eA.API.PDFObject = (function() {
  var r;
  function t() {
  }
  return r = function(e, A) {
    return (Array(A + 1).join("0") + e).slice(-A);
  }, t.convert = function(e) {
    var A, n, a, s;
    if (Array.isArray(e)) return "[" + (function() {
      var i, o, l;
      for (l = [], i = 0, o = e.length; i < o; i++) A = e[i], l.push(t.convert(A));
      return l;
    })().join(" ") + "]";
    if (typeof e == "string") return "/" + e;
    if (e != null && e.isString) return "(" + e + ")";
    if (e instanceof Date) return "(D:" + r(e.getUTCFullYear(), 4) + r(e.getUTCMonth(), 2) + r(e.getUTCDate(), 2) + r(e.getUTCHours(), 2) + r(e.getUTCMinutes(), 2) + r(e.getUTCSeconds(), 2) + "Z)";
    if ({}.toString.call(e) === "[object Object]") {
      for (n in a = ["<<"], e) s = e[n], a.push("/" + n + " " + t.convert(s));
      return a.push(">>"), a.join(`
`);
    }
    return "" + e;
  }, t;
})();
/*!
 * html2canvas 1.4.1 <https://html2canvas.hertzen.com>
 * Copyright (c) 2022 Niklas von Hertzen <https://hertzen.com>
 * Released under MIT License
 */
/*! *****************************************************************************
Copyright (c) Microsoft Corporation.

Permission to use, copy, modify, and/or distribute this software for any
purpose with or without fee is hereby granted.

THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH
REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,
INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
PERFORMANCE OF THIS SOFTWARE.
***************************************************************************** */
var cp = function(r, t) {
  return cp = Object.setPrototypeOf || { __proto__: [] } instanceof Array && function(e, A) {
    e.__proto__ = A;
  } || function(e, A) {
    for (var n in A) Object.prototype.hasOwnProperty.call(A, n) && (e[n] = A[n]);
  }, cp(r, t);
};
function ei(r, t) {
  if (typeof t != "function" && t !== null)
    throw new TypeError("Class extends value " + String(t) + " is not a constructor or null");
  cp(r, t);
  function e() {
    this.constructor = r;
  }
  r.prototype = t === null ? Object.create(t) : (e.prototype = t.prototype, new e());
}
var fp = function() {
  return fp = Object.assign || function(t) {
    for (var e, A = 1, n = arguments.length; A < n; A++) {
      e = arguments[A];
      for (var a in e) Object.prototype.hasOwnProperty.call(e, a) && (t[a] = e[a]);
    }
    return t;
  }, fp.apply(this, arguments);
};
function Yn(r, t, e, A) {
  function n(a) {
    return a instanceof e ? a : new e(function(s) {
      s(a);
    });
  }
  return new (e || (e = Promise))(function(a, s) {
    function i(u) {
      try {
        l(A.next(u));
      } catch (h) {
        s(h);
      }
    }
    function o(u) {
      try {
        l(A.throw(u));
      } catch (h) {
        s(h);
      }
    }
    function l(u) {
      u.done ? a(u.value) : n(u.value).then(i, o);
    }
    l((A = A.apply(r, [])).next());
  });
}
function On(r, t) {
  var e = { label: 0, sent: function() {
    if (a[0] & 1) throw a[1];
    return a[1];
  }, trys: [], ops: [] }, A, n, a, s;
  return s = { next: i(0), throw: i(1), return: i(2) }, typeof Symbol == "function" && (s[Symbol.iterator] = function() {
    return this;
  }), s;
  function i(l) {
    return function(u) {
      return o([l, u]);
    };
  }
  function o(l) {
    if (A) throw new TypeError("Generator is already executing.");
    for (; e; ) try {
      if (A = 1, n && (a = l[0] & 2 ? n.return : l[0] ? n.throw || ((a = n.return) && a.call(n), 0) : n.next) && !(a = a.call(n, l[1])).done) return a;
      switch (n = 0, a && (l = [l[0] & 2, a.value]), l[0]) {
        case 0:
        case 1:
          a = l;
          break;
        case 4:
          return e.label++, { value: l[1], done: !1 };
        case 5:
          e.label++, n = l[1], l = [0];
          continue;
        case 7:
          l = e.ops.pop(), e.trys.pop();
          continue;
        default:
          if (a = e.trys, !(a = a.length > 0 && a[a.length - 1]) && (l[0] === 6 || l[0] === 2)) {
            e = 0;
            continue;
          }
          if (l[0] === 3 && (!a || l[1] > a[0] && l[1] < a[3])) {
            e.label = l[1];
            break;
          }
          if (l[0] === 6 && e.label < a[1]) {
            e.label = a[1], a = l;
            break;
          }
          if (a && e.label < a[2]) {
            e.label = a[2], e.ops.push(l);
            break;
          }
          a[2] && e.ops.pop(), e.trys.pop();
          continue;
      }
      l = t.call(r, e);
    } catch (u) {
      l = [6, u], n = 0;
    } finally {
      A = a = 0;
    }
    if (l[0] & 5) throw l[1];
    return { value: l[0] ? l[1] : void 0, done: !0 };
  }
}
function mu(r, t, e) {
  if (arguments.length === 2) for (var A = 0, n = t.length, a; A < n; A++)
    (a || !(A in t)) && (a || (a = Array.prototype.slice.call(t, 0, A)), a[A] = t[A]);
  return r.concat(a || t);
}
var Ni = (
  /** @class */
  (function() {
    function r(t, e, A, n) {
      this.left = t, this.top = e, this.width = A, this.height = n;
    }
    return r.prototype.add = function(t, e, A, n) {
      return new r(this.left + t, this.top + e, this.width + A, this.height + n);
    }, r.fromClientRect = function(t, e) {
      return new r(e.left + t.windowBounds.left, e.top + t.windowBounds.top, e.width, e.height);
    }, r.fromDOMRectList = function(t, e) {
      var A = Array.from(e).find(function(n) {
        return n.width !== 0;
      });
      return A ? new r(A.left + t.windowBounds.left, A.top + t.windowBounds.top, A.width, A.height) : r.EMPTY;
    }, r.EMPTY = new r(0, 0, 0, 0), r;
  })()
), Uc = function(r, t) {
  return Ni.fromClientRect(r, t.getBoundingClientRect());
}, KD = function(r) {
  var t = r.body, e = r.documentElement;
  if (!t || !e)
    throw new Error("Unable to get document size");
  var A = Math.max(Math.max(t.scrollWidth, e.scrollWidth), Math.max(t.offsetWidth, e.offsetWidth), Math.max(t.clientWidth, e.clientWidth)), n = Math.max(Math.max(t.scrollHeight, e.scrollHeight), Math.max(t.offsetHeight, e.offsetHeight), Math.max(t.clientHeight, e.clientHeight));
  return new Ni(0, 0, A, n);
}, Tc = function(r) {
  for (var t = [], e = 0, A = r.length; e < A; ) {
    var n = r.charCodeAt(e++);
    if (n >= 55296 && n <= 56319 && e < A) {
      var a = r.charCodeAt(e++);
      (a & 64512) === 56320 ? t.push(((n & 1023) << 10) + (a & 1023) + 65536) : (t.push(n), e--);
    } else
      t.push(n);
  }
  return t;
}, Gr = function() {
  for (var r = [], t = 0; t < arguments.length; t++)
    r[t] = arguments[t];
  if (String.fromCodePoint)
    return String.fromCodePoint.apply(String, r);
  var e = r.length;
  if (!e)
    return "";
  for (var A = [], n = -1, a = ""; ++n < e; ) {
    var s = r[n];
    s <= 65535 ? A.push(s) : (s -= 65536, A.push((s >> 10) + 55296, s % 1024 + 56320)), (n + 1 === e || A.length > 16384) && (a += String.fromCharCode.apply(String, A), A.length = 0);
  }
  return a;
}, Y1 = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/", VD = typeof Uint8Array > "u" ? [] : new Uint8Array(256);
for (var wu = 0; wu < Y1.length; wu++)
  VD[Y1.charCodeAt(wu)] = wu;
var $1 = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/", ll = typeof Uint8Array > "u" ? [] : new Uint8Array(256);
for (var Bu = 0; Bu < $1.length; Bu++)
  ll[$1.charCodeAt(Bu)] = Bu;
var qD = function(r) {
  var t = r.length * 0.75, e = r.length, A, n = 0, a, s, i, o;
  r[r.length - 1] === "=" && (t--, r[r.length - 2] === "=" && t--);
  var l = typeof ArrayBuffer < "u" && typeof Uint8Array < "u" && typeof Uint8Array.prototype.slice < "u" ? new ArrayBuffer(t) : new Array(t), u = Array.isArray(l) ? l : new Uint8Array(l);
  for (A = 0; A < e; A += 4)
    a = ll[r.charCodeAt(A)], s = ll[r.charCodeAt(A + 1)], i = ll[r.charCodeAt(A + 2)], o = ll[r.charCodeAt(A + 3)], u[n++] = a << 2 | s >> 4, u[n++] = (s & 15) << 4 | i >> 2, u[n++] = (i & 3) << 6 | o & 63;
  return l;
}, jD = function(r) {
  for (var t = r.length, e = [], A = 0; A < t; A += 2)
    e.push(r[A + 1] << 8 | r[A]);
  return e;
}, WD = function(r) {
  for (var t = r.length, e = [], A = 0; A < t; A += 4)
    e.push(r[A + 3] << 24 | r[A + 2] << 16 | r[A + 1] << 8 | r[A]);
  return e;
}, Rs = 5, tv = 11, Kf = 2, GD = tv - Rs, N5 = 65536 >> Rs, YD = 1 << Rs, Vf = YD - 1, $D = 1024 >> Rs, zD = N5 + $D, XD = zD, JD = 32, ZD = XD + JD, ek = 65536 >> tv, tk = 1 << GD, Ak = tk - 1, z1 = function(r, t, e) {
  return r.slice ? r.slice(t, e) : new Uint16Array(Array.prototype.slice.call(r, t, e));
}, rk = function(r, t, e) {
  return r.slice ? r.slice(t, e) : new Uint32Array(Array.prototype.slice.call(r, t, e));
}, nk = function(r, t) {
  var e = qD(r), A = Array.isArray(e) ? WD(e) : new Uint32Array(e), n = Array.isArray(e) ? jD(e) : new Uint16Array(e), a = 24, s = z1(n, a / 2, A[4] / 2), i = A[5] === 2 ? z1(n, (a + A[4]) / 2) : rk(A, Math.ceil((a + A[4]) / 4));
  return new ak(A[0], A[1], A[2], A[3], s, i);
}, ak = (
  /** @class */
  (function() {
    function r(t, e, A, n, a, s) {
      this.initialValue = t, this.errorValue = e, this.highStart = A, this.highValueIndex = n, this.index = a, this.data = s;
    }
    return r.prototype.get = function(t) {
      var e;
      if (t >= 0) {
        if (t < 55296 || t > 56319 && t <= 65535)
          return e = this.index[t >> Rs], e = (e << Kf) + (t & Vf), this.data[e];
        if (t <= 65535)
          return e = this.index[N5 + (t - 55296 >> Rs)], e = (e << Kf) + (t & Vf), this.data[e];
        if (t < this.highStart)
          return e = ZD - ek + (t >> tv), e = this.index[e], e += t >> Rs & Ak, e = this.index[e], e = (e << Kf) + (t & Vf), this.data[e];
        if (t <= 1114111)
          return this.data[this.highValueIndex];
      }
      return this.errorValue;
    }, r;
  })()
), X1 = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/", ik = typeof Uint8Array > "u" ? [] : new Uint8Array(256);
for (var yu = 0; yu < X1.length; yu++)
  ik[X1.charCodeAt(yu)] = yu;
var sk = "KwAAAAAAAAAACA4AUD0AADAgAAACAAAAAAAIABAAGABAAEgAUABYAGAAaABgAGgAYgBqAF8AZwBgAGgAcQB5AHUAfQCFAI0AlQCdAKIAqgCyALoAYABoAGAAaABgAGgAwgDKAGAAaADGAM4A0wDbAOEA6QDxAPkAAQEJAQ8BFwF1AH0AHAEkASwBNAE6AUIBQQFJAVEBWQFhAWgBcAF4ATAAgAGGAY4BlQGXAZ8BpwGvAbUBvQHFAc0B0wHbAeMB6wHxAfkBAQIJAvEBEQIZAiECKQIxAjgCQAJGAk4CVgJeAmQCbAJ0AnwCgQKJApECmQKgAqgCsAK4ArwCxAIwAMwC0wLbAjAA4wLrAvMC+AIAAwcDDwMwABcDHQMlAy0DNQN1AD0DQQNJA0kDSQNRA1EDVwNZA1kDdQB1AGEDdQBpA20DdQN1AHsDdQCBA4kDkQN1AHUAmQOhA3UAdQB1AHUAdQB1AHUAdQB1AHUAdQB1AHUAdQB1AHUAdQB1AKYDrgN1AHUAtgO+A8YDzgPWAxcD3gPjA+sD8wN1AHUA+wMDBAkEdQANBBUEHQQlBCoEFwMyBDgEYABABBcDSARQBFgEYARoBDAAcAQzAXgEgASIBJAEdQCXBHUAnwSnBK4EtgS6BMIEyAR1AHUAdQB1AHUAdQCVANAEYABgAGAAYABgAGAAYABgANgEYADcBOQEYADsBPQE/AQEBQwFFAUcBSQFLAU0BWQEPAVEBUsFUwVbBWAAYgVgAGoFcgV6BYIFigWRBWAAmQWfBaYFYABgAGAAYABgAKoFYACxBbAFuQW6BcEFwQXHBcEFwQXPBdMF2wXjBeoF8gX6BQIGCgYSBhoGIgYqBjIGOgZgAD4GRgZMBmAAUwZaBmAAYABgAGAAYABgAGAAYABgAGAAYABgAGIGYABpBnAGYABgAGAAYABgAGAAYABgAGAAYAB4Bn8GhQZgAGAAYAB1AHcDFQSLBmAAYABgAJMGdQA9A3UAmwajBqsGqwaVALMGuwbDBjAAywbSBtIG1QbSBtIG0gbSBtIG0gbdBuMG6wbzBvsGAwcLBxMHAwcbByMHJwcsBywHMQcsB9IGOAdAB0gHTgfSBkgHVgfSBtIG0gbSBtIG0gbSBtIG0gbSBiwHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAdgAGAALAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAdbB2MHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsB2kH0gZwB64EdQB1AHUAdQB1AHUAdQB1AHUHfQdgAIUHjQd1AHUAlQedB2AAYAClB6sHYACzB7YHvgfGB3UAzgfWBzMB3gfmB1EB7gf1B/0HlQENAQUIDQh1ABUIHQglCBcDLQg1CD0IRQhNCEEDUwh1AHUAdQBbCGMIZAhlCGYIZwhoCGkIYwhkCGUIZghnCGgIaQhjCGQIZQhmCGcIaAhpCGMIZAhlCGYIZwhoCGkIYwhkCGUIZghnCGgIaQhjCGQIZQhmCGcIaAhpCGMIZAhlCGYIZwhoCGkIYwhkCGUIZghnCGgIaQhjCGQIZQhmCGcIaAhpCGMIZAhlCGYIZwhoCGkIYwhkCGUIZghnCGgIaQhjCGQIZQhmCGcIaAhpCGMIZAhlCGYIZwhoCGkIYwhkCGUIZghnCGgIaQhjCGQIZQhmCGcIaAhpCGMIZAhlCGYIZwhoCGkIYwhkCGUIZghnCGgIaQhjCGQIZQhmCGcIaAhpCGMIZAhlCGYIZwhoCGkIYwhkCGUIZghnCGgIaQhjCGQIZQhmCGcIaAhpCGMIZAhlCGYIZwhoCGkIYwhkCGUIZghnCGgIaQhjCGQIZQhmCGcIaAhpCGMIZAhlCGYIZwhoCGkIYwhkCGUIZghnCGgIaQhjCGQIZQhmCGcIaAhpCGMIZAhlCGYIZwhoCGkIYwhkCGUIZghnCGgIaQhjCGQIZQhmCGcIaAhpCGMIZAhlCGYIZwhoCGkIYwhkCGUIZghnCGgIaQhjCGQIZQhmCGcIaAhpCGMIZAhlCGYIZwhoCGkIYwhkCGUIZghnCGgIaQhjCGQIZQhmCGcIaAhpCGMIZAhlCGYIZwhoCGkIYwhkCGUIZghnCGgIaQhjCGQIZQhmCGcIaAhpCGMIZAhlCGYIZwhoCGkIYwhkCGUIZghnCGgIaQhjCGQIZQhmCGcIaAhpCGMIZAhlCGYIZwhoCGkIYwhkCGUIZghnCGgIaQhjCGQIZQhmCGcIaAhpCGMIZAhlCGYIZwhoCGkIYwhkCGUIZghnCGgIaQhjCGQIZQhmCGcIaAhpCGMIZAhlCGYIZwhoCGkIYwhkCGUIZghnCGgIcAh3CHoIMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwAIIIggiCCIIIggiCCIIIggiCCIIIggiCCIIIggiCCIIIggiCCIIIggiCCIIIggiCCIIIggiCCIIIggiCCIIIgggwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAALAcsBywHLAcsBywHLAcsBywHLAcsB4oILAcsB44I0gaWCJ4Ipgh1AHUAqgiyCHUAdQB1AHUAdQB1AHUAdQB1AHUAtwh8AXUAvwh1AMUIyQjRCNkI4AjoCHUAdQB1AO4I9gj+CAYJDgkTCS0HGwkjCYIIggiCCIIIggiCCIIIggiCCIIIggiCCIIIggiCCIIIggiCCIIIggiCCIIIggiCCIIIggiCCIIIggiCCIIIggiAAIAAAAFAAYABgAGIAXwBgAHEAdQBFAJUAogCyAKAAYABgAEIA4ABGANMA4QDxAMEBDwE1AFwBLAE6AQEBUQF4QkhCmEKoQrhCgAHIQsAB0MLAAcABwAHAAeDC6ABoAHDCwMMAAcABwAHAAdDDGMMAAcAB6MM4wwjDWMNow3jDaABoAGgAaABoAGgAaABoAGgAaABoAGgAaABoAGgAaABoAGgAaABoAEjDqABWw6bDqABpg6gAaABoAHcDvwOPA+gAaABfA/8DvwO/A78DvwO/A78DvwO/A78DvwO/A78DvwO/A78DvwO/A78DvwO/A78DvwO/A78DvwO/A78DpcPAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcAB9cPKwkyCToJMAB1AHUAdQBCCUoJTQl1AFUJXAljCWcJawkwADAAMAAwAHMJdQB2CX4JdQCECYoJjgmWCXUAngkwAGAAYABxAHUApgn3A64JtAl1ALkJdQDACTAAMAAwADAAdQB1AHUAdQB1AHUAdQB1AHUAowYNBMUIMAAwADAAMADICcsJ0wnZCRUE4QkwAOkJ8An4CTAAMAB1AAAKvwh1AAgKDwoXCh8KdQAwACcKLgp1ADYKqAmICT4KRgowADAAdQB1AE4KMAB1AFYKdQBeCnUAZQowADAAMAAwADAAMAAwADAAMAAVBHUAbQowADAAdQC5CXUKMAAwAHwBxAijBogEMgF9CoQKiASMCpQKmgqIBKIKqgquCogEDQG2Cr4KxgrLCjAAMADTCtsKCgHjCusK8Qr5CgELMAAwADAAMAB1AIsECQsRC3UANAEZCzAAMAAwADAAMAB1ACELKQswAHUANAExCzkLdQBBC0kLMABRC1kLMAAwADAAMAAwADAAdQBhCzAAMAAwAGAAYABpC3ELdwt/CzAAMACHC4sLkwubC58Lpwt1AK4Ltgt1APsDMAAwADAAMAAwADAAMAAwAL4LwwvLC9IL1wvdCzAAMADlC+kL8Qv5C/8LSQswADAAMAAwADAAMAAwADAAMAAHDDAAMAAwADAAMAAODBYMHgx1AHUAdQB1AHUAdQB1AHUAdQB1AHUAdQB1AHUAdQB1AHUAdQB1AHUAdQB1AHUAdQB1AHUAdQB1ACYMMAAwADAAdQB1AHUALgx1AHUAdQB1AHUAdQA2DDAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwAHUAdQB1AHUAdQB1AHUAdQB1AHUAdQB1AHUAdQB1AHUAdQB1AD4MdQBGDHUAdQB1AHUAdQB1AEkMdQB1AHUAdQB1AFAMMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwAHUAdQB1AHUAdQB1AHUAdQB1AHUAdQB1AHUAdQBYDHUAdQB1AF8MMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAB1AHUAdQB1AHUAdQB1AHUAdQB1AHUAdQB1AHUAdQB1AHUA+wMVBGcMMAAwAHwBbwx1AHcMfwyHDI8MMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAYABgAJcMMAAwADAAdQB1AJ8MlQClDDAAMACtDCwHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsB7UMLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHdQB1AHUAdQB1AHUAdQB1AHUAdQB1AHUAdQB1AA0EMAC9DDAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAsBywHLAcsBywHLAcsBywHLQcwAMEMyAwsBywHLAcsBywHLAcsBywHLAcsBywHzAwwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwAHUAdQB1ANQM2QzhDDAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMABgAGAAYABgAGAAYABgAOkMYADxDGAA+AwADQYNYABhCWAAYAAODTAAMAAwADAAFg1gAGAAHg37AzAAMAAwADAAYABgACYNYAAsDTQNPA1gAEMNPg1LDWAAYABgAGAAYABgAGAAYABgAGAAUg1aDYsGVglhDV0NcQBnDW0NdQ15DWAAYABgAGAAYABgAGAAYABgAGAAYABgAGAAYABgAGAAlQCBDZUAiA2PDZcNMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAnw2nDTAAMAAwADAAMAAwAHUArw23DTAAMAAwADAAMAAwADAAMAAwADAAMAB1AL8NMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAB1AHUAdQB1AHUAdQDHDTAAYABgAM8NMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAA1w11ANwNMAAwAD0B5A0wADAAMAAwADAAMADsDfQN/A0EDgwOFA4wABsOMAAwADAAMAAwADAAMAAwANIG0gbSBtIG0gbSBtIG0gYjDigOwQUuDsEFMw7SBjoO0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIGQg5KDlIOVg7SBtIGXg5lDm0OdQ7SBtIGfQ6EDooOjQ6UDtIGmg6hDtIG0gaoDqwO0ga0DrwO0gZgAGAAYADEDmAAYAAkBtIGzA5gANIOYADaDokO0gbSBt8O5w7SBu8O0gb1DvwO0gZgAGAAxA7SBtIG0gbSBtIGYABgAGAAYAAED2AAsAUMD9IG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIGFA8sBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAccD9IGLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHJA8sBywHLAcsBywHLAccDywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywPLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAc0D9IG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIGLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAccD9IG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIGFA8sBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHPA/SBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gYUD0QPlQCVAJUAMAAwADAAMACVAJUAlQCVAJUAlQCVAEwPMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAA//8EAAQABAAEAAQABAAEAAQABAANAAMAAQABAAIABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQACgATABcAHgAbABoAHgAXABYAEgAeABsAGAAPABgAHABLAEsASwBLAEsASwBLAEsASwBLABgAGAAeAB4AHgATAB4AUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQABYAGwASAB4AHgAeAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAWAA0AEQAeAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArAAQABAAEAAQABAAFAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAJABYAGgAbABsAGwAeAB0AHQAeAE8AFwAeAA0AHgAeABoAGwBPAE8ADgBQAB0AHQAdAE8ATwAXAE8ATwBPABYAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAB0AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAdAFAAUABQAFAAUABQAFAAUAAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAFAAHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAeAB4AHgAeAFAATwBAAE8ATwBPAEAATwBQAFAATwBQAB4AHgAeAB4AHgAeAB0AHQAdAB0AHgAdAB4ADgBQAFAAUABQAFAAHgAeAB4AHgAeAB4AHgBQAB4AUAAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4ABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAJAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAkACQAJAAkACQAJAAkABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAeAB4AHgAeAFAAHgAeAB4AKwArAFAAUABQAFAAGABQACsAKwArACsAHgAeAFAAHgBQAFAAUAArAFAAKwAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AKwAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4ABAAEAAQABAAEAAQABAAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsAUAAeAB4AHgAeAB4AHgBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAYAA0AKwArAB4AHgAbACsABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQADQAEAB4ABAAEAB4ABAAEABMABAArACsAKwArACsAKwArACsAVgBWAFYAVgBWAFYAVgBWAFYAVgBWAFYAVgBWAFYAVgBWAFYAVgBWAFYAVgBWAFYAVgBWAFYAKwArACsAKwBWAFYAVgBWAB4AHgArACsAKwArACsAKwArACsAKwArACsAHgAeAB4AHgAeAB4AHgAeAB4AGgAaABoAGAAYAB4AHgAEAAQABAAEAAQABAAEAAQABAAEAAQAEwAEACsAEwATAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABABLAEsASwBLAEsASwBLAEsASwBLABoAGQAZAB4AUABQAAQAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQABMAUAAEAAQABAAEAAQABAAEAB4AHgAEAAQABAAEAAQABABQAFAABAAEAB4ABAAEAAQABABQAFAASwBLAEsASwBLAEsASwBLAEsASwBQAFAAUAAeAB4AUAAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AKwAeAFAABABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAABAAEAAQABAAEAAQABAAEAAQABAAEAFAAKwArACsAKwArACsAKwArACsAKwArACsAKwArAEsASwBLAEsASwBLAEsASwBLAEsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAABAAEAAQABAAEAAQABAAEAAQAUABQAB4AHgAYABMAUAArACsABAAbABsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAEAAQABAAEAFAABAAEAAQABAAEAFAABAAEAAQAUAAEAAQABAAEAAQAKwArAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAEAAQABAArACsAHgArAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArAFAAUABQAFAAUABQAFAAUABQAFAAKwArACsAKwArACsAKwArACsAKwArAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAB4ABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAAQABAAEAFAABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQAUAAEAAQABAAEAAQABAAEAFAAUABQAFAAUABQAFAAUABQAFAABAAEAA0ADQBLAEsASwBLAEsASwBLAEsASwBLAB4AUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAEAAQABAArAFAAUABQAFAAUABQAFAAUAArACsAUABQACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwBQAFAAUABQAFAAUABQACsAUAArACsAKwBQAFAAUABQACsAKwAEAFAABAAEAAQABAAEAAQABAArACsABAAEACsAKwAEAAQABABQACsAKwArACsAKwArACsAKwAEACsAKwArACsAUABQACsAUABQAFAABAAEACsAKwBLAEsASwBLAEsASwBLAEsASwBLAFAAUAAaABoAUABQAFAAUABQAEwAHgAbAFAAHgAEACsAKwAEAAQABAArAFAAUABQAFAAUABQACsAKwArACsAUABQACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwBQAFAAUABQAFAAUABQACsAUABQACsAUABQACsAUABQACsAKwAEACsABAAEAAQABAAEACsAKwArACsABAAEACsAKwAEAAQABAArACsAKwAEACsAKwArACsAKwArACsAUABQAFAAUAArAFAAKwArACsAKwArACsAKwBLAEsASwBLAEsASwBLAEsASwBLAAQABABQAFAAUAAEAB4AKwArACsAKwArACsAKwArACsAKwAEAAQABAArAFAAUABQAFAAUABQAFAAUABQACsAUABQAFAAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwBQAFAAUABQAFAAUABQACsAUABQACsAUABQAFAAUABQACsAKwAEAFAABAAEAAQABAAEAAQABAAEACsABAAEAAQAKwAEAAQABAArACsAUAArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwBQAFAABAAEACsAKwBLAEsASwBLAEsASwBLAEsASwBLAB4AGwArACsAKwArACsAKwArAFAABAAEAAQABAAEAAQAKwAEAAQABAArAFAAUABQAFAAUABQAFAAUAArACsAUABQACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAAQABAAEAAQABAArACsABAAEACsAKwAEAAQABAArACsAKwArACsAKwArAAQABAAEACsAKwArACsAUABQACsAUABQAFAABAAEACsAKwBLAEsASwBLAEsASwBLAEsASwBLAB4AUABQAFAAUABQAFAAUAArACsAKwArACsAKwArACsAKwArAAQAUAArAFAAUABQAFAAUABQACsAKwArAFAAUABQACsAUABQAFAAUAArACsAKwBQAFAAKwBQACsAUABQACsAKwArAFAAUAArACsAKwBQAFAAUAArACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsAKwArAAQABAAEAAQABAArACsAKwAEAAQABAArAAQABAAEAAQAKwArAFAAKwArACsAKwArACsABAArACsAKwArACsAKwArACsAKwArAEsASwBLAEsASwBLAEsASwBLAEsAUABQAFAAHgAeAB4AHgAeAB4AGwAeACsAKwArACsAKwAEAAQABAAEAAQAUABQAFAAUABQAFAAUABQACsAUABQAFAAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwArACsAUAAEAAQABAAEAAQABAAEACsABAAEAAQAKwAEAAQABAAEACsAKwArACsAKwArACsABAAEACsAUABQAFAAKwArACsAKwArAFAAUAAEAAQAKwArAEsASwBLAEsASwBLAEsASwBLAEsAKwArACsAKwArACsAKwAOAFAAUABQAFAAUABQAFAAHgBQAAQABAAEAA4AUABQAFAAUABQAFAAUABQACsAUABQAFAAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArAFAAUABQAFAAUABQAFAAUABQAFAAKwBQAFAAUABQAFAAKwArAAQAUAAEAAQABAAEAAQABAAEACsABAAEAAQAKwAEAAQABAAEACsAKwArACsAKwArACsABAAEACsAKwArACsAKwArACsAUAArAFAAUAAEAAQAKwArAEsASwBLAEsASwBLAEsASwBLAEsAKwBQAFAAKwArACsAKwArACsAKwArACsAKwArACsAKwAEAAQABAAEAFAAUABQAFAAUABQAFAAUABQACsAUABQAFAAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAABAAEAFAABAAEAAQABAAEAAQABAArAAQABAAEACsABAAEAAQABABQAB4AKwArACsAKwBQAFAAUAAEAFAAUABQAFAAUABQAFAAUABQAFAABAAEACsAKwBLAEsASwBLAEsASwBLAEsASwBLAFAAUABQAFAAUABQAFAAUABQABoAUABQAFAAUABQAFAAKwAEAAQABAArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArAFAAUABQAFAAUABQAFAAUABQACsAUAArACsAUABQAFAAUABQAFAAUAArACsAKwAEACsAKwArACsABAAEAAQABAAEAAQAKwAEACsABAAEAAQABAAEAAQABAAEACsAKwArACsAKwArAEsASwBLAEsASwBLAEsASwBLAEsAKwArAAQABAAeACsAKwArACsAKwArACsAKwArACsAKwArAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXAAqAFwAXAAqACoAKgAqACoAKgAqACsAKwArACsAGwBcAFwAXABcAFwAXABcACoAKgAqACoAKgAqACoAKgAeAEsASwBLAEsASwBLAEsASwBLAEsADQANACsAKwArACsAKwBcAFwAKwBcACsAXABcAFwAXABcACsAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcACsAXAArAFwAXABcAFwAXABcAFwAXABcAFwAKgBcAFwAKgAqACoAKgAqACoAKgAqACoAXAArACsAXABcAFwAXABcACsAXAArACoAKgAqACoAKgAqACsAKwBLAEsASwBLAEsASwBLAEsASwBLACsAKwBcAFwAXABcAFAADgAOAA4ADgAeAA4ADgAJAA4ADgANAAkAEwATABMAEwATAAkAHgATAB4AHgAeAAQABAAeAB4AHgAeAB4AHgBLAEsASwBLAEsASwBLAEsASwBLAFAAUABQAFAAUABQAFAAUABQAFAADQAEAB4ABAAeAAQAFgARABYAEQAEAAQAUABQAFAAUABQAFAAUABQACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwArACsAKwAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQADQAEAAQABAAEAAQADQAEAAQAUABQAFAAUABQAAQABAAEAAQABAAEAAQABAAEAAQABAArAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAArAA0ADQAeAB4AHgAeAB4AHgAEAB4AHgAeAB4AHgAeACsAHgAeAA4ADgANAA4AHgAeAB4AHgAeAAkACQArACsAKwArACsAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcACoAKgAqACoAKgAqACoAKgAqACoAKgAqACoAKgAqACoAKgAqACoAKgBcAEsASwBLAEsASwBLAEsASwBLAEsADQANAB4AHgAeAB4AXABcAFwAXABcAFwAKgAqACoAKgBcAFwAXABcACoAKgAqAFwAKgAqACoAXABcACoAKgAqACoAKgAqACoAXABcAFwAKgAqACoAKgBcAFwAXABcAFwAXABcAFwAXABcAFwAXABcACoAKgAqACoAKgAqACoAKgAqACoAKgAqAFwAKgBLAEsASwBLAEsASwBLAEsASwBLACoAKgAqACoAKgAqAFAAUABQAFAAUABQACsAUAArACsAKwArACsAUAArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAHgBQAFAAUABQAFgAWABYAFgAWABYAFgAWABYAFgAWABYAFgAWABYAFgAWABYAFgAWABYAFgAWABYAFgAWABYAFgAWABYAFgAWABZAFkAWQBZAFkAWQBZAFkAWQBZAFkAWQBZAFkAWQBZAFkAWQBZAFkAWQBZAFkAWQBZAFkAWQBZAFkAWQBZAFkAWgBaAFoAWgBaAFoAWgBaAFoAWgBaAFoAWgBaAFoAWgBaAFoAWgBaAFoAWgBaAFoAWgBaAFoAWgBaAFoAWgBaAFAAUABQAFAAUABQAFAAUABQACsAUABQAFAAUAArACsAUABQAFAAUABQAFAAUAArAFAAKwBQAFAAUABQACsAKwBQAFAAUABQAFAAUABQAFAAUAArAFAAUABQAFAAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArAFAAUABQAFAAKwArAFAAUABQAFAAUABQAFAAKwBQACsAUABQAFAAUAArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwBQAFAAUABQACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsABAAEAAQAHgANAB4AHgAeAB4AHgAeAB4AUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAHgAeAB4AHgAeAB4AHgAeAB4AHgArACsAKwArACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAKwBQAFAAUABQAFAAUAArACsADQBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAHgAeAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAANAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAWABEAKwArACsAUABQAFAAUABQAFAAUABQAFAAUABQAA0ADQANAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsAKwArACsAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwBQAFAAUABQAAQABAAEACsAKwArACsAKwArACsAKwArACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAEAAQABAANAA0AKwArACsAKwArACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAABAAEACsAKwArACsAKwArACsAKwArACsAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwBQAFAAUAArAAQABAArACsAKwArACsAKwArACsAKwArACsAKwBcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAKgAqACoAKgAqACoAKgAqACoAKgAqACoAKgAqACoAKgAqACoAKgAqAA0ADQAVAFwADQAeAA0AGwBcACoAKwArAEsASwBLAEsASwBLAEsASwBLAEsAKwArACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUAArACsAKwArACsAKwAeAB4AEwATAA0ADQAOAB4AEwATAB4ABAAEAAQACQArAEsASwBLAEsASwBLAEsASwBLAEsAKwArACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsAKwArACsAKwArAFAAUABQAFAAUAAEAAQAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAAQAUAArACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsAKwArACsAKwArACsAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwAEAAQABAAEAAQABAAEAAQABAAEAAQABAArACsAKwArAAQABAAEAAQABAAEAAQABAAEAAQABAAEACsAKwArACsAHgArACsAKwATABMASwBLAEsASwBLAEsASwBLAEsASwBcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXAArACsAXABcAFwAXABcACsAKwArACsAKwArACsAKwArACsAKwBcAFwAXABcAFwAXABcAFwAXABcAFwAXAArACsAKwArAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcACsAKwArACsAKwArAEsASwBLAEsASwBLAEsASwBLAEsAXAArACsAKwAqACoAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAAQABAAEAAQABAArACsAHgAeAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcACoAKgAqACoAKgAqACoAKgAqACoAKwAqACoAKgAqACoAKgAqACoAKgAqACoAKgAqACoAKgAqACoAKgAqACoAKgAqACoAKgAqACoAKgAqACoAKwArAAQASwBLAEsASwBLAEsASwBLAEsASwArACsAKwArACsAKwBLAEsASwBLAEsASwBLAEsASwBLACsAKwArACsAKwArACoAKgAqACoAKgAqACoAXAAqACoAKgAqACoAKgArACsABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsABAAEAAQABAAEAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAAQABAAEAAQABABQAFAAUABQAFAAUABQACsAKwArACsASwBLAEsASwBLAEsASwBLAEsASwANAA0AHgANAA0ADQANAB4AHgAeAB4AHgAeAB4AHgAeAB4ABAAEAAQABAAEAAQABAAEAAQAHgAeAB4AHgAeAB4AHgAeAB4AKwArACsABAAEAAQAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAABAAEAAQABAAEAAQABAAEAAQABAAEAAQABABQAFAASwBLAEsASwBLAEsASwBLAEsASwBQAFAAUABQAFAAUABQAFAABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEACsAKwArACsAKwArACsAKwAeAB4AHgAeAFAAUABQAFAABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEACsAKwArAA0ADQANAA0ADQBLAEsASwBLAEsASwBLAEsASwBLACsAKwArAFAAUABQAEsASwBLAEsASwBLAEsASwBLAEsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAA0ADQBQAFAAUABQAFAAUABQAFAAUAArACsAKwArACsAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAKwBQAFAAUAAeAB4AHgAeAB4AHgAeAB4AKwArACsAKwArACsAKwArAAQABAAEAB4ABAAEAAQABAAEAAQABAAEAAQABAAEAAQABABQAFAAUABQAAQAUABQAFAAUABQAFAABABQAFAABAAEAAQAUAArACsAKwArACsABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEACsABAAEAAQABAAEAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AKwArAFAAUABQAFAAUABQACsAKwBQAFAAUABQAFAAUABQAFAAKwBQACsAUAArAFAAKwAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeACsAKwAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgArAB4AHgAeAB4AHgAeAB4AHgBQAB4AHgAeAFAAUABQACsAHgAeAB4AHgAeAB4AHgAeAB4AHgBQAFAAUABQACsAKwAeAB4AHgAeAB4AHgArAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AKwArAFAAUABQACsAHgAeAB4AHgAeAB4AHgAOAB4AKwANAA0ADQANAA0ADQANAAkADQANAA0ACAAEAAsABAAEAA0ACQANAA0ADAAdAB0AHgAXABcAFgAXABcAFwAWABcAHQAdAB4AHgAUABQAFAANAAEAAQAEAAQABAAEAAQACQAaABoAGgAaABoAGgAaABoAHgAXABcAHQAVABUAHgAeAB4AHgAeAB4AGAAWABEAFQAVABUAHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4ADQAeAA0ADQANAA0AHgANAA0ADQAHAB4AHgAeAB4AKwAEAAQABAAEAAQABAAEAAQABAAEAFAAUAArACsATwBQAFAAUABQAFAAHgAeAB4AFgARAE8AUABPAE8ATwBPAFAAUABQAFAAUAAeAB4AHgAWABEAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAKwArABsAGwAbABsAGwAbABsAGgAbABsAGwAbABsAGwAbABsAGwAbABsAGwAbABsAGgAbABsAGwAbABoAGwAbABoAGwAbABsAGwAbABsAGwAbABsAGwAbABsAGwAbABsAGwAbAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQAHgAeAFAAGgAeAB0AHgBQAB4AGgAeAB4AHgAeAB4AHgAeAB4AHgBPAB4AUAAbAB4AHgBQAFAAUABQAFAAHgAeAB4AHQAdAB4AUAAeAFAAHgBQAB4AUABPAFAAUAAeAB4AHgAeAB4AHgAeAFAAUABQAFAAUAAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAFAAHgBQAFAAUABQAE8ATwBQAFAAUABQAFAATwBQAFAATwBQAE8ATwBPAE8ATwBPAE8ATwBPAE8ATwBPAFAAUABQAFAATwBPAE8ATwBPAE8ATwBPAE8ATwBQAFAAUABQAFAAUABQAFAAUAAeAB4AUABQAFAAUABPAB4AHgArACsAKwArAB0AHQAdAB0AHQAdAB0AHQAdAB0AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB0AHgAdAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAdAB4AHQAdAB4AHgAeAB0AHQAeAB4AHQAeAB4AHgAdAB4AHQAbABsAHgAdAB4AHgAeAB4AHQAeAB4AHQAdAB0AHQAeAB4AHQAeAB0AHgAdAB0AHQAdAB0AHQAeAB0AHgAeAB4AHgAeAB0AHQAdAB0AHgAeAB4AHgAdAB0AHgAeAB4AHgAeAB4AHgAeAB4AHgAdAB4AHgAeAB0AHgAeAB4AHgAeAB0AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAdAB0AHgAeAB0AHQAdAB0AHgAeAB0AHQAeAB4AHQAdAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB0AHQAeAB4AHQAdAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHQAeAB4AHgAdAB4AHgAeAB4AHgAeAB4AHQAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB0AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AFAAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeABYAEQAWABEAHgAeAB4AHgAeAB4AHQAeAB4AHgAeAB4AHgAeACUAJQAeAB4AHgAeAB4AHgAeAB4AHgAWABEAHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AJQAlACUAJQAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArAE8ATwBPAE8ATwBPAE8ATwBPAE8ATwBPAE8ATwBPAE8ATwBPAE8ATwBPAE8ATwBPAE8ATwBPAE8ATwBPAE8ATwAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAE8ATwBPAE8ATwBPAE8ATwBPAE8ATwBPAE8ATwBPAE8ATwBPAE8ATwBPAFAAHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHgAeAB4AHgAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAeAB4AHQAdAB0AHQAeAB4AHgAeAB4AHgAeAB4AHgAeAB0AHQAeAB0AHQAdAB0AHQAdAB0AHgAeAB4AHgAeAB4AHgAeAB0AHQAeAB4AHQAdAB4AHgAeAB4AHQAdAB4AHgAeAB4AHQAdAB0AHgAeAB0AHgAeAB0AHQAdAB0AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAdAB0AHQAdAB4AHgAeAB4AHgAeAB4AHgAeAB0AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAlACUAJQAlAB4AHQAdAB4AHgAdAB4AHgAeAB4AHQAdAB4AHgAeAB4AJQAlAB0AHQAlAB4AJQAlACUAIAAlACUAHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAlACUAJQAeAB4AHgAeAB0AHgAdAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAdAB0AHgAdAB0AHQAeAB0AJQAdAB0AHgAdAB0AHgAdAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeACUAHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHQAdAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAlACUAJQAlACUAJQAlACUAJQAlACUAJQAdAB0AHQAdACUAHgAlACUAJQAdACUAJQAdAB0AHQAlACUAHQAdACUAHQAdACUAJQAlAB4AHQAeAB4AHgAeAB0AHQAlAB0AHQAdAB0AHQAdACUAJQAlACUAJQAdACUAJQAgACUAHQAdACUAJQAlACUAJQAlACUAJQAeAB4AHgAlACUAIAAgACAAIAAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB0AHgAeAB4AFwAXABcAFwAXABcAHgATABMAJQAeAB4AHgAWABEAFgARABYAEQAWABEAFgARABYAEQAWABEATwBPAE8ATwBPAE8ATwBPAE8ATwBPAE8ATwBPAE8ATwBPAE8ATwBPAE8ATwAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeABYAEQAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAWABEAFgARABYAEQAWABEAFgARAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AFgARABYAEQAWABEAFgARABYAEQAWABEAFgARABYAEQAWABEAFgARABYAEQAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAWABEAFgARAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AFgARAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAdAB0AHQAdAB0AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgArACsAHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AKwAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AUABQAFAAUAAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAEAAQABAAeAB4AKwArACsAKwArABMADQANAA0AUAATAA0AUABQAFAAUABQAFAAUABQACsAKwArACsAKwArACsAUAANACsAKwArACsAKwArACsAKwArACsAKwArACsAKwAEAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsAKwArACsAKwArACsAKwBQAFAAUABQAFAAUABQACsAUABQAFAAUABQAFAAUAArAFAAUABQAFAAUABQAFAAKwBQAFAAUABQAFAAUABQACsAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXAA0ADQANAA0ADQANAA0ADQAeAA0AFgANAB4AHgAXABcAHgAeABcAFwAWABEAFgARABYAEQAWABEADQANAA0ADQATAFAADQANAB4ADQANAB4AHgAeAB4AHgAMAAwADQANAA0AHgANAA0AFgANAA0ADQANAA0ADQANAA0AHgANAB4ADQANAB4AHgAeACsAKwArACsAKwArACsAKwArACsAKwArACsAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACsAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAKwArACsAKwArACsAKwArACsAKwArACsAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwAlACUAJQAlACUAJQAlACUAJQAlACUAJQArACsAKwArAA0AEQARACUAJQBHAFcAVwAWABEAFgARABYAEQAWABEAFgARACUAJQAWABEAFgARABYAEQAWABEAFQAWABEAEQAlAFcAVwBXAFcAVwBXAFcAVwBXAAQABAAEAAQABAAEACUAVwBXAFcAVwA2ACUAJQBXAFcAVwBHAEcAJQAlACUAKwBRAFcAUQBXAFEAVwBRAFcAUQBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFEAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBRAFcAUQBXAFEAVwBXAFcAVwBXAFcAUQBXAFcAVwBXAFcAVwBRAFEAKwArAAQABAAVABUARwBHAFcAFQBRAFcAUQBXAFEAVwBRAFcAUQBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFEAVwBRAFcAUQBXAFcAVwBXAFcAVwBRAFcAVwBXAFcAVwBXAFEAUQBXAFcAVwBXABUAUQBHAEcAVwArACsAKwArACsAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAKwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAKwAlACUAVwBXAFcAVwAlACUAJQAlACUAJQAlACUAJQAlACsAKwArACsAKwArACsAKwArACsAKwArAFEAUQBRAFEAUQBRAFEAUQBRAFEAUQBRAFEAUQBRAFEAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQArAFcAVwBXAFcAVwBXAFcAVwBXAFcAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQBPAE8ATwBPAE8ATwBPAE8AJQBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXACUAJQAlAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAEcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAKwArACsAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQArACsAKwArACsAKwArACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAADQATAA0AUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABLAEsASwBLAEsASwBLAEsASwBLAFAAUAArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAFAABAAEAAQABAAeAAQABAAEAAQABAAEAAQABAAEAAQAHgBQAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AUABQAAQABABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAAQABAAeAA0ADQANAA0ADQArACsAKwArACsAKwArACsAHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAFAAUABQAFAAUABQAFAAUABQAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AUAAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgBQAB4AHgAeAB4AHgAeAFAAHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgArACsAHgAeAB4AHgAeAB4AHgAeAB4AKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwAeAB4AUABQAFAAUABQAFAAUABQAFAAUABQAAQAUABQAFAABABQAFAAUABQAAQAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAAQABAAEAAQABAAeAB4AHgAeAAQAKwArACsAUABQAFAAUABQAFAAHgAeABoAHgArACsAKwArACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAADgAOABMAEwArACsAKwArACsAKwArACsABAAEAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAAQABAAEAAQABAAEACsAKwArACsAKwArACsAKwANAA0ASwBLAEsASwBLAEsASwBLAEsASwArACsAKwArACsAKwAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABABQAFAAUABQAFAAUAAeAB4AHgBQAA4AUABQAAQAUABQAFAAUABQAFAABAAEAAQABAAEAAQABAAEAA0ADQBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQAKwArACsAKwArACsAKwArACsAKwArAB4AWABYAFgAWABYAFgAWABYAFgAWABYAFgAWABYAFgAWABYAFgAWABYAFgAWABYAFgAWABYAFgAWABYACsAKwArAAQAHgAeAB4AHgAeAB4ADQANAA0AHgAeAB4AHgArAFAASwBLAEsASwBLAEsASwBLAEsASwArACsAKwArAB4AHgBcAFwAXABcAFwAKgBcAFwAXABcAFwAXABcAFwAXABcAEsASwBLAEsASwBLAEsASwBLAEsAXABcAFwAXABcACsAUABQAFAAUABQAFAAUABQAFAABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEACsAKwArACsAKwArACsAKwArAFAAUABQAAQAUABQAFAAUABQAFAAUABQAAQABAArACsASwBLAEsASwBLAEsASwBLAEsASwArACsAHgANAA0ADQBcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAKgAqACoAXAAqACoAKgBcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXAAqAFwAKgAqACoAXABcACoAKgBcAFwAXABcAFwAKgAqAFwAKgBcACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArAFwAXABcACoAKgBQAFAAUABQAFAAUABQAFAAUABQAFAABAAEAAQABAAEAA0ADQBQAFAAUAAEAAQAKwArACsAKwArACsAKwArACsAKwBQAFAAUABQAFAAUAArACsAUABQAFAAUABQAFAAKwArAFAAUABQAFAAUABQACsAKwArACsAKwArACsAKwArAFAAUABQAFAAUABQAFAAKwBQAFAAUABQAFAAUABQACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAHgAeACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAEAAQABAAEAAQABAAEAAQADQAEAAQAKwArAEsASwBLAEsASwBLAEsASwBLAEsAKwArACsAKwArACsAVABVAFUAVQBVAFUAVQBVAFUAVQBVAFUAVQBVAFUAVQBVAFUAVQBVAFUAVQBVAFUAVQBVAFUAVQBUAFUAVQBVAFUAVQBVAFUAVQBVAFUAVQBVAFUAVQBVAFUAVQBVAFUAVQBVAFUAVQBVAFUAVQBVACsAKwArACsAKwArACsAKwArACsAKwArAFkAWQBZAFkAWQBZAFkAWQBZAFkAWQBZAFkAWQBZAFkAWQBZAFkAKwArACsAKwBaAFoAWgBaAFoAWgBaAFoAWgBaAFoAWgBaAFoAWgBaAFoAWgBaAFoAWgBaAFoAWgBaAFoAWgBaAFoAKwArACsAKwAGAAYABgAGAAYABgAGAAYABgAGAAYABgAGAAYABgAGAAYABgAGAAYABgAGAAYABgAGAAYABgAGAAYABgAGAAYAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXACUAJQBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAJQAlACUAJQAlACUAUABQAFAAUABQAFAAUAArACsAKwArACsAKwArACsAKwArACsAKwBQAFAAUABQAFAAKwArACsAKwArAFYABABWAFYAVgBWAFYAVgBWAFYAVgBWAB4AVgBWAFYAVgBWAFYAVgBWAFYAVgBWAFYAVgArAFYAVgBWAFYAVgArAFYAKwBWAFYAKwBWAFYAKwBWAFYAVgBWAFYAVgBWAFYAVgBWAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAEQAWAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUAAaAB4AKwArAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQAGAARABEAGAAYABMAEwAWABEAFAArACsAKwArACsAKwAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEACUAJQAlACUAJQAWABEAFgARABYAEQAWABEAFgARABYAEQAlACUAFgARACUAJQAlACUAJQAlACUAEQAlABEAKwAVABUAEwATACUAFgARABYAEQAWABEAJQAlACUAJQAlACUAJQAlACsAJQAbABoAJQArACsAKwArAFAAUABQAFAAUAArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwArAAcAKwATACUAJQAbABoAJQAlABYAEQAlACUAEQAlABEAJQBXAFcAVwBXAFcAVwBXAFcAVwBXABUAFQAlACUAJQATACUAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXABYAJQARACUAJQAlAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwAWACUAEQAlABYAEQARABYAEQARABUAVwBRAFEAUQBRAFEAUQBRAFEAUQBRAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAEcARwArACsAVwBXAFcAVwBXAFcAKwArAFcAVwBXAFcAVwBXACsAKwBXAFcAVwBXAFcAVwArACsAVwBXAFcAKwArACsAGgAbACUAJQAlABsAGwArAB4AHgAeAB4AHgAeAB4AKwArACsAKwArACsAKwArACsAKwAEAAQABAAQAB0AKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwBQAFAAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsAKwArACsADQANAA0AKwArACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAKwArAB4AHgAeAB4AHgAeAB4AHgAeAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgBQAFAAHgAeAB4AKwAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAAQAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwAEAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAKwArACsAKwArACsAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwArACsAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAABAAEAAQABAAEACsAKwArACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArAA0AUABQAFAAUAArACsAKwArAFAAUABQAFAAUABQAFAAUAANAFAAUABQAFAAUAArACsAKwArACsAKwArACsAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwArACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAKwArACsAKwArACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAKwArACsAKwArACsAKwArACsAKwAeACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAUABQAFAAUABQAFAAKwArAFAAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArAFAAUAArACsAKwBQACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwANAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAeAB4AUABQAFAAUABQAFAAUAArACsAKwArACsAKwArAFAAUABQAFAAUABQAFAAUABQACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArAFAAUAArACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAKwArAA0AUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAKwArACsAKwAeAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAKwArACsAUABQAFAAUABQAAQABAAEACsABAAEACsAKwArACsAKwAEAAQABAAEAFAAUABQAFAAKwBQAFAAUAArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwArAAQABAAEACsAKwArACsABABQAFAAUABQAFAAUABQAFAAUAArACsAKwArACsAKwArAA0ADQANAA0ADQANAA0ADQAeACsAKwArACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAeAFAAUABQAFAAUABQAFAAUAAeAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAAQABAArACsAKwArAFAAUABQAFAAUAANAA0ADQANAA0ADQAUACsAKwArACsAKwArACsAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwArACsADQANAA0ADQANAA0ADQBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsAKwArACsAKwArAB4AHgAeAB4AKwArACsAKwArACsAKwArACsAKwArACsAUABQAFAAUABQAFAAUAArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArAFAAUABQAFAAUABQAFAAUABQACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAKwArACsAKwArACsAKwArACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsAKwArACsAKwArAFAAUABQAFAAUABQAAQABAAEAAQAKwArACsAKwArACsAKwArAEsASwBLAEsASwBLAEsASwBLAEsAKwArACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUAArAAQABAANACsAKwBQAFAAKwArACsAKwArACsAKwArACsAKwArACsAKwArAFAAUABQAFAAUABQAAQABAAEAAQABAAEAAQABAAEAAQABABQAFAAUABQAB4AHgAeAB4AHgArACsAKwArACsAKwAEAAQABAAEAAQABAAEAA0ADQAeAB4AHgAeAB4AKwArACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAEsASwBLAEsASwBLAEsASwBLAEsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsABABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAAQABAAEAAQABAAEAAQABAAEAAQABAAeAB4AHgANAA0ADQANACsAKwArACsAKwArACsAKwArACsAKwAeACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwArACsAKwArACsAKwBLAEsASwBLAEsASwBLAEsASwBLACsAKwArACsAKwArAFAAUABQAFAAUABQAFAABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEACsASwBLAEsASwBLAEsASwBLAEsASwANAA0ADQANAFAABAAEAFAAKwArACsAKwArACsAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAABAAeAA4AUAArACsAKwArACsAKwArACsAKwAEAFAAUABQAFAADQANAB4ADQAEAAQABAAEAB4ABAAEAEsASwBLAEsASwBLAEsASwBLAEsAUAAOAFAADQANAA0AKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwArACsAKwArACsAKwArACsAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAEAAQABAAEAAQABAAEAAQABAAEAAQABAANAA0AHgANAA0AHgAEACsAUABQAFAAUABQAFAAUAArAFAAKwBQAFAAUABQACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwBQAFAAUABQAFAAUABQAFAAUABQAA0AKwArACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAEAAQABAAEAAQABAAEAAQABAAEAAQAKwArACsAKwArAEsASwBLAEsASwBLAEsASwBLAEsAKwArACsAKwArACsABAAEAAQABAArAFAAUABQAFAAUABQAFAAUAArACsAUABQACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwBQAFAAUABQAFAAUABQACsAUABQACsAUABQAFAAUABQACsABAAEAFAABAAEAAQABAAEAAQABAArACsABAAEACsAKwAEAAQABAArACsAUAArACsAKwArACsAKwAEACsAKwArACsAKwBQAFAAUABQAFAABAAEACsAKwAEAAQABAAEAAQABAAEACsAKwArAAQABAAEAAQABAArACsAKwArACsAKwArACsAKwArACsABAAEAAQABAAEAAQABABQAFAAUABQAA0ADQANAA0AHgBLAEsASwBLAEsASwBLAEsASwBLAA0ADQArAB4ABABQAFAAUAArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwAEAAQABAAEAFAAUAAeAFAAKwArACsAKwArACsAKwArAEsASwBLAEsASwBLAEsASwBLAEsAKwArACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAABAAEAAQABAAEAAQABAArACsABAAEAAQABAAEAAQABAAEAAQADgANAA0AEwATAB4AHgAeAA0ADQANAA0ADQANAA0ADQANAA0ADQANAA0ADQANAFAAUABQAFAABAAEACsAKwAEAA0ADQAeAFAAKwArACsAKwArACsAKwArACsAKwArAEsASwBLAEsASwBLAEsASwBLAEsAKwArACsAKwArACsADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAFAAKwArACsAKwArACsAKwBLAEsASwBLAEsASwBLAEsASwBLACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAKwArACoAKgAqACoAKgAqACoAKgAqACoAKgAqACoAKgAqACsAKwArACsASwBLAEsASwBLAEsASwBLAEsASwBcAFwADQANAA0AKgBQAFAAUABQAFAAUABQAFAAUABQAFAAUAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAeACsAKwArACsASwBLAEsASwBLAEsASwBLAEsASwBQAFAAUABQAFAAUABQAFAAUAArACsAKwArACsAKwArACsAKwArACsAKwBQAFAAUABQAFAAUABQAFAAKwArAFAAKwArAFAAUABQAFAAUABQAFAAUAArAFAAUAArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAABAAEAAQABAAEAAQAKwAEAAQAKwArAAQABAAEAAQAUAAEAFAABAAEAA0ADQANACsAKwArACsAKwArACsAKwArAEsASwBLAEsASwBLAEsASwBLAEsAKwArACsAKwArACsAUABQAFAAUABQAFAAUABQACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAABAAEAAQABAAEAAQABAArACsABAAEAAQABAAEAAQABABQAA4AUAAEACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArAFAABAAEAAQABAAEAAQABAAEAAQABABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAEAAQABAAEAAQABAAEAFAABAAEAAQABAAOAB4ADQANAA0ADQAOAB4ABAArACsAKwArACsAKwArACsAUAAEAAQABAAEAAQABAAEAAQABAAEAAQAUABQAFAAUABQAFAAUABQAFAAUAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAA0ADQANAFAADgAOAA4ADQANACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwBQAFAAUABQAFAAUABQAFAAUAArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAABAAEAAQABAAEAAQABAAEACsABAAEAAQABAAEAAQABAAEAFAADQANAA0ADQANACsAKwArACsAKwArACsAKwArACsASwBLAEsASwBLAEsASwBLAEsASwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsAKwAOABMAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwArAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAArAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAArACsAKwArACsAKwArACsAKwBQAFAAUABQAFAAUABQACsAUABQACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAEAAQABAAEAAQABAArACsAKwAEACsABAAEACsABAAEAAQABAAEAAQABABQAAQAKwArACsAKwArACsAKwArAEsASwBLAEsASwBLAEsASwBLAEsAKwArACsAKwArACsAUABQAFAAUABQAFAAKwBQAFAAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAEAAQABAAEAAQAKwAEAAQAKwAEAAQABAAEAAQAUAArACsAKwArACsAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAABAAEAAQABAAeAB4AKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwBQACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAB4AHgAeAB4AHgAeAB4AHgAaABoAGgAaAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgArACsAKwArACsAKwArACsAKwArACsAKwArAA0AUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAKwArACsAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsADQANAA0ADQANACsAKwArACsAKwArACsAKwArACsAKwBQAFAAUABQACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAASABIAEgAQwBDAEMAUABQAFAAUABDAFAAUABQAEgAQwBIAEMAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAASABDAEMAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwAJAAkACQAJAAkACQAJABYAEQArACsAKwArACsAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABIAEMAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArAEsASwBLAEsASwBLAEsASwBLAEsAKwArACsAKwANAA0AKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwArAAQABAAEAAQABAANACsAKwArACsAKwArACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAEAAQABAAEAAQABAAEAA0ADQANAB4AHgAeAB4AHgAeAFAAUABQAFAADQAeACsAKwArACsAKwArACsAKwArACsASwBLAEsASwBLAEsASwBLAEsASwArAFAAUABQAFAAUABQAFAAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAANAA0AHgAeACsAKwArACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAKwArACsAKwAEAFAABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQAKwArACsAKwArACsAKwAEAAQABAAEAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAARwBHABUARwAJACsAKwArACsAKwArACsAKwArACsAKwAEAAQAKwArACsAKwArACsAKwArACsAKwArACsAKwArAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXACsAKwArACsAKwArACsAKwBXAFcAVwBXAFcAVwBXAFcAVwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAUQBRAFEAKwArACsAKwArACsAKwArACsAKwArACsAKwBRAFEAUQBRACsAKwArACsAKwArACsAKwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUABQACsAKwArACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAKwArACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUAArACsAHgAEAAQADQAEAAQABAAEACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgArACsAKwArACsAKwArACsAKwArAB4AHgAeAB4AHgAeAB4AKwArAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAAQABAAEAAQABAAeAB4AHgAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAB4AHgAEAAQABAAEAAQABAAEAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4ABAAEAAQABAAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4ABAAEAAQAHgArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAKwArACsAKwArACsAKwArACsAKwArAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgArACsAKwArACsAKwArACsAKwAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgArAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AKwBQAFAAKwArAFAAKwArAFAAUAArACsAUABQAFAAUAArAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeACsAUAArAFAAUABQAFAAUABQAFAAKwAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AKwBQAFAAUABQACsAKwBQAFAAUABQAFAAUABQAFAAKwBQAFAAUABQAFAAUABQACsAHgAeAFAAUABQAFAAUAArAFAAKwArACsAUABQAFAAUABQAFAAUAArAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAHgBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgBQAFAAUABQAFAAUABQAFAAUABQAFAAHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAB4AHgAeAB4AHgAeAB4AHgAeACsAKwBLAEsASwBLAEsASwBLAEsASwBLAEsASwBLAEsASwBLAEsASwBLAEsASwBLAEsASwBLAEsASwBLAEsASwBLAEsASwBLAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAeAB4AHgAeAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAeAB4AHgAeAB4AHgAeAB4ABAAeAB4AHgAeAB4AHgAeAB4AHgAeAAQAHgAeAA0ADQANAA0AHgArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwAEAAQABAAEAAQAKwAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArAAQABAAEAAQABAAEAAQAKwAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQAKwArAAQABAAEAAQABAAEAAQAKwAEAAQAKwAEAAQABAAEAAQAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsAKwAEAAQABAAEAAQABAAEAFAAUABQAFAAUABQAFAAKwArAEsASwBLAEsASwBLAEsASwBLAEsAKwArACsAKwBQAB4AKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUAAEAAQABAAEAEsASwBLAEsASwBLAEsASwBLAEsAKwArACsAKwArABsAUABQAFAAUABQACsAKwBQAFAAUABQAFAAUABQAFAAUAAEAAQABAAEAAQABAAEACsAKwArACsAKwArACsAKwArAB4AHgAeAB4ABAAEAAQABAAEAAQABABQACsAKwArACsASwBLAEsASwBLAEsASwBLAEsASwArACsAKwArABYAFgArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAGgBQAFAAUAAaAFAAUABQAFAAKwArACsAKwArACsAKwArACsAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAeAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAKwBQAFAAUABQACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwBQAFAAKwBQACsAKwBQACsAUABQAFAAUABQAFAAUABQAFAAUAArAFAAUABQAFAAKwBQACsAUAArACsAKwArACsAKwBQACsAKwArACsAUAArAFAAKwBQACsAUABQAFAAKwBQAFAAKwBQACsAKwBQACsAUAArAFAAKwBQACsAUAArAFAAUAArAFAAKwArAFAAUABQAFAAKwBQAFAAUABQAFAAUABQACsAUABQAFAAUAArAFAAUABQAFAAKwBQACsAUABQAFAAUABQAFAAUABQAFAAUAArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsAKwArACsAUABQAFAAKwBQAFAAUABQAFAAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwAeAB4AKwArACsAKwArACsAKwArACsAKwArACsAKwArAE8ATwBPAE8ATwBPAE8ATwBPAE8ATwBPAE8AJQAlACUAHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHgAeAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB4AHgAeACUAJQAlAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQApACkAKQApACkAKQApACkAKQApACkAKQApACkAKQApACkAKQApACkAKQApACkAKQApACkAJQAlACUAJQAlACAAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAeAB4AJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlAB4AHgAlACUAJQAlACUAHgAlACUAJQAlACUAIAAgACAAJQAlACAAJQAlACAAIAAgACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACEAIQAhACEAIQAlACUAIAAgACUAJQAgACAAIAAgACAAIAAgACAAIAAgACAAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAJQAlACUAIAAlACUAJQAlACAAIAAgACUAIAAgACAAJQAlACUAJQAlACUAJQAgACUAIAAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAHgAlAB4AJQAeACUAJQAlACUAJQAgACUAJQAlACUAHgAlAB4AHgAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlAB4AHgAeAB4AHgAeAB4AJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAeAB4AHgAeAB4AHgAeAB4AHgAeACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACAAIAAlACUAJQAlACAAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACAAJQAlACUAJQAgACAAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAHgAeAB4AHgAeAB4AHgAeACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAeAB4AHgAeAB4AHgAlACUAJQAlACUAJQAlACAAIAAgACUAJQAlACAAIAAgACAAIAAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeABcAFwAXABUAFQAVAB4AHgAeAB4AJQAlACUAIAAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACAAIAAgACUAJQAlACUAJQAlACUAJQAlACAAJQAlACUAJQAlACUAJQAlACUAJQAlACAAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AJQAlACUAJQAlACUAJQAlACUAJQAlACUAHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AJQAlACUAJQAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeACUAJQAlACUAJQAlACUAJQAeAB4AHgAeAB4AHgAeAB4AHgAeACUAJQAlACUAJQAlAB4AHgAeAB4AHgAeAB4AHgAlACUAJQAlACUAJQAlACUAHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAgACUAJQAgACUAJQAlACUAJQAlACUAJQAgACAAIAAgACAAIAAgACAAJQAlACUAJQAlACUAIAAlACUAJQAlACUAJQAlACUAJQAgACAAIAAgACAAIAAgACAAIAAgACUAJQAgACAAIAAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAgACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACAAIAAlACAAIAAlACAAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAgACAAIAAlACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAJQAlAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AKwAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArAEsASwBLAEsASwBLAEsASwBLAEsAKwArACsAKwArACsAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAKwArAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXACUAJQBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwAlACUAJQAlACUAJQAlACUAJQAlACUAVwBXACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAKwAEACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArAA==", J1 = 50, ok = 1, M5 = 2, O5 = 3, lk = 4, uk = 5, Z1 = 7, R5 = 8, em = 9, ls = 10, hp = 11, tm = 12, dp = 13, ck = 14, ul = 15, gp = 16, bu = 17, Jo = 18, fk = 19, Am = 20, pp = 21, Zo = 22, qf = 23, co = 24, wa = 25, cl = 26, fl = 27, fo = 28, hk = 29, Is = 30, dk = 31, Cu = 32, Eu = 33, vp = 34, mp = 35, wp = 36, xl = 37, Bp = 38, tc = 39, Ac = 40, jf = 41, H5 = 42, gk = 43, pk = [9001, 65288], P5 = "!", TA = "×", Fu = "÷", yp = nk(sk), xi = [Is, wp], bp = [ok, M5, O5, uk], K5 = [ls, R5], rm = [fl, cl], vk = bp.concat(K5), nm = [Bp, tc, Ac, vp, mp], mk = [ul, dp], wk = function(r, t) {
  t === void 0 && (t = "strict");
  var e = [], A = [], n = [];
  return r.forEach(function(a, s) {
    var i = yp.get(a);
    if (i > J1 ? (n.push(!0), i -= J1) : n.push(!1), ["normal", "auto", "loose"].indexOf(t) !== -1 && [8208, 8211, 12316, 12448].indexOf(a) !== -1)
      return A.push(s), e.push(gp);
    if (i === lk || i === hp) {
      if (s === 0)
        return A.push(s), e.push(Is);
      var o = e[s - 1];
      return vk.indexOf(o) === -1 ? (A.push(A[s - 1]), e.push(o)) : (A.push(s), e.push(Is));
    }
    if (A.push(s), i === dk)
      return e.push(t === "strict" ? pp : xl);
    if (i === H5 || i === hk)
      return e.push(Is);
    if (i === gk)
      return a >= 131072 && a <= 196605 || a >= 196608 && a <= 262141 ? e.push(xl) : e.push(Is);
    e.push(i);
  }), [A, e, n];
}, Wf = function(r, t, e, A) {
  var n = A[e];
  if (Array.isArray(r) ? r.indexOf(n) !== -1 : r === n)
    for (var a = e; a <= A.length; ) {
      a++;
      var s = A[a];
      if (s === t)
        return !0;
      if (s !== ls)
        break;
    }
  if (n === ls)
    for (var a = e; a > 0; ) {
      a--;
      var i = A[a];
      if (Array.isArray(r) ? r.indexOf(i) !== -1 : r === i)
        for (var o = e; o <= A.length; ) {
          o++;
          var s = A[o];
          if (s === t)
            return !0;
          if (s !== ls)
            break;
        }
      if (i !== ls)
        break;
    }
  return !1;
}, am = function(r, t) {
  for (var e = r; e >= 0; ) {
    var A = t[e];
    if (A === ls)
      e--;
    else
      return A;
  }
  return 0;
}, Bk = function(r, t, e, A, n) {
  if (e[A] === 0)
    return TA;
  var a = A - 1;
  if (Array.isArray(n) && n[a] === !0)
    return TA;
  var s = a - 1, i = a + 1, o = t[a], l = s >= 0 ? t[s] : 0, u = t[i];
  if (o === M5 && u === O5)
    return TA;
  if (bp.indexOf(o) !== -1)
    return P5;
  if (bp.indexOf(u) !== -1 || K5.indexOf(u) !== -1)
    return TA;
  if (am(a, t) === R5)
    return Fu;
  if (yp.get(r[a]) === hp || (o === Cu || o === Eu) && yp.get(r[i]) === hp || o === Z1 || u === Z1 || o === em || [ls, dp, ul].indexOf(o) === -1 && u === em || [bu, Jo, fk, co, fo].indexOf(u) !== -1 || am(a, t) === Zo || Wf(qf, Zo, a, t) || Wf([bu, Jo], pp, a, t) || Wf(tm, tm, a, t))
    return TA;
  if (o === ls)
    return Fu;
  if (o === qf || u === qf)
    return TA;
  if (u === gp || o === gp)
    return Fu;
  if ([dp, ul, pp].indexOf(u) !== -1 || o === ck || l === wp && mk.indexOf(o) !== -1 || o === fo && u === wp || u === Am || xi.indexOf(u) !== -1 && o === wa || xi.indexOf(o) !== -1 && u === wa || o === fl && [xl, Cu, Eu].indexOf(u) !== -1 || [xl, Cu, Eu].indexOf(o) !== -1 && u === cl || xi.indexOf(o) !== -1 && rm.indexOf(u) !== -1 || rm.indexOf(o) !== -1 && xi.indexOf(u) !== -1 || // (PR | PO) × ( OP | HY )? NU
  [fl, cl].indexOf(o) !== -1 && (u === wa || [Zo, ul].indexOf(u) !== -1 && t[i + 1] === wa) || // ( OP | HY ) × NU
  [Zo, ul].indexOf(o) !== -1 && u === wa || // NU ×	(NU | SY | IS)
  o === wa && [wa, fo, co].indexOf(u) !== -1)
    return TA;
  if ([wa, fo, co, bu, Jo].indexOf(u) !== -1)
    for (var h = a; h >= 0; ) {
      var g = t[h];
      if (g === wa)
        return TA;
      if ([fo, co].indexOf(g) !== -1)
        h--;
      else
        break;
    }
  if ([fl, cl].indexOf(u) !== -1)
    for (var h = [bu, Jo].indexOf(o) !== -1 ? s : a; h >= 0; ) {
      var g = t[h];
      if (g === wa)
        return TA;
      if ([fo, co].indexOf(g) !== -1)
        h--;
      else
        break;
    }
  if (Bp === o && [Bp, tc, vp, mp].indexOf(u) !== -1 || [tc, vp].indexOf(o) !== -1 && [tc, Ac].indexOf(u) !== -1 || [Ac, mp].indexOf(o) !== -1 && u === Ac || nm.indexOf(o) !== -1 && [Am, cl].indexOf(u) !== -1 || nm.indexOf(u) !== -1 && o === fl || xi.indexOf(o) !== -1 && xi.indexOf(u) !== -1 || o === co && xi.indexOf(u) !== -1 || xi.concat(wa).indexOf(o) !== -1 && u === Zo && pk.indexOf(r[i]) === -1 || xi.concat(wa).indexOf(u) !== -1 && o === Jo)
    return TA;
  if (o === jf && u === jf) {
    for (var c = e[a], p = 1; c > 0 && (c--, t[c] === jf); )
      p++;
    if (p % 2 !== 0)
      return TA;
  }
  return o === Cu && u === Eu ? TA : Fu;
}, yk = function(r, t) {
  t || (t = { lineBreak: "normal", wordBreak: "normal" });
  var e = wk(r, t.lineBreak), A = e[0], n = e[1], a = e[2];
  (t.wordBreak === "break-all" || t.wordBreak === "break-word") && (n = n.map(function(i) {
    return [wa, Is, H5].indexOf(i) !== -1 ? xl : i;
  }));
  var s = t.wordBreak === "keep-all" ? a.map(function(i, o) {
    return i && r[o] >= 19968 && r[o] <= 40959;
  }) : void 0;
  return [A, n, s];
}, bk = (
  /** @class */
  (function() {
    function r(t, e, A, n) {
      this.codePoints = t, this.required = e === P5, this.start = A, this.end = n;
    }
    return r.prototype.slice = function() {
      return Gr.apply(void 0, this.codePoints.slice(this.start, this.end));
    }, r;
  })()
), Ck = function(r, t) {
  var e = Tc(r), A = yk(e, t), n = A[0], a = A[1], s = A[2], i = e.length, o = 0, l = 0;
  return {
    next: function() {
      if (l >= i)
        return { done: !0, value: null };
      for (var u = TA; l < i && (u = Bk(e, a, n, ++l, s)) === TA; )
        ;
      if (u !== TA || l === i) {
        var h = new bk(e, u, o, l);
        return o = l, { value: h, done: !1 };
      }
      return { done: !0, value: null };
    }
  };
}, Ek = 1, Fk = 2, Ql = 4, im = 8, dc = 10, sm = 47, ml = 92, xk = 9, Sk = 32, xu = 34, el = 61, Uk = 35, Tk = 36, Qk = 37, Su = 39, Uu = 40, tl = 41, Dk = 95, aa = 45, kk = 33, Lk = 60, Ik = 62, _k = 64, Nk = 91, Mk = 93, Ok = 61, Rk = 123, Tu = 63, Hk = 125, om = 124, Pk = 126, Kk = 128, lm = 65533, Gf = 42, Ns = 43, Vk = 44, qk = 58, jk = 59, Sl = 46, Wk = 0, Gk = 8, Yk = 11, $k = 14, zk = 31, Xk = 127, ci = -1, V5 = 48, q5 = 97, j5 = 101, Jk = 102, Zk = 117, eL = 122, W5 = 65, G5 = 69, Y5 = 70, tL = 85, AL = 90, Rn = function(r) {
  return r >= V5 && r <= 57;
}, rL = function(r) {
  return r >= 55296 && r <= 57343;
}, ho = function(r) {
  return Rn(r) || r >= W5 && r <= Y5 || r >= q5 && r <= Jk;
}, nL = function(r) {
  return r >= q5 && r <= eL;
}, aL = function(r) {
  return r >= W5 && r <= AL;
}, iL = function(r) {
  return nL(r) || aL(r);
}, sL = function(r) {
  return r >= Kk;
}, Qu = function(r) {
  return r === dc || r === xk || r === Sk;
}, gc = function(r) {
  return iL(r) || sL(r) || r === Dk;
}, um = function(r) {
  return gc(r) || Rn(r) || r === aa;
}, oL = function(r) {
  return r >= Wk && r <= Gk || r === Yk || r >= $k && r <= zk || r === Xk;
}, is = function(r, t) {
  return r !== ml ? !1 : t !== dc;
}, Du = function(r, t, e) {
  return r === aa ? gc(t) || is(t, e) : gc(r) ? !0 : !!(r === ml && is(r, t));
}, Yf = function(r, t, e) {
  return r === Ns || r === aa ? Rn(t) ? !0 : t === Sl && Rn(e) : Rn(r === Sl ? t : r);
}, lL = function(r) {
  var t = 0, e = 1;
  (r[t] === Ns || r[t] === aa) && (r[t] === aa && (e = -1), t++);
  for (var A = []; Rn(r[t]); )
    A.push(r[t++]);
  var n = A.length ? parseInt(Gr.apply(void 0, A), 10) : 0;
  r[t] === Sl && t++;
  for (var a = []; Rn(r[t]); )
    a.push(r[t++]);
  var s = a.length, i = s ? parseInt(Gr.apply(void 0, a), 10) : 0;
  (r[t] === G5 || r[t] === j5) && t++;
  var o = 1;
  (r[t] === Ns || r[t] === aa) && (r[t] === aa && (o = -1), t++);
  for (var l = []; Rn(r[t]); )
    l.push(r[t++]);
  var u = l.length ? parseInt(Gr.apply(void 0, l), 10) : 0;
  return e * (n + i * Math.pow(10, -s)) * Math.pow(10, o * u);
}, uL = {
  type: 2
  /* LEFT_PARENTHESIS_TOKEN */
}, cL = {
  type: 3
  /* RIGHT_PARENTHESIS_TOKEN */
}, fL = {
  type: 4
  /* COMMA_TOKEN */
}, hL = {
  type: 13
  /* SUFFIX_MATCH_TOKEN */
}, dL = {
  type: 8
  /* PREFIX_MATCH_TOKEN */
}, gL = {
  type: 21
  /* COLUMN_TOKEN */
}, pL = {
  type: 9
  /* DASH_MATCH_TOKEN */
}, vL = {
  type: 10
  /* INCLUDE_MATCH_TOKEN */
}, mL = {
  type: 11
  /* LEFT_CURLY_BRACKET_TOKEN */
}, wL = {
  type: 12
  /* RIGHT_CURLY_BRACKET_TOKEN */
}, BL = {
  type: 14
  /* SUBSTRING_MATCH_TOKEN */
}, ku = {
  type: 23
  /* BAD_URL_TOKEN */
}, yL = {
  type: 1
  /* BAD_STRING_TOKEN */
}, bL = {
  type: 25
  /* CDO_TOKEN */
}, CL = {
  type: 24
  /* CDC_TOKEN */
}, EL = {
  type: 26
  /* COLON_TOKEN */
}, FL = {
  type: 27
  /* SEMICOLON_TOKEN */
}, xL = {
  type: 28
  /* LEFT_SQUARE_BRACKET_TOKEN */
}, SL = {
  type: 29
  /* RIGHT_SQUARE_BRACKET_TOKEN */
}, UL = {
  type: 31
  /* WHITESPACE_TOKEN */
}, Cp = {
  type: 32
  /* EOF_TOKEN */
}, $5 = (
  /** @class */
  (function() {
    function r() {
      this._value = [];
    }
    return r.prototype.write = function(t) {
      this._value = this._value.concat(Tc(t));
    }, r.prototype.read = function() {
      for (var t = [], e = this.consumeToken(); e !== Cp; )
        t.push(e), e = this.consumeToken();
      return t;
    }, r.prototype.consumeToken = function() {
      var t = this.consumeCodePoint();
      switch (t) {
        case xu:
          return this.consumeStringToken(xu);
        case Uk:
          var e = this.peekCodePoint(0), A = this.peekCodePoint(1), n = this.peekCodePoint(2);
          if (um(e) || is(A, n)) {
            var a = Du(e, A, n) ? Fk : Ek, s = this.consumeName();
            return { type: 5, value: s, flags: a };
          }
          break;
        case Tk:
          if (this.peekCodePoint(0) === el)
            return this.consumeCodePoint(), hL;
          break;
        case Su:
          return this.consumeStringToken(Su);
        case Uu:
          return uL;
        case tl:
          return cL;
        case Gf:
          if (this.peekCodePoint(0) === el)
            return this.consumeCodePoint(), BL;
          break;
        case Ns:
          if (Yf(t, this.peekCodePoint(0), this.peekCodePoint(1)))
            return this.reconsumeCodePoint(t), this.consumeNumericToken();
          break;
        case Vk:
          return fL;
        case aa:
          var i = t, o = this.peekCodePoint(0), l = this.peekCodePoint(1);
          if (Yf(i, o, l))
            return this.reconsumeCodePoint(t), this.consumeNumericToken();
          if (Du(i, o, l))
            return this.reconsumeCodePoint(t), this.consumeIdentLikeToken();
          if (o === aa && l === Ik)
            return this.consumeCodePoint(), this.consumeCodePoint(), CL;
          break;
        case Sl:
          if (Yf(t, this.peekCodePoint(0), this.peekCodePoint(1)))
            return this.reconsumeCodePoint(t), this.consumeNumericToken();
          break;
        case sm:
          if (this.peekCodePoint(0) === Gf)
            for (this.consumeCodePoint(); ; ) {
              var u = this.consumeCodePoint();
              if (u === Gf && (u = this.consumeCodePoint(), u === sm))
                return this.consumeToken();
              if (u === ci)
                return this.consumeToken();
            }
          break;
        case qk:
          return EL;
        case jk:
          return FL;
        case Lk:
          if (this.peekCodePoint(0) === kk && this.peekCodePoint(1) === aa && this.peekCodePoint(2) === aa)
            return this.consumeCodePoint(), this.consumeCodePoint(), bL;
          break;
        case _k:
          var h = this.peekCodePoint(0), g = this.peekCodePoint(1), c = this.peekCodePoint(2);
          if (Du(h, g, c)) {
            var s = this.consumeName();
            return { type: 7, value: s };
          }
          break;
        case Nk:
          return xL;
        case ml:
          if (is(t, this.peekCodePoint(0)))
            return this.reconsumeCodePoint(t), this.consumeIdentLikeToken();
          break;
        case Mk:
          return SL;
        case Ok:
          if (this.peekCodePoint(0) === el)
            return this.consumeCodePoint(), dL;
          break;
        case Rk:
          return mL;
        case Hk:
          return wL;
        case Zk:
        case tL:
          var p = this.peekCodePoint(0), m = this.peekCodePoint(1);
          return p === Ns && (ho(m) || m === Tu) && (this.consumeCodePoint(), this.consumeUnicodeRangeToken()), this.reconsumeCodePoint(t), this.consumeIdentLikeToken();
        case om:
          if (this.peekCodePoint(0) === el)
            return this.consumeCodePoint(), pL;
          if (this.peekCodePoint(0) === om)
            return this.consumeCodePoint(), gL;
          break;
        case Pk:
          if (this.peekCodePoint(0) === el)
            return this.consumeCodePoint(), vL;
          break;
        case ci:
          return Cp;
      }
      return Qu(t) ? (this.consumeWhiteSpace(), UL) : Rn(t) ? (this.reconsumeCodePoint(t), this.consumeNumericToken()) : gc(t) ? (this.reconsumeCodePoint(t), this.consumeIdentLikeToken()) : { type: 6, value: Gr(t) };
    }, r.prototype.consumeCodePoint = function() {
      var t = this._value.shift();
      return typeof t > "u" ? -1 : t;
    }, r.prototype.reconsumeCodePoint = function(t) {
      this._value.unshift(t);
    }, r.prototype.peekCodePoint = function(t) {
      return t >= this._value.length ? -1 : this._value[t];
    }, r.prototype.consumeUnicodeRangeToken = function() {
      for (var t = [], e = this.consumeCodePoint(); ho(e) && t.length < 6; )
        t.push(e), e = this.consumeCodePoint();
      for (var A = !1; e === Tu && t.length < 6; )
        t.push(e), e = this.consumeCodePoint(), A = !0;
      if (A) {
        var n = parseInt(Gr.apply(void 0, t.map(function(o) {
          return o === Tu ? V5 : o;
        })), 16), a = parseInt(Gr.apply(void 0, t.map(function(o) {
          return o === Tu ? Y5 : o;
        })), 16);
        return { type: 30, start: n, end: a };
      }
      var s = parseInt(Gr.apply(void 0, t), 16);
      if (this.peekCodePoint(0) === aa && ho(this.peekCodePoint(1))) {
        this.consumeCodePoint(), e = this.consumeCodePoint();
        for (var i = []; ho(e) && i.length < 6; )
          i.push(e), e = this.consumeCodePoint();
        var a = parseInt(Gr.apply(void 0, i), 16);
        return { type: 30, start: s, end: a };
      } else
        return { type: 30, start: s, end: s };
    }, r.prototype.consumeIdentLikeToken = function() {
      var t = this.consumeName();
      return t.toLowerCase() === "url" && this.peekCodePoint(0) === Uu ? (this.consumeCodePoint(), this.consumeUrlToken()) : this.peekCodePoint(0) === Uu ? (this.consumeCodePoint(), { type: 19, value: t }) : { type: 20, value: t };
    }, r.prototype.consumeUrlToken = function() {
      var t = [];
      if (this.consumeWhiteSpace(), this.peekCodePoint(0) === ci)
        return { type: 22, value: "" };
      var e = this.peekCodePoint(0);
      if (e === Su || e === xu) {
        var A = this.consumeStringToken(this.consumeCodePoint());
        return A.type === 0 && (this.consumeWhiteSpace(), this.peekCodePoint(0) === ci || this.peekCodePoint(0) === tl) ? (this.consumeCodePoint(), { type: 22, value: A.value }) : (this.consumeBadUrlRemnants(), ku);
      }
      for (; ; ) {
        var n = this.consumeCodePoint();
        if (n === ci || n === tl)
          return { type: 22, value: Gr.apply(void 0, t) };
        if (Qu(n))
          return this.consumeWhiteSpace(), this.peekCodePoint(0) === ci || this.peekCodePoint(0) === tl ? (this.consumeCodePoint(), { type: 22, value: Gr.apply(void 0, t) }) : (this.consumeBadUrlRemnants(), ku);
        if (n === xu || n === Su || n === Uu || oL(n))
          return this.consumeBadUrlRemnants(), ku;
        if (n === ml)
          if (is(n, this.peekCodePoint(0)))
            t.push(this.consumeEscapedCodePoint());
          else
            return this.consumeBadUrlRemnants(), ku;
        else
          t.push(n);
      }
    }, r.prototype.consumeWhiteSpace = function() {
      for (; Qu(this.peekCodePoint(0)); )
        this.consumeCodePoint();
    }, r.prototype.consumeBadUrlRemnants = function() {
      for (; ; ) {
        var t = this.consumeCodePoint();
        if (t === tl || t === ci)
          return;
        is(t, this.peekCodePoint(0)) && this.consumeEscapedCodePoint();
      }
    }, r.prototype.consumeStringSlice = function(t) {
      for (var e = 5e4, A = ""; t > 0; ) {
        var n = Math.min(e, t);
        A += Gr.apply(void 0, this._value.splice(0, n)), t -= n;
      }
      return this._value.shift(), A;
    }, r.prototype.consumeStringToken = function(t) {
      var e = "", A = 0;
      do {
        var n = this._value[A];
        if (n === ci || n === void 0 || n === t)
          return e += this.consumeStringSlice(A), { type: 0, value: e };
        if (n === dc)
          return this._value.splice(0, A), yL;
        if (n === ml) {
          var a = this._value[A + 1];
          a !== ci && a !== void 0 && (a === dc ? (e += this.consumeStringSlice(A), A = -1, this._value.shift()) : is(n, a) && (e += this.consumeStringSlice(A), e += Gr(this.consumeEscapedCodePoint()), A = -1));
        }
        A++;
      } while (!0);
    }, r.prototype.consumeNumber = function() {
      var t = [], e = Ql, A = this.peekCodePoint(0);
      for ((A === Ns || A === aa) && t.push(this.consumeCodePoint()); Rn(this.peekCodePoint(0)); )
        t.push(this.consumeCodePoint());
      A = this.peekCodePoint(0);
      var n = this.peekCodePoint(1);
      if (A === Sl && Rn(n))
        for (t.push(this.consumeCodePoint(), this.consumeCodePoint()), e = im; Rn(this.peekCodePoint(0)); )
          t.push(this.consumeCodePoint());
      A = this.peekCodePoint(0), n = this.peekCodePoint(1);
      var a = this.peekCodePoint(2);
      if ((A === G5 || A === j5) && ((n === Ns || n === aa) && Rn(a) || Rn(n)))
        for (t.push(this.consumeCodePoint(), this.consumeCodePoint()), e = im; Rn(this.peekCodePoint(0)); )
          t.push(this.consumeCodePoint());
      return [lL(t), e];
    }, r.prototype.consumeNumericToken = function() {
      var t = this.consumeNumber(), e = t[0], A = t[1], n = this.peekCodePoint(0), a = this.peekCodePoint(1), s = this.peekCodePoint(2);
      if (Du(n, a, s)) {
        var i = this.consumeName();
        return { type: 15, number: e, flags: A, unit: i };
      }
      return n === Qk ? (this.consumeCodePoint(), { type: 16, number: e, flags: A }) : { type: 17, number: e, flags: A };
    }, r.prototype.consumeEscapedCodePoint = function() {
      var t = this.consumeCodePoint();
      if (ho(t)) {
        for (var e = Gr(t); ho(this.peekCodePoint(0)) && e.length < 6; )
          e += Gr(this.consumeCodePoint());
        Qu(this.peekCodePoint(0)) && this.consumeCodePoint();
        var A = parseInt(e, 16);
        return A === 0 || rL(A) || A > 1114111 ? lm : A;
      }
      return t === ci ? lm : t;
    }, r.prototype.consumeName = function() {
      for (var t = ""; ; ) {
        var e = this.consumeCodePoint();
        if (um(e))
          t += Gr(e);
        else if (is(e, this.peekCodePoint(0)))
          t += Gr(this.consumeEscapedCodePoint());
        else
          return this.reconsumeCodePoint(e), t;
      }
    }, r;
  })()
), z5 = (
  /** @class */
  (function() {
    function r(t) {
      this._tokens = t;
    }
    return r.create = function(t) {
      var e = new $5();
      return e.write(t), new r(e.read());
    }, r.parseValue = function(t) {
      return r.create(t).parseComponentValue();
    }, r.parseValues = function(t) {
      return r.create(t).parseComponentValues();
    }, r.prototype.parseComponentValue = function() {
      for (var t = this.consumeToken(); t.type === 31; )
        t = this.consumeToken();
      if (t.type === 32)
        throw new SyntaxError("Error parsing CSS component value, unexpected EOF");
      this.reconsumeToken(t);
      var e = this.consumeComponentValue();
      do
        t = this.consumeToken();
      while (t.type === 31);
      if (t.type === 32)
        return e;
      throw new SyntaxError("Error parsing CSS component value, multiple values found when expecting only one");
    }, r.prototype.parseComponentValues = function() {
      for (var t = []; ; ) {
        var e = this.consumeComponentValue();
        if (e.type === 32)
          return t;
        t.push(e), t.push();
      }
    }, r.prototype.consumeComponentValue = function() {
      var t = this.consumeToken();
      switch (t.type) {
        case 11:
        case 28:
        case 2:
          return this.consumeSimpleBlock(t.type);
        case 19:
          return this.consumeFunction(t);
      }
      return t;
    }, r.prototype.consumeSimpleBlock = function(t) {
      for (var e = { type: t, values: [] }, A = this.consumeToken(); ; ) {
        if (A.type === 32 || QL(A, t))
          return e;
        this.reconsumeToken(A), e.values.push(this.consumeComponentValue()), A = this.consumeToken();
      }
    }, r.prototype.consumeFunction = function(t) {
      for (var e = {
        name: t.value,
        values: [],
        type: 18
        /* FUNCTION */
      }; ; ) {
        var A = this.consumeToken();
        if (A.type === 32 || A.type === 3)
          return e;
        this.reconsumeToken(A), e.values.push(this.consumeComponentValue());
      }
    }, r.prototype.consumeToken = function() {
      var t = this._tokens.shift();
      return typeof t > "u" ? Cp : t;
    }, r.prototype.reconsumeToken = function(t) {
      this._tokens.unshift(t);
    }, r;
  })()
), Dl = function(r) {
  return r.type === 15;
}, Lo = function(r) {
  return r.type === 17;
}, sr = function(r) {
  return r.type === 20;
}, TL = function(r) {
  return r.type === 0;
}, Ep = function(r, t) {
  return sr(r) && r.value === t;
}, X5 = function(r) {
  return r.type !== 31;
}, Do = function(r) {
  return r.type !== 31 && r.type !== 4;
}, gi = function(r) {
  var t = [], e = [];
  return r.forEach(function(A) {
    if (A.type === 4) {
      if (e.length === 0)
        throw new Error("Error parsing function args, zero tokens for arg");
      t.push(e), e = [];
      return;
    }
    A.type !== 31 && e.push(A);
  }), e.length && t.push(e), t;
}, QL = function(r, t) {
  return t === 11 && r.type === 12 || t === 28 && r.type === 29 ? !0 : t === 2 && r.type === 3;
}, ps = function(r) {
  return r.type === 17 || r.type === 15;
}, en = function(r) {
  return r.type === 16 || ps(r);
}, J5 = function(r) {
  return r.length > 1 ? [r[0], r[1]] : [r[0]];
}, Fn = {
  type: 17,
  number: 0,
  flags: Ql
}, Av = {
  type: 16,
  number: 50,
  flags: Ql
}, us = {
  type: 16,
  number: 100,
  flags: Ql
}, hl = function(r, t, e) {
  var A = r[0], n = r[1];
  return [dr(A, t), dr(typeof n < "u" ? n : A, e)];
}, dr = function(r, t) {
  if (r.type === 16)
    return r.number / 100 * t;
  if (Dl(r))
    switch (r.unit) {
      case "rem":
      case "em":
        return 16 * r.number;
      // TODO use correct font-size
      case "px":
      default:
        return r.number;
    }
  return r.number;
}, Z5 = "deg", eb = "grad", tb = "rad", Ab = "turn", Qc = {
  name: "angle",
  parse: function(r, t) {
    if (t.type === 15)
      switch (t.unit) {
        case Z5:
          return Math.PI * t.number / 180;
        case eb:
          return Math.PI / 200 * t.number;
        case tb:
          return t.number;
        case Ab:
          return Math.PI * 2 * t.number;
      }
    throw new Error("Unsupported angle type");
  }
}, rb = function(r) {
  return r.type === 15 && (r.unit === Z5 || r.unit === eb || r.unit === tb || r.unit === Ab);
}, nb = function(r) {
  var t = r.filter(sr).map(function(e) {
    return e.value;
  }).join(" ");
  switch (t) {
    case "to bottom right":
    case "to right bottom":
    case "left top":
    case "top left":
      return [Fn, Fn];
    case "to top":
    case "bottom":
      return La(0);
    case "to bottom left":
    case "to left bottom":
    case "right top":
    case "top right":
      return [Fn, us];
    case "to right":
    case "left":
      return La(90);
    case "to top left":
    case "to left top":
    case "right bottom":
    case "bottom right":
      return [us, us];
    case "to bottom":
    case "top":
      return La(180);
    case "to top right":
    case "to right top":
    case "left bottom":
    case "bottom left":
      return [us, Fn];
    case "to left":
    case "right":
      return La(270);
  }
  return 0;
}, La = function(r) {
  return Math.PI * r / 180;
}, hs = {
  name: "color",
  parse: function(r, t) {
    if (t.type === 18) {
      var e = DL[t.name];
      if (typeof e > "u")
        throw new Error('Attempting to parse an unsupported color function "' + t.name + '"');
      return e(r, t.values);
    }
    if (t.type === 5) {
      if (t.value.length === 3) {
        var A = t.value.substring(0, 1), n = t.value.substring(1, 2), a = t.value.substring(2, 3);
        return cs(parseInt(A + A, 16), parseInt(n + n, 16), parseInt(a + a, 16), 1);
      }
      if (t.value.length === 4) {
        var A = t.value.substring(0, 1), n = t.value.substring(1, 2), a = t.value.substring(2, 3), s = t.value.substring(3, 4);
        return cs(parseInt(A + A, 16), parseInt(n + n, 16), parseInt(a + a, 16), parseInt(s + s, 16) / 255);
      }
      if (t.value.length === 6) {
        var A = t.value.substring(0, 2), n = t.value.substring(2, 4), a = t.value.substring(4, 6);
        return cs(parseInt(A, 16), parseInt(n, 16), parseInt(a, 16), 1);
      }
      if (t.value.length === 8) {
        var A = t.value.substring(0, 2), n = t.value.substring(2, 4), a = t.value.substring(4, 6), s = t.value.substring(6, 8);
        return cs(parseInt(A, 16), parseInt(n, 16), parseInt(a, 16), parseInt(s, 16) / 255);
      }
    }
    if (t.type === 20) {
      var i = Ii[t.value.toUpperCase()];
      if (typeof i < "u")
        return i;
    }
    return Ii.TRANSPARENT;
  }
}, ds = function(r) {
  return (255 & r) === 0;
}, fn = function(r) {
  var t = 255 & r, e = 255 & r >> 8, A = 255 & r >> 16, n = 255 & r >> 24;
  return t < 255 ? "rgba(" + n + "," + A + "," + e + "," + t / 255 + ")" : "rgb(" + n + "," + A + "," + e + ")";
}, cs = function(r, t, e, A) {
  return (r << 24 | t << 16 | e << 8 | Math.round(A * 255) << 0) >>> 0;
}, cm = function(r, t) {
  if (r.type === 17)
    return r.number;
  if (r.type === 16) {
    var e = t === 3 ? 1 : 255;
    return t === 3 ? r.number / 100 * e : Math.round(r.number / 100 * e);
  }
  return 0;
}, fm = function(r, t) {
  var e = t.filter(Do);
  if (e.length === 3) {
    var A = e.map(cm), n = A[0], a = A[1], s = A[2];
    return cs(n, a, s, 1);
  }
  if (e.length === 4) {
    var i = e.map(cm), n = i[0], a = i[1], s = i[2], o = i[3];
    return cs(n, a, s, o);
  }
  return 0;
};
function $f(r, t, e) {
  return e < 0 && (e += 1), e >= 1 && (e -= 1), e < 1 / 6 ? (t - r) * e * 6 + r : e < 1 / 2 ? t : e < 2 / 3 ? (t - r) * 6 * (2 / 3 - e) + r : r;
}
var hm = function(r, t) {
  var e = t.filter(Do), A = e[0], n = e[1], a = e[2], s = e[3], i = (A.type === 17 ? La(A.number) : Qc.parse(r, A)) / (Math.PI * 2), o = en(n) ? n.number / 100 : 0, l = en(a) ? a.number / 100 : 0, u = typeof s < "u" && en(s) ? dr(s, 1) : 1;
  if (o === 0)
    return cs(l * 255, l * 255, l * 255, 1);
  var h = l <= 0.5 ? l * (o + 1) : l + o - l * o, g = l * 2 - h, c = $f(g, h, i + 1 / 3), p = $f(g, h, i), m = $f(g, h, i - 1 / 3);
  return cs(c * 255, p * 255, m * 255, u);
}, DL = {
  hsl: hm,
  hsla: hm,
  rgb: fm,
  rgba: fm
}, wl = function(r, t) {
  return hs.parse(r, z5.create(t).parseComponentValue());
}, Ii = {
  ALICEBLUE: 4042850303,
  ANTIQUEWHITE: 4209760255,
  AQUA: 16777215,
  AQUAMARINE: 2147472639,
  AZURE: 4043309055,
  BEIGE: 4126530815,
  BISQUE: 4293182719,
  BLACK: 255,
  BLANCHEDALMOND: 4293643775,
  BLUE: 65535,
  BLUEVIOLET: 2318131967,
  BROWN: 2771004159,
  BURLYWOOD: 3736635391,
  CADETBLUE: 1604231423,
  CHARTREUSE: 2147418367,
  CHOCOLATE: 3530104575,
  CORAL: 4286533887,
  CORNFLOWERBLUE: 1687547391,
  CORNSILK: 4294499583,
  CRIMSON: 3692313855,
  CYAN: 16777215,
  DARKBLUE: 35839,
  DARKCYAN: 9145343,
  DARKGOLDENROD: 3095837695,
  DARKGRAY: 2846468607,
  DARKGREEN: 6553855,
  DARKGREY: 2846468607,
  DARKKHAKI: 3182914559,
  DARKMAGENTA: 2332068863,
  DARKOLIVEGREEN: 1433087999,
  DARKORANGE: 4287365375,
  DARKORCHID: 2570243327,
  DARKRED: 2332033279,
  DARKSALMON: 3918953215,
  DARKSEAGREEN: 2411499519,
  DARKSLATEBLUE: 1211993087,
  DARKSLATEGRAY: 793726975,
  DARKSLATEGREY: 793726975,
  DARKTURQUOISE: 13554175,
  DARKVIOLET: 2483082239,
  DEEPPINK: 4279538687,
  DEEPSKYBLUE: 12582911,
  DIMGRAY: 1768516095,
  DIMGREY: 1768516095,
  DODGERBLUE: 512819199,
  FIREBRICK: 2988581631,
  FLORALWHITE: 4294635775,
  FORESTGREEN: 579543807,
  FUCHSIA: 4278255615,
  GAINSBORO: 3705462015,
  GHOSTWHITE: 4177068031,
  GOLD: 4292280575,
  GOLDENROD: 3668254975,
  GRAY: 2155905279,
  GREEN: 8388863,
  GREENYELLOW: 2919182335,
  GREY: 2155905279,
  HONEYDEW: 4043305215,
  HOTPINK: 4285117695,
  INDIANRED: 3445382399,
  INDIGO: 1258324735,
  IVORY: 4294963455,
  KHAKI: 4041641215,
  LAVENDER: 3873897215,
  LAVENDERBLUSH: 4293981695,
  LAWNGREEN: 2096890111,
  LEMONCHIFFON: 4294626815,
  LIGHTBLUE: 2916673279,
  LIGHTCORAL: 4034953471,
  LIGHTCYAN: 3774873599,
  LIGHTGOLDENRODYELLOW: 4210742015,
  LIGHTGRAY: 3553874943,
  LIGHTGREEN: 2431553791,
  LIGHTGREY: 3553874943,
  LIGHTPINK: 4290167295,
  LIGHTSALMON: 4288707327,
  LIGHTSEAGREEN: 548580095,
  LIGHTSKYBLUE: 2278488831,
  LIGHTSLATEGRAY: 2005441023,
  LIGHTSLATEGREY: 2005441023,
  LIGHTSTEELBLUE: 2965692159,
  LIGHTYELLOW: 4294959359,
  LIME: 16711935,
  LIMEGREEN: 852308735,
  LINEN: 4210091775,
  MAGENTA: 4278255615,
  MAROON: 2147483903,
  MEDIUMAQUAMARINE: 1724754687,
  MEDIUMBLUE: 52735,
  MEDIUMORCHID: 3126187007,
  MEDIUMPURPLE: 2473647103,
  MEDIUMSEAGREEN: 1018393087,
  MEDIUMSLATEBLUE: 2070474495,
  MEDIUMSPRINGGREEN: 16423679,
  MEDIUMTURQUOISE: 1221709055,
  MEDIUMVIOLETRED: 3340076543,
  MIDNIGHTBLUE: 421097727,
  MINTCREAM: 4127193855,
  MISTYROSE: 4293190143,
  MOCCASIN: 4293178879,
  NAVAJOWHITE: 4292783615,
  NAVY: 33023,
  OLDLACE: 4260751103,
  OLIVE: 2155872511,
  OLIVEDRAB: 1804477439,
  ORANGE: 4289003775,
  ORANGERED: 4282712319,
  ORCHID: 3664828159,
  PALEGOLDENROD: 4008225535,
  PALEGREEN: 2566625535,
  PALETURQUOISE: 2951671551,
  PALEVIOLETRED: 3681588223,
  PAPAYAWHIP: 4293907967,
  PEACHPUFF: 4292524543,
  PERU: 3448061951,
  PINK: 4290825215,
  PLUM: 3718307327,
  POWDERBLUE: 2967529215,
  PURPLE: 2147516671,
  REBECCAPURPLE: 1714657791,
  RED: 4278190335,
  ROSYBROWN: 3163525119,
  ROYALBLUE: 1097458175,
  SADDLEBROWN: 2336560127,
  SALMON: 4202722047,
  SANDYBROWN: 4104413439,
  SEAGREEN: 780883967,
  SEASHELL: 4294307583,
  SIENNA: 2689740287,
  SILVER: 3233857791,
  SKYBLUE: 2278484991,
  SLATEBLUE: 1784335871,
  SLATEGRAY: 1887473919,
  SLATEGREY: 1887473919,
  SNOW: 4294638335,
  SPRINGGREEN: 16744447,
  STEELBLUE: 1182971135,
  TAN: 3535047935,
  TEAL: 8421631,
  THISTLE: 3636451583,
  TOMATO: 4284696575,
  TRANSPARENT: 0,
  TURQUOISE: 1088475391,
  VIOLET: 4001558271,
  WHEAT: 4125012991,
  WHITE: 4294967295,
  WHITESMOKE: 4126537215,
  YELLOW: 4294902015,
  YELLOWGREEN: 2597139199
}, kL = {
  name: "background-clip",
  initialValue: "border-box",
  prefix: !1,
  type: 1,
  parse: function(r, t) {
    return t.map(function(e) {
      if (sr(e))
        switch (e.value) {
          case "padding-box":
            return 1;
          case "content-box":
            return 2;
        }
      return 0;
    });
  }
}, LL = {
  name: "background-color",
  initialValue: "transparent",
  prefix: !1,
  type: 3,
  format: "color"
}, Dc = function(r, t) {
  var e = hs.parse(r, t[0]), A = t[1];
  return A && en(A) ? { color: e, stop: A } : { color: e, stop: null };
}, dm = function(r, t) {
  var e = r[0], A = r[r.length - 1];
  e.stop === null && (e.stop = Fn), A.stop === null && (A.stop = us);
  for (var n = [], a = 0, s = 0; s < r.length; s++) {
    var i = r[s].stop;
    if (i !== null) {
      var o = dr(i, t);
      o > a ? n.push(o) : n.push(a), a = o;
    } else
      n.push(null);
  }
  for (var l = null, s = 0; s < n.length; s++) {
    var u = n[s];
    if (u === null)
      l === null && (l = s);
    else if (l !== null) {
      for (var h = s - l, g = n[l - 1], c = (u - g) / (h + 1), p = 1; p <= h; p++)
        n[l + p - 1] = c * p;
      l = null;
    }
  }
  return r.map(function(m, y) {
    var w = m.color;
    return { color: w, stop: Math.max(Math.min(1, n[y] / t), 0) };
  });
}, IL = function(r, t, e) {
  var A = t / 2, n = e / 2, a = dr(r[0], t) - A, s = n - dr(r[1], e);
  return (Math.atan2(s, a) + Math.PI * 2) % (Math.PI * 2);
}, _L = function(r, t, e) {
  var A = typeof r == "number" ? r : IL(r, t, e), n = Math.abs(t * Math.sin(A)) + Math.abs(e * Math.cos(A)), a = t / 2, s = e / 2, i = n / 2, o = Math.sin(A - Math.PI / 2) * i, l = Math.cos(A - Math.PI / 2) * i;
  return [n, a - l, a + l, s - o, s + o];
}, Ya = function(r, t) {
  return Math.sqrt(r * r + t * t);
}, gm = function(r, t, e, A, n) {
  var a = [
    [0, 0],
    [0, t],
    [r, 0],
    [r, t]
  ];
  return a.reduce(function(s, i) {
    var o = i[0], l = i[1], u = Ya(e - o, A - l);
    return (n ? u < s.optimumDistance : u > s.optimumDistance) ? {
      optimumCorner: i,
      optimumDistance: u
    } : s;
  }, {
    optimumDistance: n ? 1 / 0 : -1 / 0,
    optimumCorner: null
  }).optimumCorner;
}, NL = function(r, t, e, A, n) {
  var a = 0, s = 0;
  switch (r.size) {
    case 0:
      r.shape === 0 ? a = s = Math.min(Math.abs(t), Math.abs(t - A), Math.abs(e), Math.abs(e - n)) : r.shape === 1 && (a = Math.min(Math.abs(t), Math.abs(t - A)), s = Math.min(Math.abs(e), Math.abs(e - n)));
      break;
    case 2:
      if (r.shape === 0)
        a = s = Math.min(Ya(t, e), Ya(t, e - n), Ya(t - A, e), Ya(t - A, e - n));
      else if (r.shape === 1) {
        var i = Math.min(Math.abs(e), Math.abs(e - n)) / Math.min(Math.abs(t), Math.abs(t - A)), o = gm(A, n, t, e, !0), l = o[0], u = o[1];
        a = Ya(l - t, (u - e) / i), s = i * a;
      }
      break;
    case 1:
      r.shape === 0 ? a = s = Math.max(Math.abs(t), Math.abs(t - A), Math.abs(e), Math.abs(e - n)) : r.shape === 1 && (a = Math.max(Math.abs(t), Math.abs(t - A)), s = Math.max(Math.abs(e), Math.abs(e - n)));
      break;
    case 3:
      if (r.shape === 0)
        a = s = Math.max(Ya(t, e), Ya(t, e - n), Ya(t - A, e), Ya(t - A, e - n));
      else if (r.shape === 1) {
        var i = Math.max(Math.abs(e), Math.abs(e - n)) / Math.max(Math.abs(t), Math.abs(t - A)), h = gm(A, n, t, e, !1), l = h[0], u = h[1];
        a = Ya(l - t, (u - e) / i), s = i * a;
      }
      break;
  }
  return Array.isArray(r.size) && (a = dr(r.size[0], A), s = r.size.length === 2 ? dr(r.size[1], n) : a), [a, s];
}, ML = function(r, t) {
  var e = La(180), A = [];
  return gi(t).forEach(function(n, a) {
    if (a === 0) {
      var s = n[0];
      if (s.type === 20 && s.value === "to") {
        e = nb(n);
        return;
      } else if (rb(s)) {
        e = Qc.parse(r, s);
        return;
      }
    }
    var i = Dc(r, n);
    A.push(i);
  }), {
    angle: e,
    stops: A,
    type: 1
    /* LINEAR_GRADIENT */
  };
}, Lu = function(r, t) {
  var e = La(180), A = [];
  return gi(t).forEach(function(n, a) {
    if (a === 0) {
      var s = n[0];
      if (s.type === 20 && ["top", "left", "right", "bottom"].indexOf(s.value) !== -1) {
        e = nb(n);
        return;
      } else if (rb(s)) {
        e = (Qc.parse(r, s) + La(270)) % La(360);
        return;
      }
    }
    var i = Dc(r, n);
    A.push(i);
  }), {
    angle: e,
    stops: A,
    type: 1
    /* LINEAR_GRADIENT */
  };
}, OL = function(r, t) {
  var e = La(180), A = [], n = 1, a = 0, s = 3, i = [];
  return gi(t).forEach(function(o, l) {
    var u = o[0];
    if (l === 0) {
      if (sr(u) && u.value === "linear") {
        n = 1;
        return;
      } else if (sr(u) && u.value === "radial") {
        n = 2;
        return;
      }
    }
    if (u.type === 18) {
      if (u.name === "from") {
        var h = hs.parse(r, u.values[0]);
        A.push({ stop: Fn, color: h });
      } else if (u.name === "to") {
        var h = hs.parse(r, u.values[0]);
        A.push({ stop: us, color: h });
      } else if (u.name === "color-stop") {
        var g = u.values.filter(Do);
        if (g.length === 2) {
          var h = hs.parse(r, g[1]), c = g[0];
          Lo(c) && A.push({
            stop: { type: 16, number: c.number * 100, flags: c.flags },
            color: h
          });
        }
      }
    }
  }), n === 1 ? {
    angle: (e + La(180)) % La(360),
    stops: A,
    type: n
  } : { size: s, shape: a, stops: A, position: i, type: n };
}, ab = "closest-side", ib = "farthest-side", sb = "closest-corner", ob = "farthest-corner", lb = "circle", ub = "ellipse", cb = "cover", fb = "contain", RL = function(r, t) {
  var e = 0, A = 3, n = [], a = [];
  return gi(t).forEach(function(s, i) {
    var o = !0;
    if (i === 0) {
      var l = !1;
      o = s.reduce(function(h, g) {
        if (l)
          if (sr(g))
            switch (g.value) {
              case "center":
                return a.push(Av), h;
              case "top":
              case "left":
                return a.push(Fn), h;
              case "right":
              case "bottom":
                return a.push(us), h;
            }
          else (en(g) || ps(g)) && a.push(g);
        else if (sr(g))
          switch (g.value) {
            case lb:
              return e = 0, !1;
            case ub:
              return e = 1, !1;
            case "at":
              return l = !0, !1;
            case ab:
              return A = 0, !1;
            case cb:
            case ib:
              return A = 1, !1;
            case fb:
            case sb:
              return A = 2, !1;
            case ob:
              return A = 3, !1;
          }
        else if (ps(g) || en(g))
          return Array.isArray(A) || (A = []), A.push(g), !1;
        return h;
      }, o);
    }
    if (o) {
      var u = Dc(r, s);
      n.push(u);
    }
  }), {
    size: A,
    shape: e,
    stops: n,
    position: a,
    type: 2
    /* RADIAL_GRADIENT */
  };
}, Iu = function(r, t) {
  var e = 0, A = 3, n = [], a = [];
  return gi(t).forEach(function(s, i) {
    var o = !0;
    if (i === 0 ? o = s.reduce(function(u, h) {
      if (sr(h))
        switch (h.value) {
          case "center":
            return a.push(Av), !1;
          case "top":
          case "left":
            return a.push(Fn), !1;
          case "right":
          case "bottom":
            return a.push(us), !1;
        }
      else if (en(h) || ps(h))
        return a.push(h), !1;
      return u;
    }, o) : i === 1 && (o = s.reduce(function(u, h) {
      if (sr(h))
        switch (h.value) {
          case lb:
            return e = 0, !1;
          case ub:
            return e = 1, !1;
          case fb:
          case ab:
            return A = 0, !1;
          case ib:
            return A = 1, !1;
          case sb:
            return A = 2, !1;
          case cb:
          case ob:
            return A = 3, !1;
        }
      else if (ps(h) || en(h))
        return Array.isArray(A) || (A = []), A.push(h), !1;
      return u;
    }, o)), o) {
      var l = Dc(r, s);
      n.push(l);
    }
  }), {
    size: A,
    shape: e,
    stops: n,
    position: a,
    type: 2
    /* RADIAL_GRADIENT */
  };
}, HL = function(r) {
  return r.type === 1;
}, PL = function(r) {
  return r.type === 2;
}, rv = {
  name: "image",
  parse: function(r, t) {
    if (t.type === 22) {
      var e = {
        url: t.value,
        type: 0
        /* URL */
      };
      return r.cache.addImage(t.value), e;
    }
    if (t.type === 18) {
      var A = hb[t.name];
      if (typeof A > "u")
        throw new Error('Attempting to parse an unsupported image function "' + t.name + '"');
      return A(r, t.values);
    }
    throw new Error("Unsupported image type " + t.type);
  }
};
function KL(r) {
  return !(r.type === 20 && r.value === "none") && (r.type !== 18 || !!hb[r.name]);
}
var hb = {
  "linear-gradient": ML,
  "-moz-linear-gradient": Lu,
  "-ms-linear-gradient": Lu,
  "-o-linear-gradient": Lu,
  "-webkit-linear-gradient": Lu,
  "radial-gradient": RL,
  "-moz-radial-gradient": Iu,
  "-ms-radial-gradient": Iu,
  "-o-radial-gradient": Iu,
  "-webkit-radial-gradient": Iu,
  "-webkit-gradient": OL
}, VL = {
  name: "background-image",
  initialValue: "none",
  type: 1,
  prefix: !1,
  parse: function(r, t) {
    if (t.length === 0)
      return [];
    var e = t[0];
    return e.type === 20 && e.value === "none" ? [] : t.filter(function(A) {
      return Do(A) && KL(A);
    }).map(function(A) {
      return rv.parse(r, A);
    });
  }
}, qL = {
  name: "background-origin",
  initialValue: "border-box",
  prefix: !1,
  type: 1,
  parse: function(r, t) {
    return t.map(function(e) {
      if (sr(e))
        switch (e.value) {
          case "padding-box":
            return 1;
          case "content-box":
            return 2;
        }
      return 0;
    });
  }
}, jL = {
  name: "background-position",
  initialValue: "0% 0%",
  type: 1,
  prefix: !1,
  parse: function(r, t) {
    return gi(t).map(function(e) {
      return e.filter(en);
    }).map(J5);
  }
}, WL = {
  name: "background-repeat",
  initialValue: "repeat",
  prefix: !1,
  type: 1,
  parse: function(r, t) {
    return gi(t).map(function(e) {
      return e.filter(sr).map(function(A) {
        return A.value;
      }).join(" ");
    }).map(GL);
  }
}, GL = function(r) {
  switch (r) {
    case "no-repeat":
      return 1;
    case "repeat-x":
    case "repeat no-repeat":
      return 2;
    case "repeat-y":
    case "no-repeat repeat":
      return 3;
    case "repeat":
    default:
      return 0;
  }
}, Uo;
(function(r) {
  r.AUTO = "auto", r.CONTAIN = "contain", r.COVER = "cover";
})(Uo || (Uo = {}));
var YL = {
  name: "background-size",
  initialValue: "0",
  prefix: !1,
  type: 1,
  parse: function(r, t) {
    return gi(t).map(function(e) {
      return e.filter($L);
    });
  }
}, $L = function(r) {
  return sr(r) || en(r);
}, kc = function(r) {
  return {
    name: "border-" + r + "-color",
    initialValue: "transparent",
    prefix: !1,
    type: 3,
    format: "color"
  };
}, zL = kc("top"), XL = kc("right"), JL = kc("bottom"), ZL = kc("left"), Lc = function(r) {
  return {
    name: "border-radius-" + r,
    initialValue: "0 0",
    prefix: !1,
    type: 1,
    parse: function(t, e) {
      return J5(e.filter(en));
    }
  };
}, eI = Lc("top-left"), tI = Lc("top-right"), AI = Lc("bottom-right"), rI = Lc("bottom-left"), Ic = function(r) {
  return {
    name: "border-" + r + "-style",
    initialValue: "solid",
    prefix: !1,
    type: 2,
    parse: function(t, e) {
      switch (e) {
        case "none":
          return 0;
        case "dashed":
          return 2;
        case "dotted":
          return 3;
        case "double":
          return 4;
      }
      return 1;
    }
  };
}, nI = Ic("top"), aI = Ic("right"), iI = Ic("bottom"), sI = Ic("left"), _c = function(r) {
  return {
    name: "border-" + r + "-width",
    initialValue: "0",
    type: 0,
    prefix: !1,
    parse: function(t, e) {
      return Dl(e) ? e.number : 0;
    }
  };
}, oI = _c("top"), lI = _c("right"), uI = _c("bottom"), cI = _c("left"), fI = {
  name: "color",
  initialValue: "transparent",
  prefix: !1,
  type: 3,
  format: "color"
}, hI = {
  name: "direction",
  initialValue: "ltr",
  prefix: !1,
  type: 2,
  parse: function(r, t) {
    switch (t) {
      case "rtl":
        return 1;
      case "ltr":
      default:
        return 0;
    }
  }
}, dI = {
  name: "display",
  initialValue: "inline-block",
  prefix: !1,
  type: 1,
  parse: function(r, t) {
    return t.filter(sr).reduce(
      function(e, A) {
        return e | gI(A.value);
      },
      0
      /* NONE */
    );
  }
}, gI = function(r) {
  switch (r) {
    case "block":
    case "-webkit-box":
      return 2;
    case "inline":
      return 4;
    case "run-in":
      return 8;
    case "flow":
      return 16;
    case "flow-root":
      return 32;
    case "table":
      return 64;
    case "flex":
    case "-webkit-flex":
      return 128;
    case "grid":
    case "-ms-grid":
      return 256;
    case "ruby":
      return 512;
    case "subgrid":
      return 1024;
    case "list-item":
      return 2048;
    case "table-row-group":
      return 4096;
    case "table-header-group":
      return 8192;
    case "table-footer-group":
      return 16384;
    case "table-row":
      return 32768;
    case "table-cell":
      return 65536;
    case "table-column-group":
      return 131072;
    case "table-column":
      return 262144;
    case "table-caption":
      return 524288;
    case "ruby-base":
      return 1048576;
    case "ruby-text":
      return 2097152;
    case "ruby-base-container":
      return 4194304;
    case "ruby-text-container":
      return 8388608;
    case "contents":
      return 16777216;
    case "inline-block":
      return 33554432;
    case "inline-list-item":
      return 67108864;
    case "inline-table":
      return 134217728;
    case "inline-flex":
      return 268435456;
    case "inline-grid":
      return 536870912;
  }
  return 0;
}, pI = {
  name: "float",
  initialValue: "none",
  prefix: !1,
  type: 2,
  parse: function(r, t) {
    switch (t) {
      case "left":
        return 1;
      case "right":
        return 2;
      case "inline-start":
        return 3;
      case "inline-end":
        return 4;
    }
    return 0;
  }
}, vI = {
  name: "letter-spacing",
  initialValue: "0",
  prefix: !1,
  type: 0,
  parse: function(r, t) {
    return t.type === 20 && t.value === "normal" ? 0 : t.type === 17 || t.type === 15 ? t.number : 0;
  }
}, pc;
(function(r) {
  r.NORMAL = "normal", r.STRICT = "strict";
})(pc || (pc = {}));
var mI = {
  name: "line-break",
  initialValue: "normal",
  prefix: !1,
  type: 2,
  parse: function(r, t) {
    switch (t) {
      case "strict":
        return pc.STRICT;
      case "normal":
      default:
        return pc.NORMAL;
    }
  }
}, wI = {
  name: "line-height",
  initialValue: "normal",
  prefix: !1,
  type: 4
  /* TOKEN_VALUE */
}, pm = function(r, t) {
  return sr(r) && r.value === "normal" ? 1.2 * t : r.type === 17 ? t * r.number : en(r) ? dr(r, t) : t;
}, BI = {
  name: "list-style-image",
  initialValue: "none",
  type: 0,
  prefix: !1,
  parse: function(r, t) {
    return t.type === 20 && t.value === "none" ? null : rv.parse(r, t);
  }
}, yI = {
  name: "list-style-position",
  initialValue: "outside",
  prefix: !1,
  type: 2,
  parse: function(r, t) {
    switch (t) {
      case "inside":
        return 0;
      case "outside":
      default:
        return 1;
    }
  }
}, Fp = {
  name: "list-style-type",
  initialValue: "none",
  prefix: !1,
  type: 2,
  parse: function(r, t) {
    switch (t) {
      case "disc":
        return 0;
      case "circle":
        return 1;
      case "square":
        return 2;
      case "decimal":
        return 3;
      case "cjk-decimal":
        return 4;
      case "decimal-leading-zero":
        return 5;
      case "lower-roman":
        return 6;
      case "upper-roman":
        return 7;
      case "lower-greek":
        return 8;
      case "lower-alpha":
        return 9;
      case "upper-alpha":
        return 10;
      case "arabic-indic":
        return 11;
      case "armenian":
        return 12;
      case "bengali":
        return 13;
      case "cambodian":
        return 14;
      case "cjk-earthly-branch":
        return 15;
      case "cjk-heavenly-stem":
        return 16;
      case "cjk-ideographic":
        return 17;
      case "devanagari":
        return 18;
      case "ethiopic-numeric":
        return 19;
      case "georgian":
        return 20;
      case "gujarati":
        return 21;
      case "gurmukhi":
        return 22;
      case "hebrew":
        return 22;
      case "hiragana":
        return 23;
      case "hiragana-iroha":
        return 24;
      case "japanese-formal":
        return 25;
      case "japanese-informal":
        return 26;
      case "kannada":
        return 27;
      case "katakana":
        return 28;
      case "katakana-iroha":
        return 29;
      case "khmer":
        return 30;
      case "korean-hangul-formal":
        return 31;
      case "korean-hanja-formal":
        return 32;
      case "korean-hanja-informal":
        return 33;
      case "lao":
        return 34;
      case "lower-armenian":
        return 35;
      case "malayalam":
        return 36;
      case "mongolian":
        return 37;
      case "myanmar":
        return 38;
      case "oriya":
        return 39;
      case "persian":
        return 40;
      case "simp-chinese-formal":
        return 41;
      case "simp-chinese-informal":
        return 42;
      case "tamil":
        return 43;
      case "telugu":
        return 44;
      case "thai":
        return 45;
      case "tibetan":
        return 46;
      case "trad-chinese-formal":
        return 47;
      case "trad-chinese-informal":
        return 48;
      case "upper-armenian":
        return 49;
      case "disclosure-open":
        return 50;
      case "disclosure-closed":
        return 51;
      case "none":
      default:
        return -1;
    }
  }
}, Nc = function(r) {
  return {
    name: "margin-" + r,
    initialValue: "0",
    prefix: !1,
    type: 4
    /* TOKEN_VALUE */
  };
}, bI = Nc("top"), CI = Nc("right"), EI = Nc("bottom"), FI = Nc("left"), xI = {
  name: "overflow",
  initialValue: "visible",
  prefix: !1,
  type: 1,
  parse: function(r, t) {
    return t.filter(sr).map(function(e) {
      switch (e.value) {
        case "hidden":
          return 1;
        case "scroll":
          return 2;
        case "clip":
          return 3;
        case "auto":
          return 4;
        case "visible":
        default:
          return 0;
      }
    });
  }
}, SI = {
  name: "overflow-wrap",
  initialValue: "normal",
  prefix: !1,
  type: 2,
  parse: function(r, t) {
    switch (t) {
      case "break-word":
        return "break-word";
      case "normal":
      default:
        return "normal";
    }
  }
}, Mc = function(r) {
  return {
    name: "padding-" + r,
    initialValue: "0",
    prefix: !1,
    type: 3,
    format: "length-percentage"
  };
}, UI = Mc("top"), TI = Mc("right"), QI = Mc("bottom"), DI = Mc("left"), kI = {
  name: "text-align",
  initialValue: "left",
  prefix: !1,
  type: 2,
  parse: function(r, t) {
    switch (t) {
      case "right":
        return 2;
      case "center":
      case "justify":
        return 1;
      case "left":
      default:
        return 0;
    }
  }
}, LI = {
  name: "position",
  initialValue: "static",
  prefix: !1,
  type: 2,
  parse: function(r, t) {
    switch (t) {
      case "relative":
        return 1;
      case "absolute":
        return 2;
      case "fixed":
        return 3;
      case "sticky":
        return 4;
    }
    return 0;
  }
}, II = {
  name: "text-shadow",
  initialValue: "none",
  type: 1,
  prefix: !1,
  parse: function(r, t) {
    return t.length === 1 && Ep(t[0], "none") ? [] : gi(t).map(function(e) {
      for (var A = {
        color: Ii.TRANSPARENT,
        offsetX: Fn,
        offsetY: Fn,
        blur: Fn
      }, n = 0, a = 0; a < e.length; a++) {
        var s = e[a];
        ps(s) ? (n === 0 ? A.offsetX = s : n === 1 ? A.offsetY = s : A.blur = s, n++) : A.color = hs.parse(r, s);
      }
      return A;
    });
  }
}, _I = {
  name: "text-transform",
  initialValue: "none",
  prefix: !1,
  type: 2,
  parse: function(r, t) {
    switch (t) {
      case "uppercase":
        return 2;
      case "lowercase":
        return 1;
      case "capitalize":
        return 3;
    }
    return 0;
  }
}, NI = {
  name: "transform",
  initialValue: "none",
  prefix: !0,
  type: 0,
  parse: function(r, t) {
    if (t.type === 20 && t.value === "none")
      return null;
    if (t.type === 18) {
      var e = RI[t.name];
      if (typeof e > "u")
        throw new Error('Attempting to parse an unsupported transform function "' + t.name + '"');
      return e(t.values);
    }
    return null;
  }
}, MI = function(r) {
  var t = r.filter(function(e) {
    return e.type === 17;
  }).map(function(e) {
    return e.number;
  });
  return t.length === 6 ? t : null;
}, OI = function(r) {
  var t = r.filter(function(o) {
    return o.type === 17;
  }).map(function(o) {
    return o.number;
  }), e = t[0], A = t[1];
  t[2], t[3];
  var n = t[4], a = t[5];
  t[6], t[7], t[8], t[9], t[10], t[11];
  var s = t[12], i = t[13];
  return t[14], t[15], t.length === 16 ? [e, A, n, a, s, i] : null;
}, RI = {
  matrix: MI,
  matrix3d: OI
}, vm = {
  type: 16,
  number: 50,
  flags: Ql
}, HI = [vm, vm], PI = {
  name: "transform-origin",
  initialValue: "50% 50%",
  prefix: !0,
  type: 1,
  parse: function(r, t) {
    var e = t.filter(en);
    return e.length !== 2 ? HI : [e[0], e[1]];
  }
}, KI = {
  name: "visible",
  initialValue: "none",
  prefix: !1,
  type: 2,
  parse: function(r, t) {
    switch (t) {
      case "hidden":
        return 1;
      case "collapse":
        return 2;
      case "visible":
      default:
        return 0;
    }
  }
}, Bl;
(function(r) {
  r.NORMAL = "normal", r.BREAK_ALL = "break-all", r.KEEP_ALL = "keep-all";
})(Bl || (Bl = {}));
var VI = {
  name: "word-break",
  initialValue: "normal",
  prefix: !1,
  type: 2,
  parse: function(r, t) {
    switch (t) {
      case "break-all":
        return Bl.BREAK_ALL;
      case "keep-all":
        return Bl.KEEP_ALL;
      case "normal":
      default:
        return Bl.NORMAL;
    }
  }
}, qI = {
  name: "z-index",
  initialValue: "auto",
  prefix: !1,
  type: 0,
  parse: function(r, t) {
    if (t.type === 20)
      return { auto: !0, order: 0 };
    if (Lo(t))
      return { auto: !1, order: t.number };
    throw new Error("Invalid z-index number parsed");
  }
}, db = {
  name: "time",
  parse: function(r, t) {
    if (t.type === 15)
      switch (t.unit.toLowerCase()) {
        case "s":
          return 1e3 * t.number;
        case "ms":
          return t.number;
      }
    throw new Error("Unsupported time type");
  }
}, jI = {
  name: "opacity",
  initialValue: "1",
  type: 0,
  prefix: !1,
  parse: function(r, t) {
    return Lo(t) ? t.number : 1;
  }
}, WI = {
  name: "text-decoration-color",
  initialValue: "transparent",
  prefix: !1,
  type: 3,
  format: "color"
}, GI = {
  name: "text-decoration-line",
  initialValue: "none",
  prefix: !1,
  type: 1,
  parse: function(r, t) {
    return t.filter(sr).map(function(e) {
      switch (e.value) {
        case "underline":
          return 1;
        case "overline":
          return 2;
        case "line-through":
          return 3;
        case "none":
          return 4;
      }
      return 0;
    }).filter(function(e) {
      return e !== 0;
    });
  }
}, YI = {
  name: "font-family",
  initialValue: "",
  prefix: !1,
  type: 1,
  parse: function(r, t) {
    var e = [], A = [];
    return t.forEach(function(n) {
      switch (n.type) {
        case 20:
        case 0:
          e.push(n.value);
          break;
        case 17:
          e.push(n.number.toString());
          break;
        case 4:
          A.push(e.join(" ")), e.length = 0;
          break;
      }
    }), e.length && A.push(e.join(" ")), A.map(function(n) {
      return n.indexOf(" ") === -1 ? n : "'" + n + "'";
    });
  }
}, $I = {
  name: "font-size",
  initialValue: "0",
  prefix: !1,
  type: 3,
  format: "length"
}, zI = {
  name: "font-weight",
  initialValue: "normal",
  type: 0,
  prefix: !1,
  parse: function(r, t) {
    if (Lo(t))
      return t.number;
    if (sr(t))
      switch (t.value) {
        case "bold":
          return 700;
        case "normal":
        default:
          return 400;
      }
    return 400;
  }
}, XI = {
  name: "font-variant",
  initialValue: "none",
  type: 1,
  prefix: !1,
  parse: function(r, t) {
    return t.filter(sr).map(function(e) {
      return e.value;
    });
  }
}, JI = {
  name: "font-style",
  initialValue: "normal",
  prefix: !1,
  type: 2,
  parse: function(r, t) {
    switch (t) {
      case "oblique":
        return "oblique";
      case "italic":
        return "italic";
      case "normal":
      default:
        return "normal";
    }
  }
}, on = function(r, t) {
  return (r & t) !== 0;
}, ZI = {
  name: "content",
  initialValue: "none",
  type: 1,
  prefix: !1,
  parse: function(r, t) {
    if (t.length === 0)
      return [];
    var e = t[0];
    return e.type === 20 && e.value === "none" ? [] : t;
  }
}, e_ = {
  name: "counter-increment",
  initialValue: "none",
  prefix: !0,
  type: 1,
  parse: function(r, t) {
    if (t.length === 0)
      return null;
    var e = t[0];
    if (e.type === 20 && e.value === "none")
      return null;
    for (var A = [], n = t.filter(X5), a = 0; a < n.length; a++) {
      var s = n[a], i = n[a + 1];
      if (s.type === 20) {
        var o = i && Lo(i) ? i.number : 1;
        A.push({ counter: s.value, increment: o });
      }
    }
    return A;
  }
}, t_ = {
  name: "counter-reset",
  initialValue: "none",
  prefix: !0,
  type: 1,
  parse: function(r, t) {
    if (t.length === 0)
      return [];
    for (var e = [], A = t.filter(X5), n = 0; n < A.length; n++) {
      var a = A[n], s = A[n + 1];
      if (sr(a) && a.value !== "none") {
        var i = s && Lo(s) ? s.number : 0;
        e.push({ counter: a.value, reset: i });
      }
    }
    return e;
  }
}, A_ = {
  name: "duration",
  initialValue: "0s",
  prefix: !1,
  type: 1,
  parse: function(r, t) {
    return t.filter(Dl).map(function(e) {
      return db.parse(r, e);
    });
  }
}, r_ = {
  name: "quotes",
  initialValue: "none",
  prefix: !0,
  type: 1,
  parse: function(r, t) {
    if (t.length === 0)
      return null;
    var e = t[0];
    if (e.type === 20 && e.value === "none")
      return null;
    var A = [], n = t.filter(TL);
    if (n.length % 2 !== 0)
      return null;
    for (var a = 0; a < n.length; a += 2) {
      var s = n[a].value, i = n[a + 1].value;
      A.push({ open: s, close: i });
    }
    return A;
  }
}, mm = function(r, t, e) {
  if (!r)
    return "";
  var A = r[Math.min(t, r.length - 1)];
  return A ? e ? A.open : A.close : "";
}, n_ = {
  name: "box-shadow",
  initialValue: "none",
  type: 1,
  prefix: !1,
  parse: function(r, t) {
    return t.length === 1 && Ep(t[0], "none") ? [] : gi(t).map(function(e) {
      for (var A = {
        color: 255,
        offsetX: Fn,
        offsetY: Fn,
        blur: Fn,
        spread: Fn,
        inset: !1
      }, n = 0, a = 0; a < e.length; a++) {
        var s = e[a];
        Ep(s, "inset") ? A.inset = !0 : ps(s) ? (n === 0 ? A.offsetX = s : n === 1 ? A.offsetY = s : n === 2 ? A.blur = s : A.spread = s, n++) : A.color = hs.parse(r, s);
      }
      return A;
    });
  }
}, a_ = {
  name: "paint-order",
  initialValue: "normal",
  prefix: !1,
  type: 1,
  parse: function(r, t) {
    var e = [
      0,
      1,
      2
      /* MARKERS */
    ], A = [];
    return t.filter(sr).forEach(function(n) {
      switch (n.value) {
        case "stroke":
          A.push(
            1
            /* STROKE */
          );
          break;
        case "fill":
          A.push(
            0
            /* FILL */
          );
          break;
        case "markers":
          A.push(
            2
            /* MARKERS */
          );
          break;
      }
    }), e.forEach(function(n) {
      A.indexOf(n) === -1 && A.push(n);
    }), A;
  }
}, i_ = {
  name: "-webkit-text-stroke-color",
  initialValue: "currentcolor",
  prefix: !1,
  type: 3,
  format: "color"
}, s_ = {
  name: "-webkit-text-stroke-width",
  initialValue: "0",
  type: 0,
  prefix: !1,
  parse: function(r, t) {
    return Dl(t) ? t.number : 0;
  }
}, o_ = (
  /** @class */
  (function() {
    function r(t, e) {
      var A, n;
      this.animationDuration = Rt(t, A_, e.animationDuration), this.backgroundClip = Rt(t, kL, e.backgroundClip), this.backgroundColor = Rt(t, LL, e.backgroundColor), this.backgroundImage = Rt(t, VL, e.backgroundImage), this.backgroundOrigin = Rt(t, qL, e.backgroundOrigin), this.backgroundPosition = Rt(t, jL, e.backgroundPosition), this.backgroundRepeat = Rt(t, WL, e.backgroundRepeat), this.backgroundSize = Rt(t, YL, e.backgroundSize), this.borderTopColor = Rt(t, zL, e.borderTopColor), this.borderRightColor = Rt(t, XL, e.borderRightColor), this.borderBottomColor = Rt(t, JL, e.borderBottomColor), this.borderLeftColor = Rt(t, ZL, e.borderLeftColor), this.borderTopLeftRadius = Rt(t, eI, e.borderTopLeftRadius), this.borderTopRightRadius = Rt(t, tI, e.borderTopRightRadius), this.borderBottomRightRadius = Rt(t, AI, e.borderBottomRightRadius), this.borderBottomLeftRadius = Rt(t, rI, e.borderBottomLeftRadius), this.borderTopStyle = Rt(t, nI, e.borderTopStyle), this.borderRightStyle = Rt(t, aI, e.borderRightStyle), this.borderBottomStyle = Rt(t, iI, e.borderBottomStyle), this.borderLeftStyle = Rt(t, sI, e.borderLeftStyle), this.borderTopWidth = Rt(t, oI, e.borderTopWidth), this.borderRightWidth = Rt(t, lI, e.borderRightWidth), this.borderBottomWidth = Rt(t, uI, e.borderBottomWidth), this.borderLeftWidth = Rt(t, cI, e.borderLeftWidth), this.boxShadow = Rt(t, n_, e.boxShadow), this.color = Rt(t, fI, e.color), this.direction = Rt(t, hI, e.direction), this.display = Rt(t, dI, e.display), this.float = Rt(t, pI, e.cssFloat), this.fontFamily = Rt(t, YI, e.fontFamily), this.fontSize = Rt(t, $I, e.fontSize), this.fontStyle = Rt(t, JI, e.fontStyle), this.fontVariant = Rt(t, XI, e.fontVariant), this.fontWeight = Rt(t, zI, e.fontWeight), this.letterSpacing = Rt(t, vI, e.letterSpacing), this.lineBreak = Rt(t, mI, e.lineBreak), this.lineHeight = Rt(t, wI, e.lineHeight), this.listStyleImage = Rt(t, BI, e.listStyleImage), this.listStylePosition = Rt(t, yI, e.listStylePosition), this.listStyleType = Rt(t, Fp, e.listStyleType), this.marginTop = Rt(t, bI, e.marginTop), this.marginRight = Rt(t, CI, e.marginRight), this.marginBottom = Rt(t, EI, e.marginBottom), this.marginLeft = Rt(t, FI, e.marginLeft), this.opacity = Rt(t, jI, e.opacity);
      var a = Rt(t, xI, e.overflow);
      this.overflowX = a[0], this.overflowY = a[a.length > 1 ? 1 : 0], this.overflowWrap = Rt(t, SI, e.overflowWrap), this.paddingTop = Rt(t, UI, e.paddingTop), this.paddingRight = Rt(t, TI, e.paddingRight), this.paddingBottom = Rt(t, QI, e.paddingBottom), this.paddingLeft = Rt(t, DI, e.paddingLeft), this.paintOrder = Rt(t, a_, e.paintOrder), this.position = Rt(t, LI, e.position), this.textAlign = Rt(t, kI, e.textAlign), this.textDecorationColor = Rt(t, WI, (A = e.textDecorationColor) !== null && A !== void 0 ? A : e.color), this.textDecorationLine = Rt(t, GI, (n = e.textDecorationLine) !== null && n !== void 0 ? n : e.textDecoration), this.textShadow = Rt(t, II, e.textShadow), this.textTransform = Rt(t, _I, e.textTransform), this.transform = Rt(t, NI, e.transform), this.transformOrigin = Rt(t, PI, e.transformOrigin), this.visibility = Rt(t, KI, e.visibility), this.webkitTextStrokeColor = Rt(t, i_, e.webkitTextStrokeColor), this.webkitTextStrokeWidth = Rt(t, s_, e.webkitTextStrokeWidth), this.wordBreak = Rt(t, VI, e.wordBreak), this.zIndex = Rt(t, qI, e.zIndex);
    }
    return r.prototype.isVisible = function() {
      return this.display > 0 && this.opacity > 0 && this.visibility === 0;
    }, r.prototype.isTransparent = function() {
      return ds(this.backgroundColor);
    }, r.prototype.isTransformed = function() {
      return this.transform !== null;
    }, r.prototype.isPositioned = function() {
      return this.position !== 0;
    }, r.prototype.isPositionedWithZIndex = function() {
      return this.isPositioned() && !this.zIndex.auto;
    }, r.prototype.isFloating = function() {
      return this.float !== 0;
    }, r.prototype.isInlineLevel = function() {
      return on(
        this.display,
        4
        /* INLINE */
      ) || on(
        this.display,
        33554432
        /* INLINE_BLOCK */
      ) || on(
        this.display,
        268435456
        /* INLINE_FLEX */
      ) || on(
        this.display,
        536870912
        /* INLINE_GRID */
      ) || on(
        this.display,
        67108864
        /* INLINE_LIST_ITEM */
      ) || on(
        this.display,
        134217728
        /* INLINE_TABLE */
      );
    }, r;
  })()
), l_ = (
  /** @class */
  /* @__PURE__ */ (function() {
    function r(t, e) {
      this.content = Rt(t, ZI, e.content), this.quotes = Rt(t, r_, e.quotes);
    }
    return r;
  })()
), wm = (
  /** @class */
  /* @__PURE__ */ (function() {
    function r(t, e) {
      this.counterIncrement = Rt(t, e_, e.counterIncrement), this.counterReset = Rt(t, t_, e.counterReset);
    }
    return r;
  })()
), Rt = function(r, t, e) {
  var A = new $5(), n = e !== null && typeof e < "u" ? e.toString() : t.initialValue;
  A.write(n);
  var a = new z5(A.read());
  switch (t.type) {
    case 2:
      var s = a.parseComponentValue();
      return t.parse(r, sr(s) ? s.value : t.initialValue);
    case 0:
      return t.parse(r, a.parseComponentValue());
    case 1:
      return t.parse(r, a.parseComponentValues());
    case 4:
      return a.parseComponentValue();
    case 3:
      switch (t.format) {
        case "angle":
          return Qc.parse(r, a.parseComponentValue());
        case "color":
          return hs.parse(r, a.parseComponentValue());
        case "image":
          return rv.parse(r, a.parseComponentValue());
        case "length":
          var i = a.parseComponentValue();
          return ps(i) ? i : Fn;
        case "length-percentage":
          var o = a.parseComponentValue();
          return en(o) ? o : Fn;
        case "time":
          return db.parse(r, a.parseComponentValue());
      }
      break;
  }
}, u_ = "data-html2canvas-debug", c_ = function(r) {
  var t = r.getAttribute(u_);
  switch (t) {
    case "all":
      return 1;
    case "clone":
      return 2;
    case "parse":
      return 3;
    case "render":
      return 4;
    default:
      return 0;
  }
}, xp = function(r, t) {
  var e = c_(r);
  return e === 1 || t === e;
}, pi = (
  /** @class */
  /* @__PURE__ */ (function() {
    function r(t, e) {
      if (this.context = t, this.textNodes = [], this.elements = [], this.flags = 0, xp(
        e,
        3
        /* PARSE */
      ))
        debugger;
      this.styles = new o_(t, window.getComputedStyle(e, null)), Tp(e) && (this.styles.animationDuration.some(function(A) {
        return A > 0;
      }) && (e.style.animationDuration = "0s"), this.styles.transform !== null && (e.style.transform = "none")), this.bounds = Uc(this.context, e), xp(
        e,
        4
        /* RENDER */
      ) && (this.flags |= 16);
    }
    return r;
  })()
), f_ = "AAAAAAAAAAAAEA4AGBkAAFAaAAACAAAAAAAIABAAGAAwADgACAAQAAgAEAAIABAACAAQAAgAEAAIABAACAAQAAgAEAAIABAAQABIAEQATAAIABAACAAQAAgAEAAIABAAVABcAAgAEAAIABAACAAQAGAAaABwAHgAgACIAI4AlgAIABAAmwCjAKgAsAC2AL4AvQDFAMoA0gBPAVYBWgEIAAgACACMANoAYgFkAWwBdAF8AX0BhQGNAZUBlgGeAaMBlQGWAasBswF8AbsBwwF0AcsBYwHTAQgA2wG/AOMBdAF8AekB8QF0AfkB+wHiAHQBfAEIAAMC5gQIAAsCEgIIAAgAFgIeAggAIgIpAggAMQI5AkACygEIAAgASAJQAlgCYAIIAAgACAAKBQoFCgUTBRMFGQUrBSsFCAAIAAgACAAIAAgACAAIAAgACABdAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACABoAmgCrwGvAQgAbgJ2AggAHgEIAAgACADnAXsCCAAIAAgAgwIIAAgACAAIAAgACACKAggAkQKZAggAPADJAAgAoQKkAqwCsgK6AsICCADJAggA0AIIAAgACAAIANYC3gIIAAgACAAIAAgACABAAOYCCAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAkASoB+QIEAAgACAA8AEMCCABCBQgACABJBVAFCAAIAAgACAAIAAgACAAIAAgACABTBVoFCAAIAFoFCABfBWUFCAAIAAgACAAIAAgAbQUIAAgACAAIAAgACABzBXsFfQWFBYoFigWKBZEFigWKBYoFmAWfBaYFrgWxBbkFCAAIAAgACAAIAAgACAAIAAgACAAIAMEFCAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAMgFCADQBQgACAAIAAgACAAIAAgACAAIAAgACAAIAO4CCAAIAAgAiQAIAAgACABAAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAD0AggACAD8AggACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIANYFCAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAMDvwAIAAgAJAIIAAgACAAIAAgACAAIAAgACwMTAwgACAB9BOsEGwMjAwgAKwMyAwsFYgE3A/MEPwMIAEUDTQNRAwgAWQOsAGEDCAAIAAgACAAIAAgACABpAzQFNQU2BTcFOAU5BToFNAU1BTYFNwU4BTkFOgU0BTUFNgU3BTgFOQU6BTQFNQU2BTcFOAU5BToFNAU1BTYFNwU4BTkFOgU0BTUFNgU3BTgFOQU6BTQFNQU2BTcFOAU5BToFNAU1BTYFNwU4BTkFOgU0BTUFNgU3BTgFOQU6BTQFNQU2BTcFOAU5BToFNAU1BTYFNwU4BTkFOgU0BTUFNgU3BTgFOQU6BTQFNQU2BTcFOAU5BToFNAU1BTYFNwU4BTkFOgU0BTUFNgU3BTgFOQU6BTQFNQU2BTcFOAU5BToFNAU1BTYFNwU4BTkFOgU0BTUFNgU3BTgFOQU6BTQFNQU2BTcFOAU5BToFNAU1BTYFNwU4BTkFOgU0BTUFNgU3BTgFOQU6BTQFNQU2BTcFOAU5BToFNAU1BTYFNwU4BTkFOgU0BTUFNgU3BTgFOQU6BTQFNQU2BTcFOAU5BToFNAU1BTYFNwU4BTkFOgU0BTUFNgU3BTgFOQU6BTQFNQU2BTcFOAU5BToFNAU1BTYFNwU4BTkFOgU0BTUFNgU3BTgFOQU6BTQFNQU2BTcFOAU5BToFNAU1BTYFNwU4BTkFOgU0BTUFNgU3BTgFOQU6BTQFNQU2BTcFOAU5BToFNAU1BTYFNwU4BTkFOgU0BTUFNgU3BTgFOQU6BTQFNQU2BTcFOAU5BToFNAU1BTYFNwU4BTkFOgU0BTUFNgU3BTgFOQU6BTQFNQU2BTcFOAU5BToFNAU1BTYFNwU4BTkFOgU0BTUFNgU3BTgFOQU6BTQFNQU2BTcFOAU5BToFNAU1BTYFNwU4BTkFOgU0BTUFNgU3BTgFOQU6BTQFNQU2BTcFOAU5BToFNAU1BTYFNwU4BTkFOgU0BTUFNgU3BTgFOQU6BTQFNQU2BTcFOAU5BToFNAU1BTYFNwU4BTkFIQUoBSwFCAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACABtAwgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACABMAEwACAAIAAgACAAIABgACAAIAAgACAC/AAgACAAyAQgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACACAAIAAwAAgACAAIAAgACAAIAAgACAAIAAAARABIAAgACAAIABQASAAIAAgAIABwAEAAjgCIABsAqAC2AL0AigDQAtwC+IJIQqVAZUBWQqVAZUBlQGVAZUBlQGrC5UBlQGVAZUBlQGVAZUBlQGVAXsKlQGVAbAK6wsrDGUMpQzlDJUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAfAKAAuZA64AtwCJALoC6ADwAAgAuACgA/oEpgO6AqsD+AAIAAgAswMIAAgACAAIAIkAuwP5AfsBwwPLAwgACAAIAAgACADRA9kDCAAIAOED6QMIAAgACAAIAAgACADuA/YDCAAIAP4DyQAIAAgABgQIAAgAXQAOBAgACAAIAAgACAAIABMECAAIAAgACAAIAAgACAD8AAQBCAAIAAgAGgQiBCoECAExBAgAEAEIAAgACAAIAAgACAAIAAgACAAIAAgACAA4BAgACABABEYECAAIAAgATAQYAQgAVAQIAAgACAAIAAgACAAIAAgACAAIAFoECAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgAOQEIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAB+BAcACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAEABhgSMBAgACAAIAAgAlAQIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAwAEAAQABAADAAMAAwADAAQABAAEAAQABAAEAAQABHATAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgAdQMIAAgACAAIAAgACAAIAMkACAAIAAgAfQMIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACACFA4kDCAAIAAgACAAIAOcBCAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAIcDCAAIAAgACAAIAAgACAAIAAgACAAIAJEDCAAIAAgACADFAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACABgBAgAZgQIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgAbAQCBXIECAAIAHkECAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACABAAJwEQACjBKoEsgQIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAC6BMIECAAIAAgACAAIAAgACABmBAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgAxwQIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAGYECAAIAAgAzgQIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgAigWKBYoFigWKBYoFigWKBd0FXwUIAOIF6gXxBYoF3gT5BQAGCAaKBYoFigWKBYoFigWKBYoFigWKBYoFigXWBIoFigWKBYoFigWKBYoFigWKBYsFEAaKBYoFigWKBYoFigWKBRQGCACKBYoFigWKBQgACAAIANEECAAIABgGigUgBggAJgYIAC4GMwaKBYoF0wQ3Bj4GigWKBYoFigWKBYoFigWKBYoFigWKBYoFigUIAAgACAAIAAgACAAIAAgAigWKBYoFigWKBYoFigWKBYoFigWKBYoFigWKBYoFigWKBYoFigWKBYoFigWKBYoFigWKBYoFigWKBYoFigWLBf///////wQABAAEAAQABAAEAAQABAAEAAQAAwAEAAQAAgAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAAAAAAAAAAAAAAAAAAAAAAAAAOAAAAAAAAAAQADgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABQAFAAUABQAFAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAAAAUAAAAFAAUAAAAFAAUAAAAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAEAAQABAAEAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABQAFAAUABQAFAAUABQAFAAUABQAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABQAFAAUABQAFAAUAAQAAAAUABQAFAAUABQAFAAAAAAAFAAUAAAAFAAUABQAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAUABQAFAAUABQAFAAUABQAFAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAUABQAFAAUABQAFAAUABQAAAAAAAAAAAAAAAAAAAAAAAAAFAAAAAAAFAAUAAQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABwAFAAUABQAFAAAABwAHAAcAAAAHAAcABwAFAAEAAAAAAAAAAAAAAAAAAAAAAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHAAcABwAFAAUABQAFAAcABwAFAAUAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHAAAAAQABAAAAAAAAAAAAAAAFAAUABQAFAAAABwAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAHAAcABwAHAAcAAAAHAAcAAAAAAAUABQAHAAUAAQAHAAEABwAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAFAAUABQAFAAUABwABAAUABQAFAAUAAAAAAAAAAAAAAAEAAQABAAEAAQABAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABwAFAAUAAAAAAAAAAAAAAAAABQAFAAUABQAFAAUAAQAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABQAFAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQABQANAAQABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQABAAEAAQABAAEAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAEAAQABAAEAAQABAAEAAQABAAEAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAQABAAEAAQABAAEAAQABAAAAAAAAAAAAAAAAAAAAAAABQAHAAUABQAFAAAAAAAAAAcABQAFAAUABQAFAAQABAAEAAQABAAEAAQABAAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABQAFAAUAAAAFAAUABQAFAAUAAAAFAAUABQAAAAUABQAFAAUABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAUABQAAAAAAAAAAAAUABQAFAAcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAHAAUAAAAHAAcABwAFAAUABQAFAAUABQAFAAUABwAHAAcABwAFAAcABwAAAAUABQAFAAUABQAFAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABwAHAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAAAAUABwAHAAUABQAFAAUAAAAAAAcABwAAAAAABwAHAAUAAAAAAAAAAAAAAAAAAAAAAAAABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAAAAAABQAFAAcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAAABwAHAAcABQAFAAAAAAAAAAAABQAFAAAAAAAFAAUABQAAAAAAAAAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABQAAAAAAAAAFAAAAAAAAAAAAAAAAAAAAAAAAAAAABwAFAAUABQAFAAUAAAAFAAUABwAAAAcABwAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAUABQAFAAUABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUAAAAFAAUABwAFAAUABQAFAAAAAAAHAAcAAAAAAAcABwAFAAAAAAAAAAAAAAAAAAAABQAFAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAcABwAAAAAAAAAHAAcABwAAAAcABwAHAAUAAAAAAAAAAAAAAAAAAAAAAAAABQAAAAAAAAAAAAAAAAAAAAAABQAHAAcABwAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABwAHAAcABwAAAAUABQAFAAAABQAFAAUABQAAAAAAAAAAAAAAAAAAAAUABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAAAAcABQAHAAcABQAHAAcAAAAFAAcABwAAAAcABwAFAAUAAAAAAAAAAAAAAAAAAAAFAAUAAAAAAAAAAAAAAAAAAAAAAAAABQAFAAcABwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABQAAAAUABwAAAAAAAAAAAAAAAAAAAAAAAAAAAAUAAAAAAAAAAAAFAAcABwAFAAUABQAAAAUAAAAHAAcABwAHAAcABwAHAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUAAAAHAAUABQAFAAUABQAFAAUAAAAAAAAAAAAAAAAAAAAAAAUABQAFAAUABQAFAAUABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAAABwAFAAUABQAFAAUABQAFAAUABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAFAAUABQAFAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAAAAUAAAAFAAAAAAAAAAAABwAHAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABwAFAAUABQAFAAUAAAAFAAUAAAAAAAAAAAAAAAUABQAFAAUABQAFAAUABQAFAAUABQAAAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABQAFAAUABwAFAAUABQAFAAUABQAAAAUABQAHAAcABQAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHAAcABQAFAAAAAAAAAAAABQAFAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAUABQAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAAAAcABQAFAAAAAAAAAAAAAAAAAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAFAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABQAHAAUABQAFAAUABQAFAAUABwAHAAcABwAHAAcABwAHAAUABwAHAAUABQAFAAUABQAFAAUABQAFAAUABQAAAAAAAAAAAAAAAAAAAAAAAAAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAFAAUABwAHAAcABwAFAAUABwAHAAcAAAAAAAAAAAAHAAcABQAHAAcABwAHAAcABwAFAAUABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAFAAcABwAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcABQAHAAUABQAFAAUABQAFAAUAAAAFAAAABQAAAAAABQAFAAUABQAFAAUABQAFAAcABwAHAAcABwAHAAUABQAFAAUABQAFAAUABQAFAAUAAAAAAAUABQAFAAUABQAHAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABQAFAAUABQAFAAUABwAFAAcABwAHAAcABwAFAAcABwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAUABQAFAAUABQAFAAUABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAUABwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHAAUABQAFAAUABwAHAAUABQAHAAUABQAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAcABQAFAAcABwAHAAUABwAFAAUABQAHAAcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABwAHAAcABwAHAAcABwAHAAUABQAFAAUABQAFAAUABQAHAAcABQAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAFAAUAAAAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAcABQAFAAUABQAFAAUABQAAAAAAAAAAAAUAAAAAAAAAAAAAAAAABQAAAAAABwAFAAUAAAAAAAAAAAAAAAAABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAAABQAFAAUABQAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABQAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAFAAUABQAFAAUADgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABQAFAAUAAAAFAAUABQAFAAUABQAFAAUABQAFAAAAAAAAAAAABQAAAAAAAAAFAAAAAAAAAAAABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABwAHAAUABQAHAAAAAAAAAAAABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcABwAHAAcABQAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUAAAAAAAAAAAAAAAAABQAFAAUABQAFAAUABQAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABQAFAAUABQAFAAUABQAFAAUABQAHAAcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAcABwAFAAUABQAFAAcABwAFAAUABwAHAAAAAAAAAAAAAAAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABQAFAAUABQAFAAcABwAFAAUABwAHAAUABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAAAAAAAAAAAAAAAAAAAAAAFAAcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUAAAAFAAUABQAAAAAABQAFAAAAAAAAAAAAAAAFAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcABQAFAAcABwAAAAAAAAAAAAAABwAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcABwAFAAcABwAFAAcABwAAAAcABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABQAFAAUABQAAAAAAAAAAAAAAAAAFAAUABQAAAAUABQAAAAAAAAAAAAAABQAFAAUABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAUABQAAAAAAAAAAAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcABQAHAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAUABQAFAAUABwAFAAUABQAFAAUABQAFAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABwAHAAcABQAFAAUABQAFAAUABQAFAAUABwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHAAcABwAFAAUABQAHAAcABQAHAAUABQAAAAAAAAAAAAAAAAAFAAAABwAHAAcABQAFAAUABQAFAAUABQAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABwAHAAcABwAAAAAABwAHAAAAAAAHAAcABwAAAAAAAAAAAAAAAAAAAAAAAAAFAAAAAAAAAAAAAAAAAAAAAAAAAAAABwAHAAAAAAAFAAUABQAFAAUABQAFAAAAAAAAAAUABQAFAAUABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHAAcABwAFAAUABQAFAAUABQAFAAUABwAHAAUABQAFAAcABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAHAAcABQAFAAUABQAFAAUABwAFAAcABwAFAAcABQAFAAcABQAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAHAAcABQAFAAUABQAAAAAABwAHAAcABwAFAAUABwAFAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcABwAHAAUABQAFAAUABQAFAAUABQAHAAcABQAHAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABwAFAAcABwAFAAUABQAFAAUABQAHAAUAAAAAAAAAAAAAAAAAAAAAAAcABwAFAAUABQAFAAcABQAFAAUABQAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHAAcABwAFAAUABQAFAAUABQAFAAUABQAHAAUABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHAAcABwAFAAUABQAFAAAAAAAFAAUABwAHAAcABwAFAAAAAAAAAAcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAUABQAFAAUABQAFAAUABQAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUAAAAAAAAAAAAAAAAAAAAAAAAABQAFAAUABQAFAAUABwAHAAUABQAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcABQAFAAUABQAFAAUABQAAAAUABQAFAAUABQAFAAcABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAAAHAAUABQAFAAUABQAFAAUABwAFAAUABwAFAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAFAAUABQAFAAUAAAAAAAAABQAAAAUABQAAAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAHAAcABwAHAAcAAAAFAAUAAAAHAAcABQAHAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAUABwAHAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAUABQAFAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAUABQAFAAUABQAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAAAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAAAAAAAAAAAAAAAAAAABQAFAAUABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcABwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABQAAAAUABQAFAAAAAAAFAAUABQAFAAUABQAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAFAAUABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAFAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAAAAAAAAAAABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAAAAAAAAAAAAAAAAAAAAAAFAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABQAFAAUABQAAAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAFAAUABQAFAAUABQAAAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAAAAAABQAFAAUABQAFAAUABQAAAAUABQAAAAUABQAFAAUABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAUABQAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAFAAUABQAFAAUABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAFAAUABQAFAAUADgAOAA4ADgAOAA4ADwAPAA8ADwAPAA8ADwAPAA8ADwAPAA8ADwAPAA8ADwAPAA8ADwAPAA8ADwAPAA8ADwAPAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcABwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABwAHAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAAAAAAAAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAKAAoACgAKAAoACgAKAAoACgAKAAoACgAKAAoACgAKAAoACgAKAAoACgAKAAoACgAMAAwADAAMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkAAAAAAAAAAAAKAAoACgAKAAoACgAKAAoACgAKAAoACgAKAAoACgAKAAoACgAKAAoACgAKAAoACgAKAAoACgAKAAoACgAKAAoACgAAAAAAAAAAAAsADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwACwAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAAAAAADgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOAA4ADgAOAA4ADgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADgAOAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA4ADgAAAAAAAAAAAAAAAAAAAAAADgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADgAOAA4ADgAOAA4ADgAOAA4ADgAOAAAAAAAAAAAADgAOAA4AAAAAAAAAAAAAAAAAAAAOAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADgAOAAAAAAAAAAAAAAAAAAAAAAAAAAAADgAAAAAAAAAAAAAAAAAAAAAAAAAOAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADgAOAA4ADgAAAA4ADgAOAA4ADgAOAAAADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4AAAAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAAAAAAAAAAAAAAAAAAAAAAAAAAAADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4AAAAAAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAAAA4AAAAOAAAAAAAAAAAAAAAAAA4AAAAAAAAAAAAAAAAADgAAAAAAAAAAAAAAAAAAAAAAAAAAAA4ADgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADgAAAAAADgAAAAAAAAAAAA4AAAAOAAAAAAAAAAAADgAOAA4AAAAOAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOAA4ADgAOAA4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOAA4ADgAAAAAAAAAAAAAAAAAAAAAAAAAOAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOAA4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA4ADgAOAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADgAOAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADgAAAAAAAAAAAA4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOAAAADgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOAA4ADgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA4ADgAOAA4ADgAOAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA4ADgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADgAAAAAADgAOAA4ADgAOAA4ADgAOAA4ADgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAAAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAAAAAAAAAAAAAAAAAAAAAAAAAAAADgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA4AAAAAAA4ADgAOAA4ADgAOAA4ADgAOAAAADgAOAA4ADgAAAAAAAAAAAAAAAAAAAAAAAAAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4AAAAAAAAAAAAAAAAADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOAA4ADgAOAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADgAOAA4ADgAOAA4ADgAOAAAAAAAAAAAAAAAAAAAAAAAAAAAADgAOAA4ADgAOAA4AAAAAAAAAAAAAAAAAAAAAAA4ADgAOAA4ADgAOAA4ADgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4AAAAOAA4ADgAOAA4ADgAAAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4AAAAAAAAAAAA=", Bm = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/", dl = typeof Uint8Array > "u" ? [] : new Uint8Array(256);
for (var _u = 0; _u < Bm.length; _u++)
  dl[Bm.charCodeAt(_u)] = _u;
var h_ = function(r) {
  var t = r.length * 0.75, e = r.length, A, n = 0, a, s, i, o;
  r[r.length - 1] === "=" && (t--, r[r.length - 2] === "=" && t--);
  var l = typeof ArrayBuffer < "u" && typeof Uint8Array < "u" && typeof Uint8Array.prototype.slice < "u" ? new ArrayBuffer(t) : new Array(t), u = Array.isArray(l) ? l : new Uint8Array(l);
  for (A = 0; A < e; A += 4)
    a = dl[r.charCodeAt(A)], s = dl[r.charCodeAt(A + 1)], i = dl[r.charCodeAt(A + 2)], o = dl[r.charCodeAt(A + 3)], u[n++] = a << 2 | s >> 4, u[n++] = (s & 15) << 4 | i >> 2, u[n++] = (i & 3) << 6 | o & 63;
  return l;
}, d_ = function(r) {
  for (var t = r.length, e = [], A = 0; A < t; A += 2)
    e.push(r[A + 1] << 8 | r[A]);
  return e;
}, g_ = function(r) {
  for (var t = r.length, e = [], A = 0; A < t; A += 4)
    e.push(r[A + 3] << 24 | r[A + 2] << 16 | r[A + 1] << 8 | r[A]);
  return e;
}, Hs = 5, nv = 11, zf = 2, p_ = nv - Hs, gb = 65536 >> Hs, v_ = 1 << Hs, Xf = v_ - 1, m_ = 1024 >> Hs, w_ = gb + m_, B_ = w_, y_ = 32, b_ = B_ + y_, C_ = 65536 >> nv, E_ = 1 << p_, F_ = E_ - 1, ym = function(r, t, e) {
  return r.slice ? r.slice(t, e) : new Uint16Array(Array.prototype.slice.call(r, t, e));
}, x_ = function(r, t, e) {
  return r.slice ? r.slice(t, e) : new Uint32Array(Array.prototype.slice.call(r, t, e));
}, S_ = function(r, t) {
  var e = h_(r), A = Array.isArray(e) ? g_(e) : new Uint32Array(e), n = Array.isArray(e) ? d_(e) : new Uint16Array(e), a = 24, s = ym(n, a / 2, A[4] / 2), i = A[5] === 2 ? ym(n, (a + A[4]) / 2) : x_(A, Math.ceil((a + A[4]) / 4));
  return new U_(A[0], A[1], A[2], A[3], s, i);
}, U_ = (
  /** @class */
  (function() {
    function r(t, e, A, n, a, s) {
      this.initialValue = t, this.errorValue = e, this.highStart = A, this.highValueIndex = n, this.index = a, this.data = s;
    }
    return r.prototype.get = function(t) {
      var e;
      if (t >= 0) {
        if (t < 55296 || t > 56319 && t <= 65535)
          return e = this.index[t >> Hs], e = (e << zf) + (t & Xf), this.data[e];
        if (t <= 65535)
          return e = this.index[gb + (t - 55296 >> Hs)], e = (e << zf) + (t & Xf), this.data[e];
        if (t < this.highStart)
          return e = b_ - C_ + (t >> nv), e = this.index[e], e += t >> Hs & F_, e = this.index[e], e = (e << zf) + (t & Xf), this.data[e];
        if (t <= 1114111)
          return this.data[this.highValueIndex];
      }
      return this.errorValue;
    }, r;
  })()
), bm = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/", T_ = typeof Uint8Array > "u" ? [] : new Uint8Array(256);
for (var Nu = 0; Nu < bm.length; Nu++)
  T_[bm.charCodeAt(Nu)] = Nu;
var Q_ = 1, Jf = 2, Zf = 3, Cm = 4, Em = 5, D_ = 7, Fm = 8, eh = 9, th = 10, xm = 11, Sm = 12, Um = 13, Tm = 14, Ah = 15, k_ = function(r) {
  for (var t = [], e = 0, A = r.length; e < A; ) {
    var n = r.charCodeAt(e++);
    if (n >= 55296 && n <= 56319 && e < A) {
      var a = r.charCodeAt(e++);
      (a & 64512) === 56320 ? t.push(((n & 1023) << 10) + (a & 1023) + 65536) : (t.push(n), e--);
    } else
      t.push(n);
  }
  return t;
}, L_ = function() {
  for (var r = [], t = 0; t < arguments.length; t++)
    r[t] = arguments[t];
  if (String.fromCodePoint)
    return String.fromCodePoint.apply(String, r);
  var e = r.length;
  if (!e)
    return "";
  for (var A = [], n = -1, a = ""; ++n < e; ) {
    var s = r[n];
    s <= 65535 ? A.push(s) : (s -= 65536, A.push((s >> 10) + 55296, s % 1024 + 56320)), (n + 1 === e || A.length > 16384) && (a += String.fromCharCode.apply(String, A), A.length = 0);
  }
  return a;
}, I_ = S_(f_), Qa = "×", rh = "÷", __ = function(r) {
  return I_.get(r);
}, N_ = function(r, t, e) {
  var A = e - 2, n = t[A], a = t[e - 1], s = t[e];
  if (a === Jf && s === Zf)
    return Qa;
  if (a === Jf || a === Zf || a === Cm || s === Jf || s === Zf || s === Cm)
    return rh;
  if (a === Fm && [Fm, eh, xm, Sm].indexOf(s) !== -1 || (a === xm || a === eh) && (s === eh || s === th) || (a === Sm || a === th) && s === th || s === Um || s === Em || s === D_ || a === Q_)
    return Qa;
  if (a === Um && s === Tm) {
    for (; n === Em; )
      n = t[--A];
    if (n === Tm)
      return Qa;
  }
  if (a === Ah && s === Ah) {
    for (var i = 0; n === Ah; )
      i++, n = t[--A];
    if (i % 2 === 0)
      return Qa;
  }
  return rh;
}, M_ = function(r) {
  var t = k_(r), e = t.length, A = 0, n = 0, a = t.map(__);
  return {
    next: function() {
      if (A >= e)
        return { done: !0, value: null };
      for (var s = Qa; A < e && (s = N_(t, a, ++A)) === Qa; )
        ;
      if (s !== Qa || A === e) {
        var i = L_.apply(null, t.slice(n, A));
        return n = A, { value: i, done: !1 };
      }
      return { done: !0, value: null };
    }
  };
}, O_ = function(r) {
  for (var t = M_(r), e = [], A; !(A = t.next()).done; )
    A.value && e.push(A.value.slice());
  return e;
}, R_ = function(r) {
  var t = 123;
  if (r.createRange) {
    var e = r.createRange();
    if (e.getBoundingClientRect) {
      var A = r.createElement("boundtest");
      A.style.height = t + "px", A.style.display = "block", r.body.appendChild(A), e.selectNode(A);
      var n = e.getBoundingClientRect(), a = Math.round(n.height);
      if (r.body.removeChild(A), a === t)
        return !0;
    }
  }
  return !1;
}, H_ = function(r) {
  var t = r.createElement("boundtest");
  t.style.width = "50px", t.style.display = "block", t.style.fontSize = "12px", t.style.letterSpacing = "0px", t.style.wordSpacing = "0px", r.body.appendChild(t);
  var e = r.createRange();
  t.innerHTML = typeof "".repeat == "function" ? "&#128104;".repeat(10) : "";
  var A = t.firstChild, n = Tc(A.data).map(function(o) {
    return Gr(o);
  }), a = 0, s = {}, i = n.every(function(o, l) {
    e.setStart(A, a), e.setEnd(A, a + o.length);
    var u = e.getBoundingClientRect();
    a += o.length;
    var h = u.x > s.x || u.y > s.y;
    return s = u, l === 0 ? !0 : h;
  });
  return r.body.removeChild(t), i;
}, P_ = function() {
  return typeof new Image().crossOrigin < "u";
}, K_ = function() {
  return typeof new XMLHttpRequest().responseType == "string";
}, V_ = function(r) {
  var t = new Image(), e = r.createElement("canvas"), A = e.getContext("2d");
  if (!A)
    return !1;
  t.src = "data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg'></svg>";
  try {
    A.drawImage(t, 0, 0), e.toDataURL();
  } catch {
    return !1;
  }
  return !0;
}, Qm = function(r) {
  return r[0] === 0 && r[1] === 255 && r[2] === 0 && r[3] === 255;
}, q_ = function(r) {
  var t = r.createElement("canvas"), e = 100;
  t.width = e, t.height = e;
  var A = t.getContext("2d");
  if (!A)
    return Promise.reject(!1);
  A.fillStyle = "rgb(0, 255, 0)", A.fillRect(0, 0, e, e);
  var n = new Image(), a = t.toDataURL();
  n.src = a;
  var s = Sp(e, e, 0, 0, n);
  return A.fillStyle = "red", A.fillRect(0, 0, e, e), Dm(s).then(function(i) {
    A.drawImage(i, 0, 0);
    var o = A.getImageData(0, 0, e, e).data;
    A.fillStyle = "red", A.fillRect(0, 0, e, e);
    var l = r.createElement("div");
    return l.style.backgroundImage = "url(" + a + ")", l.style.height = e + "px", Qm(o) ? Dm(Sp(e, e, 0, 0, l)) : Promise.reject(!1);
  }).then(function(i) {
    return A.drawImage(i, 0, 0), Qm(A.getImageData(0, 0, e, e).data);
  }).catch(function() {
    return !1;
  });
}, Sp = function(r, t, e, A, n) {
  var a = "http://www.w3.org/2000/svg", s = document.createElementNS(a, "svg"), i = document.createElementNS(a, "foreignObject");
  return s.setAttributeNS(null, "width", r.toString()), s.setAttributeNS(null, "height", t.toString()), i.setAttributeNS(null, "width", "100%"), i.setAttributeNS(null, "height", "100%"), i.setAttributeNS(null, "x", e.toString()), i.setAttributeNS(null, "y", A.toString()), i.setAttributeNS(null, "externalResourcesRequired", "true"), s.appendChild(i), i.appendChild(n), s;
}, Dm = function(r) {
  return new Promise(function(t, e) {
    var A = new Image();
    A.onload = function() {
      return t(A);
    }, A.onerror = e, A.src = "data:image/svg+xml;charset=utf-8," + encodeURIComponent(new XMLSerializer().serializeToString(r));
  });
}, Cn = {
  get SUPPORT_RANGE_BOUNDS() {
    var r = R_(document);
    return Object.defineProperty(Cn, "SUPPORT_RANGE_BOUNDS", { value: r }), r;
  },
  get SUPPORT_WORD_BREAKING() {
    var r = Cn.SUPPORT_RANGE_BOUNDS && H_(document);
    return Object.defineProperty(Cn, "SUPPORT_WORD_BREAKING", { value: r }), r;
  },
  get SUPPORT_SVG_DRAWING() {
    var r = V_(document);
    return Object.defineProperty(Cn, "SUPPORT_SVG_DRAWING", { value: r }), r;
  },
  get SUPPORT_FOREIGNOBJECT_DRAWING() {
    var r = typeof Array.from == "function" && typeof window.fetch == "function" ? q_(document) : Promise.resolve(!1);
    return Object.defineProperty(Cn, "SUPPORT_FOREIGNOBJECT_DRAWING", { value: r }), r;
  },
  get SUPPORT_CORS_IMAGES() {
    var r = P_();
    return Object.defineProperty(Cn, "SUPPORT_CORS_IMAGES", { value: r }), r;
  },
  get SUPPORT_RESPONSE_TYPE() {
    var r = K_();
    return Object.defineProperty(Cn, "SUPPORT_RESPONSE_TYPE", { value: r }), r;
  },
  get SUPPORT_CORS_XHR() {
    var r = "withCredentials" in new XMLHttpRequest();
    return Object.defineProperty(Cn, "SUPPORT_CORS_XHR", { value: r }), r;
  },
  get SUPPORT_NATIVE_TEXT_SEGMENTATION() {
    var r = !!(typeof Intl < "u" && Intl.Segmenter);
    return Object.defineProperty(Cn, "SUPPORT_NATIVE_TEXT_SEGMENTATION", { value: r }), r;
  }
}, yl = (
  /** @class */
  /* @__PURE__ */ (function() {
    function r(t, e) {
      this.text = t, this.bounds = e;
    }
    return r;
  })()
), j_ = function(r, t, e, A) {
  var n = Y_(t, e), a = [], s = 0;
  return n.forEach(function(i) {
    if (e.textDecorationLine.length || i.trim().length > 0)
      if (Cn.SUPPORT_RANGE_BOUNDS) {
        var o = km(A, s, i.length).getClientRects();
        if (o.length > 1) {
          var l = av(i), u = 0;
          l.forEach(function(g) {
            a.push(new yl(g, Ni.fromDOMRectList(r, km(A, u + s, g.length).getClientRects()))), u += g.length;
          });
        } else
          a.push(new yl(i, Ni.fromDOMRectList(r, o)));
      } else {
        var h = A.splitText(i.length);
        a.push(new yl(i, W_(r, A))), A = h;
      }
    else Cn.SUPPORT_RANGE_BOUNDS || (A = A.splitText(i.length));
    s += i.length;
  }), a;
}, W_ = function(r, t) {
  var e = t.ownerDocument;
  if (e) {
    var A = e.createElement("html2canvaswrapper");
    A.appendChild(t.cloneNode(!0));
    var n = t.parentNode;
    if (n) {
      n.replaceChild(A, t);
      var a = Uc(r, A);
      return A.firstChild && n.replaceChild(A.firstChild, A), a;
    }
  }
  return Ni.EMPTY;
}, km = function(r, t, e) {
  var A = r.ownerDocument;
  if (!A)
    throw new Error("Node has no owner document");
  var n = A.createRange();
  return n.setStart(r, t), n.setEnd(r, t + e), n;
}, av = function(r) {
  if (Cn.SUPPORT_NATIVE_TEXT_SEGMENTATION) {
    var t = new Intl.Segmenter(void 0, { granularity: "grapheme" });
    return Array.from(t.segment(r)).map(function(e) {
      return e.segment;
    });
  }
  return O_(r);
}, G_ = function(r, t) {
  if (Cn.SUPPORT_NATIVE_TEXT_SEGMENTATION) {
    var e = new Intl.Segmenter(void 0, {
      granularity: "word"
    });
    return Array.from(e.segment(r)).map(function(A) {
      return A.segment;
    });
  }
  return z_(r, t);
}, Y_ = function(r, t) {
  return t.letterSpacing !== 0 ? av(r) : G_(r, t);
}, $_ = [32, 160, 4961, 65792, 65793, 4153, 4241], z_ = function(r, t) {
  for (var e = Ck(r, {
    lineBreak: t.lineBreak,
    wordBreak: t.overflowWrap === "break-word" ? "break-word" : t.wordBreak
  }), A = [], n, a = function() {
    if (n.value) {
      var s = n.value.slice(), i = Tc(s), o = "";
      i.forEach(function(l) {
        $_.indexOf(l) === -1 ? o += Gr(l) : (o.length && A.push(o), A.push(Gr(l)), o = "");
      }), o.length && A.push(o);
    }
  }; !(n = e.next()).done; )
    a();
  return A;
}, X_ = (
  /** @class */
  /* @__PURE__ */ (function() {
    function r(t, e, A) {
      this.text = J_(e.data, A.textTransform), this.textBounds = j_(t, this.text, A, e);
    }
    return r;
  })()
), J_ = function(r, t) {
  switch (t) {
    case 1:
      return r.toLowerCase();
    case 3:
      return r.replace(Z_, e6);
    case 2:
      return r.toUpperCase();
    default:
      return r;
  }
}, Z_ = /(^|\s|:|-|\(|\))([a-z])/g, e6 = function(r, t, e) {
  return r.length > 0 ? t + e.toUpperCase() : r;
}, pb = (
  /** @class */
  (function(r) {
    ei(t, r);
    function t(e, A) {
      var n = r.call(this, e, A) || this;
      return n.src = A.currentSrc || A.src, n.intrinsicWidth = A.naturalWidth, n.intrinsicHeight = A.naturalHeight, n.context.cache.addImage(n.src), n;
    }
    return t;
  })(pi)
), vb = (
  /** @class */
  (function(r) {
    ei(t, r);
    function t(e, A) {
      var n = r.call(this, e, A) || this;
      return n.canvas = A, n.intrinsicWidth = A.width, n.intrinsicHeight = A.height, n;
    }
    return t;
  })(pi)
), mb = (
  /** @class */
  (function(r) {
    ei(t, r);
    function t(e, A) {
      var n = r.call(this, e, A) || this, a = new XMLSerializer(), s = Uc(e, A);
      return A.setAttribute("width", s.width + "px"), A.setAttribute("height", s.height + "px"), n.svg = "data:image/svg+xml," + encodeURIComponent(a.serializeToString(A)), n.intrinsicWidth = A.width.baseVal.value, n.intrinsicHeight = A.height.baseVal.value, n.context.cache.addImage(n.svg), n;
    }
    return t;
  })(pi)
), wb = (
  /** @class */
  (function(r) {
    ei(t, r);
    function t(e, A) {
      var n = r.call(this, e, A) || this;
      return n.value = A.value, n;
    }
    return t;
  })(pi)
), Up = (
  /** @class */
  (function(r) {
    ei(t, r);
    function t(e, A) {
      var n = r.call(this, e, A) || this;
      return n.start = A.start, n.reversed = typeof A.reversed == "boolean" && A.reversed === !0, n;
    }
    return t;
  })(pi)
), t6 = [
  {
    type: 15,
    flags: 0,
    unit: "px",
    number: 3
  }
], A6 = [
  {
    type: 16,
    flags: 0,
    number: 50
  }
], r6 = function(r) {
  return r.width > r.height ? new Ni(r.left + (r.width - r.height) / 2, r.top, r.height, r.height) : r.width < r.height ? new Ni(r.left, r.top + (r.height - r.width) / 2, r.width, r.width) : r;
}, n6 = function(r) {
  var t = r.type === a6 ? new Array(r.value.length + 1).join("•") : r.value;
  return t.length === 0 ? r.placeholder || "" : t;
}, vc = "checkbox", mc = "radio", a6 = "password", Lm = 707406591, iv = (
  /** @class */
  (function(r) {
    ei(t, r);
    function t(e, A) {
      var n = r.call(this, e, A) || this;
      switch (n.type = A.type.toLowerCase(), n.checked = A.checked, n.value = n6(A), (n.type === vc || n.type === mc) && (n.styles.backgroundColor = 3739148031, n.styles.borderTopColor = n.styles.borderRightColor = n.styles.borderBottomColor = n.styles.borderLeftColor = 2779096575, n.styles.borderTopWidth = n.styles.borderRightWidth = n.styles.borderBottomWidth = n.styles.borderLeftWidth = 1, n.styles.borderTopStyle = n.styles.borderRightStyle = n.styles.borderBottomStyle = n.styles.borderLeftStyle = 1, n.styles.backgroundClip = [
        0
        /* BORDER_BOX */
      ], n.styles.backgroundOrigin = [
        0
        /* BORDER_BOX */
      ], n.bounds = r6(n.bounds)), n.type) {
        case vc:
          n.styles.borderTopRightRadius = n.styles.borderTopLeftRadius = n.styles.borderBottomRightRadius = n.styles.borderBottomLeftRadius = t6;
          break;
        case mc:
          n.styles.borderTopRightRadius = n.styles.borderTopLeftRadius = n.styles.borderBottomRightRadius = n.styles.borderBottomLeftRadius = A6;
          break;
      }
      return n;
    }
    return t;
  })(pi)
), Bb = (
  /** @class */
  (function(r) {
    ei(t, r);
    function t(e, A) {
      var n = r.call(this, e, A) || this, a = A.options[A.selectedIndex || 0];
      return n.value = a && a.text || "", n;
    }
    return t;
  })(pi)
), yb = (
  /** @class */
  (function(r) {
    ei(t, r);
    function t(e, A) {
      var n = r.call(this, e, A) || this;
      return n.value = A.value, n;
    }
    return t;
  })(pi)
), bb = (
  /** @class */
  (function(r) {
    ei(t, r);
    function t(e, A) {
      var n = r.call(this, e, A) || this;
      n.src = A.src, n.width = parseInt(A.width, 10) || 0, n.height = parseInt(A.height, 10) || 0, n.backgroundColor = n.styles.backgroundColor;
      try {
        if (A.contentWindow && A.contentWindow.document && A.contentWindow.document.documentElement) {
          n.tree = Eb(e, A.contentWindow.document.documentElement);
          var a = A.contentWindow.document.documentElement ? wl(e, getComputedStyle(A.contentWindow.document.documentElement).backgroundColor) : Ii.TRANSPARENT, s = A.contentWindow.document.body ? wl(e, getComputedStyle(A.contentWindow.document.body).backgroundColor) : Ii.TRANSPARENT;
          n.backgroundColor = ds(a) ? ds(s) ? n.styles.backgroundColor : s : a;
        }
      } catch {
      }
      return n;
    }
    return t;
  })(pi)
), i6 = ["OL", "UL", "MENU"], rc = function(r, t, e, A) {
  for (var n = t.firstChild, a = void 0; n; n = a)
    if (a = n.nextSibling, Fb(n) && n.data.trim().length > 0)
      e.textNodes.push(new X_(r, n, e.styles));
    else if (Co(n))
      if (Tb(n) && n.assignedNodes)
        n.assignedNodes().forEach(function(i) {
          return rc(r, i, e, A);
        });
      else {
        var s = Cb(r, n);
        s.styles.isVisible() && (s6(n, s, A) ? s.flags |= 4 : o6(s.styles) && (s.flags |= 2), i6.indexOf(n.tagName) !== -1 && (s.flags |= 8), e.elements.push(s), n.slot, n.shadowRoot ? rc(r, n.shadowRoot, s, A) : !wc(n) && !xb(n) && !Bc(n) && rc(r, n, s, A));
      }
}, Cb = function(r, t) {
  return Qp(t) ? new pb(r, t) : Sb(t) ? new vb(r, t) : xb(t) ? new mb(r, t) : l6(t) ? new wb(r, t) : u6(t) ? new Up(r, t) : c6(t) ? new iv(r, t) : Bc(t) ? new Bb(r, t) : wc(t) ? new yb(r, t) : Ub(t) ? new bb(r, t) : new pi(r, t);
}, Eb = function(r, t) {
  var e = Cb(r, t);
  return e.flags |= 4, rc(r, t, e, e), e;
}, s6 = function(r, t, e) {
  return t.styles.isPositionedWithZIndex() || t.styles.opacity < 1 || t.styles.isTransformed() || sv(r) && e.styles.isTransparent();
}, o6 = function(r) {
  return r.isPositioned() || r.isFloating();
}, Fb = function(r) {
  return r.nodeType === Node.TEXT_NODE;
}, Co = function(r) {
  return r.nodeType === Node.ELEMENT_NODE;
}, Tp = function(r) {
  return Co(r) && typeof r.style < "u" && !nc(r);
}, nc = function(r) {
  return typeof r.className == "object";
}, l6 = function(r) {
  return r.tagName === "LI";
}, u6 = function(r) {
  return r.tagName === "OL";
}, c6 = function(r) {
  return r.tagName === "INPUT";
}, f6 = function(r) {
  return r.tagName === "HTML";
}, xb = function(r) {
  return r.tagName === "svg";
}, sv = function(r) {
  return r.tagName === "BODY";
}, Sb = function(r) {
  return r.tagName === "CANVAS";
}, Im = function(r) {
  return r.tagName === "VIDEO";
}, Qp = function(r) {
  return r.tagName === "IMG";
}, Ub = function(r) {
  return r.tagName === "IFRAME";
}, _m = function(r) {
  return r.tagName === "STYLE";
}, h6 = function(r) {
  return r.tagName === "SCRIPT";
}, wc = function(r) {
  return r.tagName === "TEXTAREA";
}, Bc = function(r) {
  return r.tagName === "SELECT";
}, Tb = function(r) {
  return r.tagName === "SLOT";
}, Nm = function(r) {
  return r.tagName.indexOf("-") > 0;
}, d6 = (
  /** @class */
  (function() {
    function r() {
      this.counters = {};
    }
    return r.prototype.getCounterValue = function(t) {
      var e = this.counters[t];
      return e && e.length ? e[e.length - 1] : 1;
    }, r.prototype.getCounterValues = function(t) {
      var e = this.counters[t];
      return e || [];
    }, r.prototype.pop = function(t) {
      var e = this;
      t.forEach(function(A) {
        return e.counters[A].pop();
      });
    }, r.prototype.parse = function(t) {
      var e = this, A = t.counterIncrement, n = t.counterReset, a = !0;
      A !== null && A.forEach(function(i) {
        var o = e.counters[i.counter];
        o && i.increment !== 0 && (a = !1, o.length || o.push(1), o[Math.max(0, o.length - 1)] += i.increment);
      });
      var s = [];
      return a && n.forEach(function(i) {
        var o = e.counters[i.counter];
        s.push(i.counter), o || (o = e.counters[i.counter] = []), o.push(i.reset);
      }), s;
    }, r;
  })()
), Mm = {
  integers: [1e3, 900, 500, 400, 100, 90, 50, 40, 10, 9, 5, 4, 1],
  values: ["M", "CM", "D", "CD", "C", "XC", "L", "XL", "X", "IX", "V", "IV", "I"]
}, Om = {
  integers: [
    9e3,
    8e3,
    7e3,
    6e3,
    5e3,
    4e3,
    3e3,
    2e3,
    1e3,
    900,
    800,
    700,
    600,
    500,
    400,
    300,
    200,
    100,
    90,
    80,
    70,
    60,
    50,
    40,
    30,
    20,
    10,
    9,
    8,
    7,
    6,
    5,
    4,
    3,
    2,
    1
  ],
  values: [
    "Ք",
    "Փ",
    "Ւ",
    "Ց",
    "Ր",
    "Տ",
    "Վ",
    "Ս",
    "Ռ",
    "Ջ",
    "Պ",
    "Չ",
    "Ո",
    "Շ",
    "Ն",
    "Յ",
    "Մ",
    "Ճ",
    "Ղ",
    "Ձ",
    "Հ",
    "Կ",
    "Ծ",
    "Խ",
    "Լ",
    "Ի",
    "Ժ",
    "Թ",
    "Ը",
    "Է",
    "Զ",
    "Ե",
    "Դ",
    "Գ",
    "Բ",
    "Ա"
  ]
}, g6 = {
  integers: [
    1e4,
    9e3,
    8e3,
    7e3,
    6e3,
    5e3,
    4e3,
    3e3,
    2e3,
    1e3,
    400,
    300,
    200,
    100,
    90,
    80,
    70,
    60,
    50,
    40,
    30,
    20,
    19,
    18,
    17,
    16,
    15,
    10,
    9,
    8,
    7,
    6,
    5,
    4,
    3,
    2,
    1
  ],
  values: [
    "י׳",
    "ט׳",
    "ח׳",
    "ז׳",
    "ו׳",
    "ה׳",
    "ד׳",
    "ג׳",
    "ב׳",
    "א׳",
    "ת",
    "ש",
    "ר",
    "ק",
    "צ",
    "פ",
    "ע",
    "ס",
    "נ",
    "מ",
    "ל",
    "כ",
    "יט",
    "יח",
    "יז",
    "טז",
    "טו",
    "י",
    "ט",
    "ח",
    "ז",
    "ו",
    "ה",
    "ד",
    "ג",
    "ב",
    "א"
  ]
}, p6 = {
  integers: [
    1e4,
    9e3,
    8e3,
    7e3,
    6e3,
    5e3,
    4e3,
    3e3,
    2e3,
    1e3,
    900,
    800,
    700,
    600,
    500,
    400,
    300,
    200,
    100,
    90,
    80,
    70,
    60,
    50,
    40,
    30,
    20,
    10,
    9,
    8,
    7,
    6,
    5,
    4,
    3,
    2,
    1
  ],
  values: [
    "ჵ",
    "ჰ",
    "ჯ",
    "ჴ",
    "ხ",
    "ჭ",
    "წ",
    "ძ",
    "ც",
    "ჩ",
    "შ",
    "ყ",
    "ღ",
    "ქ",
    "ფ",
    "ჳ",
    "ტ",
    "ს",
    "რ",
    "ჟ",
    "პ",
    "ო",
    "ჲ",
    "ნ",
    "მ",
    "ლ",
    "კ",
    "ი",
    "თ",
    "ჱ",
    "ზ",
    "ვ",
    "ე",
    "დ",
    "გ",
    "ბ",
    "ა"
  ]
}, go = function(r, t, e, A, n, a) {
  return r < t || r > e ? Ul(r, n, a.length > 0) : A.integers.reduce(function(s, i, o) {
    for (; r >= i; )
      r -= i, s += A.values[o];
    return s;
  }, "") + a;
}, Qb = function(r, t, e, A) {
  var n = "";
  do
    e || r--, n = A(r) + n, r /= t;
  while (r * t >= t);
  return n;
}, Wr = function(r, t, e, A, n) {
  var a = e - t + 1;
  return (r < 0 ? "-" : "") + (Qb(Math.abs(r), a, A, function(s) {
    return Gr(Math.floor(s % a) + t);
  }) + n);
}, xs = function(r, t, e) {
  e === void 0 && (e = ". ");
  var A = t.length;
  return Qb(Math.abs(r), A, !1, function(n) {
    return t[Math.floor(n % A)];
  }) + e;
}, Bo = 1, ns = 2, as = 4, gl = 8, Si = function(r, t, e, A, n, a) {
  if (r < -9999 || r > 9999)
    return Ul(r, 4, n.length > 0);
  var s = Math.abs(r), i = n;
  if (s === 0)
    return t[0] + i;
  for (var o = 0; s > 0 && o <= 4; o++) {
    var l = s % 10;
    l === 0 && on(a, Bo) && i !== "" ? i = t[l] + i : l > 1 || l === 1 && o === 0 || l === 1 && o === 1 && on(a, ns) || l === 1 && o === 1 && on(a, as) && r > 100 || l === 1 && o > 1 && on(a, gl) ? i = t[l] + (o > 0 ? e[o - 1] : "") + i : l === 1 && o > 0 && (i = e[o - 1] + i), s = Math.floor(s / 10);
  }
  return (r < 0 ? A : "") + i;
}, Rm = "十百千萬", Hm = "拾佰仟萬", Pm = "マイナス", nh = "마이너스", Ul = function(r, t, e) {
  var A = e ? ". " : "", n = e ? "、" : "", a = e ? ", " : "", s = e ? " " : "";
  switch (t) {
    case 0:
      return "•" + s;
    case 1:
      return "◦" + s;
    case 2:
      return "◾" + s;
    case 5:
      var i = Wr(r, 48, 57, !0, A);
      return i.length < 4 ? "0" + i : i;
    case 4:
      return xs(r, "〇一二三四五六七八九", n);
    case 6:
      return go(r, 1, 3999, Mm, 3, A).toLowerCase();
    case 7:
      return go(r, 1, 3999, Mm, 3, A);
    case 8:
      return Wr(r, 945, 969, !1, A);
    case 9:
      return Wr(r, 97, 122, !1, A);
    case 10:
      return Wr(r, 65, 90, !1, A);
    case 11:
      return Wr(r, 1632, 1641, !0, A);
    case 12:
    case 49:
      return go(r, 1, 9999, Om, 3, A);
    case 35:
      return go(r, 1, 9999, Om, 3, A).toLowerCase();
    case 13:
      return Wr(r, 2534, 2543, !0, A);
    case 14:
    case 30:
      return Wr(r, 6112, 6121, !0, A);
    case 15:
      return xs(r, "子丑寅卯辰巳午未申酉戌亥", n);
    case 16:
      return xs(r, "甲乙丙丁戊己庚辛壬癸", n);
    case 17:
    case 48:
      return Si(r, "零一二三四五六七八九", Rm, "負", n, ns | as | gl);
    case 47:
      return Si(r, "零壹貳參肆伍陸柒捌玖", Hm, "負", n, Bo | ns | as | gl);
    case 42:
      return Si(r, "零一二三四五六七八九", Rm, "负", n, ns | as | gl);
    case 41:
      return Si(r, "零壹贰叁肆伍陆柒捌玖", Hm, "负", n, Bo | ns | as | gl);
    case 26:
      return Si(r, "〇一二三四五六七八九", "十百千万", Pm, n, 0);
    case 25:
      return Si(r, "零壱弐参四伍六七八九", "拾百千万", Pm, n, Bo | ns | as);
    case 31:
      return Si(r, "영일이삼사오육칠팔구", "십백천만", nh, a, Bo | ns | as);
    case 33:
      return Si(r, "零一二三四五六七八九", "十百千萬", nh, a, 0);
    case 32:
      return Si(r, "零壹貳參四五六七八九", "拾百千", nh, a, Bo | ns | as);
    case 18:
      return Wr(r, 2406, 2415, !0, A);
    case 20:
      return go(r, 1, 19999, p6, 3, A);
    case 21:
      return Wr(r, 2790, 2799, !0, A);
    case 22:
      return Wr(r, 2662, 2671, !0, A);
    case 22:
      return go(r, 1, 10999, g6, 3, A);
    case 23:
      return xs(r, "あいうえおかきくけこさしすせそたちつてとなにぬねのはひふへほまみむめもやゆよらりるれろわゐゑをん");
    case 24:
      return xs(r, "いろはにほへとちりぬるをわかよたれそつねならむうゐのおくやまけふこえてあさきゆめみしゑひもせす");
    case 27:
      return Wr(r, 3302, 3311, !0, A);
    case 28:
      return xs(r, "アイウエオカキクケコサシスセソタチツテトナニヌネノハヒフヘホマミムメモヤユヨラリルレロワヰヱヲン", n);
    case 29:
      return xs(r, "イロハニホヘトチリヌルヲワカヨタレソツネナラムウヰノオクヤマケフコエテアサキユメミシヱヒモセス", n);
    case 34:
      return Wr(r, 3792, 3801, !0, A);
    case 37:
      return Wr(r, 6160, 6169, !0, A);
    case 38:
      return Wr(r, 4160, 4169, !0, A);
    case 39:
      return Wr(r, 2918, 2927, !0, A);
    case 40:
      return Wr(r, 1776, 1785, !0, A);
    case 43:
      return Wr(r, 3046, 3055, !0, A);
    case 44:
      return Wr(r, 3174, 3183, !0, A);
    case 45:
      return Wr(r, 3664, 3673, !0, A);
    case 46:
      return Wr(r, 3872, 3881, !0, A);
    case 3:
    default:
      return Wr(r, 48, 57, !0, A);
  }
}, Db = "data-html2canvas-ignore", Km = (
  /** @class */
  (function() {
    function r(t, e, A) {
      if (this.context = t, this.options = A, this.scrolledElements = [], this.referenceElement = e, this.counters = new d6(), this.quoteDepth = 0, !e.ownerDocument)
        throw new Error("Cloned element does not have an owner document");
      this.documentElement = this.cloneNode(e.ownerDocument.documentElement, !1);
    }
    return r.prototype.toIFrame = function(t, e) {
      var A = this, n = v6(t, e);
      if (!n.contentWindow)
        return Promise.reject("Unable to find iframe window");
      var a = t.defaultView.pageXOffset, s = t.defaultView.pageYOffset, i = n.contentWindow, o = i.document, l = B6(n).then(function() {
        return Yn(A, void 0, void 0, function() {
          var u, h;
          return On(this, function(g) {
            switch (g.label) {
              case 0:
                return this.scrolledElements.forEach(E6), i && (i.scrollTo(e.left, e.top), /(iPad|iPhone|iPod)/g.test(navigator.userAgent) && (i.scrollY !== e.top || i.scrollX !== e.left) && (this.context.logger.warn("Unable to restore scroll position for cloned document"), this.context.windowBounds = this.context.windowBounds.add(i.scrollX - e.left, i.scrollY - e.top, 0, 0))), u = this.options.onclone, h = this.clonedReferenceElement, typeof h > "u" ? [2, Promise.reject("Error finding the " + this.referenceElement.nodeName + " in the cloned document")] : o.fonts && o.fonts.ready ? [4, o.fonts.ready] : [3, 2];
              case 1:
                g.sent(), g.label = 2;
              case 2:
                return /(AppleWebKit)/g.test(navigator.userAgent) ? [4, w6(o)] : [3, 4];
              case 3:
                g.sent(), g.label = 4;
              case 4:
                return typeof u == "function" ? [2, Promise.resolve().then(function() {
                  return u(o, h);
                }).then(function() {
                  return n;
                })] : [2, n];
            }
          });
        });
      });
      return o.open(), o.write(b6(document.doctype) + "<html></html>"), C6(this.referenceElement.ownerDocument, a, s), o.replaceChild(o.adoptNode(this.documentElement), o.documentElement), o.close(), l;
    }, r.prototype.createElementClone = function(t) {
      if (xp(
        t,
        2
        /* CLONE */
      ))
        debugger;
      if (Sb(t))
        return this.createCanvasClone(t);
      if (Im(t))
        return this.createVideoClone(t);
      if (_m(t))
        return this.createStyleClone(t);
      var e = t.cloneNode(!1);
      return Qp(e) && (Qp(t) && t.currentSrc && t.currentSrc !== t.src && (e.src = t.currentSrc, e.srcset = ""), e.loading === "lazy" && (e.loading = "eager")), Nm(e) ? this.createCustomElementClone(e) : e;
    }, r.prototype.createCustomElementClone = function(t) {
      var e = document.createElement("html2canvascustomelement");
      return ah(t.style, e), e;
    }, r.prototype.createStyleClone = function(t) {
      try {
        var e = t.sheet;
        if (e && e.cssRules) {
          var A = [].slice.call(e.cssRules, 0).reduce(function(a, s) {
            return s && typeof s.cssText == "string" ? a + s.cssText : a;
          }, ""), n = t.cloneNode(!1);
          return n.textContent = A, n;
        }
      } catch (a) {
        if (this.context.logger.error("Unable to access cssRules property", a), a.name !== "SecurityError")
          throw a;
      }
      return t.cloneNode(!1);
    }, r.prototype.createCanvasClone = function(t) {
      var e;
      if (this.options.inlineImages && t.ownerDocument) {
        var A = t.ownerDocument.createElement("img");
        try {
          return A.src = t.toDataURL(), A;
        } catch {
          this.context.logger.info("Unable to inline canvas contents, canvas is tainted", t);
        }
      }
      var n = t.cloneNode(!1);
      try {
        n.width = t.width, n.height = t.height;
        var a = t.getContext("2d"), s = n.getContext("2d");
        if (s)
          if (!this.options.allowTaint && a)
            s.putImageData(a.getImageData(0, 0, t.width, t.height), 0, 0);
          else {
            var i = (e = t.getContext("webgl2")) !== null && e !== void 0 ? e : t.getContext("webgl");
            if (i) {
              var o = i.getContextAttributes();
              (o == null ? void 0 : o.preserveDrawingBuffer) === !1 && this.context.logger.warn("Unable to clone WebGL context as it has preserveDrawingBuffer=false", t);
            }
            s.drawImage(t, 0, 0);
          }
        return n;
      } catch {
        this.context.logger.info("Unable to clone canvas as it is tainted", t);
      }
      return n;
    }, r.prototype.createVideoClone = function(t) {
      var e = t.ownerDocument.createElement("canvas");
      e.width = t.offsetWidth, e.height = t.offsetHeight;
      var A = e.getContext("2d");
      try {
        return A && (A.drawImage(t, 0, 0, e.width, e.height), this.options.allowTaint || A.getImageData(0, 0, e.width, e.height)), e;
      } catch {
        this.context.logger.info("Unable to clone video as it is tainted", t);
      }
      var n = t.ownerDocument.createElement("canvas");
      return n.width = t.offsetWidth, n.height = t.offsetHeight, n;
    }, r.prototype.appendChildNode = function(t, e, A) {
      (!Co(e) || !h6(e) && !e.hasAttribute(Db) && (typeof this.options.ignoreElements != "function" || !this.options.ignoreElements(e))) && (!this.options.copyStyles || !Co(e) || !_m(e)) && t.appendChild(this.cloneNode(e, A));
    }, r.prototype.cloneChildNodes = function(t, e, A) {
      for (var n = this, a = t.shadowRoot ? t.shadowRoot.firstChild : t.firstChild; a; a = a.nextSibling)
        if (Co(a) && Tb(a) && typeof a.assignedNodes == "function") {
          var s = a.assignedNodes();
          s.length && s.forEach(function(i) {
            return n.appendChildNode(e, i, A);
          });
        } else
          this.appendChildNode(e, a, A);
    }, r.prototype.cloneNode = function(t, e) {
      if (Fb(t))
        return document.createTextNode(t.data);
      if (!t.ownerDocument)
        return t.cloneNode(!1);
      var A = t.ownerDocument.defaultView;
      if (A && Co(t) && (Tp(t) || nc(t))) {
        var n = this.createElementClone(t);
        n.style.transitionProperty = "none";
        var a = A.getComputedStyle(t), s = A.getComputedStyle(t, ":before"), i = A.getComputedStyle(t, ":after");
        this.referenceElement === t && Tp(n) && (this.clonedReferenceElement = n), sv(n) && S6(n);
        var o = this.counters.parse(new wm(this.context, a)), l = this.resolvePseudoContent(t, n, s, bl.BEFORE);
        Nm(t) && (e = !0), Im(t) || this.cloneChildNodes(t, n, e), l && n.insertBefore(l, n.firstChild);
        var u = this.resolvePseudoContent(t, n, i, bl.AFTER);
        return u && n.appendChild(u), this.counters.pop(o), (a && (this.options.copyStyles || nc(t)) && !Ub(t) || e) && ah(a, n), (t.scrollTop !== 0 || t.scrollLeft !== 0) && this.scrolledElements.push([n, t.scrollLeft, t.scrollTop]), (wc(t) || Bc(t)) && (wc(n) || Bc(n)) && (n.value = t.value), n;
      }
      return t.cloneNode(!1);
    }, r.prototype.resolvePseudoContent = function(t, e, A, n) {
      var a = this;
      if (A) {
        var s = A.content, i = e.ownerDocument;
        if (!(!i || !s || s === "none" || s === "-moz-alt-content" || A.display === "none")) {
          this.counters.parse(new wm(this.context, A));
          var o = new l_(this.context, A), l = i.createElement("html2canvaspseudoelement");
          ah(A, l), o.content.forEach(function(h) {
            if (h.type === 0)
              l.appendChild(i.createTextNode(h.value));
            else if (h.type === 22) {
              var g = i.createElement("img");
              g.src = h.value, g.style.opacity = "1", l.appendChild(g);
            } else if (h.type === 18) {
              if (h.name === "attr") {
                var c = h.values.filter(sr);
                c.length && l.appendChild(i.createTextNode(t.getAttribute(c[0].value) || ""));
              } else if (h.name === "counter") {
                var p = h.values.filter(Do), m = p[0], y = p[1];
                if (m && sr(m)) {
                  var w = a.counters.getCounterValue(m.value), E = y && sr(y) ? Fp.parse(a.context, y.value) : 3;
                  l.appendChild(i.createTextNode(Ul(w, E, !1)));
                }
              } else if (h.name === "counters") {
                var C = h.values.filter(Do), m = C[0], F = C[1], y = C[2];
                if (m && sr(m)) {
                  var H = a.counters.getCounterValues(m.value), q = y && sr(y) ? Fp.parse(a.context, y.value) : 3, N = F && F.type === 0 ? F.value : "", M = H.map(function(S) {
                    return Ul(S, q, !1);
                  }).join(N);
                  l.appendChild(i.createTextNode(M));
                }
              }
            } else if (h.type === 20)
              switch (h.value) {
                case "open-quote":
                  l.appendChild(i.createTextNode(mm(o.quotes, a.quoteDepth++, !0)));
                  break;
                case "close-quote":
                  l.appendChild(i.createTextNode(mm(o.quotes, --a.quoteDepth, !1)));
                  break;
                default:
                  l.appendChild(i.createTextNode(h.value));
              }
          }), l.className = Dp + " " + kp;
          var u = n === bl.BEFORE ? " " + Dp : " " + kp;
          return nc(e) ? e.className.baseValue += u : e.className += u, l;
        }
      }
    }, r.destroy = function(t) {
      return t.parentNode ? (t.parentNode.removeChild(t), !0) : !1;
    }, r;
  })()
), bl;
(function(r) {
  r[r.BEFORE = 0] = "BEFORE", r[r.AFTER = 1] = "AFTER";
})(bl || (bl = {}));
var v6 = function(r, t) {
  var e = r.createElement("iframe");
  return e.className = "html2canvas-container", e.style.visibility = "hidden", e.style.position = "fixed", e.style.left = "-10000px", e.style.top = "0px", e.style.border = "0", e.width = t.width.toString(), e.height = t.height.toString(), e.scrolling = "no", e.setAttribute(Db, "true"), r.body.appendChild(e), e;
}, m6 = function(r) {
  return new Promise(function(t) {
    if (r.complete) {
      t();
      return;
    }
    if (!r.src) {
      t();
      return;
    }
    r.onload = t, r.onerror = t;
  });
}, w6 = function(r) {
  return Promise.all([].slice.call(r.images, 0).map(m6));
}, B6 = function(r) {
  return new Promise(function(t, e) {
    var A = r.contentWindow;
    if (!A)
      return e("No window assigned for iframe");
    var n = A.document;
    A.onload = r.onload = function() {
      A.onload = r.onload = null;
      var a = setInterval(function() {
        n.body.childNodes.length > 0 && n.readyState === "complete" && (clearInterval(a), t(r));
      }, 50);
    };
  });
}, y6 = [
  "all",
  "d",
  "content"
  // Safari shows pseudoelements if content is set
], ah = function(r, t) {
  for (var e = r.length - 1; e >= 0; e--) {
    var A = r.item(e);
    y6.indexOf(A) === -1 && t.style.setProperty(A, r.getPropertyValue(A));
  }
  return t;
}, b6 = function(r) {
  var t = "";
  return r && (t += "<!DOCTYPE ", r.name && (t += r.name), r.internalSubset && (t += r.internalSubset), r.publicId && (t += '"' + r.publicId + '"'), r.systemId && (t += '"' + r.systemId + '"'), t += ">"), t;
}, C6 = function(r, t, e) {
  r && r.defaultView && (t !== r.defaultView.pageXOffset || e !== r.defaultView.pageYOffset) && r.defaultView.scrollTo(t, e);
}, E6 = function(r) {
  var t = r[0], e = r[1], A = r[2];
  t.scrollLeft = e, t.scrollTop = A;
}, F6 = ":before", x6 = ":after", Dp = "___html2canvas___pseudoelement_before", kp = "___html2canvas___pseudoelement_after", Vm = `{
    content: "" !important;
    display: none !important;
}`, S6 = function(r) {
  U6(r, "." + Dp + F6 + Vm + `
         .` + kp + x6 + Vm);
}, U6 = function(r, t) {
  var e = r.ownerDocument;
  if (e) {
    var A = e.createElement("style");
    A.textContent = t, r.appendChild(A);
  }
}, kb = (
  /** @class */
  (function() {
    function r() {
    }
    return r.getOrigin = function(t) {
      var e = r._link;
      return e ? (e.href = t, e.href = e.href, e.protocol + e.hostname + e.port) : "about:blank";
    }, r.isSameOrigin = function(t) {
      return r.getOrigin(t) === r._origin;
    }, r.setContext = function(t) {
      r._link = t.document.createElement("a"), r._origin = r.getOrigin(t.location.href);
    }, r._origin = "about:blank", r;
  })()
), T6 = (
  /** @class */
  (function() {
    function r(t, e) {
      this.context = t, this._options = e, this._cache = {};
    }
    return r.prototype.addImage = function(t) {
      var e = Promise.resolve();
      return this.has(t) || (sh(t) || L6(t)) && (this._cache[t] = this.loadImage(t)).catch(function() {
      }), e;
    }, r.prototype.match = function(t) {
      return this._cache[t];
    }, r.prototype.loadImage = function(t) {
      return Yn(this, void 0, void 0, function() {
        var e, A, n, a, s = this;
        return On(this, function(i) {
          switch (i.label) {
            case 0:
              return e = kb.isSameOrigin(t), A = !ih(t) && this._options.useCORS === !0 && Cn.SUPPORT_CORS_IMAGES && !e, n = !ih(t) && !e && !sh(t) && typeof this._options.proxy == "string" && Cn.SUPPORT_CORS_XHR && !A, !e && this._options.allowTaint === !1 && !ih(t) && !sh(t) && !n && !A ? [
                2
                /*return*/
              ] : (a = t, n ? [4, this.proxy(a)] : [3, 2]);
            case 1:
              a = i.sent(), i.label = 2;
            case 2:
              return this.context.logger.debug("Added image " + t.substring(0, 256)), [4, new Promise(function(o, l) {
                var u = new Image();
                u.onload = function() {
                  return o(u);
                }, u.onerror = l, (I6(a) || A) && (u.crossOrigin = "anonymous"), u.src = a, u.complete === !0 && setTimeout(function() {
                  return o(u);
                }, 500), s._options.imageTimeout > 0 && setTimeout(function() {
                  return l("Timed out (" + s._options.imageTimeout + "ms) loading image");
                }, s._options.imageTimeout);
              })];
            case 3:
              return [2, i.sent()];
          }
        });
      });
    }, r.prototype.has = function(t) {
      return typeof this._cache[t] < "u";
    }, r.prototype.keys = function() {
      return Promise.resolve(Object.keys(this._cache));
    }, r.prototype.proxy = function(t) {
      var e = this, A = this._options.proxy;
      if (!A)
        throw new Error("No proxy defined");
      var n = t.substring(0, 256);
      return new Promise(function(a, s) {
        var i = Cn.SUPPORT_RESPONSE_TYPE ? "blob" : "text", o = new XMLHttpRequest();
        o.onload = function() {
          if (o.status === 200)
            if (i === "text")
              a(o.response);
            else {
              var h = new FileReader();
              h.addEventListener("load", function() {
                return a(h.result);
              }, !1), h.addEventListener("error", function(g) {
                return s(g);
              }, !1), h.readAsDataURL(o.response);
            }
          else
            s("Failed to proxy resource " + n + " with status code " + o.status);
        }, o.onerror = s;
        var l = A.indexOf("?") > -1 ? "&" : "?";
        if (o.open("GET", "" + A + l + "url=" + encodeURIComponent(t) + "&responseType=" + i), i !== "text" && o instanceof XMLHttpRequest && (o.responseType = i), e._options.imageTimeout) {
          var u = e._options.imageTimeout;
          o.timeout = u, o.ontimeout = function() {
            return s("Timed out (" + u + "ms) proxying " + n);
          };
        }
        o.send();
      });
    }, r;
  })()
), Q6 = /^data:image\/svg\+xml/i, D6 = /^data:image\/.*;base64,/i, k6 = /^data:image\/.*/i, L6 = function(r) {
  return Cn.SUPPORT_SVG_DRAWING || !_6(r);
}, ih = function(r) {
  return k6.test(r);
}, I6 = function(r) {
  return D6.test(r);
}, sh = function(r) {
  return r.substr(0, 4) === "blob";
}, _6 = function(r) {
  return r.substr(-3).toLowerCase() === "svg" || Q6.test(r);
}, _t = (
  /** @class */
  (function() {
    function r(t, e) {
      this.type = 0, this.x = t, this.y = e;
    }
    return r.prototype.add = function(t, e) {
      return new r(this.x + t, this.y + e);
    }, r;
  })()
), po = function(r, t, e) {
  return new _t(r.x + (t.x - r.x) * e, r.y + (t.y - r.y) * e);
}, Mu = (
  /** @class */
  (function() {
    function r(t, e, A, n) {
      this.type = 1, this.start = t, this.startControl = e, this.endControl = A, this.end = n;
    }
    return r.prototype.subdivide = function(t, e) {
      var A = po(this.start, this.startControl, t), n = po(this.startControl, this.endControl, t), a = po(this.endControl, this.end, t), s = po(A, n, t), i = po(n, a, t), o = po(s, i, t);
      return e ? new r(this.start, A, s, o) : new r(o, i, a, this.end);
    }, r.prototype.add = function(t, e) {
      return new r(this.start.add(t, e), this.startControl.add(t, e), this.endControl.add(t, e), this.end.add(t, e));
    }, r.prototype.reverse = function() {
      return new r(this.end, this.endControl, this.startControl, this.start);
    }, r;
  })()
), ka = function(r) {
  return r.type === 1;
}, N6 = (
  /** @class */
  /* @__PURE__ */ (function() {
    function r(t) {
      var e = t.styles, A = t.bounds, n = hl(e.borderTopLeftRadius, A.width, A.height), a = n[0], s = n[1], i = hl(e.borderTopRightRadius, A.width, A.height), o = i[0], l = i[1], u = hl(e.borderBottomRightRadius, A.width, A.height), h = u[0], g = u[1], c = hl(e.borderBottomLeftRadius, A.width, A.height), p = c[0], m = c[1], y = [];
      y.push((a + o) / A.width), y.push((p + h) / A.width), y.push((s + m) / A.height), y.push((l + g) / A.height);
      var w = Math.max.apply(Math, y);
      w > 1 && (a /= w, s /= w, o /= w, l /= w, h /= w, g /= w, p /= w, m /= w);
      var E = A.width - o, C = A.height - g, F = A.width - h, H = A.height - m, q = e.borderTopWidth, N = e.borderRightWidth, M = e.borderBottomWidth, k = e.borderLeftWidth, O = dr(e.paddingTop, t.bounds.width), S = dr(e.paddingRight, t.bounds.width), U = dr(e.paddingBottom, t.bounds.width), W = dr(e.paddingLeft, t.bounds.width);
      this.topLeftBorderDoubleOuterBox = a > 0 || s > 0 ? Cr(A.left + k / 3, A.top + q / 3, a - k / 3, s - q / 3, zA.TOP_LEFT) : new _t(A.left + k / 3, A.top + q / 3), this.topRightBorderDoubleOuterBox = a > 0 || s > 0 ? Cr(A.left + E, A.top + q / 3, o - N / 3, l - q / 3, zA.TOP_RIGHT) : new _t(A.left + A.width - N / 3, A.top + q / 3), this.bottomRightBorderDoubleOuterBox = h > 0 || g > 0 ? Cr(A.left + F, A.top + C, h - N / 3, g - M / 3, zA.BOTTOM_RIGHT) : new _t(A.left + A.width - N / 3, A.top + A.height - M / 3), this.bottomLeftBorderDoubleOuterBox = p > 0 || m > 0 ? Cr(A.left + k / 3, A.top + H, p - k / 3, m - M / 3, zA.BOTTOM_LEFT) : new _t(A.left + k / 3, A.top + A.height - M / 3), this.topLeftBorderDoubleInnerBox = a > 0 || s > 0 ? Cr(A.left + k * 2 / 3, A.top + q * 2 / 3, a - k * 2 / 3, s - q * 2 / 3, zA.TOP_LEFT) : new _t(A.left + k * 2 / 3, A.top + q * 2 / 3), this.topRightBorderDoubleInnerBox = a > 0 || s > 0 ? Cr(A.left + E, A.top + q * 2 / 3, o - N * 2 / 3, l - q * 2 / 3, zA.TOP_RIGHT) : new _t(A.left + A.width - N * 2 / 3, A.top + q * 2 / 3), this.bottomRightBorderDoubleInnerBox = h > 0 || g > 0 ? Cr(A.left + F, A.top + C, h - N * 2 / 3, g - M * 2 / 3, zA.BOTTOM_RIGHT) : new _t(A.left + A.width - N * 2 / 3, A.top + A.height - M * 2 / 3), this.bottomLeftBorderDoubleInnerBox = p > 0 || m > 0 ? Cr(A.left + k * 2 / 3, A.top + H, p - k * 2 / 3, m - M * 2 / 3, zA.BOTTOM_LEFT) : new _t(A.left + k * 2 / 3, A.top + A.height - M * 2 / 3), this.topLeftBorderStroke = a > 0 || s > 0 ? Cr(A.left + k / 2, A.top + q / 2, a - k / 2, s - q / 2, zA.TOP_LEFT) : new _t(A.left + k / 2, A.top + q / 2), this.topRightBorderStroke = a > 0 || s > 0 ? Cr(A.left + E, A.top + q / 2, o - N / 2, l - q / 2, zA.TOP_RIGHT) : new _t(A.left + A.width - N / 2, A.top + q / 2), this.bottomRightBorderStroke = h > 0 || g > 0 ? Cr(A.left + F, A.top + C, h - N / 2, g - M / 2, zA.BOTTOM_RIGHT) : new _t(A.left + A.width - N / 2, A.top + A.height - M / 2), this.bottomLeftBorderStroke = p > 0 || m > 0 ? Cr(A.left + k / 2, A.top + H, p - k / 2, m - M / 2, zA.BOTTOM_LEFT) : new _t(A.left + k / 2, A.top + A.height - M / 2), this.topLeftBorderBox = a > 0 || s > 0 ? Cr(A.left, A.top, a, s, zA.TOP_LEFT) : new _t(A.left, A.top), this.topRightBorderBox = o > 0 || l > 0 ? Cr(A.left + E, A.top, o, l, zA.TOP_RIGHT) : new _t(A.left + A.width, A.top), this.bottomRightBorderBox = h > 0 || g > 0 ? Cr(A.left + F, A.top + C, h, g, zA.BOTTOM_RIGHT) : new _t(A.left + A.width, A.top + A.height), this.bottomLeftBorderBox = p > 0 || m > 0 ? Cr(A.left, A.top + H, p, m, zA.BOTTOM_LEFT) : new _t(A.left, A.top + A.height), this.topLeftPaddingBox = a > 0 || s > 0 ? Cr(A.left + k, A.top + q, Math.max(0, a - k), Math.max(0, s - q), zA.TOP_LEFT) : new _t(A.left + k, A.top + q), this.topRightPaddingBox = o > 0 || l > 0 ? Cr(A.left + Math.min(E, A.width - N), A.top + q, E > A.width + N ? 0 : Math.max(0, o - N), Math.max(0, l - q), zA.TOP_RIGHT) : new _t(A.left + A.width - N, A.top + q), this.bottomRightPaddingBox = h > 0 || g > 0 ? Cr(A.left + Math.min(F, A.width - k), A.top + Math.min(C, A.height - M), Math.max(0, h - N), Math.max(0, g - M), zA.BOTTOM_RIGHT) : new _t(A.left + A.width - N, A.top + A.height - M), this.bottomLeftPaddingBox = p > 0 || m > 0 ? Cr(A.left + k, A.top + Math.min(H, A.height - M), Math.max(0, p - k), Math.max(0, m - M), zA.BOTTOM_LEFT) : new _t(A.left + k, A.top + A.height - M), this.topLeftContentBox = a > 0 || s > 0 ? Cr(A.left + k + W, A.top + q + O, Math.max(0, a - (k + W)), Math.max(0, s - (q + O)), zA.TOP_LEFT) : new _t(A.left + k + W, A.top + q + O), this.topRightContentBox = o > 0 || l > 0 ? Cr(A.left + Math.min(E, A.width + k + W), A.top + q + O, E > A.width + k + W ? 0 : o - k + W, l - (q + O), zA.TOP_RIGHT) : new _t(A.left + A.width - (N + S), A.top + q + O), this.bottomRightContentBox = h > 0 || g > 0 ? Cr(A.left + Math.min(F, A.width - (k + W)), A.top + Math.min(C, A.height + q + O), Math.max(0, h - (N + S)), g - (M + U), zA.BOTTOM_RIGHT) : new _t(A.left + A.width - (N + S), A.top + A.height - (M + U)), this.bottomLeftContentBox = p > 0 || m > 0 ? Cr(A.left + k + W, A.top + H, Math.max(0, p - (k + W)), m - (M + U), zA.BOTTOM_LEFT) : new _t(A.left + k + W, A.top + A.height - (M + U));
    }
    return r;
  })()
), zA;
(function(r) {
  r[r.TOP_LEFT = 0] = "TOP_LEFT", r[r.TOP_RIGHT = 1] = "TOP_RIGHT", r[r.BOTTOM_RIGHT = 2] = "BOTTOM_RIGHT", r[r.BOTTOM_LEFT = 3] = "BOTTOM_LEFT";
})(zA || (zA = {}));
var Cr = function(r, t, e, A, n) {
  var a = 4 * ((Math.sqrt(2) - 1) / 3), s = e * a, i = A * a, o = r + e, l = t + A;
  switch (n) {
    case zA.TOP_LEFT:
      return new Mu(new _t(r, l), new _t(r, l - i), new _t(o - s, t), new _t(o, t));
    case zA.TOP_RIGHT:
      return new Mu(new _t(r, t), new _t(r + s, t), new _t(o, l - i), new _t(o, l));
    case zA.BOTTOM_RIGHT:
      return new Mu(new _t(o, t), new _t(o, t + i), new _t(r + s, l), new _t(r, l));
    case zA.BOTTOM_LEFT:
    default:
      return new Mu(new _t(o, l), new _t(o - s, l), new _t(r, t + i), new _t(r, t));
  }
}, yc = function(r) {
  return [r.topLeftBorderBox, r.topRightBorderBox, r.bottomRightBorderBox, r.bottomLeftBorderBox];
}, M6 = function(r) {
  return [
    r.topLeftContentBox,
    r.topRightContentBox,
    r.bottomRightContentBox,
    r.bottomLeftContentBox
  ];
}, bc = function(r) {
  return [
    r.topLeftPaddingBox,
    r.topRightPaddingBox,
    r.bottomRightPaddingBox,
    r.bottomLeftPaddingBox
  ];
}, O6 = (
  /** @class */
  /* @__PURE__ */ (function() {
    function r(t, e, A) {
      this.offsetX = t, this.offsetY = e, this.matrix = A, this.type = 0, this.target = 6;
    }
    return r;
  })()
), Ou = (
  /** @class */
  /* @__PURE__ */ (function() {
    function r(t, e) {
      this.path = t, this.target = e, this.type = 1;
    }
    return r;
  })()
), R6 = (
  /** @class */
  /* @__PURE__ */ (function() {
    function r(t) {
      this.opacity = t, this.type = 2, this.target = 6;
    }
    return r;
  })()
), H6 = function(r) {
  return r.type === 0;
}, Lb = function(r) {
  return r.type === 1;
}, P6 = function(r) {
  return r.type === 2;
}, qm = function(r, t) {
  return r.length === t.length ? r.some(function(e, A) {
    return e === t[A];
  }) : !1;
}, K6 = function(r, t, e, A, n) {
  return r.map(function(a, s) {
    switch (s) {
      case 0:
        return a.add(t, e);
      case 1:
        return a.add(t + A, e);
      case 2:
        return a.add(t + A, e + n);
      case 3:
        return a.add(t, e + n);
    }
    return a;
  });
}, Ib = (
  /** @class */
  /* @__PURE__ */ (function() {
    function r(t) {
      this.element = t, this.inlineLevel = [], this.nonInlineLevel = [], this.negativeZIndex = [], this.zeroOrAutoZIndexOrTransformedOrOpacity = [], this.positiveZIndex = [], this.nonPositionedFloats = [], this.nonPositionedInlineLevel = [];
    }
    return r;
  })()
), _b = (
  /** @class */
  (function() {
    function r(t, e) {
      if (this.container = t, this.parent = e, this.effects = [], this.curves = new N6(this.container), this.container.styles.opacity < 1 && this.effects.push(new R6(this.container.styles.opacity)), this.container.styles.transform !== null) {
        var A = this.container.bounds.left + this.container.styles.transformOrigin[0].number, n = this.container.bounds.top + this.container.styles.transformOrigin[1].number, a = this.container.styles.transform;
        this.effects.push(new O6(A, n, a));
      }
      if (this.container.styles.overflowX !== 0) {
        var s = yc(this.curves), i = bc(this.curves);
        qm(s, i) ? this.effects.push(new Ou(
          s,
          6
          /* CONTENT */
        )) : (this.effects.push(new Ou(
          s,
          2
          /* BACKGROUND_BORDERS */
        )), this.effects.push(new Ou(
          i,
          4
          /* CONTENT */
        )));
      }
    }
    return r.prototype.getEffects = function(t) {
      for (var e = [
        2,
        3
        /* FIXED */
      ].indexOf(this.container.styles.position) === -1, A = this.parent, n = this.effects.slice(0); A; ) {
        var a = A.effects.filter(function(o) {
          return !Lb(o);
        });
        if (e || A.container.styles.position !== 0 || !A.parent) {
          if (n.unshift.apply(n, a), e = [
            2,
            3
            /* FIXED */
          ].indexOf(A.container.styles.position) === -1, A.container.styles.overflowX !== 0) {
            var s = yc(A.curves), i = bc(A.curves);
            qm(s, i) || n.unshift(new Ou(
              i,
              6
              /* CONTENT */
            ));
          }
        } else
          n.unshift.apply(n, a);
        A = A.parent;
      }
      return n.filter(function(o) {
        return on(o.target, t);
      });
    }, r;
  })()
), Lp = function(r, t, e, A) {
  r.container.elements.forEach(function(n) {
    var a = on(
      n.flags,
      4
      /* CREATES_REAL_STACKING_CONTEXT */
    ), s = on(
      n.flags,
      2
      /* CREATES_STACKING_CONTEXT */
    ), i = new _b(n, r);
    on(
      n.styles.display,
      2048
      /* LIST_ITEM */
    ) && A.push(i);
    var o = on(
      n.flags,
      8
      /* IS_LIST_OWNER */
    ) ? [] : A;
    if (a || s) {
      var l = a || n.styles.isPositioned() ? e : t, u = new Ib(i);
      if (n.styles.isPositioned() || n.styles.opacity < 1 || n.styles.isTransformed()) {
        var h = n.styles.zIndex.order;
        if (h < 0) {
          var g = 0;
          l.negativeZIndex.some(function(p, m) {
            return h > p.element.container.styles.zIndex.order ? (g = m, !1) : g > 0;
          }), l.negativeZIndex.splice(g, 0, u);
        } else if (h > 0) {
          var c = 0;
          l.positiveZIndex.some(function(p, m) {
            return h >= p.element.container.styles.zIndex.order ? (c = m + 1, !1) : c > 0;
          }), l.positiveZIndex.splice(c, 0, u);
        } else
          l.zeroOrAutoZIndexOrTransformedOrOpacity.push(u);
      } else
        n.styles.isFloating() ? l.nonPositionedFloats.push(u) : l.nonPositionedInlineLevel.push(u);
      Lp(i, u, a ? u : e, o);
    } else
      n.styles.isInlineLevel() ? t.inlineLevel.push(i) : t.nonInlineLevel.push(i), Lp(i, t, e, o);
    on(
      n.flags,
      8
      /* IS_LIST_OWNER */
    ) && Nb(n, o);
  });
}, Nb = function(r, t) {
  for (var e = r instanceof Up ? r.start : 1, A = r instanceof Up ? r.reversed : !1, n = 0; n < t.length; n++) {
    var a = t[n];
    a.container instanceof wb && typeof a.container.value == "number" && a.container.value !== 0 && (e = a.container.value), a.listValue = Ul(e, a.container.styles.listStyleType, !0), e += A ? -1 : 1;
  }
}, V6 = function(r) {
  var t = new _b(r, null), e = new Ib(t), A = [];
  return Lp(t, e, e, A), Nb(t.container, A), e;
}, jm = function(r, t) {
  switch (t) {
    case 0:
      return Ia(r.topLeftBorderBox, r.topLeftPaddingBox, r.topRightBorderBox, r.topRightPaddingBox);
    case 1:
      return Ia(r.topRightBorderBox, r.topRightPaddingBox, r.bottomRightBorderBox, r.bottomRightPaddingBox);
    case 2:
      return Ia(r.bottomRightBorderBox, r.bottomRightPaddingBox, r.bottomLeftBorderBox, r.bottomLeftPaddingBox);
    case 3:
    default:
      return Ia(r.bottomLeftBorderBox, r.bottomLeftPaddingBox, r.topLeftBorderBox, r.topLeftPaddingBox);
  }
}, q6 = function(r, t) {
  switch (t) {
    case 0:
      return Ia(r.topLeftBorderBox, r.topLeftBorderDoubleOuterBox, r.topRightBorderBox, r.topRightBorderDoubleOuterBox);
    case 1:
      return Ia(r.topRightBorderBox, r.topRightBorderDoubleOuterBox, r.bottomRightBorderBox, r.bottomRightBorderDoubleOuterBox);
    case 2:
      return Ia(r.bottomRightBorderBox, r.bottomRightBorderDoubleOuterBox, r.bottomLeftBorderBox, r.bottomLeftBorderDoubleOuterBox);
    case 3:
    default:
      return Ia(r.bottomLeftBorderBox, r.bottomLeftBorderDoubleOuterBox, r.topLeftBorderBox, r.topLeftBorderDoubleOuterBox);
  }
}, j6 = function(r, t) {
  switch (t) {
    case 0:
      return Ia(r.topLeftBorderDoubleInnerBox, r.topLeftPaddingBox, r.topRightBorderDoubleInnerBox, r.topRightPaddingBox);
    case 1:
      return Ia(r.topRightBorderDoubleInnerBox, r.topRightPaddingBox, r.bottomRightBorderDoubleInnerBox, r.bottomRightPaddingBox);
    case 2:
      return Ia(r.bottomRightBorderDoubleInnerBox, r.bottomRightPaddingBox, r.bottomLeftBorderDoubleInnerBox, r.bottomLeftPaddingBox);
    case 3:
    default:
      return Ia(r.bottomLeftBorderDoubleInnerBox, r.bottomLeftPaddingBox, r.topLeftBorderDoubleInnerBox, r.topLeftPaddingBox);
  }
}, W6 = function(r, t) {
  switch (t) {
    case 0:
      return Ru(r.topLeftBorderStroke, r.topRightBorderStroke);
    case 1:
      return Ru(r.topRightBorderStroke, r.bottomRightBorderStroke);
    case 2:
      return Ru(r.bottomRightBorderStroke, r.bottomLeftBorderStroke);
    case 3:
    default:
      return Ru(r.bottomLeftBorderStroke, r.topLeftBorderStroke);
  }
}, Ru = function(r, t) {
  var e = [];
  return ka(r) ? e.push(r.subdivide(0.5, !1)) : e.push(r), ka(t) ? e.push(t.subdivide(0.5, !0)) : e.push(t), e;
}, Ia = function(r, t, e, A) {
  var n = [];
  return ka(r) ? n.push(r.subdivide(0.5, !1)) : n.push(r), ka(e) ? n.push(e.subdivide(0.5, !0)) : n.push(e), ka(A) ? n.push(A.subdivide(0.5, !0).reverse()) : n.push(A), ka(t) ? n.push(t.subdivide(0.5, !1).reverse()) : n.push(t), n;
}, Mb = function(r) {
  var t = r.bounds, e = r.styles;
  return t.add(e.borderLeftWidth, e.borderTopWidth, -(e.borderRightWidth + e.borderLeftWidth), -(e.borderTopWidth + e.borderBottomWidth));
}, Cc = function(r) {
  var t = r.styles, e = r.bounds, A = dr(t.paddingLeft, e.width), n = dr(t.paddingRight, e.width), a = dr(t.paddingTop, e.width), s = dr(t.paddingBottom, e.width);
  return e.add(A + t.borderLeftWidth, a + t.borderTopWidth, -(t.borderRightWidth + t.borderLeftWidth + A + n), -(t.borderTopWidth + t.borderBottomWidth + a + s));
}, G6 = function(r, t) {
  return r === 0 ? t.bounds : r === 2 ? Cc(t) : Mb(t);
}, Y6 = function(r, t) {
  return r === 0 ? t.bounds : r === 2 ? Cc(t) : Mb(t);
}, oh = function(r, t, e) {
  var A = G6(yo(r.styles.backgroundOrigin, t), r), n = Y6(yo(r.styles.backgroundClip, t), r), a = $6(yo(r.styles.backgroundSize, t), e, A), s = a[0], i = a[1], o = hl(yo(r.styles.backgroundPosition, t), A.width - s, A.height - i), l = z6(yo(r.styles.backgroundRepeat, t), o, a, A, n), u = Math.round(A.left + o[0]), h = Math.round(A.top + o[1]);
  return [l, u, h, s, i];
}, vo = function(r) {
  return sr(r) && r.value === Uo.AUTO;
}, Hu = function(r) {
  return typeof r == "number";
}, $6 = function(r, t, e) {
  var A = t[0], n = t[1], a = t[2], s = r[0], i = r[1];
  if (!s)
    return [0, 0];
  if (en(s) && i && en(i))
    return [dr(s, e.width), dr(i, e.height)];
  var o = Hu(a);
  if (sr(s) && (s.value === Uo.CONTAIN || s.value === Uo.COVER)) {
    if (Hu(a)) {
      var l = e.width / e.height;
      return l < a != (s.value === Uo.COVER) ? [e.width, e.width / a] : [e.height * a, e.height];
    }
    return [e.width, e.height];
  }
  var u = Hu(A), h = Hu(n), g = u || h;
  if (vo(s) && (!i || vo(i))) {
    if (u && h)
      return [A, n];
    if (!o && !g)
      return [e.width, e.height];
    if (g && o) {
      var c = u ? A : n * a, p = h ? n : A / a;
      return [c, p];
    }
    var m = u ? A : e.width, y = h ? n : e.height;
    return [m, y];
  }
  if (o) {
    var w = 0, E = 0;
    return en(s) ? w = dr(s, e.width) : en(i) && (E = dr(i, e.height)), vo(s) ? w = E * a : (!i || vo(i)) && (E = w / a), [w, E];
  }
  var C = null, F = null;
  if (en(s) ? C = dr(s, e.width) : i && en(i) && (F = dr(i, e.height)), C !== null && (!i || vo(i)) && (F = u && h ? C / A * n : e.height), F !== null && vo(s) && (C = u && h ? F / n * A : e.width), C !== null && F !== null)
    return [C, F];
  throw new Error("Unable to calculate background-size for element");
}, yo = function(r, t) {
  var e = r[t];
  return typeof e > "u" ? r[0] : e;
}, z6 = function(r, t, e, A, n) {
  var a = t[0], s = t[1], i = e[0], o = e[1];
  switch (r) {
    case 2:
      return [
        new _t(Math.round(A.left), Math.round(A.top + s)),
        new _t(Math.round(A.left + A.width), Math.round(A.top + s)),
        new _t(Math.round(A.left + A.width), Math.round(o + A.top + s)),
        new _t(Math.round(A.left), Math.round(o + A.top + s))
      ];
    case 3:
      return [
        new _t(Math.round(A.left + a), Math.round(A.top)),
        new _t(Math.round(A.left + a + i), Math.round(A.top)),
        new _t(Math.round(A.left + a + i), Math.round(A.height + A.top)),
        new _t(Math.round(A.left + a), Math.round(A.height + A.top))
      ];
    case 1:
      return [
        new _t(Math.round(A.left + a), Math.round(A.top + s)),
        new _t(Math.round(A.left + a + i), Math.round(A.top + s)),
        new _t(Math.round(A.left + a + i), Math.round(A.top + s + o)),
        new _t(Math.round(A.left + a), Math.round(A.top + s + o))
      ];
    default:
      return [
        new _t(Math.round(n.left), Math.round(n.top)),
        new _t(Math.round(n.left + n.width), Math.round(n.top)),
        new _t(Math.round(n.left + n.width), Math.round(n.height + n.top)),
        new _t(Math.round(n.left), Math.round(n.height + n.top))
      ];
  }
}, X6 = "data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7", Wm = "Hidden Text", J6 = (
  /** @class */
  (function() {
    function r(t) {
      this._data = {}, this._document = t;
    }
    return r.prototype.parseMetrics = function(t, e) {
      var A = this._document.createElement("div"), n = this._document.createElement("img"), a = this._document.createElement("span"), s = this._document.body;
      A.style.visibility = "hidden", A.style.fontFamily = t, A.style.fontSize = e, A.style.margin = "0", A.style.padding = "0", A.style.whiteSpace = "nowrap", s.appendChild(A), n.src = X6, n.width = 1, n.height = 1, n.style.margin = "0", n.style.padding = "0", n.style.verticalAlign = "baseline", a.style.fontFamily = t, a.style.fontSize = e, a.style.margin = "0", a.style.padding = "0", a.appendChild(this._document.createTextNode(Wm)), A.appendChild(a), A.appendChild(n);
      var i = n.offsetTop - a.offsetTop + 2;
      A.removeChild(a), A.appendChild(this._document.createTextNode(Wm)), A.style.lineHeight = "normal", n.style.verticalAlign = "super";
      var o = n.offsetTop - A.offsetTop + 2;
      return s.removeChild(A), { baseline: i, middle: o };
    }, r.prototype.getMetrics = function(t, e) {
      var A = t + " " + e;
      return typeof this._data[A] > "u" && (this._data[A] = this.parseMetrics(t, e)), this._data[A];
    }, r;
  })()
), Ob = (
  /** @class */
  /* @__PURE__ */ (function() {
    function r(t, e) {
      this.context = t, this.options = e;
    }
    return r;
  })()
), Z6 = 1e4, eN = (
  /** @class */
  (function(r) {
    ei(t, r);
    function t(e, A) {
      var n = r.call(this, e, A) || this;
      return n._activeEffects = [], n.canvas = A.canvas ? A.canvas : document.createElement("canvas"), n.ctx = n.canvas.getContext("2d"), A.canvas || (n.canvas.width = Math.floor(A.width * A.scale), n.canvas.height = Math.floor(A.height * A.scale), n.canvas.style.width = A.width + "px", n.canvas.style.height = A.height + "px"), n.fontMetrics = new J6(document), n.ctx.scale(n.options.scale, n.options.scale), n.ctx.translate(-A.x, -A.y), n.ctx.textBaseline = "bottom", n._activeEffects = [], n.context.logger.debug("Canvas renderer initialized (" + A.width + "x" + A.height + ") with scale " + A.scale), n;
    }
    return t.prototype.applyEffects = function(e) {
      for (var A = this; this._activeEffects.length; )
        this.popEffect();
      e.forEach(function(n) {
        return A.applyEffect(n);
      });
    }, t.prototype.applyEffect = function(e) {
      this.ctx.save(), P6(e) && (this.ctx.globalAlpha = e.opacity), H6(e) && (this.ctx.translate(e.offsetX, e.offsetY), this.ctx.transform(e.matrix[0], e.matrix[1], e.matrix[2], e.matrix[3], e.matrix[4], e.matrix[5]), this.ctx.translate(-e.offsetX, -e.offsetY)), Lb(e) && (this.path(e.path), this.ctx.clip()), this._activeEffects.push(e);
    }, t.prototype.popEffect = function() {
      this._activeEffects.pop(), this.ctx.restore();
    }, t.prototype.renderStack = function(e) {
      return Yn(this, void 0, void 0, function() {
        var A;
        return On(this, function(n) {
          switch (n.label) {
            case 0:
              return A = e.element.container.styles, A.isVisible() ? [4, this.renderStackContent(e)] : [3, 2];
            case 1:
              n.sent(), n.label = 2;
            case 2:
              return [
                2
                /*return*/
              ];
          }
        });
      });
    }, t.prototype.renderNode = function(e) {
      return Yn(this, void 0, void 0, function() {
        return On(this, function(A) {
          switch (A.label) {
            case 0:
              if (on(
                e.container.flags,
                16
                /* DEBUG_RENDER */
              ))
                debugger;
              return e.container.styles.isVisible() ? [4, this.renderNodeBackgroundAndBorders(e)] : [3, 3];
            case 1:
              return A.sent(), [4, this.renderNodeContent(e)];
            case 2:
              A.sent(), A.label = 3;
            case 3:
              return [
                2
                /*return*/
              ];
          }
        });
      });
    }, t.prototype.renderTextWithLetterSpacing = function(e, A, n) {
      var a = this;
      if (A === 0)
        this.ctx.fillText(e.text, e.bounds.left, e.bounds.top + n);
      else {
        var s = av(e.text);
        s.reduce(function(i, o) {
          return a.ctx.fillText(o, i, e.bounds.top + n), i + a.ctx.measureText(o).width;
        }, e.bounds.left);
      }
    }, t.prototype.createFontStyle = function(e) {
      var A = e.fontVariant.filter(function(s) {
        return s === "normal" || s === "small-caps";
      }).join(""), n = aN(e.fontFamily).join(", "), a = Dl(e.fontSize) ? "" + e.fontSize.number + e.fontSize.unit : e.fontSize.number + "px";
      return [
        [e.fontStyle, A, e.fontWeight, a, n].join(" "),
        n,
        a
      ];
    }, t.prototype.renderTextNode = function(e, A) {
      return Yn(this, void 0, void 0, function() {
        var n, a, s, i, o, l, u, h, g = this;
        return On(this, function(c) {
          return n = this.createFontStyle(A), a = n[0], s = n[1], i = n[2], this.ctx.font = a, this.ctx.direction = A.direction === 1 ? "rtl" : "ltr", this.ctx.textAlign = "left", this.ctx.textBaseline = "alphabetic", o = this.fontMetrics.getMetrics(s, i), l = o.baseline, u = o.middle, h = A.paintOrder, e.textBounds.forEach(function(p) {
            h.forEach(function(m) {
              switch (m) {
                case 0:
                  g.ctx.fillStyle = fn(A.color), g.renderTextWithLetterSpacing(p, A.letterSpacing, l);
                  var y = A.textShadow;
                  y.length && p.text.trim().length && (y.slice(0).reverse().forEach(function(w) {
                    g.ctx.shadowColor = fn(w.color), g.ctx.shadowOffsetX = w.offsetX.number * g.options.scale, g.ctx.shadowOffsetY = w.offsetY.number * g.options.scale, g.ctx.shadowBlur = w.blur.number, g.renderTextWithLetterSpacing(p, A.letterSpacing, l);
                  }), g.ctx.shadowColor = "", g.ctx.shadowOffsetX = 0, g.ctx.shadowOffsetY = 0, g.ctx.shadowBlur = 0), A.textDecorationLine.length && (g.ctx.fillStyle = fn(A.textDecorationColor || A.color), A.textDecorationLine.forEach(function(w) {
                    switch (w) {
                      case 1:
                        g.ctx.fillRect(p.bounds.left, Math.round(p.bounds.top + l), p.bounds.width, 1);
                        break;
                      case 2:
                        g.ctx.fillRect(p.bounds.left, Math.round(p.bounds.top), p.bounds.width, 1);
                        break;
                      case 3:
                        g.ctx.fillRect(p.bounds.left, Math.ceil(p.bounds.top + u), p.bounds.width, 1);
                        break;
                    }
                  }));
                  break;
                case 1:
                  A.webkitTextStrokeWidth && p.text.trim().length && (g.ctx.strokeStyle = fn(A.webkitTextStrokeColor), g.ctx.lineWidth = A.webkitTextStrokeWidth, g.ctx.lineJoin = window.chrome ? "miter" : "round", g.ctx.strokeText(p.text, p.bounds.left, p.bounds.top + l)), g.ctx.strokeStyle = "", g.ctx.lineWidth = 0, g.ctx.lineJoin = "miter";
                  break;
              }
            });
          }), [
            2
            /*return*/
          ];
        });
      });
    }, t.prototype.renderReplacedElement = function(e, A, n) {
      if (n && e.intrinsicWidth > 0 && e.intrinsicHeight > 0) {
        var a = Cc(e), s = bc(A);
        this.path(s), this.ctx.save(), this.ctx.clip(), this.ctx.drawImage(n, 0, 0, e.intrinsicWidth, e.intrinsicHeight, a.left, a.top, a.width, a.height), this.ctx.restore();
      }
    }, t.prototype.renderNodeContent = function(e) {
      return Yn(this, void 0, void 0, function() {
        var A, n, a, s, i, o, E, E, l, u, h, g, F, c, p, H, m, y, w, E, C, F, H;
        return On(this, function(q) {
          switch (q.label) {
            case 0:
              this.applyEffects(e.getEffects(
                4
                /* CONTENT */
              )), A = e.container, n = e.curves, a = A.styles, s = 0, i = A.textNodes, q.label = 1;
            case 1:
              return s < i.length ? (o = i[s], [4, this.renderTextNode(o, a)]) : [3, 4];
            case 2:
              q.sent(), q.label = 3;
            case 3:
              return s++, [3, 1];
            case 4:
              if (!(A instanceof pb)) return [3, 8];
              q.label = 5;
            case 5:
              return q.trys.push([5, 7, , 8]), [4, this.context.cache.match(A.src)];
            case 6:
              return E = q.sent(), this.renderReplacedElement(A, n, E), [3, 8];
            case 7:
              return q.sent(), this.context.logger.error("Error loading image " + A.src), [3, 8];
            case 8:
              if (A instanceof vb && this.renderReplacedElement(A, n, A.canvas), !(A instanceof mb)) return [3, 12];
              q.label = 9;
            case 9:
              return q.trys.push([9, 11, , 12]), [4, this.context.cache.match(A.svg)];
            case 10:
              return E = q.sent(), this.renderReplacedElement(A, n, E), [3, 12];
            case 11:
              return q.sent(), this.context.logger.error("Error loading svg " + A.svg.substring(0, 255)), [3, 12];
            case 12:
              return A instanceof bb && A.tree ? (l = new t(this.context, {
                scale: this.options.scale,
                backgroundColor: A.backgroundColor,
                x: 0,
                y: 0,
                width: A.width,
                height: A.height
              }), [4, l.render(A.tree)]) : [3, 14];
            case 13:
              u = q.sent(), A.width && A.height && this.ctx.drawImage(u, 0, 0, A.width, A.height, A.bounds.left, A.bounds.top, A.bounds.width, A.bounds.height), q.label = 14;
            case 14:
              if (A instanceof iv && (h = Math.min(A.bounds.width, A.bounds.height), A.type === vc ? A.checked && (this.ctx.save(), this.path([
                new _t(A.bounds.left + h * 0.39363, A.bounds.top + h * 0.79),
                new _t(A.bounds.left + h * 0.16, A.bounds.top + h * 0.5549),
                new _t(A.bounds.left + h * 0.27347, A.bounds.top + h * 0.44071),
                new _t(A.bounds.left + h * 0.39694, A.bounds.top + h * 0.5649),
                new _t(A.bounds.left + h * 0.72983, A.bounds.top + h * 0.23),
                new _t(A.bounds.left + h * 0.84, A.bounds.top + h * 0.34085),
                new _t(A.bounds.left + h * 0.39363, A.bounds.top + h * 0.79)
              ]), this.ctx.fillStyle = fn(Lm), this.ctx.fill(), this.ctx.restore()) : A.type === mc && A.checked && (this.ctx.save(), this.ctx.beginPath(), this.ctx.arc(A.bounds.left + h / 2, A.bounds.top + h / 2, h / 4, 0, Math.PI * 2, !0), this.ctx.fillStyle = fn(Lm), this.ctx.fill(), this.ctx.restore())), tN(A) && A.value.length) {
                switch (g = this.createFontStyle(a), F = g[0], c = g[1], p = this.fontMetrics.getMetrics(F, c).baseline, this.ctx.font = F, this.ctx.fillStyle = fn(a.color), this.ctx.textBaseline = "alphabetic", this.ctx.textAlign = rN(A.styles.textAlign), H = Cc(A), m = 0, A.styles.textAlign) {
                  case 1:
                    m += H.width / 2;
                    break;
                  case 2:
                    m += H.width;
                    break;
                }
                y = H.add(m, 0, 0, -H.height / 2 + 1), this.ctx.save(), this.path([
                  new _t(H.left, H.top),
                  new _t(H.left + H.width, H.top),
                  new _t(H.left + H.width, H.top + H.height),
                  new _t(H.left, H.top + H.height)
                ]), this.ctx.clip(), this.renderTextWithLetterSpacing(new yl(A.value, y), a.letterSpacing, p), this.ctx.restore(), this.ctx.textBaseline = "alphabetic", this.ctx.textAlign = "left";
              }
              if (!on(
                A.styles.display,
                2048
                /* LIST_ITEM */
              )) return [3, 20];
              if (A.styles.listStyleImage === null) return [3, 19];
              if (w = A.styles.listStyleImage, w.type !== 0) return [3, 18];
              E = void 0, C = w.url, q.label = 15;
            case 15:
              return q.trys.push([15, 17, , 18]), [4, this.context.cache.match(C)];
            case 16:
              return E = q.sent(), this.ctx.drawImage(E, A.bounds.left - (E.width + 10), A.bounds.top), [3, 18];
            case 17:
              return q.sent(), this.context.logger.error("Error loading list-style-image " + C), [3, 18];
            case 18:
              return [3, 20];
            case 19:
              e.listValue && A.styles.listStyleType !== -1 && (F = this.createFontStyle(a)[0], this.ctx.font = F, this.ctx.fillStyle = fn(a.color), this.ctx.textBaseline = "middle", this.ctx.textAlign = "right", H = new Ni(A.bounds.left, A.bounds.top + dr(A.styles.paddingTop, A.bounds.width), A.bounds.width, pm(a.lineHeight, a.fontSize.number) / 2 + 1), this.renderTextWithLetterSpacing(new yl(e.listValue, H), a.letterSpacing, pm(a.lineHeight, a.fontSize.number) / 2 + 2), this.ctx.textBaseline = "bottom", this.ctx.textAlign = "left"), q.label = 20;
            case 20:
              return [
                2
                /*return*/
              ];
          }
        });
      });
    }, t.prototype.renderStackContent = function(e) {
      return Yn(this, void 0, void 0, function() {
        var A, n, w, a, s, w, i, o, w, l, u, w, h, g, w, c, p, w, m, y, w;
        return On(this, function(E) {
          switch (E.label) {
            case 0:
              if (on(
                e.element.container.flags,
                16
                /* DEBUG_RENDER */
              ))
                debugger;
              return [4, this.renderNodeBackgroundAndBorders(e.element)];
            case 1:
              E.sent(), A = 0, n = e.negativeZIndex, E.label = 2;
            case 2:
              return A < n.length ? (w = n[A], [4, this.renderStack(w)]) : [3, 5];
            case 3:
              E.sent(), E.label = 4;
            case 4:
              return A++, [3, 2];
            case 5:
              return [4, this.renderNodeContent(e.element)];
            case 6:
              E.sent(), a = 0, s = e.nonInlineLevel, E.label = 7;
            case 7:
              return a < s.length ? (w = s[a], [4, this.renderNode(w)]) : [3, 10];
            case 8:
              E.sent(), E.label = 9;
            case 9:
              return a++, [3, 7];
            case 10:
              i = 0, o = e.nonPositionedFloats, E.label = 11;
            case 11:
              return i < o.length ? (w = o[i], [4, this.renderStack(w)]) : [3, 14];
            case 12:
              E.sent(), E.label = 13;
            case 13:
              return i++, [3, 11];
            case 14:
              l = 0, u = e.nonPositionedInlineLevel, E.label = 15;
            case 15:
              return l < u.length ? (w = u[l], [4, this.renderStack(w)]) : [3, 18];
            case 16:
              E.sent(), E.label = 17;
            case 17:
              return l++, [3, 15];
            case 18:
              h = 0, g = e.inlineLevel, E.label = 19;
            case 19:
              return h < g.length ? (w = g[h], [4, this.renderNode(w)]) : [3, 22];
            case 20:
              E.sent(), E.label = 21;
            case 21:
              return h++, [3, 19];
            case 22:
              c = 0, p = e.zeroOrAutoZIndexOrTransformedOrOpacity, E.label = 23;
            case 23:
              return c < p.length ? (w = p[c], [4, this.renderStack(w)]) : [3, 26];
            case 24:
              E.sent(), E.label = 25;
            case 25:
              return c++, [3, 23];
            case 26:
              m = 0, y = e.positiveZIndex, E.label = 27;
            case 27:
              return m < y.length ? (w = y[m], [4, this.renderStack(w)]) : [3, 30];
            case 28:
              E.sent(), E.label = 29;
            case 29:
              return m++, [3, 27];
            case 30:
              return [
                2
                /*return*/
              ];
          }
        });
      });
    }, t.prototype.mask = function(e) {
      this.ctx.beginPath(), this.ctx.moveTo(0, 0), this.ctx.lineTo(this.canvas.width, 0), this.ctx.lineTo(this.canvas.width, this.canvas.height), this.ctx.lineTo(0, this.canvas.height), this.ctx.lineTo(0, 0), this.formatPath(e.slice(0).reverse()), this.ctx.closePath();
    }, t.prototype.path = function(e) {
      this.ctx.beginPath(), this.formatPath(e), this.ctx.closePath();
    }, t.prototype.formatPath = function(e) {
      var A = this;
      e.forEach(function(n, a) {
        var s = ka(n) ? n.start : n;
        a === 0 ? A.ctx.moveTo(s.x, s.y) : A.ctx.lineTo(s.x, s.y), ka(n) && A.ctx.bezierCurveTo(n.startControl.x, n.startControl.y, n.endControl.x, n.endControl.y, n.end.x, n.end.y);
      });
    }, t.prototype.renderRepeat = function(e, A, n, a) {
      this.path(e), this.ctx.fillStyle = A, this.ctx.translate(n, a), this.ctx.fill(), this.ctx.translate(-n, -a);
    }, t.prototype.resizeImage = function(e, A, n) {
      var a;
      if (e.width === A && e.height === n)
        return e;
      var s = (a = this.canvas.ownerDocument) !== null && a !== void 0 ? a : document, i = s.createElement("canvas");
      i.width = Math.max(1, A), i.height = Math.max(1, n);
      var o = i.getContext("2d");
      return o.drawImage(e, 0, 0, e.width, e.height, 0, 0, A, n), i;
    }, t.prototype.renderBackgroundImage = function(e) {
      return Yn(this, void 0, void 0, function() {
        var A, n, a, s, i, o;
        return On(this, function(l) {
          switch (l.label) {
            case 0:
              A = e.styles.backgroundImage.length - 1, n = function(u) {
                var h, g, c, O, ue, Z, W, I, M, p, O, ue, Z, W, I, m, y, w, E, C, F, H, q, N, M, k, O, S, U, W, I, le, ue, Z, ee, X, Ae, oe, x, L, j, $;
                return On(this, function(re) {
                  switch (re.label) {
                    case 0:
                      if (u.type !== 0) return [3, 5];
                      h = void 0, g = u.url, re.label = 1;
                    case 1:
                      return re.trys.push([1, 3, , 4]), [4, a.context.cache.match(g)];
                    case 2:
                      return h = re.sent(), [3, 4];
                    case 3:
                      return re.sent(), a.context.logger.error("Error loading background-image " + g), [3, 4];
                    case 4:
                      return h && (c = oh(e, A, [
                        h.width,
                        h.height,
                        h.width / h.height
                      ]), O = c[0], ue = c[1], Z = c[2], W = c[3], I = c[4], M = a.ctx.createPattern(a.resizeImage(h, W, I), "repeat"), a.renderRepeat(O, M, ue, Z)), [3, 6];
                    case 5:
                      HL(u) ? (p = oh(e, A, [null, null, null]), O = p[0], ue = p[1], Z = p[2], W = p[3], I = p[4], m = _L(u.angle, W, I), y = m[0], w = m[1], E = m[2], C = m[3], F = m[4], H = document.createElement("canvas"), H.width = W, H.height = I, q = H.getContext("2d"), N = q.createLinearGradient(w, C, E, F), dm(u.stops, y).forEach(function(pe) {
                        return N.addColorStop(pe.stop, fn(pe.color));
                      }), q.fillStyle = N, q.fillRect(0, 0, W, I), W > 0 && I > 0 && (M = a.ctx.createPattern(H, "repeat"), a.renderRepeat(O, M, ue, Z))) : PL(u) && (k = oh(e, A, [
                        null,
                        null,
                        null
                      ]), O = k[0], S = k[1], U = k[2], W = k[3], I = k[4], le = u.position.length === 0 ? [Av] : u.position, ue = dr(le[0], W), Z = dr(le[le.length - 1], I), ee = NL(u, ue, Z, W, I), X = ee[0], Ae = ee[1], X > 0 && Ae > 0 && (oe = a.ctx.createRadialGradient(S + ue, U + Z, 0, S + ue, U + Z, X), dm(u.stops, X * 2).forEach(function(pe) {
                        return oe.addColorStop(pe.stop, fn(pe.color));
                      }), a.path(O), a.ctx.fillStyle = oe, X !== Ae ? (x = e.bounds.left + 0.5 * e.bounds.width, L = e.bounds.top + 0.5 * e.bounds.height, j = Ae / X, $ = 1 / j, a.ctx.save(), a.ctx.translate(x, L), a.ctx.transform(1, 0, 0, j, 0, 0), a.ctx.translate(-x, -L), a.ctx.fillRect(S, $ * (U - L) + L, W, I * $), a.ctx.restore()) : a.ctx.fill())), re.label = 6;
                    case 6:
                      return A--, [
                        2
                        /*return*/
                      ];
                  }
                });
              }, a = this, s = 0, i = e.styles.backgroundImage.slice(0).reverse(), l.label = 1;
            case 1:
              return s < i.length ? (o = i[s], [5, n(o)]) : [3, 4];
            case 2:
              l.sent(), l.label = 3;
            case 3:
              return s++, [3, 1];
            case 4:
              return [
                2
                /*return*/
              ];
          }
        });
      });
    }, t.prototype.renderSolidBorder = function(e, A, n) {
      return Yn(this, void 0, void 0, function() {
        return On(this, function(a) {
          return this.path(jm(n, A)), this.ctx.fillStyle = fn(e), this.ctx.fill(), [
            2
            /*return*/
          ];
        });
      });
    }, t.prototype.renderDoubleBorder = function(e, A, n, a) {
      return Yn(this, void 0, void 0, function() {
        var s, i;
        return On(this, function(o) {
          switch (o.label) {
            case 0:
              return A < 3 ? [4, this.renderSolidBorder(e, n, a)] : [3, 2];
            case 1:
              return o.sent(), [
                2
                /*return*/
              ];
            case 2:
              return s = q6(a, n), this.path(s), this.ctx.fillStyle = fn(e), this.ctx.fill(), i = j6(a, n), this.path(i), this.ctx.fill(), [
                2
                /*return*/
              ];
          }
        });
      });
    }, t.prototype.renderNodeBackgroundAndBorders = function(e) {
      return Yn(this, void 0, void 0, function() {
        var A, n, a, s, i, o, l, u, h = this;
        return On(this, function(g) {
          switch (g.label) {
            case 0:
              return this.applyEffects(e.getEffects(
                2
                /* BACKGROUND_BORDERS */
              )), A = e.container.styles, n = !ds(A.backgroundColor) || A.backgroundImage.length, a = [
                { style: A.borderTopStyle, color: A.borderTopColor, width: A.borderTopWidth },
                { style: A.borderRightStyle, color: A.borderRightColor, width: A.borderRightWidth },
                { style: A.borderBottomStyle, color: A.borderBottomColor, width: A.borderBottomWidth },
                { style: A.borderLeftStyle, color: A.borderLeftColor, width: A.borderLeftWidth }
              ], s = AN(yo(A.backgroundClip, 0), e.curves), n || A.boxShadow.length ? (this.ctx.save(), this.path(s), this.ctx.clip(), ds(A.backgroundColor) || (this.ctx.fillStyle = fn(A.backgroundColor), this.ctx.fill()), [4, this.renderBackgroundImage(e.container)]) : [3, 2];
            case 1:
              g.sent(), this.ctx.restore(), A.boxShadow.slice(0).reverse().forEach(function(c) {
                h.ctx.save();
                var p = yc(e.curves), m = c.inset ? 0 : Z6, y = K6(p, -m + (c.inset ? 1 : -1) * c.spread.number, (c.inset ? 1 : -1) * c.spread.number, c.spread.number * (c.inset ? -2 : 2), c.spread.number * (c.inset ? -2 : 2));
                c.inset ? (h.path(p), h.ctx.clip(), h.mask(y)) : (h.mask(p), h.ctx.clip(), h.path(y)), h.ctx.shadowOffsetX = c.offsetX.number + m, h.ctx.shadowOffsetY = c.offsetY.number, h.ctx.shadowColor = fn(c.color), h.ctx.shadowBlur = c.blur.number, h.ctx.fillStyle = c.inset ? fn(c.color) : "rgba(0,0,0,1)", h.ctx.fill(), h.ctx.restore();
              }), g.label = 2;
            case 2:
              i = 0, o = 0, l = a, g.label = 3;
            case 3:
              return o < l.length ? (u = l[o], u.style !== 0 && !ds(u.color) && u.width > 0 ? u.style !== 2 ? [3, 5] : [4, this.renderDashedDottedBorder(
                u.color,
                u.width,
                i,
                e.curves,
                2
                /* DASHED */
              )] : [3, 11]) : [3, 13];
            case 4:
              return g.sent(), [3, 11];
            case 5:
              return u.style !== 3 ? [3, 7] : [4, this.renderDashedDottedBorder(
                u.color,
                u.width,
                i,
                e.curves,
                3
                /* DOTTED */
              )];
            case 6:
              return g.sent(), [3, 11];
            case 7:
              return u.style !== 4 ? [3, 9] : [4, this.renderDoubleBorder(u.color, u.width, i, e.curves)];
            case 8:
              return g.sent(), [3, 11];
            case 9:
              return [4, this.renderSolidBorder(u.color, i, e.curves)];
            case 10:
              g.sent(), g.label = 11;
            case 11:
              i++, g.label = 12;
            case 12:
              return o++, [3, 3];
            case 13:
              return [
                2
                /*return*/
              ];
          }
        });
      });
    }, t.prototype.renderDashedDottedBorder = function(e, A, n, a, s) {
      return Yn(this, void 0, void 0, function() {
        var i, o, l, u, h, g, c, p, m, y, w, E, C, F, H, q, H, q;
        return On(this, function(N) {
          return this.ctx.save(), i = W6(a, n), o = jm(a, n), s === 2 && (this.path(o), this.ctx.clip()), ka(o[0]) ? (l = o[0].start.x, u = o[0].start.y) : (l = o[0].x, u = o[0].y), ka(o[1]) ? (h = o[1].end.x, g = o[1].end.y) : (h = o[1].x, g = o[1].y), n === 0 || n === 2 ? c = Math.abs(l - h) : c = Math.abs(u - g), this.ctx.beginPath(), s === 3 ? this.formatPath(i) : this.formatPath(o.slice(0, 2)), p = A < 3 ? A * 3 : A * 2, m = A < 3 ? A * 2 : A, s === 3 && (p = A, m = A), y = !0, c <= p * 2 ? y = !1 : c <= p * 2 + m ? (w = c / (2 * p + m), p *= w, m *= w) : (E = Math.floor((c + m) / (p + m)), C = (c - E * p) / (E - 1), F = (c - (E + 1) * p) / E, m = F <= 0 || Math.abs(m - C) < Math.abs(m - F) ? C : F), y && (s === 3 ? this.ctx.setLineDash([0, p + m]) : this.ctx.setLineDash([p, m])), s === 3 ? (this.ctx.lineCap = "round", this.ctx.lineWidth = A) : this.ctx.lineWidth = A * 2 + 1.1, this.ctx.strokeStyle = fn(e), this.ctx.stroke(), this.ctx.setLineDash([]), s === 2 && (ka(o[0]) && (H = o[3], q = o[0], this.ctx.beginPath(), this.formatPath([new _t(H.end.x, H.end.y), new _t(q.start.x, q.start.y)]), this.ctx.stroke()), ka(o[1]) && (H = o[1], q = o[2], this.ctx.beginPath(), this.formatPath([new _t(H.end.x, H.end.y), new _t(q.start.x, q.start.y)]), this.ctx.stroke())), this.ctx.restore(), [
            2
            /*return*/
          ];
        });
      });
    }, t.prototype.render = function(e) {
      return Yn(this, void 0, void 0, function() {
        var A;
        return On(this, function(n) {
          switch (n.label) {
            case 0:
              return this.options.backgroundColor && (this.ctx.fillStyle = fn(this.options.backgroundColor), this.ctx.fillRect(this.options.x, this.options.y, this.options.width, this.options.height)), A = V6(e), [4, this.renderStack(A)];
            case 1:
              return n.sent(), this.applyEffects([]), [2, this.canvas];
          }
        });
      });
    }, t;
  })(Ob)
), tN = function(r) {
  return r instanceof yb || r instanceof Bb ? !0 : r instanceof iv && r.type !== mc && r.type !== vc;
}, AN = function(r, t) {
  switch (r) {
    case 0:
      return yc(t);
    case 2:
      return M6(t);
    case 1:
    default:
      return bc(t);
  }
}, rN = function(r) {
  switch (r) {
    case 1:
      return "center";
    case 2:
      return "right";
    case 0:
    default:
      return "left";
  }
}, nN = ["-apple-system", "system-ui"], aN = function(r) {
  return /iPhone OS 15_(0|1)/.test(window.navigator.userAgent) ? r.filter(function(t) {
    return nN.indexOf(t) === -1;
  }) : r;
}, iN = (
  /** @class */
  (function(r) {
    ei(t, r);
    function t(e, A) {
      var n = r.call(this, e, A) || this;
      return n.canvas = A.canvas ? A.canvas : document.createElement("canvas"), n.ctx = n.canvas.getContext("2d"), n.options = A, n.canvas.width = Math.floor(A.width * A.scale), n.canvas.height = Math.floor(A.height * A.scale), n.canvas.style.width = A.width + "px", n.canvas.style.height = A.height + "px", n.ctx.scale(n.options.scale, n.options.scale), n.ctx.translate(-A.x, -A.y), n.context.logger.debug("EXPERIMENTAL ForeignObject renderer initialized (" + A.width + "x" + A.height + " at " + A.x + "," + A.y + ") with scale " + A.scale), n;
    }
    return t.prototype.render = function(e) {
      return Yn(this, void 0, void 0, function() {
        var A, n;
        return On(this, function(a) {
          switch (a.label) {
            case 0:
              return A = Sp(this.options.width * this.options.scale, this.options.height * this.options.scale, this.options.scale, this.options.scale, e), [4, sN(A)];
            case 1:
              return n = a.sent(), this.options.backgroundColor && (this.ctx.fillStyle = fn(this.options.backgroundColor), this.ctx.fillRect(0, 0, this.options.width * this.options.scale, this.options.height * this.options.scale)), this.ctx.drawImage(n, -this.options.x * this.options.scale, -this.options.y * this.options.scale), [2, this.canvas];
          }
        });
      });
    }, t;
  })(Ob)
), sN = function(r) {
  return new Promise(function(t, e) {
    var A = new Image();
    A.onload = function() {
      t(A);
    }, A.onerror = e, A.src = "data:image/svg+xml;charset=utf-8," + encodeURIComponent(new XMLSerializer().serializeToString(r));
  });
}, oN = (
  /** @class */
  (function() {
    function r(t) {
      var e = t.id, A = t.enabled;
      this.id = e, this.enabled = A, this.start = Date.now();
    }
    return r.prototype.debug = function() {
      for (var t = [], e = 0; e < arguments.length; e++)
        t[e] = arguments[e];
      this.enabled && (typeof window < "u" && window.console && typeof console.debug == "function" ? console.debug.apply(console, mu([this.id, this.getTime() + "ms"], t)) : this.info.apply(this, t));
    }, r.prototype.getTime = function() {
      return Date.now() - this.start;
    }, r.prototype.info = function() {
      for (var t = [], e = 0; e < arguments.length; e++)
        t[e] = arguments[e];
      this.enabled && typeof window < "u" && window.console && typeof console.info == "function" && console.info.apply(console, mu([this.id, this.getTime() + "ms"], t));
    }, r.prototype.warn = function() {
      for (var t = [], e = 0; e < arguments.length; e++)
        t[e] = arguments[e];
      this.enabled && (typeof window < "u" && window.console && typeof console.warn == "function" ? console.warn.apply(console, mu([this.id, this.getTime() + "ms"], t)) : this.info.apply(this, t));
    }, r.prototype.error = function() {
      for (var t = [], e = 0; e < arguments.length; e++)
        t[e] = arguments[e];
      this.enabled && (typeof window < "u" && window.console && typeof console.error == "function" ? console.error.apply(console, mu([this.id, this.getTime() + "ms"], t)) : this.info.apply(this, t));
    }, r.instances = {}, r;
  })()
), lN = (
  /** @class */
  (function() {
    function r(t, e) {
      var A;
      this.windowBounds = e, this.instanceName = "#" + r.instanceCount++, this.logger = new oN({ id: this.instanceName, enabled: t.logging }), this.cache = (A = t.cache) !== null && A !== void 0 ? A : new T6(this, t);
    }
    return r.instanceCount = 1, r;
  })()
), Rb = function(r, t) {
  return t === void 0 && (t = {}), uN(r, t);
};
typeof window < "u" && kb.setContext(window);
var uN = function(r, t) {
  return Yn(void 0, void 0, void 0, function() {
    var e, A, n, a, s, i, o, l, u, h, g, c, p, m, y, w, E, C, F, H, N, q, N, M, k, O, S, U, W, I, le, ue, Z, ee, X, Ae, oe, x, L, j;
    return On(this, function($) {
      switch ($.label) {
        case 0:
          if (!r || typeof r != "object")
            return [2, Promise.reject("Invalid element provided as first argument")];
          if (e = r.ownerDocument, !e)
            throw new Error("Element is not attached to a Document");
          if (A = e.defaultView, !A)
            throw new Error("Document is not attached to a Window");
          return n = {
            allowTaint: (M = t.allowTaint) !== null && M !== void 0 ? M : !1,
            imageTimeout: (k = t.imageTimeout) !== null && k !== void 0 ? k : 15e3,
            proxy: t.proxy,
            useCORS: (O = t.useCORS) !== null && O !== void 0 ? O : !1
          }, a = fp({ logging: (S = t.logging) !== null && S !== void 0 ? S : !0, cache: t.cache }, n), s = {
            windowWidth: (U = t.windowWidth) !== null && U !== void 0 ? U : A.innerWidth,
            windowHeight: (W = t.windowHeight) !== null && W !== void 0 ? W : A.innerHeight,
            scrollX: (I = t.scrollX) !== null && I !== void 0 ? I : A.pageXOffset,
            scrollY: (le = t.scrollY) !== null && le !== void 0 ? le : A.pageYOffset
          }, i = new Ni(s.scrollX, s.scrollY, s.windowWidth, s.windowHeight), o = new lN(a, i), l = (ue = t.foreignObjectRendering) !== null && ue !== void 0 ? ue : !1, u = {
            allowTaint: (Z = t.allowTaint) !== null && Z !== void 0 ? Z : !1,
            onclone: t.onclone,
            ignoreElements: t.ignoreElements,
            inlineImages: l,
            copyStyles: l
          }, o.logger.debug("Starting document clone with size " + i.width + "x" + i.height + " scrolled to " + -i.left + "," + -i.top), h = new Km(o, r, u), g = h.clonedReferenceElement, g ? [4, h.toIFrame(e, i)] : [2, Promise.reject("Unable to find element in cloned iframe")];
        case 1:
          return c = $.sent(), p = sv(g) || f6(g) ? KD(g.ownerDocument) : Uc(o, g), m = p.width, y = p.height, w = p.left, E = p.top, C = cN(o, g, t.backgroundColor), F = {
            canvas: t.canvas,
            backgroundColor: C,
            scale: (X = (ee = t.scale) !== null && ee !== void 0 ? ee : A.devicePixelRatio) !== null && X !== void 0 ? X : 1,
            x: ((Ae = t.x) !== null && Ae !== void 0 ? Ae : 0) + w,
            y: ((oe = t.y) !== null && oe !== void 0 ? oe : 0) + E,
            width: (x = t.width) !== null && x !== void 0 ? x : Math.ceil(m),
            height: (L = t.height) !== null && L !== void 0 ? L : Math.ceil(y)
          }, l ? (o.logger.debug("Document cloned, using foreign object rendering"), N = new iN(o, F), [4, N.render(g)]) : [3, 3];
        case 2:
          return H = $.sent(), [3, 5];
        case 3:
          return o.logger.debug("Document cloned, element located at " + w + "," + E + " with size " + m + "x" + y + " using computed rendering"), o.logger.debug("Starting DOM parsing"), q = Eb(o, g), C === q.styles.backgroundColor && (q.styles.backgroundColor = Ii.TRANSPARENT), o.logger.debug("Starting renderer for element at " + F.x + "," + F.y + " with size " + F.width + "x" + F.height), N = new eN(o, F), [4, N.render(q)];
        case 4:
          H = $.sent(), $.label = 5;
        case 5:
          return (!((j = t.removeContainer) !== null && j !== void 0) || j) && (Km.destroy(c) || o.logger.error("Cannot detach cloned iframe as it is not in the DOM anymore")), o.logger.debug("Finished rendering"), [2, H];
      }
    });
  });
}, cN = function(r, t, e) {
  var A = t.ownerDocument, n = A.documentElement ? wl(r, getComputedStyle(A.documentElement).backgroundColor) : Ii.TRANSPARENT, a = A.body ? wl(r, getComputedStyle(A.body).backgroundColor) : Ii.TRANSPARENT, s = typeof e == "string" ? wl(r, e) : e === null ? Ii.TRANSPARENT : 4294967295;
  return t === A.documentElement ? ds(n) ? ds(a) ? s : a : n : s;
};
const fN = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
  __proto__: null,
  default: Rb
}, Symbol.toStringTag, { value: "Module" })), hN = { class: "gantt-body" }, dN = ["title"], gN = {
  width: "16",
  height: "16",
  viewBox: "0 0 24 24",
  fill: "none",
  stroke: "currentColor",
  "stroke-width": "2.5"
}, pN = {
  key: 0,
  points: "15,18 9,12 15,6"
}, vN = {
  key: 1,
  points: "9,18 15,12 9,6"
}, mN = { class: "close-text" }, wN = /* @__PURE__ */ dn({
  __name: "GanttChart",
  props: {
    tasks: { default: () => [] },
    milestones: { default: () => [] },
    useDefaultDrawer: { type: Boolean, default: !0 },
    useDefaultMilestoneDialog: { type: Boolean, default: !0 },
    toolbarConfig: { default: () => ({}) },
    showToolbar: { type: Boolean, default: !0 },
    onTodayLocate: { type: Function, default: void 0 },
    onExportCsv: { type: Function, default: void 0 },
    onExportPdf: { type: Function, default: void 0 },
    onLanguageChange: { type: Function, default: void 0 },
    onThemeChange: { type: Function, default: void 0 },
    onFullscreenChange: { type: Function, default: void 0 },
    onExpandAll: { type: Function, default: void 0 },
    onCollapseAll: { type: Function, default: void 0 },
    localeMessages: { default: void 0 },
    workingHours: { default: () => ({
      morning: { start: 8, end: 11 },
      afternoon: { start: 13, end: 17 }
    }) },
    taskListConfig: { default: void 0 },
    taskListColumnRenderMode: { default: "default" },
    taskBarConfig: { default: void 0 },
    autoSortByStartDate: { type: Boolean, default: !1 },
    allowDragAndResize: { type: Boolean, default: !0 },
    enableTaskRowMove: { type: Boolean, default: !1 },
    assigneeOptions: { default: () => [] },
    taskListRowClassName: { type: [String, Function], default: void 0 },
    taskListRowStyle: { type: [Boolean, null, String, Object, Array, Function], default: void 0 }
  },
  emits: [
    "task-click",
    "task-double-click",
    "taskbar-drag-end",
    "taskbar-resize-end",
    "milestone-drag-end",
    "milestone-double-click",
    "timer-started",
    "timer-stopped",
    "predecessor-added",
    "successor-added",
    "task-deleted",
    "task-added",
    "task-updated",
    "task-collapse-change",
    // 任务折叠状态变化事件
    "link-deleted",
    // 链接删除事件
    // 工具栏事件
    "add-task",
    "add-milestone",
    // 里程碑事件
    "milestone-saved",
    "milestone-deleted",
    "milestone-icon-changed",
    // 任务关系事件
    "add-predecessor",
    "add-successor",
    // TaskRow拖拽事件
    "task-row-moved"
  ],
  setup(r, { emit: t }) {
    const e = r, A = t, { showMessage: n } = Ky(), a = Fc();
    AE("gantt-column-slots", a);
    const s = Te(null), i = Te(1920), o = (z, ge) => {
      let We = 0, it = null;
      return ((...V) => {
        const Be = Date.now(), Fe = ge - (Be - We);
        it && clearTimeout(it), Fe <= 0 ? (We = Be, z(...V)) : it = window.setTimeout(() => {
          We = Date.now(), z(...V), it = null;
        }, Fe);
      });
    }, l = () => {
      if (s.value) {
        const z = s.value.clientWidth;
        if (z !== i.value) {
          i.value = z, m.value = h(), p.value = g(), w.value = g(), E.value = g();
          const ge = F(C.value);
          ge !== C.value && (C.value = ge);
        }
      }
    }, u = o(l, 100);
    En(() => {
      l(), window.addEventListener("resize", u);
    }), tn(() => {
      window.removeEventListener("resize", u);
    });
    const h = () => {
      var ge;
      const z = vf(
        (ge = e.taskListConfig) == null ? void 0 : ge.minWidth,
        i.value,
        E0
      );
      return Math.max(z, E0);
    }, g = () => {
      var z;
      return vf(
        (z = e.taskListConfig) == null ? void 0 : z.maxWidth,
        i.value,
        nF
      );
    }, c = () => {
      var z;
      return vf(
        (z = e.taskListConfig) == null ? void 0 : z.defaultWidth,
        i.value,
        rF
      );
    }, p = Te(g()), m = Te(h()), y = Te(h()), w = Te(g()), E = Te(g()), C = Te(c()), F = (z) => z < m.value ? m.value : z > E.value ? E.value : Math.max(m.value, z);
    EA(
      () => e.taskListConfig,
      (z) => {
        if (z) {
          z.defaultWidth !== void 0 && (C.value = c()), m.value = h(), p.value = g(), w.value = g(), E.value = g(), y.value = h();
          const ge = F(C.value);
          ge !== C.value && (C.value = ge);
        }
      },
      { immediate: !1, deep: !0 }
    );
    const H = Te(null), q = Te(0), N = Te(0);
    EA(
      () => e.tasks,
      () => {
        N.value++;
      },
      { deep: !0 }
    );
    const M = Te(Ye.DAY), k = lt(() => {
      var ge;
      const z = (ge = H.value) == null ? void 0 : ge.highlightedTaskId;
      return z != null;
    });
    EA(
      () => H.value,
      (z) => {
        z && z.updateTimeScale(M.value);
      }
    );
    const O = Te(!1);
    function S(z) {
      if (z.target.closest(".task-list-toggle"))
        return;
      z.preventDefault(), z.stopPropagation(), O.value = !0;
      const We = z.clientX, it = C.value, V = document.querySelector(".task-list-body");
      if (!V) return;
      const Be = V.getBoundingClientRect();
      p.value = Be.width, w.value = window.innerWidth * 0.8 - 6, E.value = Math.min(
        w.value,
        E.value
      ), window.dispatchEvent(new CustomEvent("splitter-drag-start")), document.body.style.userSelect = "none", document.body.style.webkitUserSelect = "none", document.body.style.cursor = "col-resize", document.body.style.pointerEvents = "none";
      const Fe = (Me) => {
        Me.type !== "mousemove" && Me.type !== "mouseup" && (Me.preventDefault(), Me.stopPropagation(), Me.stopImmediatePropagation());
      };
      document.addEventListener("mousedown", Fe, { capture: !0 }), document.addEventListener("click", Fe, { capture: !0 }), document.addEventListener("dblclick", Fe, { capture: !0 }), document.addEventListener("mouseover", Fe, { capture: !0 }), document.addEventListener("mouseout", Fe, { capture: !0 }), document.addEventListener("mouseenter", Fe, { capture: !0 }), document.addEventListener("mouseleave", Fe, { capture: !0 }), document.addEventListener("wheel", Fe, { capture: !0, passive: !1 }), document.addEventListener("contextmenu", Fe, { capture: !0 });
      function ke(Me) {
        if (!O.value) return;
        Me.preventDefault(), Me.stopPropagation(), Me.stopImmediatePropagation();
        const tt = Me.clientX - We, Je = it + tt, ft = F(Je);
        C.value = ft;
      }
      function Ze() {
        O.value = !1, document.removeEventListener("mousedown", Fe, { capture: !0 }), document.removeEventListener("click", Fe, { capture: !0 }), document.removeEventListener("dblclick", Fe, { capture: !0 }), document.removeEventListener("mouseover", Fe, { capture: !0 }), document.removeEventListener("mouseout", Fe, { capture: !0 }), document.removeEventListener("mouseenter", Fe, { capture: !0 }), document.removeEventListener("mouseleave", Fe, { capture: !0 }), document.removeEventListener("wheel", Fe, { capture: !0 }), document.removeEventListener("contextmenu", Fe, { capture: !0 }), window.dispatchEvent(new CustomEvent("splitter-drag-end")), document.body.style.userSelect = "", document.body.style.webkitUserSelect = "", document.body.style.cursor = "", document.body.style.pointerEvents = "", p.value = g(), m.value = h(), w.value = g(), E.value = g(), y.value = h(), window.removeEventListener("mousemove", ke), window.removeEventListener("mouseup", Ze);
      }
      window.addEventListener("mousemove", ke), window.addEventListener("mouseup", Ze);
    }
    const U = Te(!0), W = Te(!1), I = Te(""), le = () => {
      W.value || (W.value = !0, U.value ? I.value = "impact-left" : I.value = "impact-right", setTimeout(() => {
        U.value = !U.value;
      }, 200), setTimeout(() => {
        W.value = !1, I.value = "", rr(() => {
          window.dispatchEvent(
            new CustomEvent("timeline-container-resized", {
              detail: { source: "manual-task-list-toggle" }
            })
          );
        });
      }, 400));
    }, ue = (z) => {
      U.value = z.detail, rr(() => {
        window.dispatchEvent(
          new CustomEvent("timeline-container-resized", {
            detail: { source: "task-list-toggle" }
          })
        );
      });
    };
    function Z(z) {
      const ge = z.detail;
      e.tasks && LA(e.tasks, ge), N.value++, A("taskbar-drag-end", ge);
    }
    function ee(z) {
      const ge = z.detail;
      e.tasks && LA(e.tasks, ge), N.value++, A("taskbar-resize-end", ge);
    }
    function X(z) {
      const ge = z.detail;
      N.value++, A("milestone-drag-end", ge);
    }
    let Ae = null;
    En(() => {
      window.addEventListener("taskbar-drag-end", Z), window.addEventListener("taskbar-resize-end", ee), window.addEventListener("milestone-drag-end", X), rr(() => {
        const z = document.querySelector(".gantt-panel-right");
        z && (q.value = z.clientWidth, Ae = new ResizeObserver((ge) => {
          for (const We of ge)
            q.value = We.contentRect.width;
        }), Ae.observe(z));
      });
    }), tn(() => {
      window.removeEventListener("taskbar-drag-end", Z), window.removeEventListener("taskbar-resize-end", ee), window.removeEventListener("milestone-drag-end", X), Ae && (Ae.disconnect(), Ae = null);
    });
    const oe = (z) => {
      const ge = (We, it, V) => {
        for (const Be of We) {
          if (Be.id === it)
            return Be.collapsed = V, !0;
          if (Be.children && Be.children.length > 0 && ge(Be.children, it, V))
            return !0;
        }
        return !1;
      };
      e.tasks && ge(e.tasks, z.id, z.collapsed ?? !1), N.value++, A("task-collapse-change", z);
    }, x = () => {
      if (e.onExpandAll && typeof e.onExpandAll == "function")
        e.onExpandAll();
      else {
        const z = (ge) => {
          ge.forEach((We) => {
            We.children && We.children.length > 0 && (We.collapsed = !1, z(We.children));
          });
        };
        e.tasks && (z(e.tasks), N.value++);
      }
    }, L = (z) => {
      const { draggedTask: ge, targetTask: We, position: it } = z;
      if (!e.tasks) return;
      const V = ZU(e.tasks, ge.id, We.id, it);
      V && (N.value++, rr(() => {
        window.dispatchEvent(new CustomEvent("task-updated", {
          detail: V.movedTask
        }));
      }), A("task-row-moved", {
        draggedTask: V.movedTask,
        targetTask: We,
        position: it,
        oldParent: V.oldParent,
        newParent: V.newParent
      }));
    }, j = () => {
      if (e.onCollapseAll && typeof e.onCollapseAll == "function")
        e.onCollapseAll();
      else {
        const z = (ge) => {
          ge.forEach((We) => {
            We.children && We.children.length > 0 && (We.collapsed = !0, z(We.children));
          });
        };
        e.tasks && (z(e.tasks), N.value++);
      }
    }, $ = () => {
      const z = [], ge = (We) => {
        We.forEach((it) => {
          z.push(it), it.children && it.children.length > 0 && ge(it.children);
        });
      };
      e.tasks && ge(e.tasks), e.milestones && z.push(...e.milestones), window.dispatchEvent(new CustomEvent("task-list-updated", { detail: z }));
    }, re = () => {
      $();
    };
    EA(
      [() => e.tasks, () => e.milestones],
      () => {
        rr(() => {
          re();
        });
      },
      { deep: !0, immediate: !0 }
    ), En(() => {
      window.addEventListener("toggle-task-list", ue), window.addEventListener("fullscreen-toggle", Ke), window.addEventListener("milestone-icon-changed", Ft), window.addEventListener("milestone-deleted", St), window.addEventListener("milestone-data-changed", bt), window.addEventListener("request-task-list", $), window.addEventListener("resize", sA), window.addEventListener("context-menu", SA), rr(() => {
        H.value && typeof H.value.scrollToTodayCenter == "function" && H.value.scrollToTodayCenter();
      });
    }), tn(() => {
      O.value = !1, window.removeEventListener("toggle-task-list", ue), window.removeEventListener("fullscreen-toggle", Ke), window.removeEventListener(
        "milestone-icon-changed",
        Ft
      ), window.removeEventListener("milestone-deleted", St), window.removeEventListener("milestone-data-changed", bt), window.removeEventListener("request-task-list", $), window.removeEventListener("resize", sA), window.removeEventListener("context-menu", SA);
    });
    const pe = Te(!1), { t: de, locale: ce } = Ma(), Se = lt(() => de.value.collapseTaskList), qe = lt(() => de.value.expandTaskList), rt = lt(() => {
      N.value >= 0;
      const z = [];
      if (e.milestones && e.milestones.length > 0) {
        const ge = {
          id: -1,
          name: de.value.milestoneGroup,
          startDate: "",
          endDate: "",
          type: "milestone-group",
          children: e.milestones,
          isParent: !0,
          collapsed: !1
        };
        z.push(ge);
      }
      if (e.tasks && e.tasks.length > 0)
        if (e.autoSortByStartDate) {
          const ge = (it) => [...it].map((V) => {
            const Be = { ...V };
            return V.children && V.children.length > 0 && (Be.children = ge(V.children)), Be;
          }).sort((V, Be) => {
            const Fe = (tt) => {
              if (tt.children && tt.children.length > 0) {
                const Je = tt.children.map((ft) => Fe(ft)).filter((ft) => ft.getTime() > 0);
                if (Je.length > 0)
                  return new Date(Math.min(...Je.map((ft) => ft.getTime())));
              }
              return tt.startDate ? new Date(tt.startDate) : /* @__PURE__ */ new Date("9999-12-31");
            }, ke = Fe(V), Ze = Fe(Be), Me = ke.getTime() - Ze.getTime();
            return Me !== 0 ? Me : V.id - Be.id;
          }), We = ge(e.tasks);
          z.push(...We);
        } else
          z.push(...e.tasks);
      return z;
    }), at = lt(() => {
      N.value >= 0;
      const z = [];
      if (e.milestones && e.milestones.length > 0) {
        const ge = {
          id: -1,
          name: de.value.milestoneGroup,
          startDate: "",
          endDate: "",
          type: "milestone-group",
          children: e.milestones,
          isParent: !0,
          collapsed: !1
        };
        z.push(ge);
      }
      if (e.tasks && e.tasks.length > 0) {
        const ge = (Ze) => {
          const Me = [], tt = [];
          return Ze.forEach((Je) => {
            if (Je.startDate && Me.push(Je.startDate), Je.endDate && tt.push(Je.endDate), Je.children && Je.children.length > 0) {
              const ft = ge(Je.children);
              Me.push(...ft.starts), tt.push(...ft.ends);
            }
          }), { starts: Me, ends: tt };
        }, We = (Ze) => {
          if (!Ze.children || Ze.children.length === 0)
            return {
              startDate: Ze.startDate || "",
              endDate: Ze.endDate || ""
            };
          const { starts: Me, ends: tt } = ge(Ze.children);
          if (Me.length === 0 || tt.length === 0)
            return {
              startDate: Ze.startDate || "",
              endDate: Ze.endDate || ""
            };
          const Je = Me.reduce((Et, Jt) => new Date(Jt) < new Date(Et) ? Jt : Et), ft = tt.reduce((Et, Jt) => new Date(Jt) > new Date(Et) ? Jt : Et);
          return { startDate: Je, endDate: ft };
        }, it = (Ze) => Ze.map((Me) => {
          let tt = { ...Me };
          Me.children && Me.children.length > 0 && (tt.children = it(Me.children));
          const Je = Me.type === "story" || tt.children && tt.children.length > 0;
          if (tt.isParent = Je, Je && tt.children && tt.children.length > 0) {
            const { startDate: ft, endDate: Et } = We(tt);
            tt = {
              ...tt,
              startDate: ft,
              endDate: Et
            };
          }
          return tt;
        }), V = (Ze, Me = 0) => {
          const tt = [];
          return Ze.forEach((Je) => {
            const ft = {
              ...Je,
              level: Me
            };
            if (tt.push(ft), Je.children && Je.children.length > 0 && !Je.collapsed) {
              const Et = V(Je.children, Me + 1);
              tt.push(...Et);
            }
          }), tt;
        }, Be = rt.value.filter((Ze) => Ze.type !== "milestone-group"), Fe = it(Be), ke = V(Fe);
        z.push(...ke);
      }
      return z;
    }), dt = lt(() => (N.value >= 0, e.milestones ? e.milestones.filter((ge) => !!ge.startDate).map((ge) => ({
      id: ge.id,
      name: ge.name,
      startDate: ge.startDate,
      // 此时已确保非空
      endDate: ge.endDate,
      assignee: ge.assignee,
      type: ge.type || "milestone",
      icon: ge.icon,
      description: ge.description
    })) : [])), D = lt(() => {
      N.value;
      const z = (Je) => {
        let ft = [];
        return Je.forEach((Et) => {
          ft.push(Et), Et.children && Et.children.length > 0 && (ft = ft.concat(z(Et.children)));
        }), ft;
      };
      let ge = [];
      e.tasks && (ge = ge.concat(z(e.tasks))), e.milestones && (ge = ge.concat(e.milestones));
      const We = ge.map((Je) => Je.startDate).filter(Boolean).map((Je) => new Date(Je)), it = ge.map((Je) => Je.endDate).filter(Boolean).map((Je) => new Date(Je));
      if (We.length === 0 || it.length === 0) {
        const Je = /* @__PURE__ */ new Date(), ft = new Date(Je.getFullYear(), Je.getMonth() - 6, 1), Et = new Date(Je.getFullYear(), Je.getMonth() + 6 + 1, 0);
        return { min: ft, max: Et };
      }
      const V = new Date(Math.min(...We.map((Je) => Je.getTime()))), Be = new Date(Math.max(...it.map((Je) => Je.getTime()))), Fe = q.value || 1200, ke = hF[M.value].cellWidth, Ze = Math.ceil(Fe / ke), { min: Me, max: tt } = Ie(
        V,
        Be,
        M.value,
        Ze,
        ke
      );
      return { min: Me, max: tt };
    });
    function Ie(z, ge, We, it, V) {
      let Be, Fe;
      switch (We) {
        case Ye.HOUR: {
          Be = new Date(z.getTime() - 1440 * 60 * 1e3), Fe = new Date(ge.getTime() + 1440 * 60 * 1e3);
          const ke = Math.ceil((Fe.getTime() - Be.getTime()) / (1e3 * 60 * 60));
          if (ke < it) {
            const Ze = it - ke, Me = Math.ceil(Ze / 2);
            Be = new Date(Be.getTime() - Me * 60 * 60 * 1e3), Fe = new Date(Fe.getTime() + Me * 60 * 60 * 1e3);
          }
          break;
        }
        case Ye.DAY: {
          const ke = new Date(z);
          ke.setDate(ke.getDate() - 15);
          const Ze = new Date(ge);
          Ze.setDate(Ze.getDate() + 15), Be = new Date(ke.getFullYear(), ke.getMonth(), 1), Fe = new Date(Ze.getFullYear(), Ze.getMonth() + 1, 0);
          const Me = Math.ceil((Fe.getTime() - Be.getTime()) / (1e3 * 60 * 60 * 24));
          if (Me < it) {
            const tt = it - Me, Je = Math.ceil(tt / 30), ft = Be.getMonth() - Je, Et = Be.getFullYear() + Math.floor(ft / 12), Jt = (ft % 12 + 12) % 12;
            Be = new Date(Et, Jt, 1);
            const fA = Fe.getMonth() + Je + 1, gA = Fe.getFullYear() + Math.floor(fA / 12), Xt = (fA % 12 + 12) % 12;
            Fe = new Date(gA, Xt, 0);
          }
          break;
        }
        case Ye.WEEK: {
          const ke = (WA) => {
            const bA = new Date(WA), nr = bA.getDay() || 7;
            return bA.setDate(bA.getDate() - (nr - 1)), bA;
          }, Ze = (WA, bA) => {
            let nr = 1;
            for (; nr <= 31; ) {
              const GA = new Date(WA, bA, nr);
              if (GA.getMonth() !== bA) break;
              const cr = ke(GA);
              if (cr.getMonth() === bA)
                return cr;
              nr++;
            }
            return new Date(WA, bA, 1);
          }, Me = (WA, bA) => {
            const nr = new Date(WA, bA + 1, 0).getDate();
            for (let GA = nr; GA >= 1; GA--) {
              const cr = new Date(WA, bA, GA), pn = ke(cr);
              if (pn.getMonth() === bA)
                return pn;
            }
            return new Date(WA, bA, 1);
          }, tt = (WA, bA) => {
            const nr = [], GA = Ze(WA, bA), cr = Me(WA, bA), pn = new Date(GA);
            for (; pn <= cr; )
              nr.push(new Date(pn)), pn.setDate(pn.getDate() + 7);
            return nr;
          }, Je = ke(z), ft = Je.getFullYear(), Et = Je.getMonth(), Jt = Et === 0 ? 11 : Et - 1, fA = Et === 0 ? ft - 1 : ft, gA = tt(fA, Jt), Xt = ke(ge), tA = Xt.getFullYear(), Gt = Xt.getMonth(), UA = Gt === 11 ? 0 : Gt + 1, FA = Gt === 11 ? tA + 1 : tA, IA = tt(FA, UA);
          let aA = [];
          aA.push(...gA);
          let An = ft, Tn = Et;
          for (; An < tA || An === tA && Tn <= Gt; ) {
            const WA = tt(An, Tn);
            aA.push(...WA), Tn++, Tn > 11 && (Tn = 0, An++);
          }
          aA.push(...IA);
          const ea = 60;
          let Pn = aA.length * ea;
          for (; Pn < it * V; ) {
            const WA = aA[0], bA = WA.getFullYear(), nr = WA.getMonth(), GA = nr === 0 ? 11 : nr - 1, cr = nr === 0 ? bA - 1 : bA;
            if (aA = [...tt(cr, GA), ...aA], Pn = aA.length * ea, Pn >= it * V) break;
            const ba = aA[aA.length - 1], la = ba.getFullYear(), Qn = ba.getMonth(), Ca = Qn === 11 ? 0 : Qn + 1, Kr = Qn === 11 ? la + 1 : la, Dn = tt(Kr, Ca);
            aA = [...aA, ...Dn], Pn = aA.length * ea;
          }
          Be = new Date(aA[0]), Fe = new Date(aA[aA.length - 1]), Fe.setDate(Fe.getDate() + 6);
          break;
        }
        case Ye.MONTH: {
          Be = new Date(z.getFullYear() - 1, z.getMonth(), 1), Fe = new Date(ge.getFullYear() + 1, ge.getMonth() + 1, 0);
          const ke = (Fe.getFullYear() - Be.getFullYear()) * 12 + (Fe.getMonth() - Be.getMonth());
          if (ke < it) {
            const Ze = it - ke, Me = Math.ceil(Ze / 2);
            Be = new Date(Be.getFullYear(), Be.getMonth() - Me, 1), Fe = new Date(Fe.getFullYear(), Fe.getMonth() + Me + 1, 0);
          }
          break;
        }
        case Ye.QUARTER: {
          const Ze = (/* @__PURE__ */ new Date()).getFullYear(), Me = z.getFullYear(), tt = ge.getFullYear();
          Be = new Date(Math.min(Ze - 2, Me - 2), 0, 1), Fe = new Date(Math.max(Ze + 2, tt + 2), 11, 31);
          const Je = (Fe.getFullYear() - Be.getFullYear() + 1) * 4;
          if (Je < it) {
            const ft = it - Je, Et = Math.ceil(ft / 4), Jt = Math.ceil(Et / 2);
            Be = new Date(Be.getFullYear() - Jt, 0, 1), Fe = new Date(Fe.getFullYear() + Jt, 11, 31);
          }
          break;
        }
        case Ye.YEAR: {
          const Ze = (/* @__PURE__ */ new Date()).getFullYear(), Me = z.getFullYear(), tt = ge.getFullYear();
          Be = new Date(Math.min(Ze - 2, Me - 2), 0, 1), Fe = new Date(Math.max(Ze + 2, tt + 2), 11, 31);
          const Je = (Fe.getFullYear() - Be.getFullYear() + 1) * 2;
          if (Je < it) {
            const ft = it - Je, Et = Math.ceil(ft / 2), Jt = Math.ceil(Et / 2);
            Be = new Date(Be.getFullYear() - Jt, 0, 1), Fe = new Date(Fe.getFullYear() + Jt, 11, 31);
          }
          break;
        }
        default:
          Be = z, Fe = ge;
      }
      return { min: Be, max: Fe };
    }
    const me = () => {
      if (e.onExportCsv && typeof e.onExportCsv == "function") {
        e.onExportCsv() === !1 && _e();
        return;
      }
      _e();
    }, ve = (z) => {
      M.value = z, H.value && H.value.updateTimeScale(z);
    }, xe = (z) => {
      rr(() => {
        const ge = new CustomEvent("timeline-scale-updated", { detail: z });
        window.dispatchEvent(ge);
      });
    }, Qe = () => {
      var z;
      (z = H.value) != null && z.clearHighlight && H.value.clearHighlight();
    }, _e = () => {
      try {
        const z = [];
        e.tasks && e.tasks.length > 0 && z.push(...e.tasks), e.milestones && e.milestones.length > 0 && z.push(...e.milestones);
        const it = "\uFEFF" + Pe(z), V = new Blob([it], {
          type: "text/csv;charset=utf-8;"
        }), Be = document.createElement("a"), Fe = URL.createObjectURL(V), Ze = `gantt-tasks-${(/* @__PURE__ */ new Date()).toISOString().split("T")[0]}.csv`;
        Be.setAttribute("href", Fe), Be.setAttribute("download", Ze), Be.style.visibility = "hidden", document.body.appendChild(Be), Be.click(), document.body.removeChild(Be), URL.revokeObjectURL(Fe);
      } catch (z) {
        console.error("CSV导出失败:", z), n("CSV导出失败", "error", { closable: !1 });
      }
    }, Pe = (z) => {
      const ge = de.value.csvHeaders, We = [
        ge.id,
        ge.taskName,
        ge.predecessor,
        ge.assignee,
        ge.startDate,
        ge.endDate,
        ge.estimatedHours,
        ge.actualHours,
        ge.progress,
        ge.type,
        ge.description
      ], it = (ke) => {
        if (ke == null)
          return "";
        const Ze = String(ke);
        return Ze.includes(",") || Ze.includes('"') || Ze.includes(`
`) || Ze.includes("\r") ? `"${Ze.replace(/"/g, '""')}"` : Ze;
      }, V = (ke) => {
        const Ze = [];
        return ke.forEach((Me) => {
          Ze.push({
            id: Me.id,
            name: Me.name || "",
            predecessor: Xg(Me.predecessor),
            assignee: Me.assignee || "",
            startDate: Me.startDate || "",
            endDate: Me.endDate || "",
            estimatedHours: Me.estimatedHours || "",
            actualHours: Me.actualHours || "",
            progress: Me.progress !== void 0 ? `${Me.progress}%` : "",
            type: Me.type || "",
            description: Me.description || ""
          }), Me.children && Me.children.length > 0 && Ze.push(...V(Me.children));
        }), Ze;
      }, Be = V(z);
      return [
        // 头部行 - 也需要进行转义处理
        We.map((ke) => it(ke)).join(","),
        // 数据行
        ...Be.map((ke) => [
          it(ke.id),
          it(ke.name),
          it(Xg(ke.predecessor)),
          it(ke.assignee),
          it(ke.startDate),
          it(ke.endDate),
          it(ke.estimatedHours),
          it(ke.actualHours),
          it(ke.progress),
          it(ke.type),
          it(ke.description)
        ].join(","))
      ].join(`
`);
    }, je = async () => {
      try {
        const z = de.value.pdfExportLoading, ge = de.value.pdfExportTitle, We = de.value.pdfExportDate, it = document.createElement("div");
        it.innerHTML = `
      <div style="position: fixed; top: 0; left: 0; width: 100%; height: 100%;
                  background: rgba(0,0,0,0.5); display: flex; align-items: center;
                  justify-content: center; z-index: 10000; color: white; font-size: 16px;">
        ${z}
      </div>
    `, document.body.appendChild(it);
        const V = document.querySelector(".gantt-body");
        if (!V)
          throw new Error("找不到甘特图元素");
        const Be = {
          overflow: V.style.overflow,
          height: V.style.height
        };
        V.style.overflow = "visible", V.style.height = "auto";
        const Fe = await Rb(V, {
          allowTaint: !0,
          useCORS: !0,
          scale: 2,
          // 提高清晰度
          width: V.scrollWidth,
          height: V.scrollHeight,
          backgroundColor: "#ffffff"
        });
        V.style.overflow = Be.overflow, V.style.height = Be.height;
        const ke = Fe.toDataURL("image/png"), Ze = new eA({
          orientation: "landscape",
          // 横向布局更适合甘特图
          unit: "mm",
          format: "a4"
        }), Me = Ze.internal.pageSize.getWidth(), tt = Ze.internal.pageSize.getHeight(), Je = Fe.width, ft = Fe.height, Et = Math.min(Me / Je, tt / ft), Jt = Je * Et, fA = ft * Et, gA = (Me - Jt) / 2, Xt = (tt - fA) / 2;
        Ze.setFontSize(16), Ze.text(ge, Me / 2, 15, { align: "center" }), Ze.setFontSize(10);
        const tA = (/* @__PURE__ */ new Date()).toLocaleDateString(ce.value);
        if (Ze.text(`${We}: ${tA}`, Me - 10, 10, { align: "right" }), Ze.addImage(ke, "PNG", gA, Xt + 10, Jt, fA - 15), fA > tt - 30) {
          const UA = Math.ceil(fA / (tt - 30));
          for (let FA = 1; FA < UA; FA++) {
            Ze.addPage();
            const IA = -FA * (tt - 30);
            Ze.addImage(ke, "PNG", gA, Xt + 10 + IA, Jt, fA - 15);
          }
        }
        const Gt = `gantt-chart-${(/* @__PURE__ */ new Date()).toISOString().split("T")[0]}.pdf`;
        Ze.save(Gt), it && it.parentNode && it.parentNode.removeChild(it);
      } catch (z) {
        const ge = document.querySelector('[style*="position: fixed"]');
        ge && ge.parentNode && ge.parentNode.removeChild(ge), console.error("PDF导出失败:", z), alert("PDF导出失败");
      }
    }, Ke = (z) => {
      pe.value = z.detail, e.onFullscreenChange && typeof e.onFullscreenChange == "function" && e.onFullscreenChange(pe.value), setTimeout(() => {
        window.dispatchEvent(
          new CustomEvent("timeline-container-resized", {
            detail: { source: "fullscreen-toggle" }
          })
        );
      }, 500);
    }, et = (z, ge) => {
      const We = z.findIndex((it) => it.id === ge.id);
      return We !== -1 ? (z.splice(We, 1, { ...z[We], ...ge }), !0) : (z.push(ge), !0);
    }, ut = (z) => {
      z.id || (z.id = Date.now()), z.type = "milestone", e.milestones && et(e.milestones, z), A("milestone-saved", z), N.value++, $e.value && Dt();
    }, yt = (z, ge, We) => {
      const it = z.findIndex((V) => V.id === ge);
      return it !== -1 ? (z.splice(it, 1, { ...z[it], icon: We }), !0) : !1;
    }, Ft = (z) => {
      const { milestoneId: ge, icon: We } = z.detail;
      e.milestones && yt(e.milestones, ge, We), A("milestone-icon-changed", { milestoneId: ge, icon: We }), N.value++;
    }, Bt = (z, ge) => {
      const We = z.findIndex((it) => it.id === ge);
      return We !== -1 ? (z.splice(We, 1), !0) : !1;
    }, St = () => {
      N.value++;
    }, bt = () => {
      N.value++, rr(() => {
      });
    };
    En(() => {
      rr(() => {
        H.value && typeof H.value.scrollToTodayCenter == "function" && H.value.scrollToTodayCenter();
      });
    });
    const nA = () => {
      if (e.onTodayLocate && typeof e.onTodayLocate == "function") {
        e.onTodayLocate();
        return;
      }
      if (H.value && typeof H.value.scrollToTodayCenter == "function") {
        H.value.scrollToTodayCenter();
        return;
      }
      Pt();
    }, qt = () => {
      A("add-milestone"), e.useDefaultMilestoneDialog && Ot();
    }, Ot = () => {
      xt.value = null, $e.value = !0;
    }, Pt = () => {
      if (H.value && typeof H.value.scrollToToday == "function") {
        H.value.scrollToToday();
        return;
      }
      const z = /* @__PURE__ */ new Date(), ge = z.getMonth(), We = z.getDate();
      let it = 0;
      for (let Me = 0; Me < ge; Me++)
        it += new Date(z.getFullYear(), Me + 1, 0).getDate();
      it += We;
      const V = document.querySelector(".gantt-panel-right"), Be = V == null ? void 0 : V.clientWidth, Fe = Be ? Be / 2 : 200, ke = (it - 1) * 30 - Fe, Ze = document.querySelector(".timeline");
      if (Ze) {
        Ze.scrollLeft = Math.max(0, ke);
        const Me = Ze.querySelector(".day-column.today");
        Me && (Me.classList.add("today-highlight"), setTimeout(() => {
          Me.classList.remove("today-highlight");
        }, 2e3));
      }
    }, sA = () => {
      const z = F(C.value);
      z !== C.value && (C.value = z);
    };
    e.localeMessages && Object.keys(e.localeMessages).forEach((z) => {
      const ge = e.localeMessages[z];
      ge && C0(z, ge);
    }), EA(
      () => e.localeMessages,
      (z) => {
        z && Object.keys(z).forEach((ge) => {
          const We = z[ge];
          We && C0(ge, We);
        });
      },
      { deep: !0 }
    );
    const kt = Te({ x: 0, y: 0 }), hA = Te(!1), Nt = Te(null), Ce = Te(!1), Ve = Te(null), Re = Te(!1), $e = Te(!1), xt = Te(null), Ht = Te(null), Mt = Te(null), SA = (z) => {
      const { task: ge, position: We } = z.detail;
      Nt.value = ge, kt.value = We, hA.value = !0;
    }, JA = () => {
      hA.value = !1;
    };
    function Lt() {
      if (A("add-task"), e.useDefaultDrawer) {
        const z = {
          id: Date.now(),
          // 临时id,实际保存时应由后端分配
          name: "",
          type: "task",
          assignee: "",
          startDate: "",
          endDate: "",
          predecessor: [],
          estimatedHours: 0,
          actualHours: 0,
          progress: 0,
          description: "",
          parentId: void 0,
          children: []
        };
        Ve.value = z, Re.value = !1, Ce.value = !0;
      }
    }
    const Qr = (z) => {
      if (e.tasks) {
        const ge = (We) => {
          var it;
          for (let V = 0; V < We.length; V++) {
            if (We[V].id === z.id)
              return We[V].isTimerRunning = !0, We[V].timerStartTime = z.timerStartTime || Date.now(), We[V].timerEndTime = void 0, We[V].timerElapsedTime = 0, !0;
            if ((it = We[V].children) != null && it.length && ge(We[V].children))
              return !0;
          }
          return !1;
        };
        ge(e.tasks);
      }
      JA(), A("timer-started", z);
    }, Fr = (z) => {
      if (e.tasks) {
        const ge = (We) => {
          var it;
          for (let V = 0; V < We.length; V++) {
            if (We[V].id === z.id) {
              if (We[V].isTimerRunning && We[V].timerStartTime !== void 0) {
                const Be = We[V].timerElapsedTime || 0;
                We[V].timerElapsedTime = Be + (Date.now() - We[V].timerStartTime), We[V].timerEndTime = Date.now();
              }
              return We[V].isTimerRunning = !1, Ce.value && Ve.value && Ve.value.id === z.id && (Ve.value.isTimerRunning = !1, Ve.value.timerEndTime = Date.now()), !0;
            }
            if ((it = We[V].children) != null && it.length && ge(We[V].children))
              return !0;
          }
          return !1;
        };
        ge(e.tasks);
      }
      JA(), A("timer-stopped", z);
    };
    function xr(z, ge) {
      A("task-click", z, ge);
    }
    function PA(z) {
      A("task-double-click", z), e.useDefaultDrawer && (Ve.value = z, Re.value = !0, Ce.value = !0);
    }
    function CA(z) {
      if (!z) return;
      A("add-predecessor", z), Ht.value = z;
      const ge = {
        id: Date.now(),
        // 临时id,实际保存时应由后端分配
        name: "",
        type: "task",
        assignee: "",
        startDate: "",
        endDate: "",
        predecessor: [],
        estimatedHours: 0,
        actualHours: 0,
        progress: 0,
        description: "",
        parentId: z.parentId,
        children: [],
        isTimerRunning: !1,
        timerStartTime: void 0,
        timerEndTime: void 0,
        timerElapsedTime: 0
      };
      Ve.value = ge, Re.value = !1, Ce.value = !0;
    }
    function MA(z) {
      if (!z) return;
      A("add-successor", z), Mt.value = z;
      const ge = {
        id: Date.now(),
        // 临时id,实际保存时应由后端分配
        name: "",
        type: "task",
        assignee: "",
        startDate: "",
        endDate: "",
        predecessor: [z.id],
        estimatedHours: 0,
        actualHours: 0,
        progress: 0,
        description: "",
        parentId: z.parentId,
        children: [],
        isTimerRunning: !1,
        timerStartTime: void 0,
        timerEndTime: void 0,
        timerElapsedTime: 0
      };
      Ve.value = ge, Re.value = !1, Ce.value = !0;
    }
    function OA(z) {
      A("predecessor-added", z);
    }
    function Dr(z) {
      A("successor-added", z);
    }
    const Sr = (z, ge) => {
      if (!ge.parentId)
        return z.push(ge), !0;
      for (const We of z) {
        if (We.id === ge.parentId)
          return We.children || (We.children = []), We.children.push(ge), !0;
        if (We.children && We.children.length > 0 && Sr(We.children, ge))
          return !0;
      }
      return !1;
    }, LA = (z, ge) => {
      for (let We = 0; We < z.length; We++) {
        if (z[We].id === ge.id)
          return z[We] = { ...z[We], ...ge }, !0;
        if (z[We].children && z[We].children.length > 0 && LA(z[We].children, ge))
          return !0;
      }
      return !1;
    };
    function pr(z) {
      Re.value ? (e.tasks && LA(e.tasks, z), N.value++, A("task-updated", { task: z })) : (e.tasks && Sr(e.tasks, z), A("task-added", { task: z }), Ht.value && (Ht.value.predecessor || (Ht.value.predecessor = []), Ht.value.predecessor.push(z.id), A("predecessor-added", { targetTask: Ht.value, newTask: z }), Ht.value = null), Mt.value && (A("successor-added", { targetTask: Mt.value, newTask: z }), Mt.value = null));
    }
    function kr(z, ge, We) {
      for (let it = 0; it < z.length; it++) {
        if (z[it].id === ge) {
          if (We)
            z.splice(it, 1);
          else {
            const V = z[it].children || [];
            z.splice(it, 1, ...V);
          }
          return !0;
        }
        if (z[it].children && z[it].children.length > 0 && kr(z[it].children, ge, We))
          return !0;
      }
      return !1;
    }
    function ZA(z, ge) {
      e.tasks && kr(e.tasks, z.id, ge), Ce.value = !1, Ve.value = null, A("task-deleted", { task: z });
    }
    function Lr(z) {
      if (e.tasks) {
        const ge = (We) => {
          for (let it = 0; it < We.length; it++) {
            if (We[it].id === z.targetTaskId)
              return We[it] = { ...We[it], predecessor: z.updatedTask.predecessor }, !0;
            if (We[it].children && We[it].children.length > 0 && ge(We[it].children))
              return !0;
          }
          return !1;
        };
        ge(e.tasks);
      }
      A("task-updated", { task: z.updatedTask }), A("link-deleted", z);
    }
    function Un(z) {
      A("milestone-double-click", z), e.useDefaultMilestoneDialog && (xt.value = z, $e.value = !0);
    }
    function Dt() {
      $e.value = !1, xt.value = null;
    }
    function be(z) {
      e.milestones && Bt(e.milestones, z), A("milestone-deleted", { milestoneId: z }), N.value++, Dt();
    }
    return (z, ge) => (ae(), fe("div", {
      ref_key: "ganttRootRef",
      ref: s,
      class: iA(["gantt-root", { "gantt-fullscreen": pe.value, "splitter-dragging": O.value }])
    }, [
      e.showToolbar ? (ae(), wr(E3, {
        key: 0,
        config: e.toolbarConfig,
        "on-today-locate": nA,
        "on-export-csv": me,
        "on-export-pdf": je,
        "on-language-change": e.onLanguageChange,
        "on-theme-change": e.onThemeChange,
        "on-fullscreen-change": e.onFullscreenChange,
        "on-time-scale-change": ve,
        "on-expand-all": x,
        "on-collapse-all": j,
        onAddTask: Lt,
        onAddMilestone: qt,
        onExpandAll: x,
        onCollapseAll: j
      }, null, 8, ["config", "on-language-change", "on-theme-change", "on-fullscreen-change"])) : Ct("", !0),
      Y("div", hN, [
        U.value ? (ae(), fe("div", {
          key: 0,
          class: "gantt-panel gantt-panel-left",
          style: rA({ width: C.value + "px" })
        }, [
          $n(fF, {
            tasks: rt.value,
            "use-default-drawer": e.useDefaultDrawer,
            "task-list-config": e.taskListConfig,
            "task-list-column-render-mode": e.taskListColumnRenderMode,
            "enable-task-row-move": e.enableTaskRowMove,
            "task-list-row-class-name": e.taskListRowClassName,
            "task-list-row-style": e.taskListRowStyle,
            onTaskCollapseChange: oe,
            onStartTimer: Qr,
            onStopTimer: Fr,
            onAddPredecessor: CA,
            onAddSuccessor: MA,
            onDelete: ZA,
            onTaskRowMoved: L
          }, Cl({ _: 2 }, [
            z.$slots.default ? {
              name: "default",
              fn: fs(() => [
                Li(z.$slots, "default", {}, void 0, !0)
              ]),
              key: "0"
            } : void 0,
            z.$slots["custom-task-content"] ? {
              name: "custom-task-content",
              fn: fs((We) => [
                Li(z.$slots, "custom-task-content", oc(b0(We)), void 0, !0)
              ]),
              key: "1"
            } : void 0
          ]), 1032, ["tasks", "use-default-drawer", "task-list-config", "task-list-column-render-mode", "enable-task-row-move", "task-list-row-class-name", "task-list-row-style"])
        ], 4)) : Ct("", !0),
        Y("div", {
          class: "gantt-splitter",
          onMousedown: S
        }, [
          Y("div", {
            class: iA(["task-list-toggle", {
              collapsed: !U.value,
              [I.value]: W.value
            }]),
            title: U.value ? Se.value : qe.value,
            onClick: NA(le, ["stop"])
          }, [
            (ae(), fe("svg", gN, [
              U.value ? (ae(), fe("polyline", pN)) : (ae(), fe("polyline", vN))
            ]))
          ], 10, dN)
        ], 32),
        Y("div", {
          class: iA(["gantt-panel gantt-panel-right", { "full-width": !U.value }])
        }, [
          $n(Hx, {
            ref_key: "timelineRef",
            ref: H,
            tasks: at.value,
            milestones: dt.value,
            "start-date": D.value.min,
            "end-date": D.value.max,
            "working-hours": e.workingHours,
            "task-bar-config": e.taskBarConfig,
            "allow-drag-and-resize": e.allowDragAndResize,
            "use-default-drawer": e.useDefaultDrawer,
            "use-default-milestone-dialog": e.useDefaultMilestoneDialog,
            "on-milestone-save": ut,
            onTimelineScaleChanged: xe,
            onClickTask: xr,
            onEditTask: PA,
            onMilestoneDoubleClick: Un,
            onStartTimer: Qr,
            onStopTimer: Fr,
            onAddPredecessor: CA,
            onAddSuccessor: MA,
            onPredecessorAdded: OA,
            onSuccessorAdded: Dr,
            onDelete: ZA,
            onLinkDeleted: Lr
          }, Cl({ _: 2 }, [
            z.$slots["custom-task-content"] ? {
              name: "custom-task-content",
              fn: fs((We) => [
                Li(z.$slots, "custom-task-content", oc(b0(We)), void 0, !0)
              ]),
              key: "0"
            } : void 0
          ]), 1032, ["tasks", "milestones", "start-date", "end-date", "working-hours", "task-bar-config", "allow-drag-and-resize", "use-default-drawer", "use-default-milestone-dialog"]),
          k.value ? (ae(), fe("div", {
            key: 0,
            class: "focus-close-button",
            onClick: NA(Qe, ["stop"])
          }, [
            ge[3] || (ge[3] = Y("svg", {
              class: "close-icon",
              viewBox: "0 0 24 24",
              fill: "none",
              xmlns: "http://www.w3.org/2000/svg"
            }, [
              Y("path", {
                d: "M18 6L6 18M6 6l12 12",
                stroke: "currentColor",
                "stroke-width": "2",
                "stroke-linecap": "round",
                "stroke-linejoin": "round"
              })
            ], -1)),
            Y("span", mN, Ge(vt(de).disableTaskbarFocusMode), 1)
          ])) : Ct("", !0)
        ], 2)
      ]),
      e.useDefaultDrawer ? (ae(), wr(wU, {
        key: 1,
        visible: Ce.value,
        "onUpdate:visible": ge[0] || (ge[0] = (We) => Ce.value = We),
        task: Ve.value,
        "is-edit": Re.value,
        "assignee-options": e.assigneeOptions,
        onSubmit: pr,
        onClose: ge[1] || (ge[1] = (We) => Ce.value = !1),
        onStartTimer: Qr,
        onStopTimer: Fr,
        onDelete: ZA
      }, null, 8, ["visible", "task", "is-edit", "assignee-options"])) : Ct("", !0),
      e.useDefaultMilestoneDialog ? (ae(), wr(JU, {
        key: 2,
        visible: $e.value,
        "onUpdate:visible": ge[2] || (ge[2] = (We) => $e.value = We),
        milestone: xt.value,
        onClose: Dt,
        onSave: ut,
        onDelete: be
      }, null, 8, ["visible", "milestone"])) : Ct("", !0)
    ], 2));
  }
}), BN = /* @__PURE__ */ xn(wN, [["__scopeId", "data-v-9376ee17"]]), yN = /* @__PURE__ */ dn({
  name: "TaskListColumn",
  __name: "TaskListColumn",
  props: {
    prop: {},
    label: {},
    width: {},
    align: { default: "left" },
    cssClass: {}
  },
  setup(r) {
    return (t, e) => null;
  }
}), bN = (r) => {
  r.component("GanttChart", BN), r.component("TaskListColumn", yN);
}, tO = {
  install: bN
};
/*! @license DOMPurify 3.2.6 | (c) Cure53 and other contributors | Released under the Apache license 2.0 and Mozilla Public License 2.0 | github.com/cure53/DOMPurify/blob/3.2.6/LICENSE */
const {
  entries: Hb,
  setPrototypeOf: Gm,
  isFrozen: CN,
  getPrototypeOf: EN,
  getOwnPropertyDescriptor: FN
} = Object;
let {
  freeze: zn,
  seal: Na,
  create: Pb
} = Object, {
  apply: Ip,
  construct: _p
} = typeof Reflect < "u" && Reflect;
zn || (zn = function(t) {
  return t;
});
Na || (Na = function(t) {
  return t;
});
Ip || (Ip = function(t, e, A) {
  return t.apply(e, A);
});
_p || (_p = function(t, e) {
  return new t(...e);
});
const Pu = Xn(Array.prototype.forEach), xN = Xn(Array.prototype.lastIndexOf), Ym = Xn(Array.prototype.pop), Al = Xn(Array.prototype.push), SN = Xn(Array.prototype.splice), ac = Xn(String.prototype.toLowerCase), lh = Xn(String.prototype.toString), $m = Xn(String.prototype.match), rl = Xn(String.prototype.replace), UN = Xn(String.prototype.indexOf), TN = Xn(String.prototype.trim), za = Xn(Object.prototype.hasOwnProperty), Gn = Xn(RegExp.prototype.test), nl = QN(TypeError);
function Xn(r) {
  return function(t) {
    t instanceof RegExp && (t.lastIndex = 0);
    for (var e = arguments.length, A = new Array(e > 1 ? e - 1 : 0), n = 1; n < e; n++)
      A[n - 1] = arguments[n];
    return Ip(r, t, A);
  };
}
function QN(r) {
  return function() {
    for (var t = arguments.length, e = new Array(t), A = 0; A < t; A++)
      e[A] = arguments[A];
    return _p(r, e);
  };
}
function xA(r, t) {
  let e = arguments.length > 2 && arguments[2] !== void 0 ? arguments[2] : ac;
  Gm && Gm(r, null);
  let A = t.length;
  for (; A--; ) {
    let n = t[A];
    if (typeof n == "string") {
      const a = e(n);
      a !== n && (CN(t) || (t[A] = a), n = a);
    }
    r[n] = !0;
  }
  return r;
}
function DN(r) {
  for (let t = 0; t < r.length; t++)
    za(r, t) || (r[t] = null);
  return r;
}
function Qi(r) {
  const t = Pb(null);
  for (const [e, A] of Hb(r))
    za(r, e) && (Array.isArray(A) ? t[e] = DN(A) : A && typeof A == "object" && A.constructor === Object ? t[e] = Qi(A) : t[e] = A);
  return t;
}
function al(r, t) {
  for (; r !== null; ) {
    const A = FN(r, t);
    if (A) {
      if (A.get)
        return Xn(A.get);
      if (typeof A.value == "function")
        return Xn(A.value);
    }
    r = EN(r);
  }
  function e() {
    return null;
  }
  return e;
}
const zm = zn(["a", "abbr", "acronym", "address", "area", "article", "aside", "audio", "b", "bdi", "bdo", "big", "blink", "blockquote", "body", "br", "button", "canvas", "caption", "center", "cite", "code", "col", "colgroup", "content", "data", "datalist", "dd", "decorator", "del", "details", "dfn", "dialog", "dir", "div", "dl", "dt", "element", "em", "fieldset", "figcaption", "figure", "font", "footer", "form", "h1", "h2", "h3", "h4", "h5", "h6", "head", "header", "hgroup", "hr", "html", "i", "img", "input", "ins", "kbd", "label", "legend", "li", "main", "map", "mark", "marquee", "menu", "menuitem", "meter", "nav", "nobr", "ol", "optgroup", "option", "output", "p", "picture", "pre", "progress", "q", "rp", "rt", "ruby", "s", "samp", "section", "select", "shadow", "small", "source", "spacer", "span", "strike", "strong", "style", "sub", "summary", "sup", "table", "tbody", "td", "template", "textarea", "tfoot", "th", "thead", "time", "tr", "track", "tt", "u", "ul", "var", "video", "wbr"]), uh = zn(["svg", "a", "altglyph", "altglyphdef", "altglyphitem", "animatecolor", "animatemotion", "animatetransform", "circle", "clippath", "defs", "desc", "ellipse", "filter", "font", "g", "glyph", "glyphref", "hkern", "image", "line", "lineargradient", "marker", "mask", "metadata", "mpath", "path", "pattern", "polygon", "polyline", "radialgradient", "rect", "stop", "style", "switch", "symbol", "text", "textpath", "title", "tref", "tspan", "view", "vkern"]), ch = zn(["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"]), kN = zn(["animate", "color-profile", "cursor", "discard", "font-face", "font-face-format", "font-face-name", "font-face-src", "font-face-uri", "foreignobject", "hatch", "hatchpath", "mesh", "meshgradient", "meshpatch", "meshrow", "missing-glyph", "script", "set", "solidcolor", "unknown", "use"]), fh = zn(["math", "menclose", "merror", "mfenced", "mfrac", "mglyph", "mi", "mlabeledtr", "mmultiscripts", "mn", "mo", "mover", "mpadded", "mphantom", "mroot", "mrow", "ms", "mspace", "msqrt", "mstyle", "msub", "msup", "msubsup", "mtable", "mtd", "mtext", "mtr", "munder", "munderover", "mprescripts"]), LN = zn(["maction", "maligngroup", "malignmark", "mlongdiv", "mscarries", "mscarry", "msgroup", "mstack", "msline", "msrow", "semantics", "annotation", "annotation-xml", "mprescripts", "none"]), Xm = zn(["#text"]), Jm = zn(["accept", "action", "align", "alt", "autocapitalize", "autocomplete", "autopictureinpicture", "autoplay", "background", "bgcolor", "border", "capture", "cellpadding", "cellspacing", "checked", "cite", "class", "clear", "color", "cols", "colspan", "controls", "controlslist", "coords", "crossorigin", "datetime", "decoding", "default", "dir", "disabled", "disablepictureinpicture", "disableremoteplayback", "download", "draggable", "enctype", "enterkeyhint", "face", "for", "headers", "height", "hidden", "high", "href", "hreflang", "id", "inputmode", "integrity", "ismap", "kind", "label", "lang", "list", "loading", "loop", "low", "max", "maxlength", "media", "method", "min", "minlength", "multiple", "muted", "name", "nonce", "noshade", "novalidate", "nowrap", "open", "optimum", "pattern", "placeholder", "playsinline", "popover", "popovertarget", "popovertargetaction", "poster", "preload", "pubdate", "radiogroup", "readonly", "rel", "required", "rev", "reversed", "role", "rows", "rowspan", "spellcheck", "scope", "selected", "shape", "size", "sizes", "span", "srclang", "start", "src", "srcset", "step", "style", "summary", "tabindex", "title", "translate", "type", "usemap", "valign", "value", "width", "wrap", "xmlns", "slot"]), hh = zn(["accent-height", "accumulate", "additive", "alignment-baseline", "amplitude", "ascent", "attributename", "attributetype", "azimuth", "basefrequency", "baseline-shift", "begin", "bias", "by", "class", "clip", "clippathunits", "clip-path", "clip-rule", "color", "color-interpolation", "color-interpolation-filters", "color-profile", "color-rendering", "cx", "cy", "d", "dx", "dy", "diffuseconstant", "direction", "display", "divisor", "dur", "edgemode", "elevation", "end", "exponent", "fill", "fill-opacity", "fill-rule", "filter", "filterunits", "flood-color", "flood-opacity", "font-family", "font-size", "font-size-adjust", "font-stretch", "font-style", "font-variant", "font-weight", "fx", "fy", "g1", "g2", "glyph-name", "glyphref", "gradientunits", "gradienttransform", "height", "href", "id", "image-rendering", "in", "in2", "intercept", "k", "k1", "k2", "k3", "k4", "kerning", "keypoints", "keysplines", "keytimes", "lang", "lengthadjust", "letter-spacing", "kernelmatrix", "kernelunitlength", "lighting-color", "local", "marker-end", "marker-mid", "marker-start", "markerheight", "markerunits", "markerwidth", "maskcontentunits", "maskunits", "max", "mask", "media", "method", "mode", "min", "name", "numoctaves", "offset", "operator", "opacity", "order", "orient", "orientation", "origin", "overflow", "paint-order", "path", "pathlength", "patterncontentunits", "patterntransform", "patternunits", "points", "preservealpha", "preserveaspectratio", "primitiveunits", "r", "rx", "ry", "radius", "refx", "refy", "repeatcount", "repeatdur", "restart", "result", "rotate", "scale", "seed", "shape-rendering", "slope", "specularconstant", "specularexponent", "spreadmethod", "startoffset", "stddeviation", "stitchtiles", "stop-color", "stop-opacity", "stroke-dasharray", "stroke-dashoffset", "stroke-linecap", "stroke-linejoin", "stroke-miterlimit", "stroke-opacity", "stroke", "stroke-width", "style", "surfacescale", "systemlanguage", "tabindex", "tablevalues", "targetx", "targety", "transform", "transform-origin", "text-anchor", "text-decoration", "text-rendering", "textlength", "type", "u1", "u2", "unicode", "values", "viewbox", "visibility", "version", "vert-adv-y", "vert-origin-x", "vert-origin-y", "width", "word-spacing", "wrap", "writing-mode", "xchannelselector", "ychannelselector", "x", "x1", "x2", "xmlns", "y", "y1", "y2", "z", "zoomandpan"]), Zm = zn(["accent", "accentunder", "align", "bevelled", "close", "columnsalign", "columnlines", "columnspan", "denomalign", "depth", "dir", "display", "displaystyle", "encoding", "fence", "frame", "height", "href", "id", "largeop", "length", "linethickness", "lspace", "lquote", "mathbackground", "mathcolor", "mathsize", "mathvariant", "maxsize", "minsize", "movablelimits", "notation", "numalign", "open", "rowalign", "rowlines", "rowspacing", "rowspan", "rspace", "rquote", "scriptlevel", "scriptminsize", "scriptsizemultiplier", "selection", "separator", "separators", "stretchy", "subscriptshift", "supscriptshift", "symmetric", "voffset", "width", "xmlns"]), Ku = zn(["xlink:href", "xml:id", "xlink:title", "xml:space", "xmlns:xlink"]), IN = Na(/\{\{[\w\W]*|[\w\W]*\}\}/gm), _N = Na(/<%[\w\W]*|[\w\W]*%>/gm), NN = Na(/\$\{[\w\W]*/gm), MN = Na(/^data-[\-\w.\u00B7-\uFFFF]+$/), ON = Na(/^aria-[\-\w]+$/), Kb = Na(
  /^(?:(?:(?:f|ht)tps?|mailto|tel|callto|sms|cid|xmpp|matrix):|[^a-z]|[a-z+.\-]+(?:[^a-z+.\-:]|$))/i
  // eslint-disable-line no-useless-escape
), RN = Na(/^(?:\w+script|data):/i), HN = Na(
  /[\u0000-\u0020\u00A0\u1680\u180E\u2000-\u2029\u205F\u3000]/g
  // eslint-disable-line no-control-regex
), Vb = Na(/^html$/i), PN = Na(/^[a-z][.\w]*(-[.\w]+)+$/i);
var e2 = /* @__PURE__ */ Object.freeze({
  __proto__: null,
  ARIA_ATTR: ON,
  ATTR_WHITESPACE: HN,
  CUSTOM_ELEMENT: PN,
  DATA_ATTR: MN,
  DOCTYPE_NAME: Vb,
  ERB_EXPR: _N,
  IS_ALLOWED_URI: Kb,
  IS_SCRIPT_OR_DATA: RN,
  MUSTACHE_EXPR: IN,
  TMPLIT_EXPR: NN
});
const il = {
  element: 1,
  text: 3,
  // Deprecated
  progressingInstruction: 7,
  comment: 8,
  document: 9
}, KN = function() {
  return typeof window > "u" ? null : window;
}, VN = function(t, e) {
  if (typeof t != "object" || typeof t.createPolicy != "function")
    return null;
  let A = null;
  const n = "data-tt-policy-suffix";
  e && e.hasAttribute(n) && (A = e.getAttribute(n));
  const a = "dompurify" + (A ? "#" + A : "");
  try {
    return t.createPolicy(a, {
      createHTML(s) {
        return s;
      },
      createScriptURL(s) {
        return s;
      }
    });
  } catch {
    return console.warn("TrustedTypes policy " + a + " could not be created."), null;
  }
}, t2 = function() {
  return {
    afterSanitizeAttributes: [],
    afterSanitizeElements: [],
    afterSanitizeShadowDOM: [],
    beforeSanitizeAttributes: [],
    beforeSanitizeElements: [],
    beforeSanitizeShadowDOM: [],
    uponSanitizeAttribute: [],
    uponSanitizeElement: [],
    uponSanitizeShadowNode: []
  };
};
function qb() {
  let r = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : KN();
  const t = (Dt) => qb(Dt);
  if (t.version = "3.2.6", t.removed = [], !r || !r.document || r.document.nodeType !== il.document || !r.Element)
    return t.isSupported = !1, t;
  let {
    document: e
  } = r;
  const A = e, n = A.currentScript, {
    DocumentFragment: a,
    HTMLTemplateElement: s,
    Node: i,
    Element: o,
    NodeFilter: l,
    NamedNodeMap: u = r.NamedNodeMap || r.MozNamedAttrMap,
    HTMLFormElement: h,
    DOMParser: g,
    trustedTypes: c
  } = r, p = o.prototype, m = al(p, "cloneNode"), y = al(p, "remove"), w = al(p, "nextSibling"), E = al(p, "childNodes"), C = al(p, "parentNode");
  if (typeof s == "function") {
    const Dt = e.createElement("template");
    Dt.content && Dt.content.ownerDocument && (e = Dt.content.ownerDocument);
  }
  let F, H = "";
  const {
    implementation: q,
    createNodeIterator: N,
    createDocumentFragment: M,
    getElementsByTagName: k
  } = e, {
    importNode: O
  } = A;
  let S = t2();
  t.isSupported = typeof Hb == "function" && typeof C == "function" && q && q.createHTMLDocument !== void 0;
  const {
    MUSTACHE_EXPR: U,
    ERB_EXPR: W,
    TMPLIT_EXPR: I,
    DATA_ATTR: le,
    ARIA_ATTR: ue,
    IS_SCRIPT_OR_DATA: Z,
    ATTR_WHITESPACE: ee,
    CUSTOM_ELEMENT: X
  } = e2;
  let {
    IS_ALLOWED_URI: Ae
  } = e2, oe = null;
  const x = xA({}, [...zm, ...uh, ...ch, ...fh, ...Xm]);
  let L = null;
  const j = xA({}, [...Jm, ...hh, ...Zm, ...Ku]);
  let $ = Object.seal(Pb(null, {
    tagNameCheck: {
      writable: !0,
      configurable: !1,
      enumerable: !0,
      value: null
    },
    attributeNameCheck: {
      writable: !0,
      configurable: !1,
      enumerable: !0,
      value: null
    },
    allowCustomizedBuiltInElements: {
      writable: !0,
      configurable: !1,
      enumerable: !0,
      value: !1
    }
  })), re = null, pe = null, de = !0, ce = !0, Se = !1, qe = !0, rt = !1, at = !0, dt = !1, D = !1, Ie = !1, me = !1, ve = !1, xe = !1, Qe = !0, _e = !1;
  const Pe = "user-content-";
  let je = !0, Ke = !1, et = {}, ut = null;
  const yt = xA({}, ["annotation-xml", "audio", "colgroup", "desc", "foreignobject", "head", "iframe", "math", "mi", "mn", "mo", "ms", "mtext", "noembed", "noframes", "noscript", "plaintext", "script", "style", "svg", "template", "thead", "title", "video", "xmp"]);
  let Ft = null;
  const Bt = xA({}, ["audio", "video", "img", "source", "image", "track"]);
  let St = null;
  const bt = xA({}, ["alt", "class", "for", "id", "label", "name", "pattern", "placeholder", "role", "summary", "title", "value", "style", "xmlns"]), nA = "http://www.w3.org/1998/Math/MathML", qt = "http://www.w3.org/2000/svg", Ot = "http://www.w3.org/1999/xhtml";
  let Pt = Ot, sA = !1, kt = null;
  const hA = xA({}, [nA, qt, Ot], lh);
  let Nt = xA({}, ["mi", "mo", "mn", "ms", "mtext"]), Ce = xA({}, ["annotation-xml"]);
  const Ve = xA({}, ["title", "style", "font", "a", "script"]);
  let Re = null;
  const $e = ["application/xhtml+xml", "text/html"], xt = "text/html";
  let Ht = null, Mt = null;
  const SA = e.createElement("form"), JA = function(be) {
    return be instanceof RegExp || be instanceof Function;
  }, Lt = function() {
    let be = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : {};
    if (!(Mt && Mt === be)) {
      if ((!be || typeof be != "object") && (be = {}), be = Qi(be), Re = // eslint-disable-next-line unicorn/prefer-includes
      $e.indexOf(be.PARSER_MEDIA_TYPE) === -1 ? xt : be.PARSER_MEDIA_TYPE, Ht = Re === "application/xhtml+xml" ? lh : ac, oe = za(be, "ALLOWED_TAGS") ? xA({}, be.ALLOWED_TAGS, Ht) : x, L = za(be, "ALLOWED_ATTR") ? xA({}, be.ALLOWED_ATTR, Ht) : j, kt = za(be, "ALLOWED_NAMESPACES") ? xA({}, be.ALLOWED_NAMESPACES, lh) : hA, St = za(be, "ADD_URI_SAFE_ATTR") ? xA(Qi(bt), be.ADD_URI_SAFE_ATTR, Ht) : bt, Ft = za(be, "ADD_DATA_URI_TAGS") ? xA(Qi(Bt), be.ADD_DATA_URI_TAGS, Ht) : Bt, ut = za(be, "FORBID_CONTENTS") ? xA({}, be.FORBID_CONTENTS, Ht) : yt, re = za(be, "FORBID_TAGS") ? xA({}, be.FORBID_TAGS, Ht) : Qi({}), pe = za(be, "FORBID_ATTR") ? xA({}, be.FORBID_ATTR, Ht) : Qi({}), et = za(be, "USE_PROFILES") ? be.USE_PROFILES : !1, de = be.ALLOW_ARIA_ATTR !== !1, ce = be.ALLOW_DATA_ATTR !== !1, Se = be.ALLOW_UNKNOWN_PROTOCOLS || !1, qe = be.ALLOW_SELF_CLOSE_IN_ATTR !== !1, rt = be.SAFE_FOR_TEMPLATES || !1, at = be.SAFE_FOR_XML !== !1, dt = be.WHOLE_DOCUMENT || !1, me = be.RETURN_DOM || !1, ve = be.RETURN_DOM_FRAGMENT || !1, xe = be.RETURN_TRUSTED_TYPE || !1, Ie = be.FORCE_BODY || !1, Qe = be.SANITIZE_DOM !== !1, _e = be.SANITIZE_NAMED_PROPS || !1, je = be.KEEP_CONTENT !== !1, Ke = be.IN_PLACE || !1, Ae = be.ALLOWED_URI_REGEXP || Kb, Pt = be.NAMESPACE || Ot, Nt = be.MATHML_TEXT_INTEGRATION_POINTS || Nt, Ce = be.HTML_INTEGRATION_POINTS || Ce, $ = be.CUSTOM_ELEMENT_HANDLING || {}, be.CUSTOM_ELEMENT_HANDLING && JA(be.CUSTOM_ELEMENT_HANDLING.tagNameCheck) && ($.tagNameCheck = be.CUSTOM_ELEMENT_HANDLING.tagNameCheck), be.CUSTOM_ELEMENT_HANDLING && JA(be.CUSTOM_ELEMENT_HANDLING.attributeNameCheck) && ($.attributeNameCheck = be.CUSTOM_ELEMENT_HANDLING.attributeNameCheck), be.CUSTOM_ELEMENT_HANDLING && typeof be.CUSTOM_ELEMENT_HANDLING.allowCustomizedBuiltInElements == "boolean" && ($.allowCustomizedBuiltInElements = be.CUSTOM_ELEMENT_HANDLING.allowCustomizedBuiltInElements), rt && (ce = !1), ve && (me = !0), et && (oe = xA({}, Xm), L = [], et.html === !0 && (xA(oe, zm), xA(L, Jm)), et.svg === !0 && (xA(oe, uh), xA(L, hh), xA(L, Ku)), et.svgFilters === !0 && (xA(oe, ch), xA(L, hh), xA(L, Ku)), et.mathMl === !0 && (xA(oe, fh), xA(L, Zm), xA(L, Ku))), be.ADD_TAGS && (oe === x && (oe = Qi(oe)), xA(oe, be.ADD_TAGS, Ht)), be.ADD_ATTR && (L === j && (L = Qi(L)), xA(L, be.ADD_ATTR, Ht)), be.ADD_URI_SAFE_ATTR && xA(St, be.ADD_URI_SAFE_ATTR, Ht), be.FORBID_CONTENTS && (ut === yt && (ut = Qi(ut)), xA(ut, be.FORBID_CONTENTS, Ht)), je && (oe["#text"] = !0), dt && xA(oe, ["html", "head", "body"]), oe.table && (xA(oe, ["tbody"]), delete re.tbody), be.TRUSTED_TYPES_POLICY) {
        if (typeof be.TRUSTED_TYPES_POLICY.createHTML != "function")
          throw nl('TRUSTED_TYPES_POLICY configuration option must provide a "createHTML" hook.');
        if (typeof be.TRUSTED_TYPES_POLICY.createScriptURL != "function")
          throw nl('TRUSTED_TYPES_POLICY configuration option must provide a "createScriptURL" hook.');
        F = be.TRUSTED_TYPES_POLICY, H = F.createHTML("");
      } else
        F === void 0 && (F = VN(c, n)), F !== null && typeof H == "string" && (H = F.createHTML(""));
      zn && zn(be), Mt = be;
    }
  }, Qr = xA({}, [...uh, ...ch, ...kN]), Fr = xA({}, [...fh, ...LN]), xr = function(be) {
    let z = C(be);
    (!z || !z.tagName) && (z = {
      namespaceURI: Pt,
      tagName: "template"
    });
    const ge = ac(be.tagName), We = ac(z.tagName);
    return kt[be.namespaceURI] ? be.namespaceURI === qt ? z.namespaceURI === Ot ? ge === "svg" : z.namespaceURI === nA ? ge === "svg" && (We === "annotation-xml" || Nt[We]) : !!Qr[ge] : be.namespaceURI === nA ? z.namespaceURI === Ot ? ge === "math" : z.namespaceURI === qt ? ge === "math" && Ce[We] : !!Fr[ge] : be.namespaceURI === Ot ? z.namespaceURI === qt && !Ce[We] || z.namespaceURI === nA && !Nt[We] ? !1 : !Fr[ge] && (Ve[ge] || !Qr[ge]) : !!(Re === "application/xhtml+xml" && kt[be.namespaceURI]) : !1;
  }, PA = function(be) {
    Al(t.removed, {
      element: be
    });
    try {
      C(be).removeChild(be);
    } catch {
      y(be);
    }
  }, CA = function(be, z) {
    try {
      Al(t.removed, {
        attribute: z.getAttributeNode(be),
        from: z
      });
    } catch {
      Al(t.removed, {
        attribute: null,
        from: z
      });
    }
    if (z.removeAttribute(be), be === "is")
      if (me || ve)
        try {
          PA(z);
        } catch {
        }
      else
        try {
          z.setAttribute(be, "");
        } catch {
        }
  }, MA = function(be) {
    let z = null, ge = null;
    if (Ie)
      be = "<remove></remove>" + be;
    else {
      const V = $m(be, /^[\r\n\t ]+/);
      ge = V && V[0];
    }
    Re === "application/xhtml+xml" && Pt === Ot && (be = '<html xmlns="http://www.w3.org/1999/xhtml"><head></head><body>' + be + "</body></html>");
    const We = F ? F.createHTML(be) : be;
    if (Pt === Ot)
      try {
        z = new g().parseFromString(We, Re);
      } catch {
      }
    if (!z || !z.documentElement) {
      z = q.createDocument(Pt, "template", null);
      try {
        z.documentElement.innerHTML = sA ? H : We;
      } catch {
      }
    }
    const it = z.body || z.documentElement;
    return be && ge && it.insertBefore(e.createTextNode(ge), it.childNodes[0] || null), Pt === Ot ? k.call(z, dt ? "html" : "body")[0] : dt ? z.documentElement : it;
  }, OA = function(be) {
    return N.call(
      be.ownerDocument || be,
      be,
      // eslint-disable-next-line no-bitwise
      l.SHOW_ELEMENT | l.SHOW_COMMENT | l.SHOW_TEXT | l.SHOW_PROCESSING_INSTRUCTION | l.SHOW_CDATA_SECTION,
      null
    );
  }, Dr = function(be) {
    return be instanceof h && (typeof be.nodeName != "string" || typeof be.textContent != "string" || typeof be.removeChild != "function" || !(be.attributes instanceof u) || typeof be.removeAttribute != "function" || typeof be.setAttribute != "function" || typeof be.namespaceURI != "string" || typeof be.insertBefore != "function" || typeof be.hasChildNodes != "function");
  }, Sr = function(be) {
    return typeof i == "function" && be instanceof i;
  };
  function LA(Dt, be, z) {
    Pu(Dt, (ge) => {
      ge.call(t, be, z, Mt);
    });
  }
  const pr = function(be) {
    let z = null;
    if (LA(S.beforeSanitizeElements, be, null), Dr(be))
      return PA(be), !0;
    const ge = Ht(be.nodeName);
    if (LA(S.uponSanitizeElement, be, {
      tagName: ge,
      allowedTags: oe
    }), at && be.hasChildNodes() && !Sr(be.firstElementChild) && Gn(/<[/\w!]/g, be.innerHTML) && Gn(/<[/\w!]/g, be.textContent) || be.nodeType === il.progressingInstruction || at && be.nodeType === il.comment && Gn(/<[/\w]/g, be.data))
      return PA(be), !0;
    if (!oe[ge] || re[ge]) {
      if (!re[ge] && ZA(ge) && ($.tagNameCheck instanceof RegExp && Gn($.tagNameCheck, ge) || $.tagNameCheck instanceof Function && $.tagNameCheck(ge)))
        return !1;
      if (je && !ut[ge]) {
        const We = C(be) || be.parentNode, it = E(be) || be.childNodes;
        if (it && We) {
          const V = it.length;
          for (let Be = V - 1; Be >= 0; --Be) {
            const Fe = m(it[Be], !0);
            Fe.__removalCount = (be.__removalCount || 0) + 1, We.insertBefore(Fe, w(be));
          }
        }
      }
      return PA(be), !0;
    }
    return be instanceof o && !xr(be) || (ge === "noscript" || ge === "noembed" || ge === "noframes") && Gn(/<\/no(script|embed|frames)/i, be.innerHTML) ? (PA(be), !0) : (rt && be.nodeType === il.text && (z = be.textContent, Pu([U, W, I], (We) => {
      z = rl(z, We, " ");
    }), be.textContent !== z && (Al(t.removed, {
      element: be.cloneNode()
    }), be.textContent = z)), LA(S.afterSanitizeElements, be, null), !1);
  }, kr = function(be, z, ge) {
    if (Qe && (z === "id" || z === "name") && (ge in e || ge in SA))
      return !1;
    if (!(ce && !pe[z] && Gn(le, z))) {
      if (!(de && Gn(ue, z))) {
        if (!L[z] || pe[z]) {
          if (
            // First condition does a very basic check if a) it's basically a valid custom element tagname AND
            // b) if the tagName passes whatever the user has configured for CUSTOM_ELEMENT_HANDLING.tagNameCheck
            // and c) if the attribute name passes whatever the user has configured for CUSTOM_ELEMENT_HANDLING.attributeNameCheck
            !(ZA(be) && ($.tagNameCheck instanceof RegExp && Gn($.tagNameCheck, be) || $.tagNameCheck instanceof Function && $.tagNameCheck(be)) && ($.attributeNameCheck instanceof RegExp && Gn($.attributeNameCheck, z) || $.attributeNameCheck instanceof Function && $.attributeNameCheck(z)) || // Alternative, second condition checks if it's an `is`-attribute, AND
            // the value passes whatever the user has configured for CUSTOM_ELEMENT_HANDLING.tagNameCheck
            z === "is" && $.allowCustomizedBuiltInElements && ($.tagNameCheck instanceof RegExp && Gn($.tagNameCheck, ge) || $.tagNameCheck instanceof Function && $.tagNameCheck(ge)))
          ) return !1;
        } else if (!St[z]) {
          if (!Gn(Ae, rl(ge, ee, ""))) {
            if (!((z === "src" || z === "xlink:href" || z === "href") && be !== "script" && UN(ge, "data:") === 0 && Ft[be])) {
              if (!(Se && !Gn(Z, rl(ge, ee, "")))) {
                if (ge)
                  return !1;
              }
            }
          }
        }
      }
    }
    return !0;
  }, ZA = function(be) {
    return be !== "annotation-xml" && $m(be, X);
  }, Lr = function(be) {
    LA(S.beforeSanitizeAttributes, be, null);
    const {
      attributes: z
    } = be;
    if (!z || Dr(be))
      return;
    const ge = {
      attrName: "",
      attrValue: "",
      keepAttr: !0,
      allowedAttributes: L,
      forceKeepAttr: void 0
    };
    let We = z.length;
    for (; We--; ) {
      const it = z[We], {
        name: V,
        namespaceURI: Be,
        value: Fe
      } = it, ke = Ht(V), Ze = Fe;
      let Me = V === "value" ? Ze : TN(Ze);
      if (ge.attrName = ke, ge.attrValue = Me, ge.keepAttr = !0, ge.forceKeepAttr = void 0, LA(S.uponSanitizeAttribute, be, ge), Me = ge.attrValue, _e && (ke === "id" || ke === "name") && (CA(V, be), Me = Pe + Me), at && Gn(/((--!?|])>)|<\/(style|title)/i, Me)) {
        CA(V, be);
        continue;
      }
      if (ge.forceKeepAttr)
        continue;
      if (!ge.keepAttr) {
        CA(V, be);
        continue;
      }
      if (!qe && Gn(/\/>/i, Me)) {
        CA(V, be);
        continue;
      }
      rt && Pu([U, W, I], (Je) => {
        Me = rl(Me, Je, " ");
      });
      const tt = Ht(be.nodeName);
      if (!kr(tt, ke, Me)) {
        CA(V, be);
        continue;
      }
      if (F && typeof c == "object" && typeof c.getAttributeType == "function" && !Be)
        switch (c.getAttributeType(tt, ke)) {
          case "TrustedHTML": {
            Me = F.createHTML(Me);
            break;
          }
          case "TrustedScriptURL": {
            Me = F.createScriptURL(Me);
            break;
          }
        }
      if (Me !== Ze)
        try {
          Be ? be.setAttributeNS(Be, V, Me) : be.setAttribute(V, Me), Dr(be) ? PA(be) : Ym(t.removed);
        } catch {
          CA(V, be);
        }
    }
    LA(S.afterSanitizeAttributes, be, null);
  }, Un = function Dt(be) {
    let z = null;
    const ge = OA(be);
    for (LA(S.beforeSanitizeShadowDOM, be, null); z = ge.nextNode(); )
      LA(S.uponSanitizeShadowNode, z, null), pr(z), Lr(z), z.content instanceof a && Dt(z.content);
    LA(S.afterSanitizeShadowDOM, be, null);
  };
  return t.sanitize = function(Dt) {
    let be = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : {}, z = null, ge = null, We = null, it = null;
    if (sA = !Dt, sA && (Dt = "<!-->"), typeof Dt != "string" && !Sr(Dt))
      if (typeof Dt.toString == "function") {
        if (Dt = Dt.toString(), typeof Dt != "string")
          throw nl("dirty is not a string, aborting");
      } else
        throw nl("toString is not a function");
    if (!t.isSupported)
      return Dt;
    if (D || Lt(be), t.removed = [], typeof Dt == "string" && (Ke = !1), Ke) {
      if (Dt.nodeName) {
        const Fe = Ht(Dt.nodeName);
        if (!oe[Fe] || re[Fe])
          throw nl("root node is forbidden and cannot be sanitized in-place");
      }
    } else if (Dt instanceof i)
      z = MA("<!---->"), ge = z.ownerDocument.importNode(Dt, !0), ge.nodeType === il.element && ge.nodeName === "BODY" || ge.nodeName === "HTML" ? z = ge : z.appendChild(ge);
    else {
      if (!me && !rt && !dt && // eslint-disable-next-line unicorn/prefer-includes
      Dt.indexOf("<") === -1)
        return F && xe ? F.createHTML(Dt) : Dt;
      if (z = MA(Dt), !z)
        return me ? null : xe ? H : "";
    }
    z && Ie && PA(z.firstChild);
    const V = OA(Ke ? Dt : z);
    for (; We = V.nextNode(); )
      pr(We), Lr(We), We.content instanceof a && Un(We.content);
    if (Ke)
      return Dt;
    if (me) {
      if (ve)
        for (it = M.call(z.ownerDocument); z.firstChild; )
          it.appendChild(z.firstChild);
      else
        it = z;
      return (L.shadowroot || L.shadowrootmode) && (it = O.call(A, it, !0)), it;
    }
    let Be = dt ? z.outerHTML : z.innerHTML;
    return dt && oe["!doctype"] && z.ownerDocument && z.ownerDocument.doctype && z.ownerDocument.doctype.name && Gn(Vb, z.ownerDocument.doctype.name) && (Be = "<!DOCTYPE " + z.ownerDocument.doctype.name + `>
` + Be), rt && Pu([U, W, I], (Fe) => {
      Be = rl(Be, Fe, " ");
    }), F && xe ? F.createHTML(Be) : Be;
  }, t.setConfig = function() {
    let Dt = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : {};
    Lt(Dt), D = !0;
  }, t.clearConfig = function() {
    Mt = null, D = !1;
  }, t.isValidAttribute = function(Dt, be, z) {
    Mt || Lt({});
    const ge = Ht(Dt), We = Ht(be);
    return kr(ge, We, z);
  }, t.addHook = function(Dt, be) {
    typeof be == "function" && Al(S[Dt], be);
  }, t.removeHook = function(Dt, be) {
    if (be !== void 0) {
      const z = xN(S[Dt], be);
      return z === -1 ? void 0 : SN(S[Dt], z, 1)[0];
    }
    return Ym(S[Dt]);
  }, t.removeHooks = function(Dt) {
    S[Dt] = [];
  }, t.removeAllHooks = function() {
    S = t2();
  }, t;
}
var qN = qb();
const jN = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
  __proto__: null,
  default: qN
}, Symbol.toStringTag, { value: "Module" }));
var Np = typeof globalThis < "u" ? globalThis : typeof window < "u" ? window : typeof global < "u" ? global : typeof self < "u" ? self : {};
function jb(r) {
  return r && r.__esModule && Object.prototype.hasOwnProperty.call(r, "default") ? r.default : r;
}
var A2 = {}, r2 = {}, sl, n2;
function Er() {
  if (n2) return sl;
  n2 = 1;
  var r = function(t) {
    return t && t.Math === Math && t;
  };
  return sl = // eslint-disable-next-line es/no-global-this -- safe
  r(typeof globalThis == "object" && globalThis) || r(typeof window == "object" && window) || // eslint-disable-next-line no-restricted-globals -- safe
  r(typeof self == "object" && self) || r(typeof Np == "object" && Np) || r(typeof sl == "object" && sl) || // eslint-disable-next-line no-new-func -- fallback
  /* @__PURE__ */ (function() {
    return this;
  })() || Function("return this")(), sl;
}
var dh = {}, gh, a2;
function Hr() {
  return a2 || (a2 = 1, gh = function(r) {
    try {
      return !!r();
    } catch {
      return !0;
    }
  }), gh;
}
var ph, i2;
function ti() {
  if (i2) return ph;
  i2 = 1;
  var r = Hr();
  return ph = !r(function() {
    return Object.defineProperty({}, 1, { get: function() {
      return 7;
    } })[1] !== 7;
  }), ph;
}
var vh, s2;
function Oc() {
  if (s2) return vh;
  s2 = 1;
  var r = Hr();
  return vh = !r(function() {
    var t = (function() {
    }).bind();
    return typeof t != "function" || t.hasOwnProperty("prototype");
  }), vh;
}
var mh, o2;
function Sn() {
  if (o2) return mh;
  o2 = 1;
  var r = Oc(), t = Function.prototype.call;
  return mh = r ? t.bind(t) : function() {
    return t.apply(t, arguments);
  }, mh;
}
var wh = {}, l2;
function WN() {
  if (l2) return wh;
  l2 = 1;
  var r = {}.propertyIsEnumerable, t = Object.getOwnPropertyDescriptor, e = t && !r.call({ 1: 2 }, 1);
  return wh.f = e ? function(n) {
    var a = t(this, n);
    return !!a && a.enumerable;
  } : r, wh;
}
var Bh, u2;
function ov() {
  return u2 || (u2 = 1, Bh = function(r, t) {
    return {
      enumerable: !(r & 1),
      configurable: !(r & 2),
      writable: !(r & 4),
      value: t
    };
  }), Bh;
}
var yh, c2;
function Pr() {
  if (c2) return yh;
  c2 = 1;
  var r = Oc(), t = Function.prototype, e = t.call, A = r && t.bind.bind(e, e);
  return yh = r ? A : function(n) {
    return function() {
      return e.apply(n, arguments);
    };
  }, yh;
}
var bh, f2;
function Ws() {
  if (f2) return bh;
  f2 = 1;
  var r = Pr(), t = r({}.toString), e = r("".slice);
  return bh = function(A) {
    return e(t(A), 8, -1);
  }, bh;
}
var Ch, h2;
function Wb() {
  if (h2) return Ch;
  h2 = 1;
  var r = Pr(), t = Hr(), e = Ws(), A = Object, n = r("".split);
  return Ch = t(function() {
    return !A("z").propertyIsEnumerable(0);
  }) ? function(a) {
    return e(a) === "String" ? n(a, "") : A(a);
  } : A, Ch;
}
var Eh, d2;
function Rc() {
  return d2 || (d2 = 1, Eh = function(r) {
    return r == null;
  }), Eh;
}
var Fh, g2;
function Ai() {
  if (g2) return Fh;
  g2 = 1;
  var r = Rc(), t = TypeError;
  return Fh = function(e) {
    if (r(e)) throw new t("Can't call method on " + e);
    return e;
  }, Fh;
}
var xh, p2;
function kl() {
  if (p2) return xh;
  p2 = 1;
  var r = Wb(), t = Ai();
  return xh = function(e) {
    return r(t(e));
  }, xh;
}
var Sh, v2;
function Xr() {
  if (v2) return Sh;
  v2 = 1;
  var r = typeof document == "object" && document.all;
  return Sh = typeof r > "u" && r !== void 0 ? function(t) {
    return typeof t == "function" || t === r;
  } : function(t) {
    return typeof t == "function";
  }, Sh;
}
var Uh, m2;
function oa() {
  if (m2) return Uh;
  m2 = 1;
  var r = Xr();
  return Uh = function(t) {
    return typeof t == "object" ? t !== null : r(t);
  }, Uh;
}
var Th, w2;
function Gs() {
  if (w2) return Th;
  w2 = 1;
  var r = Er(), t = Xr(), e = function(A) {
    return t(A) ? A : void 0;
  };
  return Th = function(A, n) {
    return arguments.length < 2 ? e(r[A]) : r[A] && r[A][n];
  }, Th;
}
var Qh, B2;
function Hc() {
  if (B2) return Qh;
  B2 = 1;
  var r = Pr();
  return Qh = r({}.isPrototypeOf), Qh;
}
var Dh, y2;
function Ll() {
  if (y2) return Dh;
  y2 = 1;
  var r = Er(), t = r.navigator, e = t && t.userAgent;
  return Dh = e ? String(e) : "", Dh;
}
var kh, b2;
function lv() {
  if (b2) return kh;
  b2 = 1;
  var r = Er(), t = Ll(), e = r.process, A = r.Deno, n = e && e.versions || A && A.version, a = n && n.v8, s, i;
  return a && (s = a.split("."), i = s[0] > 0 && s[0] < 4 ? 1 : +(s[0] + s[1])), !i && t && (s = t.match(/Edge\/(\d+)/), (!s || s[1] >= 74) && (s = t.match(/Chrome\/(\d+)/), s && (i = +s[1]))), kh = i, kh;
}
var Lh, C2;
function Gb() {
  if (C2) return Lh;
  C2 = 1;
  var r = lv(), t = Hr(), e = Er(), A = e.String;
  return Lh = !!Object.getOwnPropertySymbols && !t(function() {
    var n = Symbol("symbol detection");
    return !A(n) || !(Object(n) instanceof Symbol) || // Chrome 38-40 symbols are not inherited from DOM collections prototypes to instances
    !Symbol.sham && r && r < 41;
  }), Lh;
}
var Ih, E2;
function Yb() {
  if (E2) return Ih;
  E2 = 1;
  var r = Gb();
  return Ih = r && !Symbol.sham && typeof Symbol.iterator == "symbol", Ih;
}
var _h, F2;
function $b() {
  if (F2) return _h;
  F2 = 1;
  var r = Gs(), t = Xr(), e = Hc(), A = Yb(), n = Object;
  return _h = A ? function(a) {
    return typeof a == "symbol";
  } : function(a) {
    var s = r("Symbol");
    return t(s) && e(s.prototype, n(a));
  }, _h;
}
var Nh, x2;
function Pc() {
  if (x2) return Nh;
  x2 = 1;
  var r = String;
  return Nh = function(t) {
    try {
      return r(t);
    } catch {
      return "Object";
    }
  }, Nh;
}
var Mh, S2;
function Ri() {
  if (S2) return Mh;
  S2 = 1;
  var r = Xr(), t = Pc(), e = TypeError;
  return Mh = function(A) {
    if (r(A)) return A;
    throw new e(t(A) + " is not a function");
  }, Mh;
}
var Oh, U2;
function Io() {
  if (U2) return Oh;
  U2 = 1;
  var r = Ri(), t = Rc();
  return Oh = function(e, A) {
    var n = e[A];
    return t(n) ? void 0 : r(n);
  }, Oh;
}
var Rh, T2;
function GN() {
  if (T2) return Rh;
  T2 = 1;
  var r = Sn(), t = Xr(), e = oa(), A = TypeError;
  return Rh = function(n, a) {
    var s, i;
    if (a === "string" && t(s = n.toString) && !e(i = r(s, n)) || t(s = n.valueOf) && !e(i = r(s, n)) || a !== "string" && t(s = n.toString) && !e(i = r(s, n))) return i;
    throw new A("Can't convert object to primitive value");
  }, Rh;
}
var Hh = { exports: {} }, Ph, Q2;
function vi() {
  return Q2 || (Q2 = 1, Ph = !1), Ph;
}
var Kh, D2;
function uv() {
  if (D2) return Kh;
  D2 = 1;
  var r = Er(), t = Object.defineProperty;
  return Kh = function(e, A) {
    try {
      t(r, e, { value: A, configurable: !0, writable: !0 });
    } catch {
      r[e] = A;
    }
    return A;
  }, Kh;
}
var k2;
function cv() {
  if (k2) return Hh.exports;
  k2 = 1;
  var r = vi(), t = Er(), e = uv(), A = "__core-js_shared__", n = Hh.exports = t[A] || e(A, {});
  return (n.versions || (n.versions = [])).push({
    version: "3.43.0",
    mode: r ? "pure" : "global",
    copyright: "© 2014-2025 Denis Pushkarev (zloirock.ru)",
    license: "https://github.com/zloirock/core-js/blob/v3.43.0/LICENSE",
    source: "https://github.com/zloirock/core-js"
  }), Hh.exports;
}
var Vh, L2;
function fv() {
  if (L2) return Vh;
  L2 = 1;
  var r = cv();
  return Vh = function(t, e) {
    return r[t] || (r[t] = e || {});
  }, Vh;
}
var qh, I2;
function Kc() {
  if (I2) return qh;
  I2 = 1;
  var r = Ai(), t = Object;
  return qh = function(e) {
    return t(r(e));
  }, qh;
}
var jh, _2;
function ri() {
  if (_2) return jh;
  _2 = 1;
  var r = Pr(), t = Kc(), e = r({}.hasOwnProperty);
  return jh = Object.hasOwn || function(n, a) {
    return e(t(n), a);
  }, jh;
}
var Wh, N2;
function zb() {
  if (N2) return Wh;
  N2 = 1;
  var r = Pr(), t = 0, e = Math.random(), A = r(1.1.toString);
  return Wh = function(n) {
    return "Symbol(" + (n === void 0 ? "" : n) + ")_" + A(++t + e, 36);
  }, Wh;
}
var Gh, M2;
function gn() {
  if (M2) return Gh;
  M2 = 1;
  var r = Er(), t = fv(), e = ri(), A = zb(), n = Gb(), a = Yb(), s = r.Symbol, i = t("wks"), o = a ? s.for || s : s && s.withoutSetter || A;
  return Gh = function(l) {
    return e(i, l) || (i[l] = n && e(s, l) ? s[l] : o("Symbol." + l)), i[l];
  }, Gh;
}
var Yh, O2;
function YN() {
  if (O2) return Yh;
  O2 = 1;
  var r = Sn(), t = oa(), e = $b(), A = Io(), n = GN(), a = gn(), s = TypeError, i = a("toPrimitive");
  return Yh = function(o, l) {
    if (!t(o) || e(o)) return o;
    var u = A(o, i), h;
    if (u) {
      if (l === void 0 && (l = "default"), h = r(u, o, l), !t(h) || e(h)) return h;
      throw new s("Can't convert object to primitive value");
    }
    return l === void 0 && (l = "number"), n(o, l);
  }, Yh;
}
var $h, R2;
function Xb() {
  if (R2) return $h;
  R2 = 1;
  var r = YN(), t = $b();
  return $h = function(e) {
    var A = r(e, "string");
    return t(A) ? A : A + "";
  }, $h;
}
var zh, H2;
function Vc() {
  if (H2) return zh;
  H2 = 1;
  var r = Er(), t = oa(), e = r.document, A = t(e) && t(e.createElement);
  return zh = function(n) {
    return A ? e.createElement(n) : {};
  }, zh;
}
var Xh, P2;
function Jb() {
  if (P2) return Xh;
  P2 = 1;
  var r = ti(), t = Hr(), e = Vc();
  return Xh = !r && !t(function() {
    return Object.defineProperty(e("div"), "a", {
      get: function() {
        return 7;
      }
    }).a !== 7;
  }), Xh;
}
var K2;
function qc() {
  if (K2) return dh;
  K2 = 1;
  var r = ti(), t = Sn(), e = WN(), A = ov(), n = kl(), a = Xb(), s = ri(), i = Jb(), o = Object.getOwnPropertyDescriptor;
  return dh.f = r ? o : function(u, h) {
    if (u = n(u), h = a(h), i) try {
      return o(u, h);
    } catch {
    }
    if (s(u, h)) return A(!t(e.f, u, h), u[h]);
  }, dh;
}
var Jh = {}, Zh, V2;
function Zb() {
  if (V2) return Zh;
  V2 = 1;
  var r = ti(), t = Hr();
  return Zh = r && t(function() {
    return Object.defineProperty(function() {
    }, "prototype", {
      value: 42,
      writable: !1
    }).prototype !== 42;
  }), Zh;
}
var ed, q2;
function Jn() {
  if (q2) return ed;
  q2 = 1;
  var r = oa(), t = String, e = TypeError;
  return ed = function(A) {
    if (r(A)) return A;
    throw new e(t(A) + " is not an object");
  }, ed;
}
var j2;
function ms() {
  if (j2) return Jh;
  j2 = 1;
  var r = ti(), t = Jb(), e = Zb(), A = Jn(), n = Xb(), a = TypeError, s = Object.defineProperty, i = Object.getOwnPropertyDescriptor, o = "enumerable", l = "configurable", u = "writable";
  return Jh.f = r ? e ? function(g, c, p) {
    if (A(g), c = n(c), A(p), typeof g == "function" && c === "prototype" && "value" in p && u in p && !p[u]) {
      var m = i(g, c);
      m && m[u] && (g[c] = p.value, p = {
        configurable: l in p ? p[l] : m[l],
        enumerable: o in p ? p[o] : m[o],
        writable: !1
      });
    }
    return s(g, c, p);
  } : s : function(g, c, p) {
    if (A(g), c = n(c), A(p), t) try {
      return s(g, c, p);
    } catch {
    }
    if ("get" in p || "set" in p) throw new a("Accessors not supported");
    return "value" in p && (g[c] = p.value), g;
  }, Jh;
}
var td, W2;
function Il() {
  if (W2) return td;
  W2 = 1;
  var r = ti(), t = ms(), e = ov();
  return td = r ? function(A, n, a) {
    return t.f(A, n, e(1, a));
  } : function(A, n, a) {
    return A[n] = a, A;
  }, td;
}
var Ad = { exports: {} }, rd, G2;
function jc() {
  if (G2) return rd;
  G2 = 1;
  var r = ti(), t = ri(), e = Function.prototype, A = r && Object.getOwnPropertyDescriptor, n = t(e, "name"), a = n && (function() {
  }).name === "something", s = n && (!r || r && A(e, "name").configurable);
  return rd = {
    EXISTS: n,
    PROPER: a,
    CONFIGURABLE: s
  }, rd;
}
var nd, Y2;
function hv() {
  if (Y2) return nd;
  Y2 = 1;
  var r = Pr(), t = Xr(), e = cv(), A = r(Function.toString);
  return t(e.inspectSource) || (e.inspectSource = function(n) {
    return A(n);
  }), nd = e.inspectSource, nd;
}
var ad, $2;
function $N() {
  if ($2) return ad;
  $2 = 1;
  var r = Er(), t = Xr(), e = r.WeakMap;
  return ad = t(e) && /native code/.test(String(e)), ad;
}
var id, z2;
function dv() {
  if (z2) return id;
  z2 = 1;
  var r = fv(), t = zb(), e = r("keys");
  return id = function(A) {
    return e[A] || (e[A] = t(A));
  }, id;
}
var sd, X2;
function gv() {
  return X2 || (X2 = 1, sd = {}), sd;
}
var od, J2;
function Wc() {
  if (J2) return od;
  J2 = 1;
  var r = $N(), t = Er(), e = oa(), A = Il(), n = ri(), a = cv(), s = dv(), i = gv(), o = "Object already initialized", l = t.TypeError, u = t.WeakMap, h, g, c, p = function(E) {
    return c(E) ? g(E) : h(E, {});
  }, m = function(E) {
    return function(C) {
      var F;
      if (!e(C) || (F = g(C)).type !== E)
        throw new l("Incompatible receiver, " + E + " required");
      return F;
    };
  };
  if (r || a.state) {
    var y = a.state || (a.state = new u());
    y.get = y.get, y.has = y.has, y.set = y.set, h = function(E, C) {
      if (y.has(E)) throw new l(o);
      return C.facade = E, y.set(E, C), C;
    }, g = function(E) {
      return y.get(E) || {};
    }, c = function(E) {
      return y.has(E);
    };
  } else {
    var w = s("state");
    i[w] = !0, h = function(E, C) {
      if (n(E, w)) throw new l(o);
      return C.facade = E, A(E, w, C), C;
    }, g = function(E) {
      return n(E, w) ? E[w] : {};
    }, c = function(E) {
      return n(E, w);
    };
  }
  return od = {
    set: h,
    get: g,
    has: c,
    enforce: p,
    getterFor: m
  }, od;
}
var Z2;
function eC() {
  if (Z2) return Ad.exports;
  Z2 = 1;
  var r = Pr(), t = Hr(), e = Xr(), A = ri(), n = ti(), a = jc().CONFIGURABLE, s = hv(), i = Wc(), o = i.enforce, l = i.get, u = String, h = Object.defineProperty, g = r("".slice), c = r("".replace), p = r([].join), m = n && !t(function() {
    return h(function() {
    }, "length", { value: 8 }).length !== 8;
  }), y = String(String).split("String"), w = Ad.exports = function(E, C, F) {
    g(u(C), 0, 7) === "Symbol(" && (C = "[" + c(u(C), /^Symbol\(([^)]*)\).*$/, "$1") + "]"), F && F.getter && (C = "get " + C), F && F.setter && (C = "set " + C), (!A(E, "name") || a && E.name !== C) && (n ? h(E, "name", { value: C, configurable: !0 }) : E.name = C), m && F && A(F, "arity") && E.length !== F.arity && h(E, "length", { value: F.arity });
    try {
      F && A(F, "constructor") && F.constructor ? n && h(E, "prototype", { writable: !1 }) : E.prototype && (E.prototype = void 0);
    } catch {
    }
    var H = o(E);
    return A(H, "source") || (H.source = p(y, typeof C == "string" ? C : "")), E;
  };
  return Function.prototype.toString = w(function() {
    return e(this) && l(this).source || s(this);
  }, "toString"), Ad.exports;
}
var ld, ew;
function Ys() {
  if (ew) return ld;
  ew = 1;
  var r = Xr(), t = ms(), e = eC(), A = uv();
  return ld = function(n, a, s, i) {
    i || (i = {});
    var o = i.enumerable, l = i.name !== void 0 ? i.name : a;
    if (r(s) && e(s, l, i), i.global)
      o ? n[a] = s : A(a, s);
    else {
      try {
        i.unsafe ? n[a] && (o = !0) : delete n[a];
      } catch {
      }
      o ? n[a] = s : t.f(n, a, {
        value: s,
        enumerable: !1,
        configurable: !i.nonConfigurable,
        writable: !i.nonWritable
      });
    }
    return n;
  }, ld;
}
var ud = {}, cd, tw;
function zN() {
  if (tw) return cd;
  tw = 1;
  var r = Math.ceil, t = Math.floor;
  return cd = Math.trunc || function(A) {
    var n = +A;
    return (n > 0 ? t : r)(n);
  }, cd;
}
var fd, Aw;
function Gc() {
  if (Aw) return fd;
  Aw = 1;
  var r = zN();
  return fd = function(t) {
    var e = +t;
    return e !== e || e === 0 ? 0 : r(e);
  }, fd;
}
var hd, rw;
function XN() {
  if (rw) return hd;
  rw = 1;
  var r = Gc(), t = Math.max, e = Math.min;
  return hd = function(A, n) {
    var a = r(A);
    return a < 0 ? t(a + n, 0) : e(a, n);
  }, hd;
}
var dd, nw;
function _o() {
  if (nw) return dd;
  nw = 1;
  var r = Gc(), t = Math.min;
  return dd = function(e) {
    var A = r(e);
    return A > 0 ? t(A, 9007199254740991) : 0;
  }, dd;
}
var gd, aw;
function pv() {
  if (aw) return gd;
  aw = 1;
  var r = _o();
  return gd = function(t) {
    return r(t.length);
  }, gd;
}
var pd, iw;
function tC() {
  if (iw) return pd;
  iw = 1;
  var r = kl(), t = XN(), e = pv(), A = function(n) {
    return function(a, s, i) {
      var o = r(a), l = e(o);
      if (l === 0) return !n && -1;
      var u = t(i, l), h;
      if (n && s !== s) {
        for (; l > u; )
          if (h = o[u++], h !== h) return !0;
      } else for (; l > u; u++)
        if ((n || u in o) && o[u] === s) return n || u || 0;
      return !n && -1;
    };
  };
  return pd = {
    // `Array.prototype.includes` method
    // https://tc39.es/ecma262/#sec-array.prototype.includes
    includes: A(!0),
    // `Array.prototype.indexOf` method
    // https://tc39.es/ecma262/#sec-array.prototype.indexof
    indexOf: A(!1)
  }, pd;
}
var vd, sw;
function AC() {
  if (sw) return vd;
  sw = 1;
  var r = Pr(), t = ri(), e = kl(), A = tC().indexOf, n = gv(), a = r([].push);
  return vd = function(s, i) {
    var o = e(s), l = 0, u = [], h;
    for (h in o) !t(n, h) && t(o, h) && a(u, h);
    for (; i.length > l; ) t(o, h = i[l++]) && (~A(u, h) || a(u, h));
    return u;
  }, vd;
}
var md, ow;
function vv() {
  return ow || (ow = 1, md = [
    "constructor",
    "hasOwnProperty",
    "isPrototypeOf",
    "propertyIsEnumerable",
    "toLocaleString",
    "toString",
    "valueOf"
  ]), md;
}
var lw;
function JN() {
  if (lw) return ud;
  lw = 1;
  var r = AC(), t = vv(), e = t.concat("length", "prototype");
  return ud.f = Object.getOwnPropertyNames || function(n) {
    return r(n, e);
  }, ud;
}
var wd = {}, uw;
function ZN() {
  return uw || (uw = 1, wd.f = Object.getOwnPropertySymbols), wd;
}
var Bd, cw;
function eM() {
  if (cw) return Bd;
  cw = 1;
  var r = Gs(), t = Pr(), e = JN(), A = ZN(), n = Jn(), a = t([].concat);
  return Bd = r("Reflect", "ownKeys") || function(i) {
    var o = e.f(n(i)), l = A.f;
    return l ? a(o, l(i)) : o;
  }, Bd;
}
var yd, fw;
function tM() {
  if (fw) return yd;
  fw = 1;
  var r = ri(), t = eM(), e = qc(), A = ms();
  return yd = function(n, a, s) {
    for (var i = t(a), o = A.f, l = e.f, u = 0; u < i.length; u++) {
      var h = i[u];
      !r(n, h) && !(s && r(s, h)) && o(n, h, l(a, h));
    }
  }, yd;
}
var bd, hw;
function rC() {
  if (hw) return bd;
  hw = 1;
  var r = Hr(), t = Xr(), e = /#|\.prototype\./, A = function(o, l) {
    var u = a[n(o)];
    return u === i ? !0 : u === s ? !1 : t(l) ? r(l) : !!l;
  }, n = A.normalize = function(o) {
    return String(o).replace(e, ".").toLowerCase();
  }, a = A.data = {}, s = A.NATIVE = "N", i = A.POLYFILL = "P";
  return bd = A, bd;
}
var Cd, dw;
function Zn() {
  if (dw) return Cd;
  dw = 1;
  var r = Er(), t = qc().f, e = Il(), A = Ys(), n = uv(), a = tM(), s = rC();
  return Cd = function(i, o) {
    var l = i.target, u = i.global, h = i.stat, g, c, p, m, y, w;
    if (u ? c = r : h ? c = r[l] || n(l, {}) : c = r[l] && r[l].prototype, c) for (p in o) {
      if (y = o[p], i.dontCallGetSet ? (w = t(c, p), m = w && w.value) : m = c[p], g = s(u ? p : l + (h ? "." : "#") + p, i.forced), !g && m !== void 0) {
        if (typeof y == typeof m) continue;
        a(y, m);
      }
      (i.sham || m && m.sham) && e(y, "sham", !0), A(c, p, y, i);
    }
  }, Cd;
}
var Ed, gw;
function nC() {
  if (gw) return Ed;
  gw = 1;
  var r = Er(), t = Ll(), e = Ws(), A = function(n) {
    return t.slice(0, n.length) === n;
  };
  return Ed = (function() {
    return A("Bun/") ? "BUN" : A("Cloudflare-Workers") ? "CLOUDFLARE" : A("Deno/") ? "DENO" : A("Node.js/") ? "NODE" : r.Bun && typeof Bun.version == "string" ? "BUN" : r.Deno && typeof Deno.version == "object" ? "DENO" : e(r.process) === "process" ? "NODE" : r.window && r.document ? "BROWSER" : "REST";
  })(), Ed;
}
var Fd, pw;
function Yc() {
  if (pw) return Fd;
  pw = 1;
  var r = nC();
  return Fd = r === "NODE", Fd;
}
var xd, vw;
function AM() {
  if (vw) return xd;
  vw = 1;
  var r = Er();
  return xd = r, xd;
}
var Sd, mw;
function rM() {
  if (mw) return Sd;
  mw = 1;
  var r = Pr(), t = Ri();
  return Sd = function(e, A, n) {
    try {
      return r(t(Object.getOwnPropertyDescriptor(e, A)[n]));
    } catch {
    }
  }, Sd;
}
var Ud, ww;
function nM() {
  if (ww) return Ud;
  ww = 1;
  var r = oa();
  return Ud = function(t) {
    return r(t) || t === null;
  }, Ud;
}
var Td, Bw;
function aM() {
  if (Bw) return Td;
  Bw = 1;
  var r = nM(), t = String, e = TypeError;
  return Td = function(A) {
    if (r(A)) return A;
    throw new e("Can't set " + t(A) + " as a prototype");
  }, Td;
}
var Qd, yw;
function aC() {
  if (yw) return Qd;
  yw = 1;
  var r = rM(), t = oa(), e = Ai(), A = aM();
  return Qd = Object.setPrototypeOf || ("__proto__" in {} ? (function() {
    var n = !1, a = {}, s;
    try {
      s = r(Object.prototype, "__proto__", "set"), s(a, []), n = a instanceof Array;
    } catch {
    }
    return function(o, l) {
      return e(o), A(l), t(o) && (n ? s(o, l) : o.__proto__ = l), o;
    };
  })() : void 0), Qd;
}
var Dd, bw;
function $c() {
  if (bw) return Dd;
  bw = 1;
  var r = ms().f, t = ri(), e = gn(), A = e("toStringTag");
  return Dd = function(n, a, s) {
    n && !s && (n = n.prototype), n && !t(n, A) && r(n, A, { configurable: !0, value: a });
  }, Dd;
}
var kd, Cw;
function iM() {
  if (Cw) return kd;
  Cw = 1;
  var r = eC(), t = ms();
  return kd = function(e, A, n) {
    return n.get && r(n.get, A, { getter: !0 }), n.set && r(n.set, A, { setter: !0 }), t.f(e, A, n);
  }, kd;
}
var Ld, Ew;
function sM() {
  if (Ew) return Ld;
  Ew = 1;
  var r = Gs(), t = iM(), e = gn(), A = ti(), n = e("species");
  return Ld = function(a) {
    var s = r(a);
    A && s && !s[n] && t(s, n, {
      configurable: !0,
      get: function() {
        return this;
      }
    });
  }, Ld;
}
var Id, Fw;
function oM() {
  if (Fw) return Id;
  Fw = 1;
  var r = Hc(), t = TypeError;
  return Id = function(e, A) {
    if (r(A, e)) return e;
    throw new t("Incorrect invocation");
  }, Id;
}
var _d, xw;
function lM() {
  if (xw) return _d;
  xw = 1;
  var r = gn(), t = r("toStringTag"), e = {};
  return e[t] = "z", _d = String(e) === "[object z]", _d;
}
var Nd, Sw;
function mv() {
  if (Sw) return Nd;
  Sw = 1;
  var r = lM(), t = Xr(), e = Ws(), A = gn(), n = A("toStringTag"), a = Object, s = e(/* @__PURE__ */ (function() {
    return arguments;
  })()) === "Arguments", i = function(o, l) {
    try {
      return o[l];
    } catch {
    }
  };
  return Nd = r ? e : function(o) {
    var l, u, h;
    return o === void 0 ? "Undefined" : o === null ? "Null" : typeof (u = i(l = a(o), n)) == "string" ? u : s ? e(l) : (h = e(l)) === "Object" && t(l.callee) ? "Arguments" : h;
  }, Nd;
}
var Md, Uw;
function uM() {
  if (Uw) return Md;
  Uw = 1;
  var r = Pr(), t = Hr(), e = Xr(), A = mv(), n = Gs(), a = hv(), s = function() {
  }, i = n("Reflect", "construct"), o = /^\s*(?:class|function)\b/, l = r(o.exec), u = !o.test(s), h = function(p) {
    if (!e(p)) return !1;
    try {
      return i(s, [], p), !0;
    } catch {
      return !1;
    }
  }, g = function(p) {
    if (!e(p)) return !1;
    switch (A(p)) {
      case "AsyncFunction":
      case "GeneratorFunction":
      case "AsyncGeneratorFunction":
        return !1;
    }
    try {
      return u || !!l(o, a(p));
    } catch {
      return !0;
    }
  };
  return g.sham = !0, Md = !i || t(function() {
    var c;
    return h(h.call) || !h(Object) || !h(function() {
      c = !0;
    }) || c;
  }) ? g : h, Md;
}
var Od, Tw;
function cM() {
  if (Tw) return Od;
  Tw = 1;
  var r = uM(), t = Pc(), e = TypeError;
  return Od = function(A) {
    if (r(A)) return A;
    throw new e(t(A) + " is not a constructor");
  }, Od;
}
var Rd, Qw;
function iC() {
  if (Qw) return Rd;
  Qw = 1;
  var r = Jn(), t = cM(), e = Rc(), A = gn(), n = A("species");
  return Rd = function(a, s) {
    var i = r(a).constructor, o;
    return i === void 0 || e(o = r(i)[n]) ? s : t(o);
  }, Rd;
}
var Hd, Dw;
function sC() {
  if (Dw) return Hd;
  Dw = 1;
  var r = Oc(), t = Function.prototype, e = t.apply, A = t.call;
  return Hd = typeof Reflect == "object" && Reflect.apply || (r ? A.bind(e) : function() {
    return A.apply(e, arguments);
  }), Hd;
}
var Pd, kw;
function zc() {
  if (kw) return Pd;
  kw = 1;
  var r = Ws(), t = Pr();
  return Pd = function(e) {
    if (r(e) === "Function") return t(e);
  }, Pd;
}
var Kd, Lw;
function wv() {
  if (Lw) return Kd;
  Lw = 1;
  var r = zc(), t = Ri(), e = Oc(), A = r(r.bind);
  return Kd = function(n, a) {
    return t(n), a === void 0 ? n : e ? A(n, a) : function() {
      return n.apply(a, arguments);
    };
  }, Kd;
}
var Vd, Iw;
function oC() {
  if (Iw) return Vd;
  Iw = 1;
  var r = Gs();
  return Vd = r("document", "documentElement"), Vd;
}
var qd, _w;
function fM() {
  if (_w) return qd;
  _w = 1;
  var r = Pr();
  return qd = r([].slice), qd;
}
var jd, Nw;
function hM() {
  if (Nw) return jd;
  Nw = 1;
  var r = TypeError;
  return jd = function(t, e) {
    if (t < e) throw new r("Not enough arguments");
    return t;
  }, jd;
}
var Wd, Mw;
function lC() {
  if (Mw) return Wd;
  Mw = 1;
  var r = Ll();
  return Wd = /(?:ipad|iphone|ipod).*applewebkit/i.test(r), Wd;
}
var Gd, Ow;
function uC() {
  if (Ow) return Gd;
  Ow = 1;
  var r = Er(), t = sC(), e = wv(), A = Xr(), n = ri(), a = Hr(), s = oC(), i = fM(), o = Vc(), l = hM(), u = lC(), h = Yc(), g = r.setImmediate, c = r.clearImmediate, p = r.process, m = r.Dispatch, y = r.Function, w = r.MessageChannel, E = r.String, C = 0, F = {}, H = "onreadystatechange", q, N, M, k;
  a(function() {
    q = r.location;
  });
  var O = function(I) {
    if (n(F, I)) {
      var le = F[I];
      delete F[I], le();
    }
  }, S = function(I) {
    return function() {
      O(I);
    };
  }, U = function(I) {
    O(I.data);
  }, W = function(I) {
    r.postMessage(E(I), q.protocol + "//" + q.host);
  };
  return (!g || !c) && (g = function(le) {
    l(arguments.length, 1);
    var ue = A(le) ? le : y(le), Z = i(arguments, 1);
    return F[++C] = function() {
      t(ue, void 0, Z);
    }, N(C), C;
  }, c = function(le) {
    delete F[le];
  }, h ? N = function(I) {
    p.nextTick(S(I));
  } : m && m.now ? N = function(I) {
    m.now(S(I));
  } : w && !u ? (M = new w(), k = M.port2, M.port1.onmessage = U, N = e(k.postMessage, k)) : r.addEventListener && A(r.postMessage) && !r.importScripts && q && q.protocol !== "file:" && !a(W) ? (N = W, r.addEventListener("message", U, !1)) : H in o("script") ? N = function(I) {
    s.appendChild(o("script"))[H] = function() {
      s.removeChild(this), O(I);
    };
  } : N = function(I) {
    setTimeout(S(I), 0);
  }), Gd = {
    set: g,
    clear: c
  }, Gd;
}
var Yd, Rw;
function dM() {
  if (Rw) return Yd;
  Rw = 1;
  var r = Er(), t = ti(), e = Object.getOwnPropertyDescriptor;
  return Yd = function(A) {
    if (!t) return r[A];
    var n = e(r, A);
    return n && n.value;
  }, Yd;
}
var $d, Hw;
function cC() {
  if (Hw) return $d;
  Hw = 1;
  var r = function() {
    this.head = null, this.tail = null;
  };
  return r.prototype = {
    add: function(t) {
      var e = { item: t, next: null }, A = this.tail;
      A ? A.next = e : this.head = e, this.tail = e;
    },
    get: function() {
      var t = this.head;
      if (t) {
        var e = this.head = t.next;
        return e === null && (this.tail = null), t.item;
      }
    }
  }, $d = r, $d;
}
var zd, Pw;
function gM() {
  if (Pw) return zd;
  Pw = 1;
  var r = Ll();
  return zd = /ipad|iphone|ipod/i.test(r) && typeof Pebble < "u", zd;
}
var Xd, Kw;
function pM() {
  if (Kw) return Xd;
  Kw = 1;
  var r = Ll();
  return Xd = /web0s(?!.*chrome)/i.test(r), Xd;
}
var Jd, Vw;
function vM() {
  if (Vw) return Jd;
  Vw = 1;
  var r = Er(), t = dM(), e = wv(), A = uC().set, n = cC(), a = lC(), s = gM(), i = pM(), o = Yc(), l = r.MutationObserver || r.WebKitMutationObserver, u = r.document, h = r.process, g = r.Promise, c = t("queueMicrotask"), p, m, y, w, E;
  if (!c) {
    var C = new n(), F = function() {
      var H, q;
      for (o && (H = h.domain) && H.exit(); q = C.get(); ) try {
        q();
      } catch (N) {
        throw C.head && p(), N;
      }
      H && H.enter();
    };
    !a && !o && !i && l && u ? (m = !0, y = u.createTextNode(""), new l(F).observe(y, { characterData: !0 }), p = function() {
      y.data = m = !m;
    }) : !s && g && g.resolve ? (w = g.resolve(void 0), w.constructor = g, E = e(w.then, w), p = function() {
      E(F);
    }) : o ? p = function() {
      h.nextTick(F);
    } : (A = e(A, r), p = function() {
      A(F);
    }), c = function(H) {
      C.head || p(), C.add(H);
    };
  }
  return Jd = c, Jd;
}
var Zd, qw;
function mM() {
  return qw || (qw = 1, Zd = function(r, t) {
    try {
      arguments.length === 1 ? console.error(r) : console.error(r, t);
    } catch {
    }
  }), Zd;
}
var eg, jw;
function Bv() {
  return jw || (jw = 1, eg = function(r) {
    try {
      return { error: !1, value: r() };
    } catch (t) {
      return { error: !0, value: t };
    }
  }), eg;
}
var tg, Ww;
function _l() {
  if (Ww) return tg;
  Ww = 1;
  var r = Er();
  return tg = r.Promise, tg;
}
var Ag, Gw;
function Nl() {
  if (Gw) return Ag;
  Gw = 1;
  var r = Er(), t = _l(), e = Xr(), A = rC(), n = hv(), a = gn(), s = nC(), i = vi(), o = lv(), l = t && t.prototype, u = a("species"), h = !1, g = e(r.PromiseRejectionEvent), c = A("Promise", function() {
    var p = n(t), m = p !== String(t);
    if (!m && o === 66 || i && !(l.catch && l.finally)) return !0;
    if (!o || o < 51 || !/native code/.test(p)) {
      var y = new t(function(C) {
        C(1);
      }), w = function(C) {
        C(function() {
        }, function() {
        });
      }, E = y.constructor = {};
      if (E[u] = w, h = y.then(function() {
      }) instanceof w, !h) return !0;
    }
    return !m && (s === "BROWSER" || s === "DENO") && !g;
  });
  return Ag = {
    CONSTRUCTOR: c,
    REJECTION_EVENT: g,
    SUBCLASSING: h
  }, Ag;
}
var rg = {}, Yw;
function Ml() {
  if (Yw) return rg;
  Yw = 1;
  var r = Ri(), t = TypeError, e = function(A) {
    var n, a;
    this.promise = new A(function(s, i) {
      if (n !== void 0 || a !== void 0) throw new t("Bad Promise constructor");
      n = s, a = i;
    }), this.resolve = r(n), this.reject = r(a);
  };
  return rg.f = function(A) {
    return new e(A);
  }, rg;
}
var $w;
function wM() {
  if ($w) return r2;
  $w = 1;
  var r = Zn(), t = vi(), e = Yc(), A = Er(), n = AM(), a = Sn(), s = Ys(), i = aC(), o = $c(), l = sM(), u = Ri(), h = Xr(), g = oa(), c = oM(), p = iC(), m = uC().set, y = vM(), w = mM(), E = Bv(), C = cC(), F = Wc(), H = _l(), q = Nl(), N = Ml(), M = "Promise", k = q.CONSTRUCTOR, O = q.REJECTION_EVENT, S = q.SUBCLASSING, U = F.getterFor(M), W = F.set, I = H && H.prototype, le = H, ue = I, Z = A.TypeError, ee = A.document, X = A.process, Ae = N.f, oe = Ae, x = !!(ee && ee.createEvent && A.dispatchEvent), L = "unhandledrejection", j = "rejectionhandled", $ = 0, re = 1, pe = 2, de = 1, ce = 2, Se, qe, rt, at, dt = function(Ke) {
    var et;
    return g(Ke) && h(et = Ke.then) ? et : !1;
  }, D = function(Ke, et) {
    var ut = et.value, yt = et.state === re, Ft = yt ? Ke.ok : Ke.fail, Bt = Ke.resolve, St = Ke.reject, bt = Ke.domain, nA, qt, Ot;
    try {
      Ft ? (yt || (et.rejection === ce && Qe(et), et.rejection = de), Ft === !0 ? nA = ut : (bt && bt.enter(), nA = Ft(ut), bt && (bt.exit(), Ot = !0)), nA === Ke.promise ? St(new Z("Promise-chain cycle")) : (qt = dt(nA)) ? a(qt, nA, Bt, St) : Bt(nA)) : St(ut);
    } catch (Pt) {
      bt && !Ot && bt.exit(), St(Pt);
    }
  }, Ie = function(Ke, et) {
    Ke.notified || (Ke.notified = !0, y(function() {
      for (var ut = Ke.reactions, yt; yt = ut.get(); )
        D(yt, Ke);
      Ke.notified = !1, et && !Ke.rejection && ve(Ke);
    }));
  }, me = function(Ke, et, ut) {
    var yt, Ft;
    x ? (yt = ee.createEvent("Event"), yt.promise = et, yt.reason = ut, yt.initEvent(Ke, !1, !0), A.dispatchEvent(yt)) : yt = { promise: et, reason: ut }, !O && (Ft = A["on" + Ke]) ? Ft(yt) : Ke === L && w("Unhandled promise rejection", ut);
  }, ve = function(Ke) {
    a(m, A, function() {
      var et = Ke.facade, ut = Ke.value, yt = xe(Ke), Ft;
      if (yt && (Ft = E(function() {
        e ? X.emit("unhandledRejection", ut, et) : me(L, et, ut);
      }), Ke.rejection = e || xe(Ke) ? ce : de, Ft.error))
        throw Ft.value;
    });
  }, xe = function(Ke) {
    return Ke.rejection !== de && !Ke.parent;
  }, Qe = function(Ke) {
    a(m, A, function() {
      var et = Ke.facade;
      e ? X.emit("rejectionHandled", et) : me(j, et, Ke.value);
    });
  }, _e = function(Ke, et, ut) {
    return function(yt) {
      Ke(et, yt, ut);
    };
  }, Pe = function(Ke, et, ut) {
    Ke.done || (Ke.done = !0, ut && (Ke = ut), Ke.value = et, Ke.state = pe, Ie(Ke, !0));
  }, je = function(Ke, et, ut) {
    if (!Ke.done) {
      Ke.done = !0, ut && (Ke = ut);
      try {
        if (Ke.facade === et) throw new Z("Promise can't be resolved itself");
        var yt = dt(et);
        yt ? y(function() {
          var Ft = { done: !1 };
          try {
            a(
              yt,
              et,
              _e(je, Ft, Ke),
              _e(Pe, Ft, Ke)
            );
          } catch (Bt) {
            Pe(Ft, Bt, Ke);
          }
        }) : (Ke.value = et, Ke.state = re, Ie(Ke, !1));
      } catch (Ft) {
        Pe({ done: !1 }, Ft, Ke);
      }
    }
  };
  if (k && (le = function(et) {
    c(this, ue), u(et), a(Se, this);
    var ut = U(this);
    try {
      et(_e(je, ut), _e(Pe, ut));
    } catch (yt) {
      Pe(ut, yt);
    }
  }, ue = le.prototype, Se = function(et) {
    W(this, {
      type: M,
      done: !1,
      notified: !1,
      parent: !1,
      reactions: new C(),
      rejection: !1,
      state: $,
      value: null
    });
  }, Se.prototype = s(ue, "then", function(et, ut) {
    var yt = U(this), Ft = Ae(p(this, le));
    return yt.parent = !0, Ft.ok = h(et) ? et : !0, Ft.fail = h(ut) && ut, Ft.domain = e ? X.domain : void 0, yt.state === $ ? yt.reactions.add(Ft) : y(function() {
      D(Ft, yt);
    }), Ft.promise;
  }), qe = function() {
    var Ke = new Se(), et = U(Ke);
    this.promise = Ke, this.resolve = _e(je, et), this.reject = _e(Pe, et);
  }, N.f = Ae = function(Ke) {
    return Ke === le || Ke === rt ? new qe(Ke) : oe(Ke);
  }, !t && h(H) && I !== Object.prototype)) {
    at = I.then, S || s(I, "then", function(et, ut) {
      var yt = this;
      return new le(function(Ft, Bt) {
        a(at, yt, Ft, Bt);
      }).then(et, ut);
    }, { unsafe: !0 });
    try {
      delete I.constructor;
    } catch {
    }
    i && i(I, ue);
  }
  return r({ global: !0, constructor: !0, wrap: !0, forced: k }, {
    Promise: le
  }), rt = n.Promise, o(le, M, !1, !0), l(M), r2;
}
var zw = {}, ng, Xw;
function Ol() {
  return Xw || (Xw = 1, ng = {}), ng;
}
var ag, Jw;
function BM() {
  if (Jw) return ag;
  Jw = 1;
  var r = gn(), t = Ol(), e = r("iterator"), A = Array.prototype;
  return ag = function(n) {
    return n !== void 0 && (t.Array === n || A[e] === n);
  }, ag;
}
var ig, Zw;
function fC() {
  if (Zw) return ig;
  Zw = 1;
  var r = mv(), t = Io(), e = Rc(), A = Ol(), n = gn(), a = n("iterator");
  return ig = function(s) {
    if (!e(s)) return t(s, a) || t(s, "@@iterator") || A[r(s)];
  }, ig;
}
var sg, eB;
function yM() {
  if (eB) return sg;
  eB = 1;
  var r = Sn(), t = Ri(), e = Jn(), A = Pc(), n = fC(), a = TypeError;
  return sg = function(s, i) {
    var o = arguments.length < 2 ? n(s) : i;
    if (t(o)) return e(r(o, s));
    throw new a(A(s) + " is not iterable");
  }, sg;
}
var og, tB;
function bM() {
  if (tB) return og;
  tB = 1;
  var r = Sn(), t = Jn(), e = Io();
  return og = function(A, n, a) {
    var s, i;
    t(A);
    try {
      if (s = e(A, "return"), !s) {
        if (n === "throw") throw a;
        return a;
      }
      s = r(s, A);
    } catch (o) {
      i = !0, s = o;
    }
    if (n === "throw") throw a;
    if (i) throw s;
    return t(s), a;
  }, og;
}
var lg, AB;
function hC() {
  if (AB) return lg;
  AB = 1;
  var r = wv(), t = Sn(), e = Jn(), A = Pc(), n = BM(), a = pv(), s = Hc(), i = yM(), o = fC(), l = bM(), u = TypeError, h = function(c, p) {
    this.stopped = c, this.result = p;
  }, g = h.prototype;
  return lg = function(c, p, m) {
    var y = m && m.that, w = !!(m && m.AS_ENTRIES), E = !!(m && m.IS_RECORD), C = !!(m && m.IS_ITERATOR), F = !!(m && m.INTERRUPTED), H = r(p, y), q, N, M, k, O, S, U, W = function(le) {
      return q && l(q, "normal"), new h(!0, le);
    }, I = function(le) {
      return w ? (e(le), F ? H(le[0], le[1], W) : H(le[0], le[1])) : F ? H(le, W) : H(le);
    };
    if (E)
      q = c.iterator;
    else if (C)
      q = c;
    else {
      if (N = o(c), !N) throw new u(A(c) + " is not iterable");
      if (n(N)) {
        for (M = 0, k = a(c); k > M; M++)
          if (O = I(c[M]), O && s(g, O)) return O;
        return new h(!1);
      }
      q = i(c, N);
    }
    for (S = E ? c.next : q.next; !(U = t(S, q)).done; ) {
      try {
        O = I(U.value);
      } catch (le) {
        l(q, "throw", le);
      }
      if (typeof O == "object" && O && s(g, O)) return O;
    }
    return new h(!1);
  }, lg;
}
var ug, rB;
function CM() {
  if (rB) return ug;
  rB = 1;
  var r = gn(), t = r("iterator"), e = !1;
  try {
    var A = 0, n = {
      next: function() {
        return { done: !!A++ };
      },
      return: function() {
        e = !0;
      }
    };
    n[t] = function() {
      return this;
    }, Array.from(n, function() {
      throw 2;
    });
  } catch {
  }
  return ug = function(a, s) {
    try {
      if (!s && !e) return !1;
    } catch {
      return !1;
    }
    var i = !1;
    try {
      var o = {};
      o[t] = function() {
        return {
          next: function() {
            return { done: i = !0 };
          }
        };
      }, a(o);
    } catch {
    }
    return i;
  }, ug;
}
var cg, nB;
function dC() {
  if (nB) return cg;
  nB = 1;
  var r = _l(), t = CM(), e = Nl().CONSTRUCTOR;
  return cg = e || !t(function(A) {
    r.all(A).then(void 0, function() {
    });
  }), cg;
}
var aB;
function EM() {
  if (aB) return zw;
  aB = 1;
  var r = Zn(), t = Sn(), e = Ri(), A = Ml(), n = Bv(), a = hC(), s = dC();
  return r({ target: "Promise", stat: !0, forced: s }, {
    all: function(o) {
      var l = this, u = A.f(l), h = u.resolve, g = u.reject, c = n(function() {
        var p = e(l.resolve), m = [], y = 0, w = 1;
        a(o, function(E) {
          var C = y++, F = !1;
          w++, t(p, l, E).then(function(H) {
            F || (F = !0, m[C] = H, --w || h(m));
          }, g);
        }), --w || h(m);
      });
      return c.error && g(c.value), u.promise;
    }
  }), zw;
}
var iB = {}, sB;
function FM() {
  if (sB) return iB;
  sB = 1;
  var r = Zn(), t = vi(), e = Nl().CONSTRUCTOR, A = _l(), n = Gs(), a = Xr(), s = Ys(), i = A && A.prototype;
  if (r({ target: "Promise", proto: !0, forced: e, real: !0 }, {
    catch: function(l) {
      return this.then(void 0, l);
    }
  }), !t && a(A)) {
    var o = n("Promise").prototype.catch;
    i.catch !== o && s(i, "catch", o, { unsafe: !0 });
  }
  return iB;
}
var oB = {}, lB;
function xM() {
  if (lB) return oB;
  lB = 1;
  var r = Zn(), t = Sn(), e = Ri(), A = Ml(), n = Bv(), a = hC(), s = dC();
  return r({ target: "Promise", stat: !0, forced: s }, {
    race: function(o) {
      var l = this, u = A.f(l), h = u.reject, g = n(function() {
        var c = e(l.resolve);
        a(o, function(p) {
          t(c, l, p).then(u.resolve, h);
        });
      });
      return g.error && h(g.value), u.promise;
    }
  }), oB;
}
var uB = {}, cB;
function SM() {
  if (cB) return uB;
  cB = 1;
  var r = Zn(), t = Ml(), e = Nl().CONSTRUCTOR;
  return r({ target: "Promise", stat: !0, forced: e }, {
    reject: function(n) {
      var a = t.f(this), s = a.reject;
      return s(n), a.promise;
    }
  }), uB;
}
var fB = {}, fg, hB;
function UM() {
  if (hB) return fg;
  hB = 1;
  var r = Jn(), t = oa(), e = Ml();
  return fg = function(A, n) {
    if (r(A), t(n) && n.constructor === A) return n;
    var a = e.f(A), s = a.resolve;
    return s(n), a.promise;
  }, fg;
}
var dB;
function TM() {
  if (dB) return fB;
  dB = 1;
  var r = Zn(), t = Gs(), e = vi(), A = _l(), n = Nl().CONSTRUCTOR, a = UM(), s = t("Promise"), i = e && !n;
  return r({ target: "Promise", stat: !0, forced: e || n }, {
    resolve: function(l) {
      return a(i && this === s ? A : this, l);
    }
  }), fB;
}
var gB;
function QM() {
  return gB || (gB = 1, wM(), EM(), FM(), xM(), SM(), TM()), A2;
}
QM();
function pB(r, t, e, A, n, a, s) {
  try {
    var i = r[a](s), o = i.value;
  } catch (l) {
    return void e(l);
  }
  i.done ? t(o) : Promise.resolve(o).then(A, n);
}
function Mi(r) {
  return function() {
    var t = this, e = arguments;
    return new Promise(function(A, n) {
      var a = r.apply(t, e);
      function s(o) {
        pB(a, A, n, s, i, "next", o);
      }
      function i(o) {
        pB(a, A, n, s, i, "throw", o);
      }
      s(void 0);
    });
  };
}
var vB = {}, mB = {}, hg, wB;
function mi() {
  if (wB) return hg;
  wB = 1;
  var r = mv(), t = String;
  return hg = function(e) {
    if (r(e) === "Symbol") throw new TypeError("Cannot convert a Symbol value to a string");
    return t(e);
  }, hg;
}
var dg, BB;
function gC() {
  if (BB) return dg;
  BB = 1;
  var r = Jn();
  return dg = function() {
    var t = r(this), e = "";
    return t.hasIndices && (e += "d"), t.global && (e += "g"), t.ignoreCase && (e += "i"), t.multiline && (e += "m"), t.dotAll && (e += "s"), t.unicode && (e += "u"), t.unicodeSets && (e += "v"), t.sticky && (e += "y"), e;
  }, dg;
}
var gg, yB;
function pC() {
  if (yB) return gg;
  yB = 1;
  var r = Hr(), t = Er(), e = t.RegExp, A = r(function() {
    var s = e("a", "y");
    return s.lastIndex = 2, s.exec("abcd") !== null;
  }), n = A || r(function() {
    return !e("a", "y").sticky;
  }), a = A || r(function() {
    var s = e("^r", "gy");
    return s.lastIndex = 2, s.exec("str") !== null;
  });
  return gg = {
    BROKEN_CARET: a,
    MISSED_STICKY: n,
    UNSUPPORTED_Y: A
  }, gg;
}
var pg = {}, vg, bB;
function DM() {
  if (bB) return vg;
  bB = 1;
  var r = AC(), t = vv();
  return vg = Object.keys || function(A) {
    return r(A, t);
  }, vg;
}
var CB;
function kM() {
  if (CB) return pg;
  CB = 1;
  var r = ti(), t = Zb(), e = ms(), A = Jn(), n = kl(), a = DM();
  return pg.f = r && !t ? Object.defineProperties : function(i, o) {
    A(i);
    for (var l = n(o), u = a(o), h = u.length, g = 0, c; h > g; ) e.f(i, c = u[g++], l[c]);
    return i;
  }, pg;
}
var mg, EB;
function Xc() {
  if (EB) return mg;
  EB = 1;
  var r = Jn(), t = kM(), e = vv(), A = gv(), n = oC(), a = Vc(), s = dv(), i = ">", o = "<", l = "prototype", u = "script", h = s("IE_PROTO"), g = function() {
  }, c = function(E) {
    return o + u + i + E + o + "/" + u + i;
  }, p = function(E) {
    E.write(c("")), E.close();
    var C = E.parentWindow.Object;
    return E = null, C;
  }, m = function() {
    var E = a("iframe"), C = "java" + u + ":", F;
    return E.style.display = "none", n.appendChild(E), E.src = String(C), F = E.contentWindow.document, F.open(), F.write(c("document.F=Object")), F.close(), F.F;
  }, y, w = function() {
    try {
      y = new ActiveXObject("htmlfile");
    } catch {
    }
    w = typeof document < "u" ? document.domain && y ? p(y) : m() : p(y);
    for (var E = e.length; E--; ) delete w[l][e[E]];
    return w();
  };
  return A[h] = !0, mg = Object.create || function(C, F) {
    var H;
    return C !== null ? (g[l] = r(C), H = new g(), g[l] = null, H[h] = C) : H = w(), F === void 0 ? H : t.f(H, F);
  }, mg;
}
var wg, FB;
function LM() {
  if (FB) return wg;
  FB = 1;
  var r = Hr(), t = Er(), e = t.RegExp;
  return wg = r(function() {
    var A = e(".", "s");
    return !(A.dotAll && A.test(`
`) && A.flags === "s");
  }), wg;
}
var Bg, xB;
function IM() {
  if (xB) return Bg;
  xB = 1;
  var r = Hr(), t = Er(), e = t.RegExp;
  return Bg = r(function() {
    var A = e("(?<a>b)", "g");
    return A.exec("b").groups.a !== "b" || "b".replace(A, "$<a>c") !== "bc";
  }), Bg;
}
var yg, SB;
function yv() {
  if (SB) return yg;
  SB = 1;
  var r = Sn(), t = Pr(), e = mi(), A = gC(), n = pC(), a = fv(), s = Xc(), i = Wc().get, o = LM(), l = IM(), u = a("native-string-replace", String.prototype.replace), h = RegExp.prototype.exec, g = h, c = t("".charAt), p = t("".indexOf), m = t("".replace), y = t("".slice), w = (function() {
    var H = /a/, q = /b*/g;
    return r(h, H, "a"), r(h, q, "a"), H.lastIndex !== 0 || q.lastIndex !== 0;
  })(), E = n.BROKEN_CARET, C = /()??/.exec("")[1] !== void 0, F = w || C || E || o || l;
  return F && (g = function(q) {
    var N = this, M = i(N), k = e(q), O = M.raw, S, U, W, I, le, ue, Z;
    if (O)
      return O.lastIndex = N.lastIndex, S = r(g, O, k), N.lastIndex = O.lastIndex, S;
    var ee = M.groups, X = E && N.sticky, Ae = r(A, N), oe = N.source, x = 0, L = k;
    if (X && (Ae = m(Ae, "y", ""), p(Ae, "g") === -1 && (Ae += "g"), L = y(k, N.lastIndex), N.lastIndex > 0 && (!N.multiline || N.multiline && c(k, N.lastIndex - 1) !== `
`) && (oe = "(?: " + oe + ")", L = " " + L, x++), U = new RegExp("^(?:" + oe + ")", Ae)), C && (U = new RegExp("^" + oe + "$(?!\\s)", Ae)), w && (W = N.lastIndex), I = r(h, X ? U : N, L), X ? I ? (I.input = y(I.input, x), I[0] = y(I[0], x), I.index = N.lastIndex, N.lastIndex += I[0].length) : N.lastIndex = 0 : w && I && (N.lastIndex = N.global ? I.index + I[0].length : W), C && I && I.length > 1 && r(u, I[0], U, function() {
      for (le = 1; le < arguments.length - 2; le++)
        arguments[le] === void 0 && (I[le] = void 0);
    }), I && ee)
      for (I.groups = ue = s(null), le = 0; le < ee.length; le++)
        Z = ee[le], ue[Z[0]] = I[Z[1]];
    return I;
  }), yg = g, yg;
}
var UB;
function _M() {
  if (UB) return mB;
  UB = 1;
  var r = Zn(), t = yv();
  return r({ target: "RegExp", proto: !0, forced: /./.exec !== t }, {
    exec: t
  }), mB;
}
var bg, TB;
function bv() {
  if (TB) return bg;
  TB = 1, _M();
  var r = Sn(), t = Ys(), e = yv(), A = Hr(), n = gn(), a = Il(), s = n("species"), i = RegExp.prototype;
  return bg = function(o, l, u, h) {
    var g = n(o), c = !A(function() {
      var w = {};
      return w[g] = function() {
        return 7;
      }, ""[o](w) !== 7;
    }), p = c && !A(function() {
      var w = !1, E = /a/;
      return o === "split" && (E = {}, E.constructor = {}, E.constructor[s] = function() {
        return E;
      }, E.flags = "", E[g] = /./[g]), E.exec = function() {
        return w = !0, null;
      }, E[g](""), !w;
    });
    if (!c || !p || u) {
      var m = /./[g], y = l(g, ""[o], function(w, E, C, F, H) {
        var q = E.exec;
        return q === e || q === i.exec ? c && !H ? { done: !0, value: r(m, E, C, F) } : { done: !0, value: r(w, C, E, F) } : { done: !1 };
      });
      t(String.prototype, o, y[0]), t(i, g, y[1]);
    }
    h && a(i[g], "sham", !0);
  }, bg;
}
var Cg, QB;
function NM() {
  if (QB) return Cg;
  QB = 1;
  var r = Pr(), t = Gc(), e = mi(), A = Ai(), n = r("".charAt), a = r("".charCodeAt), s = r("".slice), i = function(o) {
    return function(l, u) {
      var h = e(A(l)), g = t(u), c = h.length, p, m;
      return g < 0 || g >= c ? o ? "" : void 0 : (p = a(h, g), p < 55296 || p > 56319 || g + 1 === c || (m = a(h, g + 1)) < 56320 || m > 57343 ? o ? n(h, g) : p : o ? s(h, g, g + 2) : (p - 55296 << 10) + (m - 56320) + 65536);
    };
  };
  return Cg = {
    // `String.prototype.codePointAt` method
    // https://tc39.es/ecma262/#sec-string.prototype.codepointat
    codeAt: i(!1),
    // `String.prototype.at` method
    // https://github.com/mathiasbynens/String.prototype.at
    charAt: i(!0)
  }, Cg;
}
var Eg, DB;
function Cv() {
  if (DB) return Eg;
  DB = 1;
  var r = NM().charAt;
  return Eg = function(t, e, A) {
    return e + (A ? r(t, e).length : 1);
  }, Eg;
}
var Fg, kB;
function MM() {
  if (kB) return Fg;
  kB = 1;
  var r = Er(), t = Hr(), e = r.RegExp, A = !t(function() {
    var n = !0;
    try {
      e(".", "d");
    } catch {
      n = !1;
    }
    var a = {}, s = "", i = n ? "dgimsy" : "gimsy", o = function(g, c) {
      Object.defineProperty(a, g, { get: function() {
        return s += c, !0;
      } });
    }, l = {
      dotAll: "s",
      global: "g",
      ignoreCase: "i",
      multiline: "m",
      sticky: "y"
    };
    n && (l.hasIndices = "d");
    for (var u in l) o(u, l[u]);
    var h = Object.getOwnPropertyDescriptor(e.prototype, "flags").get.call(a);
    return h !== i || s !== i;
  });
  return Fg = { correct: A }, Fg;
}
var xg, LB;
function Ev() {
  if (LB) return xg;
  LB = 1;
  var r = Sn(), t = ri(), e = Hc(), A = MM(), n = gC(), a = RegExp.prototype;
  return xg = A.correct ? function(s) {
    return s.flags;
  } : function(s) {
    return !A.correct && e(a, s) && !t(s, "flags") ? r(n, s) : s.flags;
  }, xg;
}
var Sg, IB;
function Fv() {
  if (IB) return Sg;
  IB = 1;
  var r = Sn(), t = Jn(), e = Xr(), A = Ws(), n = yv(), a = TypeError;
  return Sg = function(s, i) {
    var o = s.exec;
    if (e(o)) {
      var l = r(o, s, i);
      return l !== null && t(l), l;
    }
    if (A(s) === "RegExp") return r(n, s, i);
    throw new a("RegExp#exec called on incompatible receiver");
  }, Sg;
}
var _B;
function OM() {
  if (_B) return vB;
  _B = 1;
  var r = Sn(), t = Pr(), e = bv(), A = Jn(), n = oa(), a = _o(), s = mi(), i = Ai(), o = Io(), l = Cv(), u = Ev(), h = Fv(), g = t("".indexOf);
  return e("match", function(c, p, m) {
    return [
      // `String.prototype.match` method
      // https://tc39.es/ecma262/#sec-string.prototype.match
      function(w) {
        var E = i(this), C = n(w) ? o(w, c) : void 0;
        return C ? r(C, w, E) : new RegExp(w)[c](s(E));
      },
      // `RegExp.prototype[@@match]` method
      // https://tc39.es/ecma262/#sec-regexp.prototype-@@match
      function(y) {
        var w = A(this), E = s(y), C = m(p, w, E);
        if (C.done) return C.value;
        var F = s(u(w));
        if (g(F, "g") === -1) return h(w, E);
        var H = g(F, "u") !== -1;
        w.lastIndex = 0;
        for (var q = [], N = 0, M; (M = h(w, E)) !== null; ) {
          var k = s(M[0]);
          q[N] = k, k === "" && (w.lastIndex = l(E, a(w.lastIndex), H)), N++;
        }
        return N === 0 ? null : q;
      }
    ];
  }), vB;
}
OM();
var NB = {}, Ug, MB;
function RM() {
  if (MB) return Ug;
  MB = 1;
  var r = Pr(), t = Kc(), e = Math.floor, A = r("".charAt), n = r("".replace), a = r("".slice), s = /\$([$&'`]|\d{1,2}|<[^>]*>)/g, i = /\$([$&'`]|\d{1,2})/g;
  return Ug = function(o, l, u, h, g, c) {
    var p = u + o.length, m = h.length, y = i;
    return g !== void 0 && (g = t(g), y = s), n(c, y, function(w, E) {
      var C;
      switch (A(E, 0)) {
        case "$":
          return "$";
        case "&":
          return o;
        case "`":
          return a(l, 0, u);
        case "'":
          return a(l, p);
        case "<":
          C = g[a(E, 1, -1)];
          break;
        default:
          var F = +E;
          if (F === 0) return w;
          if (F > m) {
            var H = e(F / 10);
            return H === 0 ? w : H <= m ? h[H - 1] === void 0 ? A(E, 1) : h[H - 1] + A(E, 1) : w;
          }
          C = h[F - 1];
      }
      return C === void 0 ? "" : C;
    });
  }, Ug;
}
var OB;
function HM() {
  if (OB) return NB;
  OB = 1;
  var r = sC(), t = Sn(), e = Pr(), A = bv(), n = Hr(), a = Jn(), s = Xr(), i = oa(), o = Gc(), l = _o(), u = mi(), h = Ai(), g = Cv(), c = Io(), p = RM(), m = Ev(), y = Fv(), w = gn(), E = w("replace"), C = Math.max, F = Math.min, H = e([].concat), q = e([].push), N = e("".indexOf), M = e("".slice), k = function(W) {
    return W === void 0 ? W : String(W);
  }, O = (function() {
    return "a".replace(/./, "$0") === "$0";
  })(), S = (function() {
    return /./[E] ? /./[E]("a", "$0") === "" : !1;
  })(), U = !n(function() {
    var W = /./;
    return W.exec = function() {
      var I = [];
      return I.groups = { a: "7" }, I;
    }, "".replace(W, "$<a>") !== "7";
  });
  return A("replace", function(W, I, le) {
    var ue = S ? "$" : "$0";
    return [
      // `String.prototype.replace` method
      // https://tc39.es/ecma262/#sec-string.prototype.replace
      function(ee, X) {
        var Ae = h(this), oe = i(ee) ? c(ee, E) : void 0;
        return oe ? t(oe, ee, Ae, X) : t(I, u(Ae), ee, X);
      },
      // `RegExp.prototype[@@replace]` method
      // https://tc39.es/ecma262/#sec-regexp.prototype-@@replace
      function(Z, ee) {
        var X = a(this), Ae = u(Z);
        if (typeof ee == "string" && N(ee, ue) === -1 && N(ee, "$<") === -1) {
          var oe = le(I, X, Ae, ee);
          if (oe.done) return oe.value;
        }
        var x = s(ee);
        x || (ee = u(ee));
        var L = u(m(X)), j = N(L, "g") !== -1, $;
        j && ($ = N(L, "u") !== -1, X.lastIndex = 0);
        for (var re = [], pe; pe = y(X, Ae), !(pe === null || (q(re, pe), !j)); ) {
          var de = u(pe[0]);
          de === "" && (X.lastIndex = g(Ae, l(X.lastIndex), $));
        }
        for (var ce = "", Se = 0, qe = 0; qe < re.length; qe++) {
          pe = re[qe];
          for (var rt = u(pe[0]), at = C(F(o(pe.index), Ae.length), 0), dt = [], D, Ie = 1; Ie < pe.length; Ie++) q(dt, k(pe[Ie]));
          var me = pe.groups;
          if (x) {
            var ve = H([rt], dt, at, Ae);
            me !== void 0 && q(ve, me), D = u(r(ee, void 0, ve));
          } else
            D = p(rt, Ae, at, dt, me, ee);
          at >= Se && (ce += M(Ae, Se, at) + D, Se = at + rt.length);
        }
        return ce + M(Ae, Se);
      }
    ];
  }, !U || !O || S), NB;
}
HM();
var RB = {}, Tg, HB;
function PM() {
  if (HB) return Tg;
  HB = 1;
  var r = oa(), t = Ws(), e = gn(), A = e("match");
  return Tg = function(n) {
    var a;
    return r(n) && ((a = n[A]) !== void 0 ? !!a : t(n) === "RegExp");
  }, Tg;
}
var Qg, PB;
function xv() {
  if (PB) return Qg;
  PB = 1;
  var r = PM(), t = TypeError;
  return Qg = function(e) {
    if (r(e))
      throw new t("The method doesn't accept regular expressions");
    return e;
  }, Qg;
}
var Dg, KB;
function Sv() {
  if (KB) return Dg;
  KB = 1;
  var r = gn(), t = r("match");
  return Dg = function(e) {
    var A = /./;
    try {
      "/./"[e](A);
    } catch {
      try {
        return A[t] = !1, "/./"[e](A);
      } catch {
      }
    }
    return !1;
  }, Dg;
}
var VB;
function KM() {
  if (VB) return RB;
  VB = 1;
  var r = Zn(), t = zc(), e = qc().f, A = _o(), n = mi(), a = xv(), s = Ai(), i = Sv(), o = vi(), l = t("".slice), u = Math.min, h = i("startsWith"), g = !o && !h && !!(function() {
    var c = e(String.prototype, "startsWith");
    return c && !c.writable;
  })();
  return r({ target: "String", proto: !0, forced: !g && !h }, {
    startsWith: function(p) {
      var m = n(s(this));
      a(p);
      var y = A(u(arguments.length > 1 ? arguments[1] : void 0, m.length)), w = n(p);
      return l(m, y, y + w.length) === w;
    }
  }), RB;
}
KM();
var kg, qB;
function VM() {
  if (qB) return kg;
  qB = 1;
  var r = gn(), t = Xc(), e = ms().f, A = r("unscopables"), n = Array.prototype;
  return n[A] === void 0 && e(n, A, {
    configurable: !0,
    value: t(null)
  }), kg = function(a) {
    n[A][a] = !0;
  }, kg;
}
var Lg, jB;
function qM() {
  if (jB) return Lg;
  jB = 1;
  var r = Hr();
  return Lg = !r(function() {
    function t() {
    }
    return t.prototype.constructor = null, Object.getPrototypeOf(new t()) !== t.prototype;
  }), Lg;
}
var Ig, WB;
function vC() {
  if (WB) return Ig;
  WB = 1;
  var r = ri(), t = Xr(), e = Kc(), A = dv(), n = qM(), a = A("IE_PROTO"), s = Object, i = s.prototype;
  return Ig = n ? s.getPrototypeOf : function(o) {
    var l = e(o);
    if (r(l, a)) return l[a];
    var u = l.constructor;
    return t(u) && l instanceof u ? u.prototype : l instanceof s ? i : null;
  }, Ig;
}
var _g, GB;
function mC() {
  if (GB) return _g;
  GB = 1;
  var r = Hr(), t = Xr(), e = oa(), A = Xc(), n = vC(), a = Ys(), s = gn(), i = vi(), o = s("iterator"), l = !1, u, h, g;
  [].keys && (g = [].keys(), "next" in g ? (h = n(n(g)), h !== Object.prototype && (u = h)) : l = !0);
  var c = !e(u) || r(function() {
    var p = {};
    return u[o].call(p) !== p;
  });
  return c ? u = {} : i && (u = A(u)), t(u[o]) || a(u, o, function() {
    return this;
  }), _g = {
    IteratorPrototype: u,
    BUGGY_SAFARI_ITERATORS: l
  }, _g;
}
var Ng, YB;
function jM() {
  if (YB) return Ng;
  YB = 1;
  var r = mC().IteratorPrototype, t = Xc(), e = ov(), A = $c(), n = Ol(), a = function() {
    return this;
  };
  return Ng = function(s, i, o, l) {
    var u = i + " Iterator";
    return s.prototype = t(r, { next: e(+!l, o) }), A(s, u, !1, !0), n[u] = a, s;
  }, Ng;
}
var Mg, $B;
function WM() {
  if ($B) return Mg;
  $B = 1;
  var r = Zn(), t = Sn(), e = vi(), A = jc(), n = Xr(), a = jM(), s = vC(), i = aC(), o = $c(), l = Il(), u = Ys(), h = gn(), g = Ol(), c = mC(), p = A.PROPER, m = A.CONFIGURABLE, y = c.IteratorPrototype, w = c.BUGGY_SAFARI_ITERATORS, E = h("iterator"), C = "keys", F = "values", H = "entries", q = function() {
    return this;
  };
  return Mg = function(N, M, k, O, S, U, W) {
    a(k, M, O);
    var I = function(j) {
      if (j === S && X) return X;
      if (!w && j && j in Z) return Z[j];
      switch (j) {
        case C:
          return function() {
            return new k(this, j);
          };
        case F:
          return function() {
            return new k(this, j);
          };
        case H:
          return function() {
            return new k(this, j);
          };
      }
      return function() {
        return new k(this);
      };
    }, le = M + " Iterator", ue = !1, Z = N.prototype, ee = Z[E] || Z["@@iterator"] || S && Z[S], X = !w && ee || I(S), Ae = M === "Array" && Z.entries || ee, oe, x, L;
    if (Ae && (oe = s(Ae.call(new N())), oe !== Object.prototype && oe.next && (!e && s(oe) !== y && (i ? i(oe, y) : n(oe[E]) || u(oe, E, q)), o(oe, le, !0, !0), e && (g[le] = q))), p && S === F && ee && ee.name !== F && (!e && m ? l(Z, "name", F) : (ue = !0, X = function() {
      return t(ee, this);
    })), S)
      if (x = {
        values: I(F),
        keys: U ? X : I(C),
        entries: I(H)
      }, W) for (L in x)
        (w || ue || !(L in Z)) && u(Z, L, x[L]);
      else r({ target: M, proto: !0, forced: w || ue }, x);
    return (!e || W) && Z[E] !== X && u(Z, E, X, { name: S }), g[M] = X, x;
  }, Mg;
}
var Og, zB;
function GM() {
  return zB || (zB = 1, Og = function(r, t) {
    return { value: r, done: t };
  }), Og;
}
var Rg, XB;
function wC() {
  if (XB) return Rg;
  XB = 1;
  var r = kl(), t = VM(), e = Ol(), A = Wc(), n = ms().f, a = WM(), s = GM(), i = vi(), o = ti(), l = "Array Iterator", u = A.set, h = A.getterFor(l);
  Rg = a(Array, "Array", function(c, p) {
    u(this, {
      type: l,
      target: r(c),
      // target
      index: 0,
      // next index
      kind: p
      // kind
    });
  }, function() {
    var c = h(this), p = c.target, m = c.index++;
    if (!p || m >= p.length)
      return c.target = null, s(void 0, !0);
    switch (c.kind) {
      case "keys":
        return s(m, !1);
      case "values":
        return s(p[m], !1);
    }
    return s([m, p[m]], !1);
  }, "values");
  var g = e.Arguments = e.Array;
  if (t("keys"), t("values"), t("entries"), !i && o && g.name !== "values") try {
    n(g, "name", { value: "values" });
  } catch {
  }
  return Rg;
}
wC();
var JB = {}, Hg, ZB;
function YM() {
  return ZB || (ZB = 1, Hg = {
    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
  }), Hg;
}
var Pg, ey;
function $M() {
  if (ey) return Pg;
  ey = 1;
  var r = Vc(), t = r("span").classList, e = t && t.constructor && t.constructor.prototype;
  return Pg = e === Object.prototype ? void 0 : e, Pg;
}
var ty;
function zM() {
  if (ty) return JB;
  ty = 1;
  var r = Er(), t = YM(), e = $M(), A = wC(), n = Il(), a = $c(), s = gn(), i = s("iterator"), o = A.values, l = function(h, g) {
    if (h) {
      if (h[i] !== o) try {
        n(h, i, o);
      } catch {
        h[i] = o;
      }
      if (a(h, g, !0), t[g]) {
        for (var c in A)
          if (h[c] !== A[c]) try {
            n(h, c, A[c]);
          } catch {
            h[c] = A[c];
          }
      }
    }
  };
  for (var u in t)
    l(r[u] && r[u].prototype, u);
  return l(e, "DOMTokenList"), JB;
}
zM();
function XM(r, t) {
  if (jA(r) != "object" || !r) return r;
  var e = r[Symbol.toPrimitive];
  if (e !== void 0) {
    var A = e.call(r, t);
    if (jA(A) != "object") return A;
    throw new TypeError("@@toPrimitive must return a primitive value.");
  }
  return (t === "string" ? String : Number)(r);
}
function JM(r) {
  var t = XM(r, "string");
  return jA(t) == "symbol" ? t : t + "";
}
function Uv(r, t, e) {
  return (t = JM(t)) in r ? Object.defineProperty(r, t, {
    value: e,
    enumerable: !0,
    configurable: !0,
    writable: !0
  }) : r[t] = e, r;
}
var Ay = {}, Kg, ry;
function ZM() {
  if (ry) return Kg;
  ry = 1;
  var r = Ri(), t = Kc(), e = Wb(), A = pv(), n = TypeError, a = "Reduce of empty array with no initial value", s = function(i) {
    return function(o, l, u, h) {
      var g = t(o), c = e(g), p = A(g);
      if (r(l), p === 0 && u < 2) throw new n(a);
      var m = i ? p - 1 : 0, y = i ? -1 : 1;
      if (u < 2) for (; ; ) {
        if (m in c) {
          h = c[m], m += y;
          break;
        }
        if (m += y, i ? m < 0 : p <= m)
          throw new n(a);
      }
      for (; i ? m >= 0 : p > m; m += y) m in c && (h = l(h, c[m], m, g));
      return h;
    };
  };
  return Kg = {
    // `Array.prototype.reduce` method
    // https://tc39.es/ecma262/#sec-array.prototype.reduce
    left: s(!1),
    // `Array.prototype.reduceRight` method
    // https://tc39.es/ecma262/#sec-array.prototype.reduceright
    right: s(!0)
  }, Kg;
}
var Vg, ny;
function BC() {
  if (ny) return Vg;
  ny = 1;
  var r = Hr();
  return Vg = function(t, e) {
    var A = [][t];
    return !!A && r(function() {
      A.call(null, e || function() {
        return 1;
      }, 1);
    });
  }, Vg;
}
var ay;
function e8() {
  if (ay) return Ay;
  ay = 1;
  var r = Zn(), t = ZM().left, e = BC(), A = lv(), n = Yc(), a = !n && A > 79 && A < 83, s = a || !e("reduce");
  return r({ target: "Array", proto: !0, forced: s }, {
    reduce: function(o) {
      var l = arguments.length;
      return t(this, o, l, l > 1 ? arguments[1] : void 0);
    }
  }), Ay;
}
e8();
var iy = {}, sy;
function t8() {
  if (sy) return iy;
  sy = 1;
  var r = Zn(), t = zc(), e = qc().f, A = _o(), n = mi(), a = xv(), s = Ai(), i = Sv(), o = vi(), l = t("".slice), u = Math.min, h = i("endsWith"), g = !o && !h && !!(function() {
    var c = e(String.prototype, "endsWith");
    return c && !c.writable;
  })();
  return r({ target: "String", proto: !0, forced: !g && !h }, {
    endsWith: function(p) {
      var m = n(s(this));
      a(p);
      var y = arguments.length > 1 ? arguments[1] : void 0, w = m.length, E = y === void 0 ? w : u(A(y), w), C = n(p);
      return l(m, E - C.length, E) === C;
    }
  }), iy;
}
t8();
var oy = {}, ly;
function A8() {
  if (ly) return oy;
  ly = 1;
  var r = Sn(), t = Pr(), e = bv(), A = Jn(), n = oa(), a = Ai(), s = iC(), i = Cv(), o = _o(), l = mi(), u = Io(), h = Fv(), g = pC(), c = Hr(), p = g.UNSUPPORTED_Y, m = 4294967295, y = Math.min, w = t([].push), E = t("".slice), C = !c(function() {
    var H = /(?:)/, q = H.exec;
    H.exec = function() {
      return q.apply(this, arguments);
    };
    var N = "ab".split(H);
    return N.length !== 2 || N[0] !== "a" || N[1] !== "b";
  }), F = "abbc".split(/(b)*/)[1] === "c" || // eslint-disable-next-line regexp/no-empty-group -- required for testing
  "test".split(/(?:)/, -1).length !== 4 || "ab".split(/(?:ab)*/).length !== 2 || ".".split(/(.?)(.?)/).length !== 4 || // eslint-disable-next-line regexp/no-empty-capturing-group, regexp/no-empty-group -- required for testing
  ".".split(/()()/).length > 1 || "".split(/.?/).length;
  return e("split", function(H, q, N) {
    var M = "0".split(void 0, 0).length ? function(k, O) {
      return k === void 0 && O === 0 ? [] : r(q, this, k, O);
    } : q;
    return [
      // `String.prototype.split` method
      // https://tc39.es/ecma262/#sec-string.prototype.split
      function(O, S) {
        var U = a(this), W = n(O) ? u(O, H) : void 0;
        return W ? r(W, O, U, S) : r(M, l(U), O, S);
      },
      // `RegExp.prototype[@@split]` method
      // https://tc39.es/ecma262/#sec-regexp.prototype-@@split
      //
      // NOTE: This cannot be properly polyfilled in engines that don't support
      // the 'y' flag.
      function(k, O) {
        var S = A(this), U = l(k);
        if (!F) {
          var W = N(M, S, U, O, M !== q);
          if (W.done) return W.value;
        }
        var I = s(S, RegExp), le = S.unicode, ue = (S.ignoreCase ? "i" : "") + (S.multiline ? "m" : "") + (S.unicode ? "u" : "") + (p ? "g" : "y"), Z = new I(p ? "^(?:" + S.source + ")" : S, ue), ee = O === void 0 ? m : O >>> 0;
        if (ee === 0) return [];
        if (U.length === 0) return h(Z, U) === null ? [U] : [];
        for (var X = 0, Ae = 0, oe = []; Ae < U.length; ) {
          Z.lastIndex = p ? 0 : Ae;
          var x = h(Z, p ? E(U, Ae) : U), L;
          if (x === null || (L = y(o(Z.lastIndex + (p ? Ae : 0)), U.length)) === X)
            Ae = i(U, Ae, le);
          else {
            if (w(oe, E(U, X, Ae)), oe.length === ee) return oe;
            for (var j = 1; j <= x.length - 1; j++)
              if (w(oe, x[j]), oe.length === ee) return oe;
            Ae = X = L;
          }
        }
        return w(oe, E(U, X)), oe;
      }
    ];
  }, F || !C, p), oy;
}
A8();
var ol = { exports: {} }, Ds = { exports: {} }, r8 = Ds.exports, uy;
function n8() {
  return uy || (uy = 1, (function() {
    var r, t, e, A, n, a;
    typeof performance < "u" && performance !== null && performance.now ? Ds.exports = function() {
      return performance.now();
    } : typeof process < "u" && process !== null && process.hrtime ? (Ds.exports = function() {
      return (r() - n) / 1e6;
    }, t = process.hrtime, r = function() {
      var s;
      return s = t(), s[0] * 1e9 + s[1];
    }, A = r(), a = process.uptime() * 1e9, n = A - a) : Date.now ? (Ds.exports = function() {
      return Date.now() - e;
    }, e = Date.now()) : (Ds.exports = function() {
      return (/* @__PURE__ */ new Date()).getTime() - e;
    }, e = (/* @__PURE__ */ new Date()).getTime());
  }).call(r8)), Ds.exports;
}
var cy;
function a8() {
  if (cy) return ol.exports;
  cy = 1;
  for (var r = n8(), t = typeof window > "u" ? Np : window, e = ["moz", "webkit"], A = "AnimationFrame", n = t["request" + A], a = t["cancel" + A] || t["cancelRequest" + A], s = 0; !n && s < e.length; s++)
    n = t[e[s] + "Request" + A], a = t[e[s] + "Cancel" + A] || t[e[s] + "CancelRequest" + A];
  if (!n || !a) {
    var i = 0, o = 0, l = [], u = 1e3 / 60;
    n = function(h) {
      if (l.length === 0) {
        var g = r(), c = Math.max(0, u - (g - i));
        i = c + g, setTimeout(function() {
          var p = l.slice(0);
          l.length = 0;
          for (var m = 0; m < p.length; m++)
            if (!p[m].cancelled)
              try {
                p[m].callback(i);
              } catch (y) {
                setTimeout(function() {
                  throw y;
                }, 0);
              }
        }, Math.round(c));
      }
      return l.push({
        handle: ++o,
        callback: h,
        cancelled: !1
      }), o;
    }, a = function(h) {
      for (var g = 0; g < l.length; g++)
        l[g].handle === h && (l[g].cancelled = !0);
    };
  }
  return ol.exports = function(h) {
    return n.call(t, h);
  }, ol.exports.cancel = function() {
    a.apply(t, arguments);
  }, ol.exports.polyfill = function(h) {
    h || (h = t), h.requestAnimationFrame = n, h.cancelAnimationFrame = a;
  }, ol.exports;
}
var i8 = a8();
const qg = /* @__PURE__ */ jb(i8);
var fy = {}, jg, hy;
function yC() {
  return hy || (hy = 1, jg = `	
\v\f\r                 \u2028\u2029\uFEFF`), jg;
}
var Wg, dy;
function s8() {
  if (dy) return Wg;
  dy = 1;
  var r = Pr(), t = Ai(), e = mi(), A = yC(), n = r("".replace), a = RegExp("^[" + A + "]+"), s = RegExp("(^|[^" + A + "])[" + A + "]+$"), i = function(o) {
    return function(l) {
      var u = e(t(l));
      return o & 1 && (u = n(u, a, "")), o & 2 && (u = n(u, s, "$1")), u;
    };
  };
  return Wg = {
    // `String.prototype.{ trimLeft, trimStart }` methods
    // https://tc39.es/ecma262/#sec-string.prototype.trimstart
    start: i(1),
    // `String.prototype.{ trimRight, trimEnd }` methods
    // https://tc39.es/ecma262/#sec-string.prototype.trimend
    end: i(2),
    // `String.prototype.trim` method
    // https://tc39.es/ecma262/#sec-string.prototype.trim
    trim: i(3)
  }, Wg;
}
var Gg, gy;
function o8() {
  if (gy) return Gg;
  gy = 1;
  var r = jc().PROPER, t = Hr(), e = yC(), A = "​…᠎";
  return Gg = function(n) {
    return t(function() {
      return !!e[n]() || A[n]() !== A || r && e[n].name !== n;
    });
  }, Gg;
}
var py;
function l8() {
  if (py) return fy;
  py = 1;
  var r = Zn(), t = s8().trim, e = o8();
  return r({ target: "String", proto: !0, forced: e("trim") }, {
    trim: function() {
      return t(this);
    }
  }), fy;
}
l8();
var Yg, vy;
function u8() {
  return vy || (vy = 1, Yg = function(r) {
    this.ok = !1, this.alpha = 1, r.charAt(0) == "#" && (r = r.substr(1, 6)), r = r.replace(/ /g, ""), r = r.toLowerCase();
    var t = {
      aliceblue: "f0f8ff",
      antiquewhite: "faebd7",
      aqua: "00ffff",
      aquamarine: "7fffd4",
      azure: "f0ffff",
      beige: "f5f5dc",
      bisque: "ffe4c4",
      black: "000000",
      blanchedalmond: "ffebcd",
      blue: "0000ff",
      blueviolet: "8a2be2",
      brown: "a52a2a",
      burlywood: "deb887",
      cadetblue: "5f9ea0",
      chartreuse: "7fff00",
      chocolate: "d2691e",
      coral: "ff7f50",
      cornflowerblue: "6495ed",
      cornsilk: "fff8dc",
      crimson: "dc143c",
      cyan: "00ffff",
      darkblue: "00008b",
      darkcyan: "008b8b",
      darkgoldenrod: "b8860b",
      darkgray: "a9a9a9",
      darkgreen: "006400",
      darkkhaki: "bdb76b",
      darkmagenta: "8b008b",
      darkolivegreen: "556b2f",
      darkorange: "ff8c00",
      darkorchid: "9932cc",
      darkred: "8b0000",
      darksalmon: "e9967a",
      darkseagreen: "8fbc8f",
      darkslateblue: "483d8b",
      darkslategray: "2f4f4f",
      darkturquoise: "00ced1",
      darkviolet: "9400d3",
      deeppink: "ff1493",
      deepskyblue: "00bfff",
      dimgray: "696969",
      dodgerblue: "1e90ff",
      feldspar: "d19275",
      firebrick: "b22222",
      floralwhite: "fffaf0",
      forestgreen: "228b22",
      fuchsia: "ff00ff",
      gainsboro: "dcdcdc",
      ghostwhite: "f8f8ff",
      gold: "ffd700",
      goldenrod: "daa520",
      gray: "808080",
      green: "008000",
      greenyellow: "adff2f",
      honeydew: "f0fff0",
      hotpink: "ff69b4",
      indianred: "cd5c5c",
      indigo: "4b0082",
      ivory: "fffff0",
      khaki: "f0e68c",
      lavender: "e6e6fa",
      lavenderblush: "fff0f5",
      lawngreen: "7cfc00",
      lemonchiffon: "fffacd",
      lightblue: "add8e6",
      lightcoral: "f08080",
      lightcyan: "e0ffff",
      lightgoldenrodyellow: "fafad2",
      lightgrey: "d3d3d3",
      lightgreen: "90ee90",
      lightpink: "ffb6c1",
      lightsalmon: "ffa07a",
      lightseagreen: "20b2aa",
      lightskyblue: "87cefa",
      lightslateblue: "8470ff",
      lightslategray: "778899",
      lightsteelblue: "b0c4de",
      lightyellow: "ffffe0",
      lime: "00ff00",
      limegreen: "32cd32",
      linen: "faf0e6",
      magenta: "ff00ff",
      maroon: "800000",
      mediumaquamarine: "66cdaa",
      mediumblue: "0000cd",
      mediumorchid: "ba55d3",
      mediumpurple: "9370d8",
      mediumseagreen: "3cb371",
      mediumslateblue: "7b68ee",
      mediumspringgreen: "00fa9a",
      mediumturquoise: "48d1cc",
      mediumvioletred: "c71585",
      midnightblue: "191970",
      mintcream: "f5fffa",
      mistyrose: "ffe4e1",
      moccasin: "ffe4b5",
      navajowhite: "ffdead",
      navy: "000080",
      oldlace: "fdf5e6",
      olive: "808000",
      olivedrab: "6b8e23",
      orange: "ffa500",
      orangered: "ff4500",
      orchid: "da70d6",
      palegoldenrod: "eee8aa",
      palegreen: "98fb98",
      paleturquoise: "afeeee",
      palevioletred: "d87093",
      papayawhip: "ffefd5",
      peachpuff: "ffdab9",
      peru: "cd853f",
      pink: "ffc0cb",
      plum: "dda0dd",
      powderblue: "b0e0e6",
      purple: "800080",
      rebeccapurple: "663399",
      red: "ff0000",
      rosybrown: "bc8f8f",
      royalblue: "4169e1",
      saddlebrown: "8b4513",
      salmon: "fa8072",
      sandybrown: "f4a460",
      seagreen: "2e8b57",
      seashell: "fff5ee",
      sienna: "a0522d",
      silver: "c0c0c0",
      skyblue: "87ceeb",
      slateblue: "6a5acd",
      slategray: "708090",
      snow: "fffafa",
      springgreen: "00ff7f",
      steelblue: "4682b4",
      tan: "d2b48c",
      teal: "008080",
      thistle: "d8bfd8",
      tomato: "ff6347",
      turquoise: "40e0d0",
      violet: "ee82ee",
      violetred: "d02090",
      wheat: "f5deb3",
      white: "ffffff",
      whitesmoke: "f5f5f5",
      yellow: "ffff00",
      yellowgreen: "9acd32"
    };
    r = t[r] || r;
    for (var e = [
      {
        re: /^rgba\((\d{1,3}),\s*(\d{1,3}),\s*(\d{1,3}),\s*((?:\d?\.)?\d)\)$/,
        example: ["rgba(123, 234, 45, 0.8)", "rgba(255,234,245,1.0)"],
        process: function(o) {
          return [
            parseInt(o[1]),
            parseInt(o[2]),
            parseInt(o[3]),
            parseFloat(o[4])
          ];
        }
      },
      {
        re: /^rgb\((\d{1,3}),\s*(\d{1,3}),\s*(\d{1,3})\)$/,
        example: ["rgb(123, 234, 45)", "rgb(255,234,245)"],
        process: function(o) {
          return [
            parseInt(o[1]),
            parseInt(o[2]),
            parseInt(o[3])
          ];
        }
      },
      {
        re: /^([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})$/,
        example: ["#00ff00", "336699"],
        process: function(o) {
          return [
            parseInt(o[1], 16),
            parseInt(o[2], 16),
            parseInt(o[3], 16)
          ];
        }
      },
      {
        re: /^([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})$/,
        example: ["#fb0", "f0f"],
        process: function(o) {
          return [
            parseInt(o[1] + o[1], 16),
            parseInt(o[2] + o[2], 16),
            parseInt(o[3] + o[3], 16)
          ];
        }
      }
    ], A = 0; A < e.length; A++) {
      var n = e[A].re, a = e[A].process, s = n.exec(r);
      if (s) {
        var i = a(s);
        this.r = i[0], this.g = i[1], this.b = i[2], i.length > 3 && (this.alpha = i[3]), this.ok = !0;
      }
    }
    this.r = this.r < 0 || isNaN(this.r) ? 0 : this.r > 255 ? 255 : this.r, this.g = this.g < 0 || isNaN(this.g) ? 0 : this.g > 255 ? 255 : this.g, this.b = this.b < 0 || isNaN(this.b) ? 0 : this.b > 255 ? 255 : this.b, this.alpha = this.alpha < 0 ? 0 : this.alpha > 1 || isNaN(this.alpha) ? 1 : this.alpha, this.toRGB = function() {
      return "rgb(" + this.r + ", " + this.g + ", " + this.b + ")";
    }, this.toRGBA = function() {
      return "rgba(" + this.r + ", " + this.g + ", " + this.b + ", " + this.alpha + ")";
    }, this.toHex = function() {
      var o = this.r.toString(16), l = this.g.toString(16), u = this.b.toString(16);
      return o.length == 1 && (o = "0" + o), l.length == 1 && (l = "0" + l), u.length == 1 && (u = "0" + u), "#" + o + l + u;
    }, this.getHelpXML = function() {
      for (var o = new Array(), l = 0; l < e.length; l++)
        for (var u = e[l].example, h = 0; h < u.length; h++)
          o[o.length] = u[h];
      for (var g in t)
        o[o.length] = g;
      var c = document.createElement("ul");
      c.setAttribute("id", "rgbcolor-examples");
      for (var l = 0; l < o.length; l++)
        try {
          var p = document.createElement("li"), m = new RGBColor(o[l]), y = document.createElement("div");
          y.style.cssText = "margin: 3px; border: 1px solid black; background:" + m.toHex() + "; color:" + m.toHex(), y.appendChild(document.createTextNode("test"));
          var w = document.createTextNode(
            " " + o[l] + " -> " + m.toRGB() + " -> " + m.toHex()
          );
          p.appendChild(y), p.appendChild(w), c.appendChild(p);
        } catch {
        }
      return c;
    };
  }), Yg;
}
var c8 = u8();
const Mp = /* @__PURE__ */ jb(c8);
var my = {}, wy;
function f8() {
  if (wy) return my;
  wy = 1;
  var r = Zn(), t = zc(), e = tC().indexOf, A = BC(), n = t([].indexOf), a = !!n && 1 / n([1], 1, -0) < 0, s = a || !A("indexOf");
  return r({ target: "Array", proto: !0, forced: s }, {
    indexOf: function(o) {
      var l = arguments.length > 1 ? arguments[1] : void 0;
      return a ? n(this, o, l) || 0 : e(this, o, l);
    }
  }), my;
}
f8();
var By = {}, yy;
function h8() {
  if (yy) return By;
  yy = 1;
  var r = Zn(), t = Pr(), e = xv(), A = Ai(), n = mi(), a = Sv(), s = t("".indexOf);
  return r({ target: "String", proto: !0, forced: !a("includes") }, {
    includes: function(o) {
      return !!~s(
        n(A(this)),
        n(e(o)),
        arguments.length > 1 ? arguments[1] : void 0
      );
    }
  }), By;
}
h8();
var by = {}, $g, Cy;
function d8() {
  if (Cy) return $g;
  Cy = 1;
  var r = Ws();
  return $g = Array.isArray || function(e) {
    return r(e) === "Array";
  }, $g;
}
var Ey;
function g8() {
  if (Ey) return by;
  Ey = 1;
  var r = Zn(), t = Pr(), e = d8(), A = t([].reverse), n = [1, 2];
  return r({ target: "Array", proto: !0, forced: String(n) === String(n.reverse()) }, {
    reverse: function() {
      return e(this) && (this.length = this.length), A(this);
    }
  }), by;
}
g8();
/*! *****************************************************************************
Copyright (c) Microsoft Corporation.

Permission to use, copy, modify, and/or distribute this software for any
purpose with or without fee is hereby granted.

THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH
REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,
INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
PERFORMANCE OF THIS SOFTWARE.
***************************************************************************** */
var bC = function(r, t) {
  return (bC = Object.setPrototypeOf || { __proto__: [] } instanceof Array && function(e, A) {
    e.__proto__ = A;
  } || function(e, A) {
    for (var n in A) Object.prototype.hasOwnProperty.call(A, n) && (e[n] = A[n]);
  })(r, t);
};
function CC(r, t) {
  if (typeof t != "function" && t !== null) throw new TypeError("Class extends value " + String(t) + " is not a constructor or null");
  function e() {
    this.constructor = r;
  }
  bC(r, t), r.prototype = t === null ? Object.create(t) : (e.prototype = t.prototype, new e());
}
function p8(r) {
  var t = "";
  Array.isArray(r) || (r = [r]);
  for (var e = 0; e < r.length; e++) {
    var A = r[e];
    if (A.type === gt.CLOSE_PATH) t += "z";
    else if (A.type === gt.HORIZ_LINE_TO) t += (A.relative ? "h" : "H") + A.x;
    else if (A.type === gt.VERT_LINE_TO) t += (A.relative ? "v" : "V") + A.y;
    else if (A.type === gt.MOVE_TO) t += (A.relative ? "m" : "M") + A.x + " " + A.y;
    else if (A.type === gt.LINE_TO) t += (A.relative ? "l" : "L") + A.x + " " + A.y;
    else if (A.type === gt.CURVE_TO) t += (A.relative ? "c" : "C") + A.x1 + " " + A.y1 + " " + A.x2 + " " + A.y2 + " " + A.x + " " + A.y;
    else if (A.type === gt.SMOOTH_CURVE_TO) t += (A.relative ? "s" : "S") + A.x2 + " " + A.y2 + " " + A.x + " " + A.y;
    else if (A.type === gt.QUAD_TO) t += (A.relative ? "q" : "Q") + A.x1 + " " + A.y1 + " " + A.x + " " + A.y;
    else if (A.type === gt.SMOOTH_QUAD_TO) t += (A.relative ? "t" : "T") + A.x + " " + A.y;
    else {
      if (A.type !== gt.ARC) throw new Error('Unexpected command type "' + A.type + '" at index ' + e + ".");
      t += (A.relative ? "a" : "A") + A.rX + " " + A.rY + " " + A.xRot + " " + +A.lArcFlag + " " + +A.sweepFlag + " " + A.x + " " + A.y;
    }
  }
  return t;
}
function Op(r, t) {
  var e = r[0], A = r[1];
  return [e * Math.cos(t) - A * Math.sin(t), e * Math.sin(t) + A * Math.cos(t)];
}
function $a() {
  for (var r = [], t = 0; t < arguments.length; t++) r[t] = arguments[t];
  for (var e = 0; e < r.length; e++) if (typeof r[e] != "number") throw new Error("assertNumbers arguments[" + e + "] is not a number. " + typeof r[e] + " == typeof " + r[e]);
  return !0;
}
var ss = Math.PI;
function zg(r, t, e) {
  r.lArcFlag = r.lArcFlag === 0 ? 0 : 1, r.sweepFlag = r.sweepFlag === 0 ? 0 : 1;
  var A = r.rX, n = r.rY, a = r.x, s = r.y;
  A = Math.abs(r.rX), n = Math.abs(r.rY);
  var i = Op([(t - a) / 2, (e - s) / 2], -r.xRot / 180 * ss), o = i[0], l = i[1], u = Math.pow(o, 2) / Math.pow(A, 2) + Math.pow(l, 2) / Math.pow(n, 2);
  1 < u && (A *= Math.sqrt(u), n *= Math.sqrt(u)), r.rX = A, r.rY = n;
  var h = Math.pow(A, 2) * Math.pow(l, 2) + Math.pow(n, 2) * Math.pow(o, 2), g = (r.lArcFlag !== r.sweepFlag ? 1 : -1) * Math.sqrt(Math.max(0, (Math.pow(A, 2) * Math.pow(n, 2) - h) / h)), c = A * l / n * g, p = -n * o / A * g, m = Op([c, p], r.xRot / 180 * ss);
  r.cX = m[0] + (t + a) / 2, r.cY = m[1] + (e + s) / 2, r.phi1 = Math.atan2((l - p) / n, (o - c) / A), r.phi2 = Math.atan2((-l - p) / n, (-o - c) / A), r.sweepFlag === 0 && r.phi2 > r.phi1 && (r.phi2 -= 2 * ss), r.sweepFlag === 1 && r.phi2 < r.phi1 && (r.phi2 += 2 * ss), r.phi1 *= 180 / ss, r.phi2 *= 180 / ss;
}
function Fy(r, t, e) {
  $a(r, t, e);
  var A = r * r + t * t - e * e;
  if (0 > A) return [];
  if (A === 0) return [[r * e / (r * r + t * t), t * e / (r * r + t * t)]];
  var n = Math.sqrt(A);
  return [[(r * e + t * n) / (r * r + t * t), (t * e - r * n) / (r * r + t * t)], [(r * e - t * n) / (r * r + t * t), (t * e + r * n) / (r * r + t * t)]];
}
var Zr, Ui = Math.PI / 180;
function xy(r, t, e) {
  return (1 - e) * r + e * t;
}
function Sy(r, t, e, A) {
  return r + Math.cos(A / 180 * ss) * t + Math.sin(A / 180 * ss) * e;
}
function Uy(r, t, e, A) {
  var n = 1e-6, a = t - r, s = e - t, i = 3 * a + 3 * (A - e) - 6 * s, o = 6 * (s - a), l = 3 * a;
  return Math.abs(i) < n ? [-l / o] : (function(u, h, g) {
    var c = u * u / 4 - h;
    if (c < -g) return [];
    if (c <= g) return [-u / 2];
    var p = Math.sqrt(c);
    return [-u / 2 - p, -u / 2 + p];
  })(o / i, l / i, n);
}
function Ty(r, t, e, A, n) {
  var a = 1 - n;
  return r * (a * a * a) + t * (3 * a * a * n) + e * (3 * a * n * n) + A * (n * n * n);
}
(function(r) {
  function t() {
    return n((function(i, o, l) {
      return i.relative && (i.x1 !== void 0 && (i.x1 += o), i.y1 !== void 0 && (i.y1 += l), i.x2 !== void 0 && (i.x2 += o), i.y2 !== void 0 && (i.y2 += l), i.x !== void 0 && (i.x += o), i.y !== void 0 && (i.y += l), i.relative = !1), i;
    }));
  }
  function e() {
    var i = NaN, o = NaN, l = NaN, u = NaN;
    return n((function(h, g, c) {
      return h.type & gt.SMOOTH_CURVE_TO && (h.type = gt.CURVE_TO, i = isNaN(i) ? g : i, o = isNaN(o) ? c : o, h.x1 = h.relative ? g - i : 2 * g - i, h.y1 = h.relative ? c - o : 2 * c - o), h.type & gt.CURVE_TO ? (i = h.relative ? g + h.x2 : h.x2, o = h.relative ? c + h.y2 : h.y2) : (i = NaN, o = NaN), h.type & gt.SMOOTH_QUAD_TO && (h.type = gt.QUAD_TO, l = isNaN(l) ? g : l, u = isNaN(u) ? c : u, h.x1 = h.relative ? g - l : 2 * g - l, h.y1 = h.relative ? c - u : 2 * c - u), h.type & gt.QUAD_TO ? (l = h.relative ? g + h.x1 : h.x1, u = h.relative ? c + h.y1 : h.y1) : (l = NaN, u = NaN), h;
    }));
  }
  function A() {
    var i = NaN, o = NaN;
    return n((function(l, u, h) {
      if (l.type & gt.SMOOTH_QUAD_TO && (l.type = gt.QUAD_TO, i = isNaN(i) ? u : i, o = isNaN(o) ? h : o, l.x1 = l.relative ? u - i : 2 * u - i, l.y1 = l.relative ? h - o : 2 * h - o), l.type & gt.QUAD_TO) {
        i = l.relative ? u + l.x1 : l.x1, o = l.relative ? h + l.y1 : l.y1;
        var g = l.x1, c = l.y1;
        l.type = gt.CURVE_TO, l.x1 = ((l.relative ? 0 : u) + 2 * g) / 3, l.y1 = ((l.relative ? 0 : h) + 2 * c) / 3, l.x2 = (l.x + 2 * g) / 3, l.y2 = (l.y + 2 * c) / 3;
      } else i = NaN, o = NaN;
      return l;
    }));
  }
  function n(i) {
    var o = 0, l = 0, u = NaN, h = NaN;
    return function(g) {
      if (isNaN(u) && !(g.type & gt.MOVE_TO)) throw new Error("path must start with moveto");
      var c = i(g, o, l, u, h);
      return g.type & gt.CLOSE_PATH && (o = u, l = h), g.x !== void 0 && (o = g.relative ? o + g.x : g.x), g.y !== void 0 && (l = g.relative ? l + g.y : g.y), g.type & gt.MOVE_TO && (u = o, h = l), c;
    };
  }
  function a(i, o, l, u, h, g) {
    return $a(i, o, l, u, h, g), n((function(c, p, m, y) {
      var w = c.x1, E = c.x2, C = c.relative && !isNaN(y), F = c.x !== void 0 ? c.x : C ? 0 : p, H = c.y !== void 0 ? c.y : C ? 0 : m;
      function q(x) {
        return x * x;
      }
      c.type & gt.HORIZ_LINE_TO && o !== 0 && (c.type = gt.LINE_TO, c.y = c.relative ? 0 : m), c.type & gt.VERT_LINE_TO && l !== 0 && (c.type = gt.LINE_TO, c.x = c.relative ? 0 : p), c.x !== void 0 && (c.x = c.x * i + H * l + (C ? 0 : h)), c.y !== void 0 && (c.y = F * o + c.y * u + (C ? 0 : g)), c.x1 !== void 0 && (c.x1 = c.x1 * i + c.y1 * l + (C ? 0 : h)), c.y1 !== void 0 && (c.y1 = w * o + c.y1 * u + (C ? 0 : g)), c.x2 !== void 0 && (c.x2 = c.x2 * i + c.y2 * l + (C ? 0 : h)), c.y2 !== void 0 && (c.y2 = E * o + c.y2 * u + (C ? 0 : g));
      var N = i * u - o * l;
      if (c.xRot !== void 0 && (i !== 1 || o !== 0 || l !== 0 || u !== 1)) if (N === 0) delete c.rX, delete c.rY, delete c.xRot, delete c.lArcFlag, delete c.sweepFlag, c.type = gt.LINE_TO;
      else {
        var M = c.xRot * Math.PI / 180, k = Math.sin(M), O = Math.cos(M), S = 1 / q(c.rX), U = 1 / q(c.rY), W = q(O) * S + q(k) * U, I = 2 * k * O * (S - U), le = q(k) * S + q(O) * U, ue = W * u * u - I * o * u + le * o * o, Z = I * (i * u + o * l) - 2 * (W * l * u + le * i * o), ee = W * l * l - I * i * l + le * i * i, X = (Math.atan2(Z, ue - ee) + Math.PI) % Math.PI / 2, Ae = Math.sin(X), oe = Math.cos(X);
        c.rX = Math.abs(N) / Math.sqrt(ue * q(oe) + Z * Ae * oe + ee * q(Ae)), c.rY = Math.abs(N) / Math.sqrt(ue * q(Ae) - Z * Ae * oe + ee * q(oe)), c.xRot = 180 * X / Math.PI;
      }
      return c.sweepFlag !== void 0 && 0 > N && (c.sweepFlag = +!c.sweepFlag), c;
    }));
  }
  function s() {
    return function(i) {
      var o = {};
      for (var l in i) o[l] = i[l];
      return o;
    };
  }
  r.ROUND = function(i) {
    function o(l) {
      return Math.round(l * i) / i;
    }
    return i === void 0 && (i = 1e13), $a(i), function(l) {
      return l.x1 !== void 0 && (l.x1 = o(l.x1)), l.y1 !== void 0 && (l.y1 = o(l.y1)), l.x2 !== void 0 && (l.x2 = o(l.x2)), l.y2 !== void 0 && (l.y2 = o(l.y2)), l.x !== void 0 && (l.x = o(l.x)), l.y !== void 0 && (l.y = o(l.y)), l.rX !== void 0 && (l.rX = o(l.rX)), l.rY !== void 0 && (l.rY = o(l.rY)), l;
    };
  }, r.TO_ABS = t, r.TO_REL = function() {
    return n((function(i, o, l) {
      return i.relative || (i.x1 !== void 0 && (i.x1 -= o), i.y1 !== void 0 && (i.y1 -= l), i.x2 !== void 0 && (i.x2 -= o), i.y2 !== void 0 && (i.y2 -= l), i.x !== void 0 && (i.x -= o), i.y !== void 0 && (i.y -= l), i.relative = !0), i;
    }));
  }, r.NORMALIZE_HVZ = function(i, o, l) {
    return i === void 0 && (i = !0), o === void 0 && (o = !0), l === void 0 && (l = !0), n((function(u, h, g, c, p) {
      if (isNaN(c) && !(u.type & gt.MOVE_TO)) throw new Error("path must start with moveto");
      return o && u.type & gt.HORIZ_LINE_TO && (u.type = gt.LINE_TO, u.y = u.relative ? 0 : g), l && u.type & gt.VERT_LINE_TO && (u.type = gt.LINE_TO, u.x = u.relative ? 0 : h), i && u.type & gt.CLOSE_PATH && (u.type = gt.LINE_TO, u.x = u.relative ? c - h : c, u.y = u.relative ? p - g : p), u.type & gt.ARC && (u.rX === 0 || u.rY === 0) && (u.type = gt.LINE_TO, delete u.rX, delete u.rY, delete u.xRot, delete u.lArcFlag, delete u.sweepFlag), u;
    }));
  }, r.NORMALIZE_ST = e, r.QT_TO_C = A, r.INFO = n, r.SANITIZE = function(i) {
    i === void 0 && (i = 0), $a(i);
    var o = NaN, l = NaN, u = NaN, h = NaN;
    return n((function(g, c, p, m, y) {
      var w = Math.abs, E = !1, C = 0, F = 0;
      if (g.type & gt.SMOOTH_CURVE_TO && (C = isNaN(o) ? 0 : c - o, F = isNaN(l) ? 0 : p - l), g.type & (gt.CURVE_TO | gt.SMOOTH_CURVE_TO) ? (o = g.relative ? c + g.x2 : g.x2, l = g.relative ? p + g.y2 : g.y2) : (o = NaN, l = NaN), g.type & gt.SMOOTH_QUAD_TO ? (u = isNaN(u) ? c : 2 * c - u, h = isNaN(h) ? p : 2 * p - h) : g.type & gt.QUAD_TO ? (u = g.relative ? c + g.x1 : g.x1, h = g.relative ? p + g.y1 : g.y2) : (u = NaN, h = NaN), g.type & gt.LINE_COMMANDS || g.type & gt.ARC && (g.rX === 0 || g.rY === 0 || !g.lArcFlag) || g.type & gt.CURVE_TO || g.type & gt.SMOOTH_CURVE_TO || g.type & gt.QUAD_TO || g.type & gt.SMOOTH_QUAD_TO) {
        var H = g.x === void 0 ? 0 : g.relative ? g.x : g.x - c, q = g.y === void 0 ? 0 : g.relative ? g.y : g.y - p;
        C = isNaN(u) ? g.x1 === void 0 ? C : g.relative ? g.x : g.x1 - c : u - c, F = isNaN(h) ? g.y1 === void 0 ? F : g.relative ? g.y : g.y1 - p : h - p;
        var N = g.x2 === void 0 ? 0 : g.relative ? g.x : g.x2 - c, M = g.y2 === void 0 ? 0 : g.relative ? g.y : g.y2 - p;
        w(H) <= i && w(q) <= i && w(C) <= i && w(F) <= i && w(N) <= i && w(M) <= i && (E = !0);
      }
      return g.type & gt.CLOSE_PATH && w(c - m) <= i && w(p - y) <= i && (E = !0), E ? [] : g;
    }));
  }, r.MATRIX = a, r.ROTATE = function(i, o, l) {
    o === void 0 && (o = 0), l === void 0 && (l = 0), $a(i, o, l);
    var u = Math.sin(i), h = Math.cos(i);
    return a(h, u, -u, h, o - o * h + l * u, l - o * u - l * h);
  }, r.TRANSLATE = function(i, o) {
    return o === void 0 && (o = 0), $a(i, o), a(1, 0, 0, 1, i, o);
  }, r.SCALE = function(i, o) {
    return o === void 0 && (o = i), $a(i, o), a(i, 0, 0, o, 0, 0);
  }, r.SKEW_X = function(i) {
    return $a(i), a(1, 0, Math.atan(i), 1, 0, 0);
  }, r.SKEW_Y = function(i) {
    return $a(i), a(1, Math.atan(i), 0, 1, 0, 0);
  }, r.X_AXIS_SYMMETRY = function(i) {
    return i === void 0 && (i = 0), $a(i), a(-1, 0, 0, 1, i, 0);
  }, r.Y_AXIS_SYMMETRY = function(i) {
    return i === void 0 && (i = 0), $a(i), a(1, 0, 0, -1, 0, i);
  }, r.A_TO_C = function() {
    return n((function(i, o, l) {
      return gt.ARC === i.type ? (function(u, h, g) {
        var c, p, m, y;
        u.cX || zg(u, h, g);
        for (var w = Math.min(u.phi1, u.phi2), E = Math.max(u.phi1, u.phi2) - w, C = Math.ceil(E / 90), F = new Array(C), H = h, q = g, N = 0; N < C; N++) {
          var M = xy(u.phi1, u.phi2, N / C), k = xy(u.phi1, u.phi2, (N + 1) / C), O = k - M, S = 4 / 3 * Math.tan(O * Ui / 4), U = [Math.cos(M * Ui) - S * Math.sin(M * Ui), Math.sin(M * Ui) + S * Math.cos(M * Ui)], W = U[0], I = U[1], le = [Math.cos(k * Ui), Math.sin(k * Ui)], ue = le[0], Z = le[1], ee = [ue + S * Math.sin(k * Ui), Z - S * Math.cos(k * Ui)], X = ee[0], Ae = ee[1];
          F[N] = { relative: u.relative, type: gt.CURVE_TO };
          var oe = function(x, L) {
            var j = Op([x * u.rX, L * u.rY], u.xRot), $ = j[0], re = j[1];
            return [u.cX + $, u.cY + re];
          };
          c = oe(W, I), F[N].x1 = c[0], F[N].y1 = c[1], p = oe(X, Ae), F[N].x2 = p[0], F[N].y2 = p[1], m = oe(ue, Z), F[N].x = m[0], F[N].y = m[1], u.relative && (F[N].x1 -= H, F[N].y1 -= q, F[N].x2 -= H, F[N].y2 -= q, F[N].x -= H, F[N].y -= q), H = (y = [F[N].x, F[N].y])[0], q = y[1];
        }
        return F;
      })(i, i.relative ? 0 : o, i.relative ? 0 : l) : i;
    }));
  }, r.ANNOTATE_ARCS = function() {
    return n((function(i, o, l) {
      return i.relative && (o = 0, l = 0), gt.ARC === i.type && zg(i, o, l), i;
    }));
  }, r.CLONE = s, r.CALCULATE_BOUNDS = function() {
    var i = function(g) {
      var c = {};
      for (var p in g) c[p] = g[p];
      return c;
    }, o = t(), l = A(), u = e(), h = n((function(g, c, p) {
      var m = u(l(o(i(g))));
      function y(Ae) {
        Ae > h.maxX && (h.maxX = Ae), Ae < h.minX && (h.minX = Ae);
      }
      function w(Ae) {
        Ae > h.maxY && (h.maxY = Ae), Ae < h.minY && (h.minY = Ae);
      }
      if (m.type & gt.DRAWING_COMMANDS && (y(c), w(p)), m.type & gt.HORIZ_LINE_TO && y(m.x), m.type & gt.VERT_LINE_TO && w(m.y), m.type & gt.LINE_TO && (y(m.x), w(m.y)), m.type & gt.CURVE_TO) {
        y(m.x), w(m.y);
        for (var E = 0, C = Uy(c, m.x1, m.x2, m.x); E < C.length; E++)
          0 < (X = C[E]) && 1 > X && y(Ty(c, m.x1, m.x2, m.x, X));
        for (var F = 0, H = Uy(p, m.y1, m.y2, m.y); F < H.length; F++)
          0 < (X = H[F]) && 1 > X && w(Ty(p, m.y1, m.y2, m.y, X));
      }
      if (m.type & gt.ARC) {
        y(m.x), w(m.y), zg(m, c, p);
        for (var q = m.xRot / 180 * Math.PI, N = Math.cos(q) * m.rX, M = Math.sin(q) * m.rX, k = -Math.sin(q) * m.rY, O = Math.cos(q) * m.rY, S = m.phi1 < m.phi2 ? [m.phi1, m.phi2] : -180 > m.phi2 ? [m.phi2 + 360, m.phi1 + 360] : [m.phi2, m.phi1], U = S[0], W = S[1], I = function(Ae) {
          var oe = Ae[0], x = Ae[1], L = 180 * Math.atan2(x, oe) / Math.PI;
          return L < U ? L + 360 : L;
        }, le = 0, ue = Fy(k, -N, 0).map(I); le < ue.length; le++)
          (X = ue[le]) > U && X < W && y(Sy(m.cX, N, k, X));
        for (var Z = 0, ee = Fy(O, -M, 0).map(I); Z < ee.length; Z++) {
          var X;
          (X = ee[Z]) > U && X < W && w(Sy(m.cY, M, O, X));
        }
      }
      return g;
    }));
    return h.minX = 1 / 0, h.maxX = -1 / 0, h.minY = 1 / 0, h.maxY = -1 / 0, h;
  };
})(Zr || (Zr = {}));
var Ga, EC = (function() {
  function r() {
  }
  return r.prototype.round = function(t) {
    return this.transform(Zr.ROUND(t));
  }, r.prototype.toAbs = function() {
    return this.transform(Zr.TO_ABS());
  }, r.prototype.toRel = function() {
    return this.transform(Zr.TO_REL());
  }, r.prototype.normalizeHVZ = function(t, e, A) {
    return this.transform(Zr.NORMALIZE_HVZ(t, e, A));
  }, r.prototype.normalizeST = function() {
    return this.transform(Zr.NORMALIZE_ST());
  }, r.prototype.qtToC = function() {
    return this.transform(Zr.QT_TO_C());
  }, r.prototype.aToC = function() {
    return this.transform(Zr.A_TO_C());
  }, r.prototype.sanitize = function(t) {
    return this.transform(Zr.SANITIZE(t));
  }, r.prototype.translate = function(t, e) {
    return this.transform(Zr.TRANSLATE(t, e));
  }, r.prototype.scale = function(t, e) {
    return this.transform(Zr.SCALE(t, e));
  }, r.prototype.rotate = function(t, e, A) {
    return this.transform(Zr.ROTATE(t, e, A));
  }, r.prototype.matrix = function(t, e, A, n, a, s) {
    return this.transform(Zr.MATRIX(t, e, A, n, a, s));
  }, r.prototype.skewX = function(t) {
    return this.transform(Zr.SKEW_X(t));
  }, r.prototype.skewY = function(t) {
    return this.transform(Zr.SKEW_Y(t));
  }, r.prototype.xSymmetry = function(t) {
    return this.transform(Zr.X_AXIS_SYMMETRY(t));
  }, r.prototype.ySymmetry = function(t) {
    return this.transform(Zr.Y_AXIS_SYMMETRY(t));
  }, r.prototype.annotateArcs = function() {
    return this.transform(Zr.ANNOTATE_ARCS());
  }, r;
})(), v8 = function(r) {
  return r === " " || r === "	" || r === "\r" || r === `
`;
}, Qy = function(r) {
  return 48 <= r.charCodeAt(0) && r.charCodeAt(0) <= 57;
}, m8 = (function(r) {
  function t() {
    var e = r.call(this) || this;
    return e.curNumber = "", e.curCommandType = -1, e.curCommandRelative = !1, e.canParseCommandOrComma = !0, e.curNumberHasExp = !1, e.curNumberHasExpDigits = !1, e.curNumberHasDecimal = !1, e.curArgs = [], e;
  }
  return CC(t, r), t.prototype.finish = function(e) {
    if (e === void 0 && (e = []), this.parse(" ", e), this.curArgs.length !== 0 || !this.canParseCommandOrComma) throw new SyntaxError("Unterminated command at the path end.");
    return e;
  }, t.prototype.parse = function(e, A) {
    var n = this;
    A === void 0 && (A = []);
    for (var a = function(h) {
      A.push(h), n.curArgs.length = 0, n.canParseCommandOrComma = !0;
    }, s = 0; s < e.length; s++) {
      var i = e[s], o = !(this.curCommandType !== gt.ARC || this.curArgs.length !== 3 && this.curArgs.length !== 4 || this.curNumber.length !== 1 || this.curNumber !== "0" && this.curNumber !== "1"), l = Qy(i) && (this.curNumber === "0" && i === "0" || o);
      if (!Qy(i) || l) if (i !== "e" && i !== "E") if (i !== "-" && i !== "+" || !this.curNumberHasExp || this.curNumberHasExpDigits) if (i !== "." || this.curNumberHasExp || this.curNumberHasDecimal || o) {
        if (this.curNumber && this.curCommandType !== -1) {
          var u = Number(this.curNumber);
          if (isNaN(u)) throw new SyntaxError("Invalid number ending at " + s);
          if (this.curCommandType === gt.ARC) {
            if (this.curArgs.length === 0 || this.curArgs.length === 1) {
              if (0 > u) throw new SyntaxError('Expected positive number, got "' + u + '" at index "' + s + '"');
            } else if ((this.curArgs.length === 3 || this.curArgs.length === 4) && this.curNumber !== "0" && this.curNumber !== "1") throw new SyntaxError('Expected a flag, got "' + this.curNumber + '" at index "' + s + '"');
          }
          this.curArgs.push(u), this.curArgs.length === w8[this.curCommandType] && (gt.HORIZ_LINE_TO === this.curCommandType ? a({ type: gt.HORIZ_LINE_TO, relative: this.curCommandRelative, x: u }) : gt.VERT_LINE_TO === this.curCommandType ? a({ type: gt.VERT_LINE_TO, relative: this.curCommandRelative, y: u }) : this.curCommandType === gt.MOVE_TO || this.curCommandType === gt.LINE_TO || this.curCommandType === gt.SMOOTH_QUAD_TO ? (a({ type: this.curCommandType, relative: this.curCommandRelative, x: this.curArgs[0], y: this.curArgs[1] }), gt.MOVE_TO === this.curCommandType && (this.curCommandType = gt.LINE_TO)) : this.curCommandType === gt.CURVE_TO ? a({ type: gt.CURVE_TO, relative: this.curCommandRelative, x1: this.curArgs[0], y1: this.curArgs[1], x2: this.curArgs[2], y2: this.curArgs[3], x: this.curArgs[4], y: this.curArgs[5] }) : this.curCommandType === gt.SMOOTH_CURVE_TO ? a({ type: gt.SMOOTH_CURVE_TO, relative: this.curCommandRelative, x2: this.curArgs[0], y2: this.curArgs[1], x: this.curArgs[2], y: this.curArgs[3] }) : this.curCommandType === gt.QUAD_TO ? a({ type: gt.QUAD_TO, relative: this.curCommandRelative, x1: this.curArgs[0], y1: this.curArgs[1], x: this.curArgs[2], y: this.curArgs[3] }) : this.curCommandType === gt.ARC && a({ type: gt.ARC, relative: this.curCommandRelative, rX: this.curArgs[0], rY: this.curArgs[1], xRot: this.curArgs[2], lArcFlag: this.curArgs[3], sweepFlag: this.curArgs[4], x: this.curArgs[5], y: this.curArgs[6] })), this.curNumber = "", this.curNumberHasExpDigits = !1, this.curNumberHasExp = !1, this.curNumberHasDecimal = !1, this.canParseCommandOrComma = !0;
        }
        if (!v8(i)) if (i === "," && this.canParseCommandOrComma) this.canParseCommandOrComma = !1;
        else if (i !== "+" && i !== "-" && i !== ".") if (l) this.curNumber = i, this.curNumberHasDecimal = !1;
        else {
          if (this.curArgs.length !== 0) throw new SyntaxError("Unterminated command at index " + s + ".");
          if (!this.canParseCommandOrComma) throw new SyntaxError('Unexpected character "' + i + '" at index ' + s + ". Command cannot follow comma");
          if (this.canParseCommandOrComma = !1, i !== "z" && i !== "Z") if (i === "h" || i === "H") this.curCommandType = gt.HORIZ_LINE_TO, this.curCommandRelative = i === "h";
          else if (i === "v" || i === "V") this.curCommandType = gt.VERT_LINE_TO, this.curCommandRelative = i === "v";
          else if (i === "m" || i === "M") this.curCommandType = gt.MOVE_TO, this.curCommandRelative = i === "m";
          else if (i === "l" || i === "L") this.curCommandType = gt.LINE_TO, this.curCommandRelative = i === "l";
          else if (i === "c" || i === "C") this.curCommandType = gt.CURVE_TO, this.curCommandRelative = i === "c";
          else if (i === "s" || i === "S") this.curCommandType = gt.SMOOTH_CURVE_TO, this.curCommandRelative = i === "s";
          else if (i === "q" || i === "Q") this.curCommandType = gt.QUAD_TO, this.curCommandRelative = i === "q";
          else if (i === "t" || i === "T") this.curCommandType = gt.SMOOTH_QUAD_TO, this.curCommandRelative = i === "t";
          else {
            if (i !== "a" && i !== "A") throw new SyntaxError('Unexpected character "' + i + '" at index ' + s + ".");
            this.curCommandType = gt.ARC, this.curCommandRelative = i === "a";
          }
          else A.push({ type: gt.CLOSE_PATH }), this.canParseCommandOrComma = !0, this.curCommandType = -1;
        }
        else this.curNumber = i, this.curNumberHasDecimal = i === ".";
      } else this.curNumber += i, this.curNumberHasDecimal = !0;
      else this.curNumber += i;
      else this.curNumber += i, this.curNumberHasExp = !0;
      else this.curNumber += i, this.curNumberHasExpDigits = this.curNumberHasExp;
    }
    return A;
  }, t.prototype.transform = function(e) {
    return Object.create(this, { parse: { value: function(A, n) {
      n === void 0 && (n = []);
      for (var a = 0, s = Object.getPrototypeOf(this).parse.call(this, A); a < s.length; a++) {
        var i = s[a], o = e(i);
        Array.isArray(o) ? n.push.apply(n, o) : n.push(o);
      }
      return n;
    } } });
  }, t;
})(EC), gt = (function(r) {
  function t(e) {
    var A = r.call(this) || this;
    return A.commands = typeof e == "string" ? t.parse(e) : e, A;
  }
  return CC(t, r), t.prototype.encode = function() {
    return t.encode(this.commands);
  }, t.prototype.getBounds = function() {
    var e = Zr.CALCULATE_BOUNDS();
    return this.transform(e), e;
  }, t.prototype.transform = function(e) {
    for (var A = [], n = 0, a = this.commands; n < a.length; n++) {
      var s = e(a[n]);
      Array.isArray(s) ? A.push.apply(A, s) : A.push(s);
    }
    return this.commands = A, this;
  }, t.encode = function(e) {
    return p8(e);
  }, t.parse = function(e) {
    var A = new m8(), n = [];
    return A.parse(e, n), A.finish(n), n;
  }, t.CLOSE_PATH = 1, t.MOVE_TO = 2, t.HORIZ_LINE_TO = 4, t.VERT_LINE_TO = 8, t.LINE_TO = 16, t.CURVE_TO = 32, t.SMOOTH_CURVE_TO = 64, t.QUAD_TO = 128, t.SMOOTH_QUAD_TO = 256, t.ARC = 512, t.LINE_COMMANDS = t.LINE_TO | t.HORIZ_LINE_TO | t.VERT_LINE_TO, t.DRAWING_COMMANDS = t.HORIZ_LINE_TO | t.VERT_LINE_TO | t.LINE_TO | t.CURVE_TO | t.SMOOTH_CURVE_TO | t.QUAD_TO | t.SMOOTH_QUAD_TO | t.ARC, t;
})(EC), w8 = ((Ga = {})[gt.MOVE_TO] = 2, Ga[gt.LINE_TO] = 2, Ga[gt.HORIZ_LINE_TO] = 1, Ga[gt.VERT_LINE_TO] = 1, Ga[gt.CLOSE_PATH] = 0, Ga[gt.QUAD_TO] = 4, Ga[gt.SMOOTH_QUAD_TO] = 2, Ga[gt.CURVE_TO] = 6, Ga[gt.SMOOTH_CURVE_TO] = 4, Ga[gt.ARC] = 7, Ga), Dy = {}, ky;
function B8() {
  if (ky) return Dy;
  ky = 1;
  var r = jc().PROPER, t = Ys(), e = Jn(), A = mi(), n = Hr(), a = Ev(), s = "toString", i = RegExp.prototype, o = i[s], l = n(function() {
    return o.call({ source: "a", flags: "b" }) !== "/a/b";
  }), u = r && o.name !== s;
  return (l || u) && t(i, s, function() {
    var g = e(this), c = A(g.source), p = A(a(g));
    return "/" + c + "/" + p;
  }, { unsafe: !0 }), Dy;
}
B8();
function ic(r) {
  "@babel/helpers - typeof";
  return typeof Symbol == "function" && typeof Symbol.iterator == "symbol" ? ic = function(t) {
    return typeof t;
  } : ic = function(t) {
    return t && typeof Symbol == "function" && t.constructor === Symbol && t !== Symbol.prototype ? "symbol" : typeof t;
  }, ic(r);
}
function y8(r, t) {
  if (!(r instanceof t))
    throw new TypeError("Cannot call a class as a function");
}
var b8 = [512, 512, 456, 512, 328, 456, 335, 512, 405, 328, 271, 456, 388, 335, 292, 512, 454, 405, 364, 328, 298, 271, 496, 456, 420, 388, 360, 335, 312, 292, 273, 512, 482, 454, 428, 405, 383, 364, 345, 328, 312, 298, 284, 271, 259, 496, 475, 456, 437, 420, 404, 388, 374, 360, 347, 335, 323, 312, 302, 292, 282, 273, 265, 512, 497, 482, 468, 454, 441, 428, 417, 405, 394, 383, 373, 364, 354, 345, 337, 328, 320, 312, 305, 298, 291, 284, 278, 271, 265, 259, 507, 496, 485, 475, 465, 456, 446, 437, 428, 420, 412, 404, 396, 388, 381, 374, 367, 360, 354, 347, 341, 335, 329, 323, 318, 312, 307, 302, 297, 292, 287, 282, 278, 273, 269, 265, 261, 512, 505, 497, 489, 482, 475, 468, 461, 454, 447, 441, 435, 428, 422, 417, 411, 405, 399, 394, 389, 383, 378, 373, 368, 364, 359, 354, 350, 345, 341, 337, 332, 328, 324, 320, 316, 312, 309, 305, 301, 298, 294, 291, 287, 284, 281, 278, 274, 271, 268, 265, 262, 259, 257, 507, 501, 496, 491, 485, 480, 475, 470, 465, 460, 456, 451, 446, 442, 437, 433, 428, 424, 420, 416, 412, 408, 404, 400, 396, 392, 388, 385, 381, 377, 374, 370, 367, 363, 360, 357, 354, 350, 347, 344, 341, 338, 335, 332, 329, 326, 323, 320, 318, 315, 312, 310, 307, 304, 302, 299, 297, 294, 292, 289, 287, 285, 282, 280, 278, 275, 273, 271, 269, 267, 265, 263, 261, 259], C8 = [9, 11, 12, 13, 13, 14, 14, 15, 15, 15, 15, 16, 16, 16, 16, 17, 17, 17, 17, 17, 17, 17, 18, 18, 18, 18, 18, 18, 18, 18, 18, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24];
function E8(r, t, e, A, n) {
  if (typeof r == "string" && (r = document.getElementById(r)), !r || ic(r) !== "object" || !("getContext" in r))
    throw new TypeError("Expecting canvas with `getContext` method in processCanvasRGB(A) calls!");
  var a = r.getContext("2d");
  try {
    return a.getImageData(t, e, A, n);
  } catch (s) {
    throw new Error("unable to access image data: " + s);
  }
}
function F8(r, t, e, A, n, a) {
  if (!(isNaN(a) || a < 1)) {
    a |= 0;
    var s = E8(r, t, e, A, n);
    s = x8(s, t, e, A, n, a), r.getContext("2d").putImageData(s, t, e);
  }
}
function x8(r, t, e, A, n, a) {
  for (var s = r.data, i = 2 * a + 1, o = A - 1, l = n - 1, u = a + 1, h = u * (u + 1) / 2, g = new Ly(), c = g, p, m = 1; m < i; m++)
    c = c.next = new Ly(), m === u && (p = c);
  c.next = g;
  for (var y = null, w = null, E = 0, C = 0, F = b8[a], H = C8[a], q = 0; q < n; q++) {
    c = g;
    for (var N = s[C], M = s[C + 1], k = s[C + 2], O = s[C + 3], S = 0; S < u; S++)
      c.r = N, c.g = M, c.b = k, c.a = O, c = c.next;
    for (var U = 0, W = 0, I = 0, le = 0, ue = u * N, Z = u * M, ee = u * k, X = u * O, Ae = h * N, oe = h * M, x = h * k, L = h * O, j = 1; j < u; j++) {
      var $ = C + ((o < j ? o : j) << 2), re = s[$], pe = s[$ + 1], de = s[$ + 2], ce = s[$ + 3], Se = u - j;
      Ae += (c.r = re) * Se, oe += (c.g = pe) * Se, x += (c.b = de) * Se, L += (c.a = ce) * Se, U += re, W += pe, I += de, le += ce, c = c.next;
    }
    y = g, w = p;
    for (var qe = 0; qe < A; qe++) {
      var rt = L * F >>> H;
      if (s[C + 3] = rt, rt !== 0) {
        var at = 255 / rt;
        s[C] = (Ae * F >>> H) * at, s[C + 1] = (oe * F >>> H) * at, s[C + 2] = (x * F >>> H) * at;
      } else
        s[C] = s[C + 1] = s[C + 2] = 0;
      Ae -= ue, oe -= Z, x -= ee, L -= X, ue -= y.r, Z -= y.g, ee -= y.b, X -= y.a;
      var dt = qe + a + 1;
      dt = E + (dt < o ? dt : o) << 2, U += y.r = s[dt], W += y.g = s[dt + 1], I += y.b = s[dt + 2], le += y.a = s[dt + 3], Ae += U, oe += W, x += I, L += le, y = y.next;
      var D = w, Ie = D.r, me = D.g, ve = D.b, xe = D.a;
      ue += Ie, Z += me, ee += ve, X += xe, U -= Ie, W -= me, I -= ve, le -= xe, w = w.next, C += 4;
    }
    E += A;
  }
  for (var Qe = 0; Qe < A; Qe++) {
    C = Qe << 2;
    var _e = s[C], Pe = s[C + 1], je = s[C + 2], Ke = s[C + 3], et = u * _e, ut = u * Pe, yt = u * je, Ft = u * Ke, Bt = h * _e, St = h * Pe, bt = h * je, nA = h * Ke;
    c = g;
    for (var qt = 0; qt < u; qt++)
      c.r = _e, c.g = Pe, c.b = je, c.a = Ke, c = c.next;
    for (var Ot = A, Pt = 0, sA = 0, kt = 0, hA = 0, Nt = 1; Nt <= a; Nt++) {
      C = Ot + Qe << 2;
      var Ce = u - Nt;
      Bt += (c.r = _e = s[C]) * Ce, St += (c.g = Pe = s[C + 1]) * Ce, bt += (c.b = je = s[C + 2]) * Ce, nA += (c.a = Ke = s[C + 3]) * Ce, hA += _e, Pt += Pe, sA += je, kt += Ke, c = c.next, Nt < l && (Ot += A);
    }
    C = Qe, y = g, w = p;
    for (var Ve = 0; Ve < n; Ve++) {
      var Re = C << 2;
      s[Re + 3] = Ke = nA * F >>> H, Ke > 0 ? (Ke = 255 / Ke, s[Re] = (Bt * F >>> H) * Ke, s[Re + 1] = (St * F >>> H) * Ke, s[Re + 2] = (bt * F >>> H) * Ke) : s[Re] = s[Re + 1] = s[Re + 2] = 0, Bt -= et, St -= ut, bt -= yt, nA -= Ft, et -= y.r, ut -= y.g, yt -= y.b, Ft -= y.a, Re = Qe + ((Re = Ve + u) < l ? Re : l) * A << 2, Bt += hA += y.r = s[Re], St += Pt += y.g = s[Re + 1], bt += sA += y.b = s[Re + 2], nA += kt += y.a = s[Re + 3], y = y.next, et += _e = w.r, ut += Pe = w.g, yt += je = w.b, Ft += Ke = w.a, hA -= _e, Pt -= Pe, sA -= je, kt -= Ke, w = w.next, C += A;
    }
  }
  return r;
}
var Ly = (
  /**
   * Set properties.
   */
  function r() {
    y8(this, r), this.r = 0, this.g = 0, this.b = 0, this.a = 0, this.next = null;
  }
);
function S8() {
  var {
    DOMParser: r
  } = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : {}, t = {
    window: null,
    ignoreAnimation: !0,
    ignoreMouse: !0,
    DOMParser: r,
    createCanvas(e, A) {
      return new OffscreenCanvas(e, A);
    },
    createImage(e) {
      return Mi(function* () {
        var A = yield fetch(e), n = yield A.blob(), a = yield createImageBitmap(n);
        return a;
      })();
    }
  };
  return (typeof DOMParser < "u" || typeof r > "u") && Reflect.deleteProperty(t, "DOMParser"), t;
}
function U8(r) {
  var {
    DOMParser: t,
    canvas: e,
    fetch: A
  } = r;
  return {
    window: null,
    ignoreAnimation: !0,
    ignoreMouse: !0,
    DOMParser: t,
    fetch: A,
    createCanvas: e.createCanvas,
    createImage: e.loadImage
  };
}
var T8 = /* @__PURE__ */ Object.freeze({
  __proto__: null,
  offscreen: S8,
  node: U8
});
function $s(r) {
  return r.replace(/(?!\u3000)\s+/gm, " ");
}
function FC(r) {
  return r.replace(/^[\n \t]+/, "");
}
function xC(r) {
  return r.replace(/[\n \t]+$/, "");
}
function ia(r) {
  var t = (r || "").match(/-?(\d+(?:\.\d*(?:[eE][+-]?\d+)?)?|\.\d+)(?=\D|$)/gm) || [];
  return t.map(parseFloat);
}
var Q8 = /^[A-Z-]+$/;
function SC(r) {
  return Q8.test(r) ? r.toLowerCase() : r;
}
function Tv(r) {
  var t = /url\(('([^']+)'|"([^"]+)"|([^'")]+))\)/.exec(r) || [];
  return t[2] || t[3] || t[4];
}
function UC(r) {
  if (!r.startsWith("rgb"))
    return r;
  var t = 3, e = r.replace(/\d+(\.\d+)?/g, (A, n) => t-- && n ? String(Math.round(parseFloat(A))) : A);
  return e;
}
var D8 = /(\[[^\]]+\])/g, k8 = /(#[^\s+>~.[:]+)/g, L8 = /(\.[^\s+>~.[:]+)/g, I8 = /(::[^\s+>~.[:]+|:first-line|:first-letter|:before|:after)/gi, _8 = /(:[\w-]+\([^)]*\))/gi, N8 = /(:[^\s+>~.[:]+)/g, M8 = /([^\s+>~.[:]+)/g;
function Ss(r, t) {
  var e = t.exec(r);
  return e ? [r.replace(t, " "), e.length] : [r, 0];
}
function TC(r) {
  var t = [0, 0, 0], e = r.replace(/:not\(([^)]*)\)/g, "     $1 ").replace(/{[\s\S]*/gm, " "), A = 0;
  return [e, A] = Ss(e, D8), t[1] += A, [e, A] = Ss(e, k8), t[0] += A, [e, A] = Ss(e, L8), t[1] += A, [e, A] = Ss(e, I8), t[2] += A, [e, A] = Ss(e, _8), t[1] += A, [e, A] = Ss(e, N8), t[1] += A, e = e.replace(/[*\s+>~]/g, " ").replace(/[#.]/g, " "), [e, A] = Ss(e, M8), t[2] += A, t.join("");
}
var Ps = 1e-8;
function Rp(r) {
  return Math.sqrt(Math.pow(r[0], 2) + Math.pow(r[1], 2));
}
function Ec(r, t) {
  return (r[0] * t[0] + r[1] * t[1]) / (Rp(r) * Rp(t));
}
function Hp(r, t) {
  return (r[0] * t[1] < r[1] * t[0] ? -1 : 1) * Math.acos(Ec(r, t));
}
function Pp(r) {
  return r * r * r;
}
function Kp(r) {
  return 3 * r * r * (1 - r);
}
function Vp(r) {
  return 3 * r * (1 - r) * (1 - r);
}
function qp(r) {
  return (1 - r) * (1 - r) * (1 - r);
}
function jp(r) {
  return r * r;
}
function Wp(r) {
  return 2 * r * (1 - r);
}
function Gp(r) {
  return (1 - r) * (1 - r);
}
class AA {
  constructor(t, e, A) {
    this.document = t, this.name = e, this.value = A, this.isNormalizedColor = !1;
  }
  static empty(t) {
    return new AA(t, "EMPTY", "");
  }
  split() {
    var t = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : " ", {
      document: e,
      name: A
    } = this;
    return $s(this.getString()).trim().split(t).map((n) => new AA(e, A, n));
  }
  hasValue(t) {
    var {
      value: e
    } = this;
    return e !== null && e !== "" && (t || e !== 0) && typeof e < "u";
  }
  isString(t) {
    var {
      value: e
    } = this, A = typeof e == "string";
    return !A || !t ? A : t.test(e);
  }
  isUrlDefinition() {
    return this.isString(/^url\(/);
  }
  isPixels() {
    if (!this.hasValue())
      return !1;
    var t = this.getString();
    switch (!0) {
      case t.endsWith("px"):
      case /^[0-9]+$/.test(t):
        return !0;
      default:
        return !1;
    }
  }
  setValue(t) {
    return this.value = t, this;
  }
  getValue(t) {
    return typeof t > "u" || this.hasValue() ? this.value : t;
  }
  getNumber(t) {
    if (!this.hasValue())
      return typeof t > "u" ? 0 : parseFloat(t);
    var {
      value: e
    } = this, A = parseFloat(e);
    return this.isString(/%$/) && (A /= 100), A;
  }
  getString(t) {
    return typeof t > "u" || this.hasValue() ? typeof this.value > "u" ? "" : String(this.value) : String(t);
  }
  getColor(t) {
    var e = this.getString(t);
    return this.isNormalizedColor || (this.isNormalizedColor = !0, e = UC(e), this.value = e), e;
  }
  getDpi() {
    return 96;
  }
  getRem() {
    return this.document.rootEmSize;
  }
  getEm() {
    return this.document.emSize;
  }
  getUnits() {
    return this.getString().replace(/[0-9.-]/g, "");
  }
  getPixels(t) {
    var e = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : !1;
    if (!this.hasValue())
      return 0;
    var [A, n] = typeof t == "boolean" ? [void 0, t] : [t], {
      viewPort: a
    } = this.document.screen;
    switch (!0) {
      case this.isString(/vmin$/):
        return this.getNumber() / 100 * Math.min(a.computeSize("x"), a.computeSize("y"));
      case this.isString(/vmax$/):
        return this.getNumber() / 100 * Math.max(a.computeSize("x"), a.computeSize("y"));
      case this.isString(/vw$/):
        return this.getNumber() / 100 * a.computeSize("x");
      case this.isString(/vh$/):
        return this.getNumber() / 100 * a.computeSize("y");
      case this.isString(/rem$/):
        return this.getNumber() * this.getRem();
      case this.isString(/em$/):
        return this.getNumber() * this.getEm();
      case this.isString(/ex$/):
        return this.getNumber() * this.getEm() / 2;
      case this.isString(/px$/):
        return this.getNumber();
      case this.isString(/pt$/):
        return this.getNumber() * this.getDpi() * (1 / 72);
      case this.isString(/pc$/):
        return this.getNumber() * 15;
      case this.isString(/cm$/):
        return this.getNumber() * this.getDpi() / 2.54;
      case this.isString(/mm$/):
        return this.getNumber() * this.getDpi() / 25.4;
      case this.isString(/in$/):
        return this.getNumber() * this.getDpi();
      case (this.isString(/%$/) && n):
        return this.getNumber() * this.getEm();
      case this.isString(/%$/):
        return this.getNumber() * a.computeSize(A);
      default: {
        var s = this.getNumber();
        return e && s < 1 ? s * a.computeSize(A) : s;
      }
    }
  }
  getMilliseconds() {
    return this.hasValue() ? this.isString(/ms$/) ? this.getNumber() : this.getNumber() * 1e3 : 0;
  }
  getRadians() {
    if (!this.hasValue())
      return 0;
    switch (!0) {
      case this.isString(/deg$/):
        return this.getNumber() * (Math.PI / 180);
      case this.isString(/grad$/):
        return this.getNumber() * (Math.PI / 200);
      case this.isString(/rad$/):
        return this.getNumber();
      default:
        return this.getNumber() * (Math.PI / 180);
    }
  }
  getDefinition() {
    var t = this.getString(), e = /#([^)'"]+)/.exec(t);
    return e && (e = e[1]), e || (e = t), this.document.definitions[e];
  }
  getFillStyleDefinition(t, e) {
    var A = this.getDefinition();
    if (!A)
      return null;
    if (typeof A.createGradient == "function")
      return A.createGradient(this.document.ctx, t, e);
    if (typeof A.createPattern == "function") {
      if (A.getHrefAttribute().hasValue()) {
        var n = A.getAttribute("patternTransform");
        A = A.getHrefAttribute().getDefinition(), n.hasValue() && A.getAttribute("patternTransform", !0).setValue(n.value);
      }
      return A.createPattern(this.document.ctx, t, e);
    }
    return null;
  }
  getTextBaseline() {
    return this.hasValue() ? AA.textBaselineMapping[this.getString()] : null;
  }
  addOpacity(t) {
    for (var e = this.getColor(), A = e.length, n = 0, a = 0; a < A && (e[a] === "," && n++, n !== 3); a++)
      ;
    if (t.hasValue() && this.isString() && n !== 3) {
      var s = new Mp(e);
      s.ok && (s.alpha = t.getNumber(), e = s.toRGBA());
    }
    return new AA(this.document, this.name, e);
  }
}
AA.textBaselineMapping = {
  baseline: "alphabetic",
  "before-edge": "top",
  "text-before-edge": "top",
  middle: "middle",
  central: "middle",
  "after-edge": "bottom",
  "text-after-edge": "bottom",
  ideographic: "ideographic",
  alphabetic: "alphabetic",
  hanging: "hanging",
  mathematical: "alphabetic"
};
class QC {
  constructor() {
    this.viewPorts = [];
  }
  clear() {
    this.viewPorts = [];
  }
  setCurrent(t, e) {
    this.viewPorts.push({
      width: t,
      height: e
    });
  }
  removeCurrent() {
    this.viewPorts.pop();
  }
  getCurrent() {
    var {
      viewPorts: t
    } = this;
    return t[t.length - 1];
  }
  get width() {
    return this.getCurrent().width;
  }
  get height() {
    return this.getCurrent().height;
  }
  computeSize(t) {
    return typeof t == "number" ? t : t === "x" ? this.width : t === "y" ? this.height : Math.sqrt(Math.pow(this.width, 2) + Math.pow(this.height, 2)) / Math.sqrt(2);
  }
}
class Rr {
  constructor(t, e) {
    this.x = t, this.y = e;
  }
  static parse(t) {
    var e = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : 0, [A = e, n = e] = ia(t);
    return new Rr(A, n);
  }
  static parseScale(t) {
    var e = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : 1, [A = e, n = A] = ia(t);
    return new Rr(A, n);
  }
  static parsePath(t) {
    for (var e = ia(t), A = e.length, n = [], a = 0; a < A; a += 2)
      n.push(new Rr(e[a], e[a + 1]));
    return n;
  }
  angleTo(t) {
    return Math.atan2(t.y - this.y, t.x - this.x);
  }
  applyTransform(t) {
    var {
      x: e,
      y: A
    } = this, n = e * t[0] + A * t[2] + t[4], a = e * t[1] + A * t[3] + t[5];
    this.x = n, this.y = a;
  }
}
class DC {
  constructor(t) {
    this.screen = t, this.working = !1, this.events = [], this.eventElements = [], this.onClick = this.onClick.bind(this), this.onMouseMove = this.onMouseMove.bind(this);
  }
  isWorking() {
    return this.working;
  }
  start() {
    if (!this.working) {
      var {
        screen: t,
        onClick: e,
        onMouseMove: A
      } = this, n = t.ctx.canvas;
      n.onclick = e, n.onmousemove = A, this.working = !0;
    }
  }
  stop() {
    if (this.working) {
      var t = this.screen.ctx.canvas;
      this.working = !1, t.onclick = null, t.onmousemove = null;
    }
  }
  hasEvents() {
    return this.working && this.events.length > 0;
  }
  runEvents() {
    if (this.working) {
      var {
        screen: t,
        events: e,
        eventElements: A
      } = this, {
        style: n
      } = t.ctx.canvas;
      n && (n.cursor = ""), e.forEach((a, s) => {
        for (var {
          run: i
        } = a, o = A[s]; o; )
          i(o), o = o.parent;
      }), this.events = [], this.eventElements = [];
    }
  }
  checkPath(t, e) {
    if (!(!this.working || !e)) {
      var {
        events: A,
        eventElements: n
      } = this;
      A.forEach((a, s) => {
        var {
          x: i,
          y: o
        } = a;
        !n[s] && e.isPointInPath && e.isPointInPath(i, o) && (n[s] = t);
      });
    }
  }
  checkBoundingBox(t, e) {
    if (!(!this.working || !e)) {
      var {
        events: A,
        eventElements: n
      } = this;
      A.forEach((a, s) => {
        var {
          x: i,
          y: o
        } = a;
        !n[s] && e.isPointInBox(i, o) && (n[s] = t);
      });
    }
  }
  mapXY(t, e) {
    for (var {
      window: A,
      ctx: n
    } = this.screen, a = new Rr(t, e), s = n.canvas; s; )
      a.x -= s.offsetLeft, a.y -= s.offsetTop, s = s.offsetParent;
    return A.scrollX && (a.x += A.scrollX), A.scrollY && (a.y += A.scrollY), a;
  }
  onClick(t) {
    var {
      x: e,
      y: A
    } = this.mapXY(t.clientX, t.clientY);
    this.events.push({
      type: "onclick",
      x: e,
      y: A,
      run(n) {
        n.onClick && n.onClick();
      }
    });
  }
  onMouseMove(t) {
    var {
      x: e,
      y: A
    } = this.mapXY(t.clientX, t.clientY);
    this.events.push({
      type: "onmousemove",
      x: e,
      y: A,
      run(n) {
        n.onMouseMove && n.onMouseMove();
      }
    });
  }
}
var kC = typeof window < "u" ? window : null, LC = typeof fetch < "u" ? fetch.bind(void 0) : null;
class Rl {
  constructor(t) {
    var {
      fetch: e = LC,
      window: A = kC
    } = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : {};
    this.ctx = t, this.FRAMERATE = 30, this.MAX_VIRTUAL_PIXELS = 3e4, this.CLIENT_WIDTH = 800, this.CLIENT_HEIGHT = 600, this.viewPort = new QC(), this.mouse = new DC(this), this.animations = [], this.waits = [], this.frameDuration = 0, this.isReadyLock = !1, this.isFirstRender = !0, this.intervalId = null, this.window = A, this.fetch = e;
  }
  wait(t) {
    this.waits.push(t);
  }
  ready() {
    return this.readyPromise ? this.readyPromise : Promise.resolve();
  }
  isReady() {
    if (this.isReadyLock)
      return !0;
    var t = this.waits.every((e) => e());
    return t && (this.waits = [], this.resolveReady && this.resolveReady()), this.isReadyLock = t, t;
  }
  setDefaults(t) {
    t.strokeStyle = "rgba(0,0,0,0)", t.lineCap = "butt", t.lineJoin = "miter", t.miterLimit = 4;
  }
  setViewBox(t) {
    var {
      document: e,
      ctx: A,
      aspectRatio: n,
      width: a,
      desiredWidth: s,
      height: i,
      desiredHeight: o,
      minX: l = 0,
      minY: u = 0,
      refX: h,
      refY: g,
      clip: c = !1,
      clipX: p = 0,
      clipY: m = 0
    } = t, y = $s(n).replace(/^defer\s/, ""), [w, E] = y.split(" "), C = w || "xMidYMid", F = E || "meet", H = a / s, q = i / o, N = Math.min(H, q), M = Math.max(H, q), k = s, O = o;
    F === "meet" && (k *= N, O *= N), F === "slice" && (k *= M, O *= M);
    var S = new AA(e, "refX", h), U = new AA(e, "refY", g), W = S.hasValue() && U.hasValue();
    if (W && A.translate(-N * S.getPixels("x"), -N * U.getPixels("y")), c) {
      var I = N * p, le = N * m;
      A.beginPath(), A.moveTo(I, le), A.lineTo(a, le), A.lineTo(a, i), A.lineTo(I, i), A.closePath(), A.clip();
    }
    if (!W) {
      var ue = F === "meet" && N === q, Z = F === "slice" && M === q, ee = F === "meet" && N === H, X = F === "slice" && M === H;
      C.startsWith("xMid") && (ue || Z) && A.translate(a / 2 - k / 2, 0), C.endsWith("YMid") && (ee || X) && A.translate(0, i / 2 - O / 2), C.startsWith("xMax") && (ue || Z) && A.translate(a - k, 0), C.endsWith("YMax") && (ee || X) && A.translate(0, i - O);
    }
    switch (!0) {
      case C === "none":
        A.scale(H, q);
        break;
      case F === "meet":
        A.scale(N, N);
        break;
      case F === "slice":
        A.scale(M, M);
        break;
    }
    A.translate(-l, -u);
  }
  start(t) {
    var {
      enableRedraw: e = !1,
      ignoreMouse: A = !1,
      ignoreAnimation: n = !1,
      ignoreDimensions: a = !1,
      ignoreClear: s = !1,
      forceRedraw: i,
      scaleWidth: o,
      scaleHeight: l,
      offsetX: u,
      offsetY: h
    } = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : {}, {
      FRAMERATE: g,
      mouse: c
    } = this, p = 1e3 / g;
    if (this.frameDuration = p, this.readyPromise = new Promise((C) => {
      this.resolveReady = C;
    }), this.isReady() && this.render(t, a, s, o, l, u, h), !!e) {
      var m = Date.now(), y = m, w = 0, E = () => {
        m = Date.now(), w = m - y, w >= p && (y = m - w % p, this.shouldUpdate(n, i) && (this.render(t, a, s, o, l, u, h), c.runEvents())), this.intervalId = qg(E);
      };
      A || c.start(), this.intervalId = qg(E);
    }
  }
  stop() {
    this.intervalId && (qg.cancel(this.intervalId), this.intervalId = null), this.mouse.stop();
  }
  shouldUpdate(t, e) {
    if (!t) {
      var {
        frameDuration: A
      } = this, n = this.animations.reduce((a, s) => s.update(A) || a, !1);
      if (n)
        return !0;
    }
    return !!(typeof e == "function" && e() || !this.isReadyLock && this.isReady() || this.mouse.hasEvents());
  }
  render(t, e, A, n, a, s, i) {
    var {
      CLIENT_WIDTH: o,
      CLIENT_HEIGHT: l,
      viewPort: u,
      ctx: h,
      isFirstRender: g
    } = this, c = h.canvas;
    u.clear(), c.width && c.height ? u.setCurrent(c.width, c.height) : u.setCurrent(o, l);
    var p = t.getStyle("width"), m = t.getStyle("height");
    !e && (g || typeof n != "number" && typeof a != "number") && (p.hasValue() && (c.width = p.getPixels("x"), c.style && (c.style.width = "".concat(c.width, "px"))), m.hasValue() && (c.height = m.getPixels("y"), c.style && (c.style.height = "".concat(c.height, "px"))));
    var y = c.clientWidth || c.width, w = c.clientHeight || c.height;
    if (e && p.hasValue() && m.hasValue() && (y = p.getPixels("x"), w = m.getPixels("y")), u.setCurrent(y, w), typeof s == "number" && t.getAttribute("x", !0).setValue(s), typeof i == "number" && t.getAttribute("y", !0).setValue(i), typeof n == "number" || typeof a == "number") {
      var E = ia(t.getAttribute("viewBox").getString()), C = 0, F = 0;
      if (typeof n == "number") {
        var H = t.getStyle("width");
        H.hasValue() ? C = H.getPixels("x") / n : isNaN(E[2]) || (C = E[2] / n);
      }
      if (typeof a == "number") {
        var q = t.getStyle("height");
        q.hasValue() ? F = q.getPixels("y") / a : isNaN(E[3]) || (F = E[3] / a);
      }
      C || (C = F), F || (F = C), t.getAttribute("width", !0).setValue(n), t.getAttribute("height", !0).setValue(a);
      var N = t.getStyle("transform", !0, !0);
      N.setValue("".concat(N.getString(), " scale(").concat(1 / C, ", ").concat(1 / F, ")"));
    }
    A || h.clearRect(0, 0, y, w), t.render(h), g && (this.isFirstRender = !1);
  }
}
Rl.defaultWindow = kC;
Rl.defaultFetch = LC;
var {
  defaultFetch: O8
} = Rl, R8 = typeof DOMParser < "u" ? DOMParser : null;
class sc {
  constructor() {
    var {
      fetch: t = O8,
      DOMParser: e = R8
    } = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : {};
    this.fetch = t, this.DOMParser = e;
  }
  parse(t) {
    var e = this;
    return Mi(function* () {
      return t.startsWith("<") ? e.parseFromString(t) : e.load(t);
    })();
  }
  parseFromString(t) {
    var e = new this.DOMParser();
    try {
      return this.checkDocument(e.parseFromString(t, "image/svg+xml"));
    } catch {
      return this.checkDocument(e.parseFromString(t, "text/xml"));
    }
  }
  checkDocument(t) {
    var e = t.getElementsByTagName("parsererror")[0];
    if (e)
      throw new Error(e.textContent);
    return t;
  }
  load(t) {
    var e = this;
    return Mi(function* () {
      var A = yield e.fetch(t), n = yield A.text();
      return e.parseFromString(n);
    })();
  }
}
class IC {
  constructor(t, e) {
    this.type = "translate", this.point = null, this.point = Rr.parse(e);
  }
  apply(t) {
    var {
      x: e,
      y: A
    } = this.point;
    t.translate(e || 0, A || 0);
  }
  unapply(t) {
    var {
      x: e,
      y: A
    } = this.point;
    t.translate(-1 * e || 0, -1 * A || 0);
  }
  applyToPoint(t) {
    var {
      x: e,
      y: A
    } = this.point;
    t.applyTransform([1, 0, 0, 1, e || 0, A || 0]);
  }
}
class _C {
  constructor(t, e, A) {
    this.type = "rotate", this.angle = null, this.originX = null, this.originY = null, this.cx = 0, this.cy = 0;
    var n = ia(e);
    this.angle = new AA(t, "angle", n[0]), this.originX = A[0], this.originY = A[1], this.cx = n[1] || 0, this.cy = n[2] || 0;
  }
  apply(t) {
    var {
      cx: e,
      cy: A,
      originX: n,
      originY: a,
      angle: s
    } = this, i = e + n.getPixels("x"), o = A + a.getPixels("y");
    t.translate(i, o), t.rotate(s.getRadians()), t.translate(-i, -o);
  }
  unapply(t) {
    var {
      cx: e,
      cy: A,
      originX: n,
      originY: a,
      angle: s
    } = this, i = e + n.getPixels("x"), o = A + a.getPixels("y");
    t.translate(i, o), t.rotate(-1 * s.getRadians()), t.translate(-i, -o);
  }
  applyToPoint(t) {
    var {
      cx: e,
      cy: A,
      angle: n
    } = this, a = n.getRadians();
    t.applyTransform([
      1,
      0,
      0,
      1,
      e || 0,
      A || 0
      // this.p.y
    ]), t.applyTransform([Math.cos(a), Math.sin(a), -Math.sin(a), Math.cos(a), 0, 0]), t.applyTransform([
      1,
      0,
      0,
      1,
      -e || 0,
      -A || 0
      // -this.p.y
    ]);
  }
}
class NC {
  constructor(t, e, A) {
    this.type = "scale", this.scale = null, this.originX = null, this.originY = null;
    var n = Rr.parseScale(e);
    (n.x === 0 || n.y === 0) && (n.x = Ps, n.y = Ps), this.scale = n, this.originX = A[0], this.originY = A[1];
  }
  apply(t) {
    var {
      scale: {
        x: e,
        y: A
      },
      originX: n,
      originY: a
    } = this, s = n.getPixels("x"), i = a.getPixels("y");
    t.translate(s, i), t.scale(e, A || e), t.translate(-s, -i);
  }
  unapply(t) {
    var {
      scale: {
        x: e,
        y: A
      },
      originX: n,
      originY: a
    } = this, s = n.getPixels("x"), i = a.getPixels("y");
    t.translate(s, i), t.scale(1 / e, 1 / A || e), t.translate(-s, -i);
  }
  applyToPoint(t) {
    var {
      x: e,
      y: A
    } = this.scale;
    t.applyTransform([e || 0, 0, 0, A || 0, 0, 0]);
  }
}
class Qv {
  constructor(t, e, A) {
    this.type = "matrix", this.matrix = [], this.originX = null, this.originY = null, this.matrix = ia(e), this.originX = A[0], this.originY = A[1];
  }
  apply(t) {
    var {
      originX: e,
      originY: A,
      matrix: n
    } = this, a = e.getPixels("x"), s = A.getPixels("y");
    t.translate(a, s), t.transform(n[0], n[1], n[2], n[3], n[4], n[5]), t.translate(-a, -s);
  }
  unapply(t) {
    var {
      originX: e,
      originY: A,
      matrix: n
    } = this, a = n[0], s = n[2], i = n[4], o = n[1], l = n[3], u = n[5], h = 0, g = 0, c = 1, p = 1 / (a * (l * c - u * g) - s * (o * c - u * h) + i * (o * g - l * h)), m = e.getPixels("x"), y = A.getPixels("y");
    t.translate(m, y), t.transform(p * (l * c - u * g), p * (u * h - o * c), p * (i * g - s * c), p * (a * c - i * h), p * (s * u - i * l), p * (i * o - a * u)), t.translate(-m, -y);
  }
  applyToPoint(t) {
    t.applyTransform(this.matrix);
  }
}
class Dv extends Qv {
  constructor(t, e, A) {
    super(t, e, A), this.type = "skew", this.angle = null, this.angle = new AA(t, "angle", e);
  }
}
class MC extends Dv {
  constructor(t, e, A) {
    super(t, e, A), this.type = "skewX", this.matrix = [1, 0, Math.tan(this.angle.getRadians()), 1, 0, 0];
  }
}
class OC extends Dv {
  constructor(t, e, A) {
    super(t, e, A), this.type = "skewY", this.matrix = [1, Math.tan(this.angle.getRadians()), 0, 1, 0, 0];
  }
}
function H8(r) {
  return $s(r).trim().replace(/\)([a-zA-Z])/g, ") $1").replace(/\)(\s?,\s?)/g, ") ").split(/\s(?=[a-z])/);
}
function P8(r) {
  var [t, e] = r.split("(");
  return [t.trim(), e.trim().replace(")", "")];
}
class vs {
  constructor(t, e, A) {
    this.document = t, this.transforms = [];
    var n = H8(e);
    n.forEach((a) => {
      if (a !== "none") {
        var [s, i] = P8(a), o = vs.transformTypes[s];
        typeof o < "u" && this.transforms.push(new o(this.document, i, A));
      }
    });
  }
  static fromElement(t, e) {
    var A = e.getStyle("transform", !1, !0), [n, a = n] = e.getStyle("transform-origin", !1, !0).split(), s = [n, a];
    return A.hasValue() ? new vs(t, A.getString(), s) : null;
  }
  apply(t) {
    for (var {
      transforms: e
    } = this, A = e.length, n = 0; n < A; n++)
      e[n].apply(t);
  }
  unapply(t) {
    for (var {
      transforms: e
    } = this, A = e.length, n = A - 1; n >= 0; n--)
      e[n].unapply(t);
  }
  // TODO: applyToPoint unused ... remove?
  applyToPoint(t) {
    for (var {
      transforms: e
    } = this, A = e.length, n = 0; n < A; n++)
      e[n].applyToPoint(t);
  }
}
vs.transformTypes = {
  translate: IC,
  rotate: _C,
  scale: NC,
  matrix: Qv,
  skewX: MC,
  skewY: OC
};
class gr {
  constructor(t, e) {
    var A = arguments.length > 2 && arguments[2] !== void 0 ? arguments[2] : !1;
    if (this.document = t, this.node = e, this.captureTextNodes = A, this.attributes = /* @__PURE__ */ Object.create(null), this.styles = /* @__PURE__ */ Object.create(null), this.stylesSpecificity = /* @__PURE__ */ Object.create(null), this.animationFrozen = !1, this.animationFrozenValue = "", this.parent = null, this.children = [], !(!e || e.nodeType !== 1)) {
      if (Array.from(e.attributes).forEach((i) => {
        var o = SC(i.nodeName);
        this.attributes[o] = new AA(t, o, i.value);
      }), this.addStylesFromStyleDefinition(), this.getAttribute("style").hasValue()) {
        var n = this.getAttribute("style").getString().split(";").map((i) => i.trim());
        n.forEach((i) => {
          if (i) {
            var [o, l] = i.split(":").map((u) => u.trim());
            this.styles[o] = new AA(t, o, l);
          }
        });
      }
      var {
        definitions: a
      } = t, s = this.getAttribute("id");
      s.hasValue() && (a[s.getString()] || (a[s.getString()] = this)), Array.from(e.childNodes).forEach((i) => {
        if (i.nodeType === 1)
          this.addChild(i);
        else if (A && (i.nodeType === 3 || i.nodeType === 4)) {
          var o = t.createTextNode(i);
          o.getText().length > 0 && this.addChild(o);
        }
      });
    }
  }
  getAttribute(t) {
    var e = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : !1, A = this.attributes[t];
    if (!A && e) {
      var n = new AA(this.document, t, "");
      return this.attributes[t] = n, n;
    }
    return A || AA.empty(this.document);
  }
  getHrefAttribute() {
    for (var t in this.attributes)
      if (t === "href" || t.endsWith(":href"))
        return this.attributes[t];
    return AA.empty(this.document);
  }
  getStyle(t) {
    var e = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : !1, A = arguments.length > 2 && arguments[2] !== void 0 ? arguments[2] : !1, n = this.styles[t];
    if (n)
      return n;
    var a = this.getAttribute(t);
    if (a != null && a.hasValue())
      return this.styles[t] = a, a;
    if (!A) {
      var {
        parent: s
      } = this;
      if (s) {
        var i = s.getStyle(t);
        if (i != null && i.hasValue())
          return i;
      }
    }
    if (e) {
      var o = new AA(this.document, t, "");
      return this.styles[t] = o, o;
    }
    return n || AA.empty(this.document);
  }
  render(t) {
    if (!(this.getStyle("display").getString() === "none" || this.getStyle("visibility").getString() === "hidden")) {
      if (t.save(), this.getStyle("mask").hasValue()) {
        var e = this.getStyle("mask").getDefinition();
        e && (this.applyEffects(t), e.apply(t, this));
      } else if (this.getStyle("filter").getValue("none") !== "none") {
        var A = this.getStyle("filter").getDefinition();
        A && (this.applyEffects(t), A.apply(t, this));
      } else
        this.setContext(t), this.renderChildren(t), this.clearContext(t);
      t.restore();
    }
  }
  setContext(t) {
  }
  applyEffects(t) {
    var e = vs.fromElement(this.document, this);
    e && e.apply(t);
    var A = this.getStyle("clip-path", !1, !0);
    if (A.hasValue()) {
      var n = A.getDefinition();
      n && n.apply(t);
    }
  }
  clearContext(t) {
  }
  renderChildren(t) {
    this.children.forEach((e) => {
      e.render(t);
    });
  }
  addChild(t) {
    var e = t instanceof gr ? t : this.document.createElement(t);
    e.parent = this, gr.ignoreChildTypes.includes(e.type) || this.children.push(e);
  }
  matchesSelector(t) {
    var e, {
      node: A
    } = this;
    if (typeof A.matches == "function")
      return A.matches(t);
    var n = (e = A.getAttribute) === null || e === void 0 ? void 0 : e.call(A, "class");
    return !n || n === "" ? !1 : n.split(" ").some((a) => ".".concat(a) === t);
  }
  addStylesFromStyleDefinition() {
    var {
      styles: t,
      stylesSpecificity: e
    } = this.document;
    for (var A in t)
      if (!A.startsWith("@") && this.matchesSelector(A)) {
        var n = t[A], a = e[A];
        if (n)
          for (var s in n) {
            var i = this.stylesSpecificity[s];
            typeof i > "u" && (i = "000"), a >= i && (this.styles[s] = n[s], this.stylesSpecificity[s] = a);
          }
      }
  }
  removeStyles(t, e) {
    var A = e.reduce((n, a) => {
      var s = t.getStyle(a);
      if (!s.hasValue())
        return n;
      var i = s.getString();
      return s.setValue(""), [...n, [a, i]];
    }, []);
    return A;
  }
  restoreStyles(t, e) {
    e.forEach((A) => {
      var [n, a] = A;
      t.getStyle(n, !0).setValue(a);
    });
  }
  isFirstChild() {
    var t;
    return ((t = this.parent) === null || t === void 0 ? void 0 : t.children.indexOf(this)) === 0;
  }
}
gr.ignoreChildTypes = ["title"];
class RC extends gr {
  constructor(t, e, A) {
    super(t, e, A);
  }
}
function K8(r) {
  var t = r.trim();
  return /^('|")/.test(t) ? t : '"'.concat(t, '"');
}
function V8(r) {
  return typeof process > "u" ? r : r.trim().split(",").map(K8).join(",");
}
function q8(r) {
  if (!r)
    return "";
  var t = r.trim().toLowerCase();
  switch (t) {
    case "normal":
    case "italic":
    case "oblique":
    case "inherit":
    case "initial":
    case "unset":
      return t;
    default:
      return /^oblique\s+(-|)\d+deg$/.test(t) ? t : "";
  }
}
function j8(r) {
  if (!r)
    return "";
  var t = r.trim().toLowerCase();
  switch (t) {
    case "normal":
    case "bold":
    case "lighter":
    case "bolder":
    case "inherit":
    case "initial":
    case "unset":
      return t;
    default:
      return /^[\d.]+$/.test(t) ? t : "";
  }
}
class Hn {
  constructor(t, e, A, n, a, s) {
    var i = s ? typeof s == "string" ? Hn.parse(s) : s : {};
    this.fontFamily = a || i.fontFamily, this.fontSize = n || i.fontSize, this.fontStyle = t || i.fontStyle, this.fontWeight = A || i.fontWeight, this.fontVariant = e || i.fontVariant;
  }
  static parse() {
    var t = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : "", e = arguments.length > 1 ? arguments[1] : void 0, A = "", n = "", a = "", s = "", i = "", o = $s(t).trim().split(" "), l = {
      fontSize: !1,
      fontStyle: !1,
      fontWeight: !1,
      fontVariant: !1
    };
    return o.forEach((u) => {
      switch (!0) {
        case (!l.fontStyle && Hn.styles.includes(u)):
          u !== "inherit" && (A = u), l.fontStyle = !0;
          break;
        case (!l.fontVariant && Hn.variants.includes(u)):
          u !== "inherit" && (n = u), l.fontStyle = !0, l.fontVariant = !0;
          break;
        case (!l.fontWeight && Hn.weights.includes(u)):
          u !== "inherit" && (a = u), l.fontStyle = !0, l.fontVariant = !0, l.fontWeight = !0;
          break;
        case !l.fontSize:
          u !== "inherit" && ([s] = u.split("/")), l.fontStyle = !0, l.fontVariant = !0, l.fontWeight = !0, l.fontSize = !0;
          break;
        default:
          u !== "inherit" && (i += u);
      }
    }), new Hn(A, n, a, s, i, e);
  }
  toString() {
    return [
      q8(this.fontStyle),
      this.fontVariant,
      j8(this.fontWeight),
      this.fontSize,
      // Wrap fontFamily only on nodejs and only for canvas.ctx
      V8(this.fontFamily)
    ].join(" ").trim();
  }
}
Hn.styles = "normal|italic|oblique|inherit";
Hn.variants = "normal|small-caps|inherit";
Hn.weights = "normal|bold|bolder|lighter|100|200|300|400|500|600|700|800|900|inherit";
class Oa {
  constructor() {
    var t = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : Number.NaN, e = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : Number.NaN, A = arguments.length > 2 && arguments[2] !== void 0 ? arguments[2] : Number.NaN, n = arguments.length > 3 && arguments[3] !== void 0 ? arguments[3] : Number.NaN;
    this.x1 = t, this.y1 = e, this.x2 = A, this.y2 = n, this.addPoint(t, e), this.addPoint(A, n);
  }
  get x() {
    return this.x1;
  }
  get y() {
    return this.y1;
  }
  get width() {
    return this.x2 - this.x1;
  }
  get height() {
    return this.y2 - this.y1;
  }
  addPoint(t, e) {
    typeof t < "u" && ((isNaN(this.x1) || isNaN(this.x2)) && (this.x1 = t, this.x2 = t), t < this.x1 && (this.x1 = t), t > this.x2 && (this.x2 = t)), typeof e < "u" && ((isNaN(this.y1) || isNaN(this.y2)) && (this.y1 = e, this.y2 = e), e < this.y1 && (this.y1 = e), e > this.y2 && (this.y2 = e));
  }
  addX(t) {
    this.addPoint(t, null);
  }
  addY(t) {
    this.addPoint(null, t);
  }
  addBoundingBox(t) {
    if (t) {
      var {
        x1: e,
        y1: A,
        x2: n,
        y2: a
      } = t;
      this.addPoint(e, A), this.addPoint(n, a);
    }
  }
  sumCubic(t, e, A, n, a) {
    return Math.pow(1 - t, 3) * e + 3 * Math.pow(1 - t, 2) * t * A + 3 * (1 - t) * Math.pow(t, 2) * n + Math.pow(t, 3) * a;
  }
  bezierCurveAdd(t, e, A, n, a) {
    var s = 6 * e - 12 * A + 6 * n, i = -3 * e + 9 * A - 9 * n + 3 * a, o = 3 * A - 3 * e;
    if (i === 0) {
      if (s === 0)
        return;
      var l = -o / s;
      0 < l && l < 1 && (t ? this.addX(this.sumCubic(l, e, A, n, a)) : this.addY(this.sumCubic(l, e, A, n, a)));
      return;
    }
    var u = Math.pow(s, 2) - 4 * o * i;
    if (!(u < 0)) {
      var h = (-s + Math.sqrt(u)) / (2 * i);
      0 < h && h < 1 && (t ? this.addX(this.sumCubic(h, e, A, n, a)) : this.addY(this.sumCubic(h, e, A, n, a)));
      var g = (-s - Math.sqrt(u)) / (2 * i);
      0 < g && g < 1 && (t ? this.addX(this.sumCubic(g, e, A, n, a)) : this.addY(this.sumCubic(g, e, A, n, a)));
    }
  }
  // from http://blog.hackers-cafe.net/2009/06/how-to-calculate-bezier-curves-bounding.html
  addBezierCurve(t, e, A, n, a, s, i, o) {
    this.addPoint(t, e), this.addPoint(i, o), this.bezierCurveAdd(!0, t, A, a, i), this.bezierCurveAdd(!1, e, n, s, o);
  }
  addQuadraticCurve(t, e, A, n, a, s) {
    var i = t + 0.6666666666666666 * (A - t), o = e + 2 / 3 * (n - e), l = i + 1 / 3 * (a - t), u = o + 1 / 3 * (s - e);
    this.addBezierCurve(t, e, i, l, o, u, a, s);
  }
  isPointInBox(t, e) {
    var {
      x1: A,
      y1: n,
      x2: a,
      y2: s
    } = this;
    return A <= t && t <= a && n <= e && e <= s;
  }
}
class mA extends gt {
  constructor(t) {
    super(t.replace(/([+\-.])\s+/gm, "$1").replace(/[^MmZzLlHhVvCcSsQqTtAae\d\s.,+-].*/g, "")), this.control = null, this.start = null, this.current = null, this.command = null, this.commands = this.commands, this.i = -1, this.previousCommand = null, this.points = [], this.angles = [];
  }
  reset() {
    this.i = -1, this.command = null, this.previousCommand = null, this.start = new Rr(0, 0), this.control = new Rr(0, 0), this.current = new Rr(0, 0), this.points = [], this.angles = [];
  }
  isEnd() {
    var {
      i: t,
      commands: e
    } = this;
    return t >= e.length - 1;
  }
  next() {
    var t = this.commands[++this.i];
    return this.previousCommand = this.command, this.command = t, t;
  }
  getPoint() {
    var t = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : "x", e = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : "y", A = new Rr(this.command[t], this.command[e]);
    return this.makeAbsolute(A);
  }
  getAsControlPoint(t, e) {
    var A = this.getPoint(t, e);
    return this.control = A, A;
  }
  getAsCurrentPoint(t, e) {
    var A = this.getPoint(t, e);
    return this.current = A, A;
  }
  getReflectedControlPoint() {
    var t = this.previousCommand.type;
    if (t !== gt.CURVE_TO && t !== gt.SMOOTH_CURVE_TO && t !== gt.QUAD_TO && t !== gt.SMOOTH_QUAD_TO)
      return this.current;
    var {
      current: {
        x: e,
        y: A
      },
      control: {
        x: n,
        y: a
      }
    } = this, s = new Rr(2 * e - n, 2 * A - a);
    return s;
  }
  makeAbsolute(t) {
    if (this.command.relative) {
      var {
        x: e,
        y: A
      } = this.current;
      t.x += e, t.y += A;
    }
    return t;
  }
  addMarker(t, e, A) {
    var {
      points: n,
      angles: a
    } = this;
    A && a.length > 0 && !a[a.length - 1] && (a[a.length - 1] = n[n.length - 1].angleTo(A)), this.addMarkerAngle(t, e ? e.angleTo(t) : null);
  }
  addMarkerAngle(t, e) {
    this.points.push(t), this.angles.push(e);
  }
  getMarkerPoints() {
    return this.points;
  }
  getMarkerAngles() {
    for (var {
      angles: t
    } = this, e = t.length, A = 0; A < e; A++)
      if (!t[A]) {
        for (var n = A + 1; n < e; n++)
          if (t[n]) {
            t[A] = t[n];
            break;
          }
      }
    return t;
  }
}
class ws extends gr {
  constructor() {
    super(...arguments), this.modifiedEmSizeStack = !1;
  }
  calculateOpacity() {
    for (var t = 1, e = this; e; ) {
      var A = e.getStyle("opacity", !1, !0);
      A.hasValue(!0) && (t *= A.getNumber()), e = e.parent;
    }
    return t;
  }
  setContext(t) {
    var e = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : !1;
    if (!e) {
      var A = this.getStyle("fill"), n = this.getStyle("fill-opacity"), a = this.getStyle("stroke"), s = this.getStyle("stroke-opacity");
      if (A.isUrlDefinition()) {
        var i = A.getFillStyleDefinition(this, n);
        i && (t.fillStyle = i);
      } else if (A.hasValue()) {
        A.getString() === "currentColor" && A.setValue(this.getStyle("color").getColor());
        var o = A.getColor();
        o !== "inherit" && (t.fillStyle = o === "none" ? "rgba(0,0,0,0)" : o);
      }
      if (n.hasValue()) {
        var l = new AA(this.document, "fill", t.fillStyle).addOpacity(n).getColor();
        t.fillStyle = l;
      }
      if (a.isUrlDefinition()) {
        var u = a.getFillStyleDefinition(this, s);
        u && (t.strokeStyle = u);
      } else if (a.hasValue()) {
        a.getString() === "currentColor" && a.setValue(this.getStyle("color").getColor());
        var h = a.getString();
        h !== "inherit" && (t.strokeStyle = h === "none" ? "rgba(0,0,0,0)" : h);
      }
      if (s.hasValue()) {
        var g = new AA(this.document, "stroke", t.strokeStyle).addOpacity(s).getString();
        t.strokeStyle = g;
      }
      var c = this.getStyle("stroke-width");
      if (c.hasValue()) {
        var p = c.getPixels();
        t.lineWidth = p || Ps;
      }
      var m = this.getStyle("stroke-linecap"), y = this.getStyle("stroke-linejoin"), w = this.getStyle("stroke-miterlimit"), E = this.getStyle("stroke-dasharray"), C = this.getStyle("stroke-dashoffset");
      if (m.hasValue() && (t.lineCap = m.getString()), y.hasValue() && (t.lineJoin = y.getString()), w.hasValue() && (t.miterLimit = w.getNumber()), E.hasValue() && E.getString() !== "none") {
        var F = ia(E.getString());
        typeof t.setLineDash < "u" ? t.setLineDash(F) : typeof t.webkitLineDash < "u" ? t.webkitLineDash = F : typeof t.mozDash < "u" && !(F.length === 1 && F[0] === 0) && (t.mozDash = F);
        var H = C.getPixels();
        typeof t.lineDashOffset < "u" ? t.lineDashOffset = H : typeof t.webkitLineDashOffset < "u" ? t.webkitLineDashOffset = H : typeof t.mozDashOffset < "u" && (t.mozDashOffset = H);
      }
    }
    if (this.modifiedEmSizeStack = !1, typeof t.font < "u") {
      var q = this.getStyle("font"), N = this.getStyle("font-style"), M = this.getStyle("font-variant"), k = this.getStyle("font-weight"), O = this.getStyle("font-size"), S = this.getStyle("font-family"), U = new Hn(N.getString(), M.getString(), k.getString(), O.hasValue() ? "".concat(O.getPixels(!0), "px") : "", S.getString(), Hn.parse(q.getString(), t.font));
      N.setValue(U.fontStyle), M.setValue(U.fontVariant), k.setValue(U.fontWeight), O.setValue(U.fontSize), S.setValue(U.fontFamily), t.font = U.toString(), O.isPixels() && (this.document.emSize = O.getPixels(), this.modifiedEmSizeStack = !0);
    }
    e || (this.applyEffects(t), t.globalAlpha = this.calculateOpacity());
  }
  clearContext(t) {
    super.clearContext(t), this.modifiedEmSizeStack && this.document.popEmSize();
  }
}
class XA extends ws {
  constructor(t, e, A) {
    super(t, e, A), this.type = "path", this.pathParser = null, this.pathParser = new mA(this.getAttribute("d").getString());
  }
  path(t) {
    var {
      pathParser: e
    } = this, A = new Oa();
    for (e.reset(), t && t.beginPath(); !e.isEnd(); )
      switch (e.next().type) {
        case mA.MOVE_TO:
          this.pathM(t, A);
          break;
        case mA.LINE_TO:
          this.pathL(t, A);
          break;
        case mA.HORIZ_LINE_TO:
          this.pathH(t, A);
          break;
        case mA.VERT_LINE_TO:
          this.pathV(t, A);
          break;
        case mA.CURVE_TO:
          this.pathC(t, A);
          break;
        case mA.SMOOTH_CURVE_TO:
          this.pathS(t, A);
          break;
        case mA.QUAD_TO:
          this.pathQ(t, A);
          break;
        case mA.SMOOTH_QUAD_TO:
          this.pathT(t, A);
          break;
        case mA.ARC:
          this.pathA(t, A);
          break;
        case mA.CLOSE_PATH:
          this.pathZ(t, A);
          break;
      }
    return A;
  }
  getBoundingBox(t) {
    return this.path();
  }
  getMarkers() {
    var {
      pathParser: t
    } = this, e = t.getMarkerPoints(), A = t.getMarkerAngles(), n = e.map((a, s) => [a, A[s]]);
    return n;
  }
  renderChildren(t) {
    this.path(t), this.document.screen.mouse.checkPath(this, t);
    var e = this.getStyle("fill-rule");
    t.fillStyle !== "" && (e.getString("inherit") !== "inherit" ? t.fill(e.getString()) : t.fill()), t.strokeStyle !== "" && (this.getAttribute("vector-effect").getString() === "non-scaling-stroke" ? (t.save(), t.setTransform(1, 0, 0, 1, 0, 0), t.stroke(), t.restore()) : t.stroke());
    var A = this.getMarkers();
    if (A) {
      var n = A.length - 1, a = this.getStyle("marker-start"), s = this.getStyle("marker-mid"), i = this.getStyle("marker-end");
      if (a.isUrlDefinition()) {
        var o = a.getDefinition(), [l, u] = A[0];
        o.render(t, l, u);
      }
      if (s.isUrlDefinition())
        for (var h = s.getDefinition(), g = 1; g < n; g++) {
          var [c, p] = A[g];
          h.render(t, c, p);
        }
      if (i.isUrlDefinition()) {
        var m = i.getDefinition(), [y, w] = A[n];
        m.render(t, y, w);
      }
    }
  }
  static pathM(t) {
    var e = t.getAsCurrentPoint();
    return t.start = t.current, {
      point: e
    };
  }
  pathM(t, e) {
    var {
      pathParser: A
    } = this, {
      point: n
    } = XA.pathM(A), {
      x: a,
      y: s
    } = n;
    A.addMarker(n), e.addPoint(a, s), t && t.moveTo(a, s);
  }
  static pathL(t) {
    var {
      current: e
    } = t, A = t.getAsCurrentPoint();
    return {
      current: e,
      point: A
    };
  }
  pathL(t, e) {
    var {
      pathParser: A
    } = this, {
      current: n,
      point: a
    } = XA.pathL(A), {
      x: s,
      y: i
    } = a;
    A.addMarker(a, n), e.addPoint(s, i), t && t.lineTo(s, i);
  }
  static pathH(t) {
    var {
      current: e,
      command: A
    } = t, n = new Rr((A.relative ? e.x : 0) + A.x, e.y);
    return t.current = n, {
      current: e,
      point: n
    };
  }
  pathH(t, e) {
    var {
      pathParser: A
    } = this, {
      current: n,
      point: a
    } = XA.pathH(A), {
      x: s,
      y: i
    } = a;
    A.addMarker(a, n), e.addPoint(s, i), t && t.lineTo(s, i);
  }
  static pathV(t) {
    var {
      current: e,
      command: A
    } = t, n = new Rr(e.x, (A.relative ? e.y : 0) + A.y);
    return t.current = n, {
      current: e,
      point: n
    };
  }
  pathV(t, e) {
    var {
      pathParser: A
    } = this, {
      current: n,
      point: a
    } = XA.pathV(A), {
      x: s,
      y: i
    } = a;
    A.addMarker(a, n), e.addPoint(s, i), t && t.lineTo(s, i);
  }
  static pathC(t) {
    var {
      current: e
    } = t, A = t.getPoint("x1", "y1"), n = t.getAsControlPoint("x2", "y2"), a = t.getAsCurrentPoint();
    return {
      current: e,
      point: A,
      controlPoint: n,
      currentPoint: a
    };
  }
  pathC(t, e) {
    var {
      pathParser: A
    } = this, {
      current: n,
      point: a,
      controlPoint: s,
      currentPoint: i
    } = XA.pathC(A);
    A.addMarker(i, s, a), e.addBezierCurve(n.x, n.y, a.x, a.y, s.x, s.y, i.x, i.y), t && t.bezierCurveTo(a.x, a.y, s.x, s.y, i.x, i.y);
  }
  static pathS(t) {
    var {
      current: e
    } = t, A = t.getReflectedControlPoint(), n = t.getAsControlPoint("x2", "y2"), a = t.getAsCurrentPoint();
    return {
      current: e,
      point: A,
      controlPoint: n,
      currentPoint: a
    };
  }
  pathS(t, e) {
    var {
      pathParser: A
    } = this, {
      current: n,
      point: a,
      controlPoint: s,
      currentPoint: i
    } = XA.pathS(A);
    A.addMarker(i, s, a), e.addBezierCurve(n.x, n.y, a.x, a.y, s.x, s.y, i.x, i.y), t && t.bezierCurveTo(a.x, a.y, s.x, s.y, i.x, i.y);
  }
  static pathQ(t) {
    var {
      current: e
    } = t, A = t.getAsControlPoint("x1", "y1"), n = t.getAsCurrentPoint();
    return {
      current: e,
      controlPoint: A,
      currentPoint: n
    };
  }
  pathQ(t, e) {
    var {
      pathParser: A
    } = this, {
      current: n,
      controlPoint: a,
      currentPoint: s
    } = XA.pathQ(A);
    A.addMarker(s, a, a), e.addQuadraticCurve(n.x, n.y, a.x, a.y, s.x, s.y), t && t.quadraticCurveTo(a.x, a.y, s.x, s.y);
  }
  static pathT(t) {
    var {
      current: e
    } = t, A = t.getReflectedControlPoint();
    t.control = A;
    var n = t.getAsCurrentPoint();
    return {
      current: e,
      controlPoint: A,
      currentPoint: n
    };
  }
  pathT(t, e) {
    var {
      pathParser: A
    } = this, {
      current: n,
      controlPoint: a,
      currentPoint: s
    } = XA.pathT(A);
    A.addMarker(s, a, a), e.addQuadraticCurve(n.x, n.y, a.x, a.y, s.x, s.y), t && t.quadraticCurveTo(a.x, a.y, s.x, s.y);
  }
  static pathA(t) {
    var {
      current: e,
      command: A
    } = t, {
      rX: n,
      rY: a,
      xRot: s,
      lArcFlag: i,
      sweepFlag: o
    } = A, l = s * (Math.PI / 180), u = t.getAsCurrentPoint(), h = new Rr(Math.cos(l) * (e.x - u.x) / 2 + Math.sin(l) * (e.y - u.y) / 2, -Math.sin(l) * (e.x - u.x) / 2 + Math.cos(l) * (e.y - u.y) / 2), g = Math.pow(h.x, 2) / Math.pow(n, 2) + Math.pow(h.y, 2) / Math.pow(a, 2);
    g > 1 && (n *= Math.sqrt(g), a *= Math.sqrt(g));
    var c = (i === o ? -1 : 1) * Math.sqrt((Math.pow(n, 2) * Math.pow(a, 2) - Math.pow(n, 2) * Math.pow(h.y, 2) - Math.pow(a, 2) * Math.pow(h.x, 2)) / (Math.pow(n, 2) * Math.pow(h.y, 2) + Math.pow(a, 2) * Math.pow(h.x, 2)));
    isNaN(c) && (c = 0);
    var p = new Rr(c * n * h.y / a, c * -a * h.x / n), m = new Rr((e.x + u.x) / 2 + Math.cos(l) * p.x - Math.sin(l) * p.y, (e.y + u.y) / 2 + Math.sin(l) * p.x + Math.cos(l) * p.y), y = Hp([1, 0], [(h.x - p.x) / n, (h.y - p.y) / a]), w = [(h.x - p.x) / n, (h.y - p.y) / a], E = [(-h.x - p.x) / n, (-h.y - p.y) / a], C = Hp(w, E);
    return Ec(w, E) <= -1 && (C = Math.PI), Ec(w, E) >= 1 && (C = 0), {
      currentPoint: u,
      rX: n,
      rY: a,
      sweepFlag: o,
      xAxisRotation: l,
      centp: m,
      a1: y,
      ad: C
    };
  }
  pathA(t, e) {
    var {
      pathParser: A
    } = this, {
      currentPoint: n,
      rX: a,
      rY: s,
      sweepFlag: i,
      xAxisRotation: o,
      centp: l,
      a1: u,
      ad: h
    } = XA.pathA(A), g = 1 - i ? 1 : -1, c = u + g * (h / 2), p = new Rr(l.x + a * Math.cos(c), l.y + s * Math.sin(c));
    if (A.addMarkerAngle(p, c - g * Math.PI / 2), A.addMarkerAngle(n, c - g * Math.PI), e.addPoint(n.x, n.y), t && !isNaN(u) && !isNaN(h)) {
      var m = a > s ? a : s, y = a > s ? 1 : a / s, w = a > s ? s / a : 1;
      t.translate(l.x, l.y), t.rotate(o), t.scale(y, w), t.arc(0, 0, m, u, u + h, !!(1 - i)), t.scale(1 / y, 1 / w), t.rotate(-o), t.translate(-l.x, -l.y);
    }
  }
  static pathZ(t) {
    t.current = t.start;
  }
  pathZ(t, e) {
    XA.pathZ(this.pathParser), t && e.x1 !== e.x2 && e.y1 !== e.y2 && t.closePath();
  }
}
class kv extends XA {
  constructor(t, e, A) {
    super(t, e, A), this.type = "glyph", this.horizAdvX = this.getAttribute("horiz-adv-x").getNumber(), this.unicode = this.getAttribute("unicode").getString(), this.arabicForm = this.getAttribute("arabic-form").getString();
  }
}
class Oi extends ws {
  constructor(t, e, A) {
    super(t, e, new.target === Oi ? !0 : A), this.type = "text", this.x = 0, this.y = 0, this.measureCache = -1;
  }
  setContext(t) {
    var e = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : !1;
    super.setContext(t, e);
    var A = this.getStyle("dominant-baseline").getTextBaseline() || this.getStyle("alignment-baseline").getTextBaseline();
    A && (t.textBaseline = A);
  }
  initializeCoordinates() {
    this.x = 0, this.y = 0, this.leafTexts = [], this.textChunkStart = 0, this.minX = Number.POSITIVE_INFINITY, this.maxX = Number.NEGATIVE_INFINITY;
  }
  getBoundingBox(t) {
    if (this.type !== "text")
      return this.getTElementBoundingBox(t);
    this.initializeCoordinates(), this.adjustChildCoordinatesRecursive(t);
    var e = null;
    return this.children.forEach((A, n) => {
      var a = this.getChildBoundingBox(t, this, this, n);
      e ? e.addBoundingBox(a) : e = a;
    }), e;
  }
  getFontSize() {
    var {
      document: t,
      parent: e
    } = this, A = Hn.parse(t.ctx.font).fontSize, n = e.getStyle("font-size").getNumber(A);
    return n;
  }
  getTElementBoundingBox(t) {
    var e = this.getFontSize();
    return new Oa(this.x, this.y - e, this.x + this.measureText(t), this.y);
  }
  getGlyph(t, e, A) {
    var n = e[A], a = null;
    if (t.isArabic) {
      var s = e.length, i = e[A - 1], o = e[A + 1], l = "isolated";
      if ((A === 0 || i === " ") && A < s - 1 && o !== " " && (l = "terminal"), A > 0 && i !== " " && A < s - 1 && o !== " " && (l = "medial"), A > 0 && i !== " " && (A === s - 1 || o === " ") && (l = "initial"), typeof t.glyphs[n] < "u") {
        var u = t.glyphs[n];
        a = u instanceof kv ? u : u[l];
      }
    } else
      a = t.glyphs[n];
    return a || (a = t.missingGlyph), a;
  }
  getText() {
    return "";
  }
  getTextFromNode(t) {
    var e = t || this.node, A = Array.from(e.parentNode.childNodes), n = A.indexOf(e), a = A.length - 1, s = $s(
      // textNode.value
      // || textNode.text
      e.textContent || ""
    );
    return n === 0 && (s = FC(s)), n === a && (s = xC(s)), s;
  }
  renderChildren(t) {
    if (this.type !== "text") {
      this.renderTElementChildren(t);
      return;
    }
    this.initializeCoordinates(), this.adjustChildCoordinatesRecursive(t), this.children.forEach((A, n) => {
      this.renderChild(t, this, this, n);
    });
    var {
      mouse: e
    } = this.document.screen;
    e.isWorking() && e.checkBoundingBox(this, this.getBoundingBox(t));
  }
  renderTElementChildren(t) {
    var {
      document: e,
      parent: A
    } = this, n = this.getText(), a = A.getStyle("font-family").getDefinition();
    if (a) {
      for (var {
        unitsPerEm: s
      } = a.fontFace, i = Hn.parse(e.ctx.font), o = A.getStyle("font-size").getNumber(i.fontSize), l = A.getStyle("font-style").getString(i.fontStyle), u = o / s, h = a.isRTL ? n.split("").reverse().join("") : n, g = ia(A.getAttribute("dx").getString()), c = h.length, p = 0; p < c; p++) {
        var m = this.getGlyph(a, h, p);
        t.translate(this.x, this.y), t.scale(u, -u);
        var y = t.lineWidth;
        t.lineWidth = t.lineWidth * s / o, l === "italic" && t.transform(1, 0, 0.4, 1, 0, 0), m.render(t), l === "italic" && t.transform(1, 0, -0.4, 1, 0, 0), t.lineWidth = y, t.scale(1 / u, -1 / u), t.translate(-this.x, -this.y), this.x += o * (m.horizAdvX || a.horizAdvX) / s, typeof g[p] < "u" && !isNaN(g[p]) && (this.x += g[p]);
      }
      return;
    }
    var {
      x: w,
      y: E
    } = this;
    t.fillStyle && t.fillText(n, w, E), t.strokeStyle && t.strokeText(n, w, E);
  }
  applyAnchoring() {
    if (!(this.textChunkStart >= this.leafTexts.length)) {
      var t = this.leafTexts[this.textChunkStart], e = t.getStyle("text-anchor").getString("start"), A = !1, n = 0;
      e === "start" && !A || e === "end" && A ? n = t.x - this.minX : e === "end" && !A || e === "start" && A ? n = t.x - this.maxX : n = t.x - (this.minX + this.maxX) / 2;
      for (var a = this.textChunkStart; a < this.leafTexts.length; a++)
        this.leafTexts[a].x += n;
      this.minX = Number.POSITIVE_INFINITY, this.maxX = Number.NEGATIVE_INFINITY, this.textChunkStart = this.leafTexts.length;
    }
  }
  adjustChildCoordinatesRecursive(t) {
    this.children.forEach((e, A) => {
      this.adjustChildCoordinatesRecursiveCore(t, this, this, A);
    }), this.applyAnchoring();
  }
  adjustChildCoordinatesRecursiveCore(t, e, A, n) {
    var a = A.children[n];
    a.children.length > 0 ? a.children.forEach((s, i) => {
      e.adjustChildCoordinatesRecursiveCore(t, e, a, i);
    }) : this.adjustChildCoordinates(t, e, A, n);
  }
  adjustChildCoordinates(t, e, A, n) {
    var a = A.children[n];
    if (typeof a.measureText != "function")
      return a;
    t.save(), a.setContext(t, !0);
    var s = a.getAttribute("x"), i = a.getAttribute("y"), o = a.getAttribute("dx"), l = a.getAttribute("dy"), u = a.getStyle("font-family").getDefinition(), h = !!u && u.isRTL;
    n === 0 && (s.hasValue() || s.setValue(a.getInheritedAttribute("x")), i.hasValue() || i.setValue(a.getInheritedAttribute("y")), o.hasValue() || o.setValue(a.getInheritedAttribute("dx")), l.hasValue() || l.setValue(a.getInheritedAttribute("dy")));
    var g = a.measureText(t);
    return h && (e.x -= g), s.hasValue() ? (e.applyAnchoring(), a.x = s.getPixels("x"), o.hasValue() && (a.x += o.getPixels("x"))) : (o.hasValue() && (e.x += o.getPixels("x")), a.x = e.x), e.x = a.x, h || (e.x += g), i.hasValue() ? (a.y = i.getPixels("y"), l.hasValue() && (a.y += l.getPixels("y"))) : (l.hasValue() && (e.y += l.getPixels("y")), a.y = e.y), e.y = a.y, e.leafTexts.push(a), e.minX = Math.min(e.minX, a.x, a.x + g), e.maxX = Math.max(e.maxX, a.x, a.x + g), a.clearContext(t), t.restore(), a;
  }
  getChildBoundingBox(t, e, A, n) {
    var a = A.children[n];
    if (typeof a.getBoundingBox != "function")
      return null;
    var s = a.getBoundingBox(t);
    return s ? (a.children.forEach((i, o) => {
      var l = e.getChildBoundingBox(t, e, a, o);
      s.addBoundingBox(l);
    }), s) : null;
  }
  renderChild(t, e, A, n) {
    var a = A.children[n];
    a.render(t), a.children.forEach((s, i) => {
      e.renderChild(t, e, a, i);
    });
  }
  measureText(t) {
    var {
      measureCache: e
    } = this;
    if (~e)
      return e;
    var A = this.getText(), n = this.measureTargetText(t, A);
    return this.measureCache = n, n;
  }
  measureTargetText(t, e) {
    if (!e.length)
      return 0;
    var {
      parent: A
    } = this, n = A.getStyle("font-family").getDefinition();
    if (n) {
      for (var a = this.getFontSize(), s = n.isRTL ? e.split("").reverse().join("") : e, i = ia(A.getAttribute("dx").getString()), o = s.length, l = 0, u = 0; u < o; u++) {
        var h = this.getGlyph(n, s, u);
        l += (h.horizAdvX || n.horizAdvX) * a / n.fontFace.unitsPerEm, typeof i[u] < "u" && !isNaN(i[u]) && (l += i[u]);
      }
      return l;
    }
    if (!t.measureText)
      return e.length * 10;
    t.save(), this.setContext(t, !0);
    var {
      width: g
    } = t.measureText(e);
    return this.clearContext(t), t.restore(), g;
  }
  /**
   * Inherits positional attributes from {@link TextElement} parent(s). Attributes
   * are only inherited from a parent to its first child.
   * @param name - The attribute name.
   * @returns The attribute value or null.
   */
  getInheritedAttribute(t) {
    for (var e = this; e instanceof Oi && e.isFirstChild(); ) {
      var A = e.parent.getAttribute(t);
      if (A.hasValue(!0))
        return A.getValue("0");
      e = e.parent;
    }
    return null;
  }
}
class Hl extends Oi {
  constructor(t, e, A) {
    super(t, e, new.target === Hl ? !0 : A), this.type = "tspan", this.text = this.children.length > 0 ? "" : this.getTextFromNode();
  }
  getText() {
    return this.text;
  }
}
class W8 extends Hl {
  constructor() {
    super(...arguments), this.type = "textNode";
  }
}
class No extends ws {
  constructor() {
    super(...arguments), this.type = "svg", this.root = !1;
  }
  setContext(t) {
    var e, {
      document: A
    } = this, {
      screen: n,
      window: a
    } = A, s = t.canvas;
    if (n.setDefaults(t), s.style && typeof t.font < "u" && a && typeof a.getComputedStyle < "u") {
      t.font = a.getComputedStyle(s).getPropertyValue("font");
      var i = new AA(A, "fontSize", Hn.parse(t.font).fontSize);
      i.hasValue() && (A.rootEmSize = i.getPixels("y"), A.emSize = A.rootEmSize);
    }
    this.getAttribute("x").hasValue() || this.getAttribute("x", !0).setValue(0), this.getAttribute("y").hasValue() || this.getAttribute("y", !0).setValue(0);
    var {
      width: o,
      height: l
    } = n.viewPort;
    this.getStyle("width").hasValue() || this.getStyle("width", !0).setValue("100%"), this.getStyle("height").hasValue() || this.getStyle("height", !0).setValue("100%"), this.getStyle("color").hasValue() || this.getStyle("color", !0).setValue("black");
    var u = this.getAttribute("refX"), h = this.getAttribute("refY"), g = this.getAttribute("viewBox"), c = g.hasValue() ? ia(g.getString()) : null, p = !this.root && this.getStyle("overflow").getValue("hidden") !== "visible", m = 0, y = 0, w = 0, E = 0;
    c && (m = c[0], y = c[1]), this.root || (o = this.getStyle("width").getPixels("x"), l = this.getStyle("height").getPixels("y"), this.type === "marker" && (w = m, E = y, m = 0, y = 0)), n.viewPort.setCurrent(o, l), this.node && (!this.parent || ((e = this.node.parentNode) === null || e === void 0 ? void 0 : e.nodeName) === "foreignObject") && this.getStyle("transform", !1, !0).hasValue() && !this.getStyle("transform-origin", !1, !0).hasValue() && this.getStyle("transform-origin", !0, !0).setValue("50% 50%"), super.setContext(t), t.translate(this.getAttribute("x").getPixels("x"), this.getAttribute("y").getPixels("y")), c && (o = c[2], l = c[3]), A.setViewBox({
      ctx: t,
      aspectRatio: this.getAttribute("preserveAspectRatio").getString(),
      width: n.viewPort.width,
      desiredWidth: o,
      height: n.viewPort.height,
      desiredHeight: l,
      minX: m,
      minY: y,
      refX: u.getValue(),
      refY: h.getValue(),
      clip: p,
      clipX: w,
      clipY: E
    }), c && (n.viewPort.removeCurrent(), n.viewPort.setCurrent(o, l));
  }
  clearContext(t) {
    super.clearContext(t), this.document.screen.viewPort.removeCurrent();
  }
  /**
   * Resize SVG to fit in given size.
   * @param width
   * @param height
   * @param preserveAspectRatio
   */
  resize(t) {
    var e = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : t, A = arguments.length > 2 && arguments[2] !== void 0 ? arguments[2] : !1, n = this.getAttribute("width", !0), a = this.getAttribute("height", !0), s = this.getAttribute("viewBox"), i = this.getAttribute("style"), o = n.getNumber(0), l = a.getNumber(0);
    if (A)
      if (typeof A == "string")
        this.getAttribute("preserveAspectRatio", !0).setValue(A);
      else {
        var u = this.getAttribute("preserveAspectRatio");
        u.hasValue() && u.setValue(u.getString().replace(/^\s*(\S.*\S)\s*$/, "$1"));
      }
    if (n.setValue(t), a.setValue(e), s.hasValue() || s.setValue("0 0 ".concat(o || t, " ").concat(l || e)), i.hasValue()) {
      var h = this.getStyle("width"), g = this.getStyle("height");
      h.hasValue() && h.setValue("".concat(t, "px")), g.hasValue() && g.setValue("".concat(e, "px"));
    }
  }
}
class Lv extends XA {
  constructor() {
    super(...arguments), this.type = "rect";
  }
  path(t) {
    var e = this.getAttribute("x").getPixels("x"), A = this.getAttribute("y").getPixels("y"), n = this.getStyle("width", !1, !0).getPixels("x"), a = this.getStyle("height", !1, !0).getPixels("y"), s = this.getAttribute("rx"), i = this.getAttribute("ry"), o = s.getPixels("x"), l = i.getPixels("y");
    if (s.hasValue() && !i.hasValue() && (l = o), i.hasValue() && !s.hasValue() && (o = l), o = Math.min(o, n / 2), l = Math.min(l, a / 2), t) {
      var u = 4 * ((Math.sqrt(2) - 1) / 3);
      t.beginPath(), a > 0 && n > 0 && (t.moveTo(e + o, A), t.lineTo(e + n - o, A), t.bezierCurveTo(e + n - o + u * o, A, e + n, A + l - u * l, e + n, A + l), t.lineTo(e + n, A + a - l), t.bezierCurveTo(e + n, A + a - l + u * l, e + n - o + u * o, A + a, e + n - o, A + a), t.lineTo(e + o, A + a), t.bezierCurveTo(e + o - u * o, A + a, e, A + a - l + u * l, e, A + a - l), t.lineTo(e, A + l), t.bezierCurveTo(e, A + l - u * l, e + o - u * o, A, e + o, A), t.closePath());
    }
    return new Oa(e, A, e + n, A + a);
  }
  getMarkers() {
    return null;
  }
}
class HC extends XA {
  constructor() {
    super(...arguments), this.type = "circle";
  }
  path(t) {
    var e = this.getAttribute("cx").getPixels("x"), A = this.getAttribute("cy").getPixels("y"), n = this.getAttribute("r").getPixels();
    return t && n > 0 && (t.beginPath(), t.arc(e, A, n, 0, Math.PI * 2, !1), t.closePath()), new Oa(e - n, A - n, e + n, A + n);
  }
  getMarkers() {
    return null;
  }
}
class PC extends XA {
  constructor() {
    super(...arguments), this.type = "ellipse";
  }
  path(t) {
    var e = 4 * ((Math.sqrt(2) - 1) / 3), A = this.getAttribute("rx").getPixels("x"), n = this.getAttribute("ry").getPixels("y"), a = this.getAttribute("cx").getPixels("x"), s = this.getAttribute("cy").getPixels("y");
    return t && A > 0 && n > 0 && (t.beginPath(), t.moveTo(a + A, s), t.bezierCurveTo(a + A, s + e * n, a + e * A, s + n, a, s + n), t.bezierCurveTo(a - e * A, s + n, a - A, s + e * n, a - A, s), t.bezierCurveTo(a - A, s - e * n, a - e * A, s - n, a, s - n), t.bezierCurveTo(a + e * A, s - n, a + A, s - e * n, a + A, s), t.closePath()), new Oa(a - A, s - n, a + A, s + n);
  }
  getMarkers() {
    return null;
  }
}
class KC extends XA {
  constructor() {
    super(...arguments), this.type = "line";
  }
  getPoints() {
    return [new Rr(this.getAttribute("x1").getPixels("x"), this.getAttribute("y1").getPixels("y")), new Rr(this.getAttribute("x2").getPixels("x"), this.getAttribute("y2").getPixels("y"))];
  }
  path(t) {
    var [{
      x: e,
      y: A
    }, {
      x: n,
      y: a
    }] = this.getPoints();
    return t && (t.beginPath(), t.moveTo(e, A), t.lineTo(n, a)), new Oa(e, A, n, a);
  }
  getMarkers() {
    var [t, e] = this.getPoints(), A = t.angleTo(e);
    return [[t, A], [e, A]];
  }
}
class Iv extends XA {
  constructor(t, e, A) {
    super(t, e, A), this.type = "polyline", this.points = [], this.points = Rr.parsePath(this.getAttribute("points").getString());
  }
  path(t) {
    var {
      points: e
    } = this, [{
      x: A,
      y: n
    }] = e, a = new Oa(A, n);
    return t && (t.beginPath(), t.moveTo(A, n)), e.forEach((s) => {
      var {
        x: i,
        y: o
      } = s;
      a.addPoint(i, o), t && t.lineTo(i, o);
    }), a;
  }
  getMarkers() {
    var {
      points: t
    } = this, e = t.length - 1, A = [];
    return t.forEach((n, a) => {
      a !== e && A.push([n, n.angleTo(t[a + 1])]);
    }), A.length > 0 && A.push([t[t.length - 1], A[A.length - 1][1]]), A;
  }
}
class VC extends Iv {
  constructor() {
    super(...arguments), this.type = "polygon";
  }
  path(t) {
    var e = super.path(t), [{
      x: A,
      y: n
    }] = this.points;
    return t && (t.lineTo(A, n), t.closePath()), e;
  }
}
class qC extends gr {
  constructor() {
    super(...arguments), this.type = "pattern";
  }
  createPattern(t, e, A) {
    var n = this.getStyle("width").getPixels("x", !0), a = this.getStyle("height").getPixels("y", !0), s = new No(this.document, null);
    s.attributes.viewBox = new AA(this.document, "viewBox", this.getAttribute("viewBox").getValue()), s.attributes.width = new AA(this.document, "width", "".concat(n, "px")), s.attributes.height = new AA(this.document, "height", "".concat(a, "px")), s.attributes.transform = new AA(this.document, "transform", this.getAttribute("patternTransform").getValue()), s.children = this.children;
    var i = this.document.createCanvas(n, a), o = i.getContext("2d"), l = this.getAttribute("x"), u = this.getAttribute("y");
    l.hasValue() && u.hasValue() && o.translate(l.getPixels("x", !0), u.getPixels("y", !0)), A.hasValue() ? this.styles["fill-opacity"] = A : Reflect.deleteProperty(this.styles, "fill-opacity");
    for (var h = -1; h <= 1; h++)
      for (var g = -1; g <= 1; g++)
        o.save(), s.attributes.x = new AA(this.document, "x", h * i.width), s.attributes.y = new AA(this.document, "y", g * i.height), s.render(o), o.restore();
    var c = t.createPattern(i, "repeat");
    return c;
  }
}
class jC extends gr {
  constructor() {
    super(...arguments), this.type = "marker";
  }
  render(t, e, A) {
    if (e) {
      var {
        x: n,
        y: a
      } = e, s = this.getAttribute("orient").getString("auto"), i = this.getAttribute("markerUnits").getString("strokeWidth");
      t.translate(n, a), s === "auto" && t.rotate(A), i === "strokeWidth" && t.scale(t.lineWidth, t.lineWidth), t.save();
      var o = new No(this.document, null);
      o.type = this.type, o.attributes.viewBox = new AA(this.document, "viewBox", this.getAttribute("viewBox").getValue()), o.attributes.refX = new AA(this.document, "refX", this.getAttribute("refX").getValue()), o.attributes.refY = new AA(this.document, "refY", this.getAttribute("refY").getValue()), o.attributes.width = new AA(this.document, "width", this.getAttribute("markerWidth").getValue()), o.attributes.height = new AA(this.document, "height", this.getAttribute("markerHeight").getValue()), o.attributes.overflow = new AA(this.document, "overflow", this.getAttribute("overflow").getValue()), o.attributes.fill = new AA(this.document, "fill", this.getAttribute("fill").getColor("black")), o.attributes.stroke = new AA(this.document, "stroke", this.getAttribute("stroke").getValue("none")), o.children = this.children, o.render(t), t.restore(), i === "strokeWidth" && t.scale(1 / t.lineWidth, 1 / t.lineWidth), s === "auto" && t.rotate(-A), t.translate(-n, -a);
    }
  }
}
class WC extends gr {
  constructor() {
    super(...arguments), this.type = "defs";
  }
  render() {
  }
}
class Jc extends ws {
  constructor() {
    super(...arguments), this.type = "g";
  }
  getBoundingBox(t) {
    var e = new Oa();
    return this.children.forEach((A) => {
      e.addBoundingBox(A.getBoundingBox(t));
    }), e;
  }
}
class _v extends gr {
  constructor(t, e, A) {
    super(t, e, A), this.attributesToInherit = ["gradientUnits"], this.stops = [];
    var {
      stops: n,
      children: a
    } = this;
    a.forEach((s) => {
      s.type === "stop" && n.push(s);
    });
  }
  getGradientUnits() {
    return this.getAttribute("gradientUnits").getString("objectBoundingBox");
  }
  createGradient(t, e, A) {
    var n = this;
    this.getHrefAttribute().hasValue() && (n = this.getHrefAttribute().getDefinition(), this.inheritStopContainer(n));
    var {
      stops: a
    } = n, s = this.getGradient(t, e);
    if (!s)
      return this.addParentOpacity(A, a[a.length - 1].color);
    if (a.forEach((y) => {
      s.addColorStop(y.offset, this.addParentOpacity(A, y.color));
    }), this.getAttribute("gradientTransform").hasValue()) {
      var {
        document: i
      } = this, {
        MAX_VIRTUAL_PIXELS: o,
        viewPort: l
      } = i.screen, [u] = l.viewPorts, h = new Lv(i, null);
      h.attributes.x = new AA(i, "x", -o / 3), h.attributes.y = new AA(i, "y", -o / 3), h.attributes.width = new AA(i, "width", o), h.attributes.height = new AA(i, "height", o);
      var g = new Jc(i, null);
      g.attributes.transform = new AA(i, "transform", this.getAttribute("gradientTransform").getValue()), g.children = [h];
      var c = new No(i, null);
      c.attributes.x = new AA(i, "x", 0), c.attributes.y = new AA(i, "y", 0), c.attributes.width = new AA(i, "width", u.width), c.attributes.height = new AA(i, "height", u.height), c.children = [g];
      var p = i.createCanvas(u.width, u.height), m = p.getContext("2d");
      return m.fillStyle = s, c.render(m), m.createPattern(p, "no-repeat");
    }
    return s;
  }
  inheritStopContainer(t) {
    this.attributesToInherit.forEach((e) => {
      !this.getAttribute(e).hasValue() && t.getAttribute(e).hasValue() && this.getAttribute(e, !0).setValue(t.getAttribute(e).getValue());
    });
  }
  addParentOpacity(t, e) {
    if (t.hasValue()) {
      var A = new AA(this.document, "color", e);
      return A.addOpacity(t).getColor();
    }
    return e;
  }
}
class GC extends _v {
  constructor(t, e, A) {
    super(t, e, A), this.type = "linearGradient", this.attributesToInherit.push("x1", "y1", "x2", "y2");
  }
  getGradient(t, e) {
    var A = this.getGradientUnits() === "objectBoundingBox", n = A ? e.getBoundingBox(t) : null;
    if (A && !n)
      return null;
    !this.getAttribute("x1").hasValue() && !this.getAttribute("y1").hasValue() && !this.getAttribute("x2").hasValue() && !this.getAttribute("y2").hasValue() && (this.getAttribute("x1", !0).setValue(0), this.getAttribute("y1", !0).setValue(0), this.getAttribute("x2", !0).setValue(1), this.getAttribute("y2", !0).setValue(0));
    var a = A ? n.x + n.width * this.getAttribute("x1").getNumber() : this.getAttribute("x1").getPixels("x"), s = A ? n.y + n.height * this.getAttribute("y1").getNumber() : this.getAttribute("y1").getPixels("y"), i = A ? n.x + n.width * this.getAttribute("x2").getNumber() : this.getAttribute("x2").getPixels("x"), o = A ? n.y + n.height * this.getAttribute("y2").getNumber() : this.getAttribute("y2").getPixels("y");
    return a === i && s === o ? null : t.createLinearGradient(a, s, i, o);
  }
}
class YC extends _v {
  constructor(t, e, A) {
    super(t, e, A), this.type = "radialGradient", this.attributesToInherit.push("cx", "cy", "r", "fx", "fy", "fr");
  }
  getGradient(t, e) {
    var A = this.getGradientUnits() === "objectBoundingBox", n = e.getBoundingBox(t);
    if (A && !n)
      return null;
    this.getAttribute("cx").hasValue() || this.getAttribute("cx", !0).setValue("50%"), this.getAttribute("cy").hasValue() || this.getAttribute("cy", !0).setValue("50%"), this.getAttribute("r").hasValue() || this.getAttribute("r", !0).setValue("50%");
    var a = A ? n.x + n.width * this.getAttribute("cx").getNumber() : this.getAttribute("cx").getPixels("x"), s = A ? n.y + n.height * this.getAttribute("cy").getNumber() : this.getAttribute("cy").getPixels("y"), i = a, o = s;
    this.getAttribute("fx").hasValue() && (i = A ? n.x + n.width * this.getAttribute("fx").getNumber() : this.getAttribute("fx").getPixels("x")), this.getAttribute("fy").hasValue() && (o = A ? n.y + n.height * this.getAttribute("fy").getNumber() : this.getAttribute("fy").getPixels("y"));
    var l = A ? (n.width + n.height) / 2 * this.getAttribute("r").getNumber() : this.getAttribute("r").getPixels(), u = this.getAttribute("fr").getPixels();
    return t.createRadialGradient(i, o, u, a, s, l);
  }
}
class $C extends gr {
  constructor(t, e, A) {
    super(t, e, A), this.type = "stop";
    var n = Math.max(0, Math.min(1, this.getAttribute("offset").getNumber())), a = this.getStyle("stop-opacity"), s = this.getStyle("stop-color", !0);
    s.getString() === "" && s.setValue("#000"), a.hasValue() && (s = s.addOpacity(a)), this.offset = n, this.color = s.getColor();
  }
}
class Zc extends gr {
  constructor(t, e, A) {
    super(t, e, A), this.type = "animate", this.duration = 0, this.initialValue = null, this.initialUnits = "", this.removed = !1, this.frozen = !1, t.screen.animations.push(this), this.begin = this.getAttribute("begin").getMilliseconds(), this.maxDuration = this.begin + this.getAttribute("dur").getMilliseconds(), this.from = this.getAttribute("from"), this.to = this.getAttribute("to"), this.values = new AA(t, "values", null);
    var n = this.getAttribute("values");
    n.hasValue() && this.values.setValue(n.getString().split(";"));
  }
  getProperty() {
    var t = this.getAttribute("attributeType").getString(), e = this.getAttribute("attributeName").getString();
    return t === "CSS" ? this.parent.getStyle(e, !0) : this.parent.getAttribute(e, !0);
  }
  calcValue() {
    var {
      initialUnits: t
    } = this, {
      progress: e,
      from: A,
      to: n
    } = this.getProgress(), a = A.getNumber() + (n.getNumber() - A.getNumber()) * e;
    return t === "%" && (a *= 100), "".concat(a).concat(t);
  }
  update(t) {
    var {
      parent: e
    } = this, A = this.getProperty();
    if (this.initialValue || (this.initialValue = A.getString(), this.initialUnits = A.getUnits()), this.duration > this.maxDuration) {
      var n = this.getAttribute("fill").getString("remove");
      if (this.getAttribute("repeatCount").getString() === "indefinite" || this.getAttribute("repeatDur").getString() === "indefinite")
        this.duration = 0;
      else if (n === "freeze" && !this.frozen)
        this.frozen = !0, e.animationFrozen = !0, e.animationFrozenValue = A.getString();
      else if (n === "remove" && !this.removed)
        return this.removed = !0, A.setValue(e.animationFrozen ? e.animationFrozenValue : this.initialValue), !0;
      return !1;
    }
    this.duration += t;
    var a = !1;
    if (this.begin < this.duration) {
      var s = this.calcValue(), i = this.getAttribute("type");
      if (i.hasValue()) {
        var o = i.getString();
        s = "".concat(o, "(").concat(s, ")");
      }
      A.setValue(s), a = !0;
    }
    return a;
  }
  getProgress() {
    var {
      document: t,
      values: e
    } = this, A = {
      progress: (this.duration - this.begin) / (this.maxDuration - this.begin)
    };
    if (e.hasValue()) {
      var n = A.progress * (e.getValue().length - 1), a = Math.floor(n), s = Math.ceil(n);
      A.from = new AA(t, "from", parseFloat(e.getValue()[a])), A.to = new AA(t, "to", parseFloat(e.getValue()[s])), A.progress = (n - a) / (s - a);
    } else
      A.from = this.from, A.to = this.to;
    return A;
  }
}
class zC extends Zc {
  constructor() {
    super(...arguments), this.type = "animateColor";
  }
  calcValue() {
    var {
      progress: t,
      from: e,
      to: A
    } = this.getProgress(), n = new Mp(e.getColor()), a = new Mp(A.getColor());
    if (n.ok && a.ok) {
      var s = n.r + (a.r - n.r) * t, i = n.g + (a.g - n.g) * t, o = n.b + (a.b - n.b) * t;
      return "rgb(".concat(Math.floor(s), ", ").concat(Math.floor(i), ", ").concat(Math.floor(o), ")");
    }
    return this.getAttribute("from").getColor();
  }
}
class XC extends Zc {
  constructor() {
    super(...arguments), this.type = "animateTransform";
  }
  calcValue() {
    var {
      progress: t,
      from: e,
      to: A
    } = this.getProgress(), n = ia(e.getString()), a = ia(A.getString()), s = n.map((i, o) => {
      var l = a[o];
      return i + (l - i) * t;
    }).join(" ");
    return s;
  }
}
class JC extends gr {
  constructor(t, e, A) {
    super(t, e, A), this.type = "font", this.glyphs = /* @__PURE__ */ Object.create(null), this.horizAdvX = this.getAttribute("horiz-adv-x").getNumber();
    var {
      definitions: n
    } = t, {
      children: a
    } = this;
    for (var s of a)
      switch (s.type) {
        case "font-face": {
          this.fontFace = s;
          var i = s.getStyle("font-family");
          i.hasValue() && (n[i.getString()] = this);
          break;
        }
        case "missing-glyph":
          this.missingGlyph = s;
          break;
        case "glyph": {
          var o = s;
          o.arabicForm ? (this.isRTL = !0, this.isArabic = !0, typeof this.glyphs[o.unicode] > "u" && (this.glyphs[o.unicode] = /* @__PURE__ */ Object.create(null)), this.glyphs[o.unicode][o.arabicForm] = o) : this.glyphs[o.unicode] = o;
          break;
        }
      }
  }
  render() {
  }
}
class ZC extends gr {
  constructor(t, e, A) {
    super(t, e, A), this.type = "font-face", this.ascent = this.getAttribute("ascent").getNumber(), this.descent = this.getAttribute("descent").getNumber(), this.unitsPerEm = this.getAttribute("units-per-em").getNumber();
  }
}
class e4 extends XA {
  constructor() {
    super(...arguments), this.type = "missing-glyph", this.horizAdvX = 0;
  }
}
class t4 extends Oi {
  constructor() {
    super(...arguments), this.type = "tref";
  }
  getText() {
    var t = this.getHrefAttribute().getDefinition();
    if (t) {
      var e = t.children[0];
      if (e)
        return e.getText();
    }
    return "";
  }
}
class A4 extends Oi {
  constructor(t, e, A) {
    super(t, e, A), this.type = "a";
    var {
      childNodes: n
    } = e, a = n[0], s = n.length > 0 && Array.from(n).every((i) => i.nodeType === 3);
    this.hasText = s, this.text = s ? this.getTextFromNode(a) : "";
  }
  getText() {
    return this.text;
  }
  renderChildren(t) {
    if (this.hasText) {
      super.renderChildren(t);
      var {
        document: e,
        x: A,
        y: n
      } = this, {
        mouse: a
      } = e.screen, s = new AA(e, "fontSize", Hn.parse(e.ctx.font).fontSize);
      a.isWorking() && a.checkBoundingBox(this, new Oa(A, n - s.getPixels("y"), A + this.measureText(t), n));
    } else if (this.children.length > 0) {
      var i = new Jc(this.document, null);
      i.children = this.children, i.parent = this, i.render(t);
    }
  }
  onClick() {
    var {
      window: t
    } = this.document;
    t && t.open(this.getHrefAttribute().getString());
  }
  onMouseMove() {
    var t = this.document.ctx;
    t.canvas.style.cursor = "pointer";
  }
}
function Iy(r, t) {
  var e = Object.keys(r);
  if (Object.getOwnPropertySymbols) {
    var A = Object.getOwnPropertySymbols(r);
    t && (A = A.filter(function(n) {
      return Object.getOwnPropertyDescriptor(r, n).enumerable;
    })), e.push.apply(e, A);
  }
  return e;
}
function Vu(r) {
  for (var t = 1; t < arguments.length; t++) {
    var e = arguments[t] != null ? arguments[t] : {};
    t % 2 ? Iy(Object(e), !0).forEach(function(A) {
      Uv(r, A, e[A]);
    }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(r, Object.getOwnPropertyDescriptors(e)) : Iy(Object(e)).forEach(function(A) {
      Object.defineProperty(r, A, Object.getOwnPropertyDescriptor(e, A));
    });
  }
  return r;
}
class r4 extends Oi {
  constructor(t, e, A) {
    super(t, e, A), this.type = "textPath", this.textWidth = 0, this.textHeight = 0, this.pathLength = -1, this.glyphInfo = null, this.letterSpacingCache = [], this.measuresCache = /* @__PURE__ */ new Map([["", 0]]);
    var n = this.getHrefAttribute().getDefinition();
    this.text = this.getTextFromNode(), this.dataArray = this.parsePathData(n);
  }
  getText() {
    return this.text;
  }
  path(t) {
    var {
      dataArray: e
    } = this;
    t && t.beginPath(), e.forEach((A) => {
      var {
        type: n,
        points: a
      } = A;
      switch (n) {
        case mA.LINE_TO:
          t && t.lineTo(a[0], a[1]);
          break;
        case mA.MOVE_TO:
          t && t.moveTo(a[0], a[1]);
          break;
        case mA.CURVE_TO:
          t && t.bezierCurveTo(a[0], a[1], a[2], a[3], a[4], a[5]);
          break;
        case mA.QUAD_TO:
          t && t.quadraticCurveTo(a[0], a[1], a[2], a[3]);
          break;
        case mA.ARC: {
          var [s, i, o, l, u, h, g, c] = a, p = o > l ? o : l, m = o > l ? 1 : o / l, y = o > l ? l / o : 1;
          t && (t.translate(s, i), t.rotate(g), t.scale(m, y), t.arc(0, 0, p, u, u + h, !!(1 - c)), t.scale(1 / m, 1 / y), t.rotate(-g), t.translate(-s, -i));
          break;
        }
        case mA.CLOSE_PATH:
          t && t.closePath();
          break;
      }
    });
  }
  renderChildren(t) {
    this.setTextData(t), t.save();
    var e = this.parent.getStyle("text-decoration").getString(), A = this.getFontSize(), {
      glyphInfo: n
    } = this, a = t.fillStyle;
    e === "underline" && t.beginPath(), n.forEach((s, i) => {
      var {
        p0: o,
        p1: l,
        rotation: u,
        text: h
      } = s;
      t.save(), t.translate(o.x, o.y), t.rotate(u), t.fillStyle && t.fillText(h, 0, 0), t.strokeStyle && t.strokeText(h, 0, 0), t.restore(), e === "underline" && (i === 0 && t.moveTo(o.x, o.y + A / 8), t.lineTo(l.x, l.y + A / 5));
    }), e === "underline" && (t.lineWidth = A / 20, t.strokeStyle = a, t.stroke(), t.closePath()), t.restore();
  }
  getLetterSpacingAt() {
    var t = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : 0;
    return this.letterSpacingCache[t] || 0;
  }
  findSegmentToFitChar(t, e, A, n, a, s, i, o, l) {
    var u = s, h = this.measureText(t, o);
    o === " " && e === "justify" && A < n && (h += (n - A) / a), l > -1 && (u += this.getLetterSpacingAt(l));
    var g = this.textHeight / 20, c = this.getEquidistantPointOnPath(u, g, 0), p = this.getEquidistantPointOnPath(u + h, g, 0), m = {
      p0: c,
      p1: p
    }, y = c && p ? Math.atan2(p.y - c.y, p.x - c.x) : 0;
    if (i) {
      var w = Math.cos(Math.PI / 2 + y) * i, E = Math.cos(-y) * i;
      m.p0 = Vu(Vu({}, c), {}, {
        x: c.x + w,
        y: c.y + E
      }), m.p1 = Vu(Vu({}, p), {}, {
        x: p.x + w,
        y: p.y + E
      });
    }
    return u += h, {
      offset: u,
      segment: m,
      rotation: y
    };
  }
  measureText(t, e) {
    var {
      measuresCache: A
    } = this, n = e || this.getText();
    if (A.has(n))
      return A.get(n);
    var a = this.measureTargetText(t, n);
    return A.set(n, a), a;
  }
  // This method supposes what all custom fonts already loaded.
  // If some font will be loaded after this method call, <textPath> will not be rendered correctly.
  // You need to call this method manually to update glyphs cache.
  setTextData(t) {
    if (!this.glyphInfo) {
      var e = this.getText(), A = e.split(""), n = e.split(" ").length - 1, a = this.parent.getAttribute("dx").split().map((F) => F.getPixels("x")), s = this.parent.getAttribute("dy").getPixels("y"), i = this.parent.getStyle("text-anchor").getString("start"), o = this.getStyle("letter-spacing"), l = this.parent.getStyle("letter-spacing"), u = 0;
      !o.hasValue() || o.getValue() === "inherit" ? u = l.getPixels() : o.hasValue() && o.getValue() !== "initial" && o.getValue() !== "unset" && (u = o.getPixels());
      var h = [], g = e.length;
      this.letterSpacingCache = h;
      for (var c = 0; c < g; c++)
        h.push(typeof a[c] < "u" ? a[c] : u);
      var p = h.reduce((F, H, q) => q === 0 ? 0 : F + H || 0, 0), m = this.measureText(t), y = Math.max(m + p, 0);
      this.textWidth = m, this.textHeight = this.getFontSize(), this.glyphInfo = [];
      var w = this.getPathLength(), E = this.getStyle("startOffset").getNumber(0) * w, C = 0;
      (i === "middle" || i === "center") && (C = -y / 2), (i === "end" || i === "right") && (C = -y), C += E, A.forEach((F, H) => {
        var {
          offset: q,
          segment: N,
          rotation: M
        } = this.findSegmentToFitChar(t, i, y, w, n, C, s, F, H);
        C = q, !(!N.p0 || !N.p1) && this.glyphInfo.push({
          // transposeX: midpoint.x,
          // transposeY: midpoint.y,
          text: A[H],
          p0: N.p0,
          p1: N.p1,
          rotation: M
        });
      });
    }
  }
  parsePathData(t) {
    if (this.pathLength = -1, !t)
      return [];
    var e = [], {
      pathParser: A
    } = t;
    for (A.reset(); !A.isEnd(); ) {
      var {
        current: n
      } = A, a = n ? n.x : 0, s = n ? n.y : 0, i = A.next(), o = i.type, l = [];
      switch (i.type) {
        case mA.MOVE_TO:
          this.pathM(A, l);
          break;
        case mA.LINE_TO:
          o = this.pathL(A, l);
          break;
        case mA.HORIZ_LINE_TO:
          o = this.pathH(A, l);
          break;
        case mA.VERT_LINE_TO:
          o = this.pathV(A, l);
          break;
        case mA.CURVE_TO:
          this.pathC(A, l);
          break;
        case mA.SMOOTH_CURVE_TO:
          o = this.pathS(A, l);
          break;
        case mA.QUAD_TO:
          this.pathQ(A, l);
          break;
        case mA.SMOOTH_QUAD_TO:
          o = this.pathT(A, l);
          break;
        case mA.ARC:
          l = this.pathA(A);
          break;
        case mA.CLOSE_PATH:
          XA.pathZ(A);
          break;
      }
      i.type !== mA.CLOSE_PATH ? e.push({
        type: o,
        points: l,
        start: {
          x: a,
          y: s
        },
        pathLength: this.calcLength(a, s, o, l)
      }) : e.push({
        type: mA.CLOSE_PATH,
        points: [],
        pathLength: 0
      });
    }
    return e;
  }
  pathM(t, e) {
    var {
      x: A,
      y: n
    } = XA.pathM(t).point;
    e.push(A, n);
  }
  pathL(t, e) {
    var {
      x: A,
      y: n
    } = XA.pathL(t).point;
    return e.push(A, n), mA.LINE_TO;
  }
  pathH(t, e) {
    var {
      x: A,
      y: n
    } = XA.pathH(t).point;
    return e.push(A, n), mA.LINE_TO;
  }
  pathV(t, e) {
    var {
      x: A,
      y: n
    } = XA.pathV(t).point;
    return e.push(A, n), mA.LINE_TO;
  }
  pathC(t, e) {
    var {
      point: A,
      controlPoint: n,
      currentPoint: a
    } = XA.pathC(t);
    e.push(A.x, A.y, n.x, n.y, a.x, a.y);
  }
  pathS(t, e) {
    var {
      point: A,
      controlPoint: n,
      currentPoint: a
    } = XA.pathS(t);
    return e.push(A.x, A.y, n.x, n.y, a.x, a.y), mA.CURVE_TO;
  }
  pathQ(t, e) {
    var {
      controlPoint: A,
      currentPoint: n
    } = XA.pathQ(t);
    e.push(A.x, A.y, n.x, n.y);
  }
  pathT(t, e) {
    var {
      controlPoint: A,
      currentPoint: n
    } = XA.pathT(t);
    return e.push(A.x, A.y, n.x, n.y), mA.QUAD_TO;
  }
  pathA(t) {
    var {
      rX: e,
      rY: A,
      sweepFlag: n,
      xAxisRotation: a,
      centp: s,
      a1: i,
      ad: o
    } = XA.pathA(t);
    return n === 0 && o > 0 && (o -= 2 * Math.PI), n === 1 && o < 0 && (o += 2 * Math.PI), [s.x, s.y, e, A, i, o, a, n];
  }
  calcLength(t, e, A, n) {
    var a = 0, s = null, i = null, o = 0;
    switch (A) {
      case mA.LINE_TO:
        return this.getLineLength(t, e, n[0], n[1]);
      case mA.CURVE_TO:
        for (a = 0, s = this.getPointOnCubicBezier(0, t, e, n[0], n[1], n[2], n[3], n[4], n[5]), o = 0.01; o <= 1; o += 0.01)
          i = this.getPointOnCubicBezier(o, t, e, n[0], n[1], n[2], n[3], n[4], n[5]), a += this.getLineLength(s.x, s.y, i.x, i.y), s = i;
        return a;
      case mA.QUAD_TO:
        for (a = 0, s = this.getPointOnQuadraticBezier(0, t, e, n[0], n[1], n[2], n[3]), o = 0.01; o <= 1; o += 0.01)
          i = this.getPointOnQuadraticBezier(o, t, e, n[0], n[1], n[2], n[3]), a += this.getLineLength(s.x, s.y, i.x, i.y), s = i;
        return a;
      case mA.ARC: {
        a = 0;
        var l = n[4], u = n[5], h = n[4] + u, g = Math.PI / 180;
        if (Math.abs(l - h) < g && (g = Math.abs(l - h)), s = this.getPointOnEllipticalArc(n[0], n[1], n[2], n[3], l, 0), u < 0)
          for (o = l - g; o > h; o -= g)
            i = this.getPointOnEllipticalArc(n[0], n[1], n[2], n[3], o, 0), a += this.getLineLength(s.x, s.y, i.x, i.y), s = i;
        else
          for (o = l + g; o < h; o += g)
            i = this.getPointOnEllipticalArc(n[0], n[1], n[2], n[3], o, 0), a += this.getLineLength(s.x, s.y, i.x, i.y), s = i;
        return i = this.getPointOnEllipticalArc(n[0], n[1], n[2], n[3], h, 0), a += this.getLineLength(s.x, s.y, i.x, i.y), a;
      }
    }
    return 0;
  }
  getPointOnLine(t, e, A, n, a) {
    var s = arguments.length > 5 && arguments[5] !== void 0 ? arguments[5] : e, i = arguments.length > 6 && arguments[6] !== void 0 ? arguments[6] : A, o = (a - A) / (n - e + Ps), l = Math.sqrt(t * t / (1 + o * o));
    n < e && (l *= -1);
    var u = o * l, h = null;
    if (n === e)
      h = {
        x: s,
        y: i + u
      };
    else if ((i - A) / (s - e + Ps) === o)
      h = {
        x: s + l,
        y: i + u
      };
    else {
      var g = 0, c = 0, p = this.getLineLength(e, A, n, a);
      if (p < Ps)
        return null;
      var m = (s - e) * (n - e) + (i - A) * (a - A);
      m /= p * p, g = e + m * (n - e), c = A + m * (a - A);
      var y = this.getLineLength(s, i, g, c), w = Math.sqrt(t * t - y * y);
      l = Math.sqrt(w * w / (1 + o * o)), n < e && (l *= -1), u = o * l, h = {
        x: g + l,
        y: c + u
      };
    }
    return h;
  }
  getPointOnPath(t) {
    var e = this.getPathLength(), A = 0, n = null;
    if (t < -5e-5 || t - 5e-5 > e)
      return null;
    var {
      dataArray: a
    } = this;
    for (var s of a) {
      if (s && (s.pathLength < 5e-5 || A + s.pathLength + 5e-5 < t)) {
        A += s.pathLength;
        continue;
      }
      var i = t - A, o = 0;
      switch (s.type) {
        case mA.LINE_TO:
          n = this.getPointOnLine(i, s.start.x, s.start.y, s.points[0], s.points[1], s.start.x, s.start.y);
          break;
        case mA.ARC: {
          var l = s.points[4], u = s.points[5], h = s.points[4] + u;
          if (o = l + i / s.pathLength * u, u < 0 && o < h || u >= 0 && o > h)
            break;
          n = this.getPointOnEllipticalArc(s.points[0], s.points[1], s.points[2], s.points[3], o, s.points[6]);
          break;
        }
        case mA.CURVE_TO:
          o = i / s.pathLength, o > 1 && (o = 1), n = this.getPointOnCubicBezier(o, s.start.x, s.start.y, s.points[0], s.points[1], s.points[2], s.points[3], s.points[4], s.points[5]);
          break;
        case mA.QUAD_TO:
          o = i / s.pathLength, o > 1 && (o = 1), n = this.getPointOnQuadraticBezier(o, s.start.x, s.start.y, s.points[0], s.points[1], s.points[2], s.points[3]);
          break;
      }
      if (n)
        return n;
      break;
    }
    return null;
  }
  getLineLength(t, e, A, n) {
    return Math.sqrt((A - t) * (A - t) + (n - e) * (n - e));
  }
  getPathLength() {
    return this.pathLength === -1 && (this.pathLength = this.dataArray.reduce((t, e) => e.pathLength > 0 ? t + e.pathLength : t, 0)), this.pathLength;
  }
  getPointOnCubicBezier(t, e, A, n, a, s, i, o, l) {
    var u = o * Pp(t) + s * Kp(t) + n * Vp(t) + e * qp(t), h = l * Pp(t) + i * Kp(t) + a * Vp(t) + A * qp(t);
    return {
      x: u,
      y: h
    };
  }
  getPointOnQuadraticBezier(t, e, A, n, a, s, i) {
    var o = s * jp(t) + n * Wp(t) + e * Gp(t), l = i * jp(t) + a * Wp(t) + A * Gp(t);
    return {
      x: o,
      y: l
    };
  }
  getPointOnEllipticalArc(t, e, A, n, a, s) {
    var i = Math.cos(s), o = Math.sin(s), l = {
      x: A * Math.cos(a),
      y: n * Math.sin(a)
    };
    return {
      x: t + (l.x * i - l.y * o),
      y: e + (l.x * o + l.y * i)
    };
  }
  // TODO need some optimisations. possibly build cache only for curved segments?
  buildEquidistantCache(t, e) {
    var A = this.getPathLength(), n = e || 0.25, a = t || A / 100;
    if (!this.equidistantCache || this.equidistantCache.step !== a || this.equidistantCache.precision !== n) {
      this.equidistantCache = {
        step: a,
        precision: n,
        points: []
      };
      for (var s = 0, i = 0; i <= A; i += n) {
        var o = this.getPointOnPath(i), l = this.getPointOnPath(i + n);
        !o || !l || (s += this.getLineLength(o.x, o.y, l.x, l.y), s >= a && (this.equidistantCache.points.push({
          x: o.x,
          y: o.y,
          distance: i
        }), s -= a));
      }
    }
  }
  getEquidistantPointOnPath(t, e, A) {
    if (this.buildEquidistantCache(e, A), t < 0 || t - this.getPathLength() > 5e-5)
      return null;
    var n = Math.round(t / this.getPathLength() * (this.equidistantCache.points.length - 1));
    return this.equidistantCache.points[n] || null;
  }
}
var G8 = /^\s*data:(([^/,;]+\/[^/,;]+)(?:;([^,;=]+=[^,;=]+))?)?(?:;(base64))?,(.*)$/i;
class n4 extends ws {
  constructor(t, e, A) {
    super(t, e, A), this.type = "image", this.loaded = !1;
    var n = this.getHrefAttribute().getString();
    if (n) {
      var a = n.endsWith(".svg") || /^\s*data:image\/svg\+xml/i.test(n);
      t.images.push(this), a ? this.loadSvg(n) : this.loadImage(n), this.isSvg = a;
    }
  }
  loadImage(t) {
    var e = this;
    return Mi(function* () {
      try {
        var A = yield e.document.createImage(t);
        e.image = A;
      } catch (n) {
        console.error('Error while loading image "'.concat(t, '":'), n);
      }
      e.loaded = !0;
    })();
  }
  loadSvg(t) {
    var e = this;
    return Mi(function* () {
      var A = G8.exec(t);
      if (A) {
        var n = A[5];
        A[4] === "base64" ? e.image = atob(n) : e.image = decodeURIComponent(n);
      } else
        try {
          var a = yield e.document.fetch(t), s = yield a.text();
          e.image = s;
        } catch (i) {
          console.error('Error while loading image "'.concat(t, '":'), i);
        }
      e.loaded = !0;
    })();
  }
  renderChildren(t) {
    var {
      document: e,
      image: A,
      loaded: n
    } = this, a = this.getAttribute("x").getPixels("x"), s = this.getAttribute("y").getPixels("y"), i = this.getStyle("width").getPixels("x"), o = this.getStyle("height").getPixels("y");
    if (!(!n || !A || !i || !o)) {
      if (t.save(), t.translate(a, s), this.isSvg) {
        var l = e.canvg.forkString(t, this.image, {
          ignoreMouse: !0,
          ignoreAnimation: !0,
          ignoreDimensions: !0,
          ignoreClear: !0,
          offsetX: 0,
          offsetY: 0,
          scaleWidth: i,
          scaleHeight: o
        });
        l.document.documentElement.parent = this, l.render();
      } else {
        var u = this.image;
        e.setViewBox({
          ctx: t,
          aspectRatio: this.getAttribute("preserveAspectRatio").getString(),
          width: i,
          desiredWidth: u.width,
          height: o,
          desiredHeight: u.height
        }), this.loaded && (typeof u.complete > "u" || u.complete) && t.drawImage(u, 0, 0);
      }
      t.restore();
    }
  }
  getBoundingBox() {
    var t = this.getAttribute("x").getPixels("x"), e = this.getAttribute("y").getPixels("y"), A = this.getStyle("width").getPixels("x"), n = this.getStyle("height").getPixels("y");
    return new Oa(t, e, t + A, e + n);
  }
}
class a4 extends ws {
  constructor() {
    super(...arguments), this.type = "symbol";
  }
  render(t) {
  }
}
class i4 {
  constructor(t) {
    this.document = t, this.loaded = !1, t.fonts.push(this);
  }
  load(t, e) {
    var A = this;
    return Mi(function* () {
      try {
        var {
          document: n
        } = A, a = yield n.canvg.parser.load(e), s = a.getElementsByTagName("font");
        Array.from(s).forEach((i) => {
          var o = n.createElement(i);
          n.definitions[t] = o;
        });
      } catch (i) {
        console.error('Error while loading font "'.concat(e, '":'), i);
      }
      A.loaded = !0;
    })();
  }
}
class Nv extends gr {
  constructor(t, e, A) {
    super(t, e, A), this.type = "style";
    var n = $s(
      Array.from(e.childNodes).map((s) => s.textContent).join("").replace(/(\/\*([^*]|[\r\n]|(\*+([^*/]|[\r\n])))*\*+\/)|(^[\s]*\/\/.*)/gm, "").replace(/@import.*;/g, "")
      // remove imports
    ), a = n.split("}");
    a.forEach((s) => {
      var i = s.trim();
      if (i) {
        var o = i.split("{"), l = o[0].split(","), u = o[1].split(";");
        l.forEach((h) => {
          var g = h.trim();
          if (g) {
            var c = t.styles[g] || {};
            if (u.forEach((y) => {
              var w = y.indexOf(":"), E = y.substr(0, w).trim(), C = y.substr(w + 1, y.length - w).trim();
              E && C && (c[E] = new AA(t, E, C));
            }), t.styles[g] = c, t.stylesSpecificity[g] = TC(g), g === "@font-face") {
              var p = c["font-family"].getString().replace(/"|'/g, ""), m = c.src.getString().split(",");
              m.forEach((y) => {
                if (y.indexOf('format("svg")') > 0) {
                  var w = Tv(y);
                  w && new i4(t).load(p, w);
                }
              });
            }
          }
        });
      }
    });
  }
}
Nv.parseExternalUrl = Tv;
class s4 extends ws {
  constructor() {
    super(...arguments), this.type = "use";
  }
  setContext(t) {
    super.setContext(t);
    var e = this.getAttribute("x"), A = this.getAttribute("y");
    e.hasValue() && t.translate(e.getPixels("x"), 0), A.hasValue() && t.translate(0, A.getPixels("y"));
  }
  path(t) {
    var {
      element: e
    } = this;
    e && e.path(t);
  }
  renderChildren(t) {
    var {
      document: e,
      element: A
    } = this;
    if (A) {
      var n = A;
      if (A.type === "symbol" && (n = new No(e, null), n.attributes.viewBox = new AA(e, "viewBox", A.getAttribute("viewBox").getString()), n.attributes.preserveAspectRatio = new AA(e, "preserveAspectRatio", A.getAttribute("preserveAspectRatio").getString()), n.attributes.overflow = new AA(e, "overflow", A.getAttribute("overflow").getString()), n.children = A.children, A.styles.opacity = new AA(e, "opacity", this.calculateOpacity())), n.type === "svg") {
        var a = this.getStyle("width", !1, !0), s = this.getStyle("height", !1, !0);
        a.hasValue() && (n.attributes.width = new AA(e, "width", a.getString())), s.hasValue() && (n.attributes.height = new AA(e, "height", s.getString()));
      }
      var i = n.parent;
      n.parent = this, n.render(t), n.parent = i;
    }
  }
  getBoundingBox(t) {
    var {
      element: e
    } = this;
    return e ? e.getBoundingBox(t) : null;
  }
  elementTransform() {
    var {
      document: t,
      element: e
    } = this;
    return vs.fromElement(t, e);
  }
  get element() {
    return this.cachedElement || (this.cachedElement = this.getHrefAttribute().getDefinition()), this.cachedElement;
  }
}
function qu(r, t, e, A, n, a) {
  return r[e * A * 4 + t * 4 + a];
}
function ju(r, t, e, A, n, a, s) {
  r[e * A * 4 + t * 4 + a] = s;
}
function Jr(r, t, e) {
  var A = r[t];
  return A * e;
}
function Ti(r, t, e, A) {
  return t + Math.cos(r) * e + Math.sin(r) * A;
}
class Mv extends gr {
  constructor(t, e, A) {
    super(t, e, A), this.type = "feColorMatrix";
    var n = ia(this.getAttribute("values").getString());
    switch (this.getAttribute("type").getString("matrix")) {
      // http://www.w3.org/TR/SVG/filters.html#feColorMatrixElement
      case "saturate": {
        var a = n[0];
        n = [0.213 + 0.787 * a, 0.715 - 0.715 * a, 0.072 - 0.072 * a, 0, 0, 0.213 - 0.213 * a, 0.715 + 0.285 * a, 0.072 - 0.072 * a, 0, 0, 0.213 - 0.213 * a, 0.715 - 0.715 * a, 0.072 + 0.928 * a, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1];
        break;
      }
      case "hueRotate": {
        var s = n[0] * Math.PI / 180;
        n = [Ti(s, 0.213, 0.787, -0.213), Ti(s, 0.715, -0.715, -0.715), Ti(s, 0.072, -0.072, 0.928), 0, 0, Ti(s, 0.213, -0.213, 0.143), Ti(s, 0.715, 0.285, 0.14), Ti(s, 0.072, -0.072, -0.283), 0, 0, Ti(s, 0.213, -0.213, -0.787), Ti(s, 0.715, -0.715, 0.715), Ti(s, 0.072, 0.928, 0.072), 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1];
        break;
      }
      case "luminanceToAlpha":
        n = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0.2125, 0.7154, 0.0721, 0, 0, 0, 0, 0, 0, 1];
        break;
    }
    this.matrix = n, this.includeOpacity = this.getAttribute("includeOpacity").hasValue();
  }
  apply(t, e, A, n, a) {
    for (var {
      includeOpacity: s,
      matrix: i
    } = this, o = t.getImageData(0, 0, n, a), l = 0; l < a; l++)
      for (var u = 0; u < n; u++) {
        var h = qu(o.data, u, l, n, a, 0), g = qu(o.data, u, l, n, a, 1), c = qu(o.data, u, l, n, a, 2), p = qu(o.data, u, l, n, a, 3), m = Jr(i, 0, h) + Jr(i, 1, g) + Jr(i, 2, c) + Jr(i, 3, p) + Jr(i, 4, 1), y = Jr(i, 5, h) + Jr(i, 6, g) + Jr(i, 7, c) + Jr(i, 8, p) + Jr(i, 9, 1), w = Jr(i, 10, h) + Jr(i, 11, g) + Jr(i, 12, c) + Jr(i, 13, p) + Jr(i, 14, 1), E = Jr(i, 15, h) + Jr(i, 16, g) + Jr(i, 17, c) + Jr(i, 18, p) + Jr(i, 19, 1);
        s && (m = 0, y = 0, w = 0, E *= p / 255), ju(o.data, u, l, n, a, 0, m), ju(o.data, u, l, n, a, 1, y), ju(o.data, u, l, n, a, 2, w), ju(o.data, u, l, n, a, 3, E);
      }
    t.clearRect(0, 0, n, a), t.putImageData(o, 0, 0);
  }
}
class Pl extends gr {
  constructor() {
    super(...arguments), this.type = "mask";
  }
  apply(t, e) {
    var {
      document: A
    } = this, n = this.getAttribute("x").getPixels("x"), a = this.getAttribute("y").getPixels("y"), s = this.getStyle("width").getPixels("x"), i = this.getStyle("height").getPixels("y");
    if (!s && !i) {
      var o = new Oa();
      this.children.forEach((p) => {
        o.addBoundingBox(p.getBoundingBox(t));
      }), n = Math.floor(o.x1), a = Math.floor(o.y1), s = Math.floor(o.width), i = Math.floor(o.height);
    }
    var l = this.removeStyles(e, Pl.ignoreStyles), u = A.createCanvas(n + s, a + i), h = u.getContext("2d");
    A.screen.setDefaults(h), this.renderChildren(h), new Mv(A, {
      nodeType: 1,
      childNodes: [],
      attributes: [{
        nodeName: "type",
        value: "luminanceToAlpha"
      }, {
        nodeName: "includeOpacity",
        value: "true"
      }]
    }).apply(h, 0, 0, n + s, a + i);
    var g = A.createCanvas(n + s, a + i), c = g.getContext("2d");
    A.screen.setDefaults(c), e.render(c), c.globalCompositeOperation = "destination-in", c.fillStyle = h.createPattern(u, "no-repeat"), c.fillRect(0, 0, n + s, a + i), t.fillStyle = c.createPattern(g, "no-repeat"), t.fillRect(0, 0, n + s, a + i), this.restoreStyles(e, l);
  }
  render(t) {
  }
}
Pl.ignoreStyles = ["mask", "transform", "clip-path"];
var _y = () => {
};
class o4 extends gr {
  constructor() {
    super(...arguments), this.type = "clipPath";
  }
  apply(t) {
    var {
      document: e
    } = this, A = Reflect.getPrototypeOf(t), {
      beginPath: n,
      closePath: a
    } = t;
    A && (A.beginPath = _y, A.closePath = _y), Reflect.apply(n, t, []), this.children.forEach((s) => {
      if (!(typeof s.path > "u")) {
        var i = typeof s.elementTransform < "u" ? s.elementTransform() : null;
        i || (i = vs.fromElement(e, s)), i && i.apply(t), s.path(t), A && (A.closePath = a), i && i.unapply(t);
      }
    }), Reflect.apply(a, t, []), t.clip(), A && (A.beginPath = n, A.closePath = a);
  }
  render(t) {
  }
}
class Kl extends gr {
  constructor() {
    super(...arguments), this.type = "filter";
  }
  apply(t, e) {
    var {
      document: A,
      children: n
    } = this, a = e.getBoundingBox(t);
    if (a) {
      var s = 0, i = 0;
      n.forEach((w) => {
        var E = w.extraFilterDistance || 0;
        s = Math.max(s, E), i = Math.max(i, E);
      });
      var o = Math.floor(a.width), l = Math.floor(a.height), u = o + 2 * s, h = l + 2 * i;
      if (!(u < 1 || h < 1)) {
        var g = Math.floor(a.x), c = Math.floor(a.y), p = this.removeStyles(e, Kl.ignoreStyles), m = A.createCanvas(u, h), y = m.getContext("2d");
        A.screen.setDefaults(y), y.translate(-g + s, -c + i), e.render(y), n.forEach((w) => {
          typeof w.apply == "function" && w.apply(y, 0, 0, u, h);
        }), t.drawImage(m, 0, 0, u, h, g - s, c - i, u, h), this.restoreStyles(e, p);
      }
    }
  }
  render(t) {
  }
}
Kl.ignoreStyles = ["filter", "transform", "clip-path"];
class l4 extends gr {
  constructor(t, e, A) {
    super(t, e, A), this.type = "feDropShadow", this.addStylesFromStyleDefinition();
  }
  apply(t, e, A, n, a) {
  }
}
class u4 extends gr {
  constructor() {
    super(...arguments), this.type = "feMorphology";
  }
  apply(t, e, A, n, a) {
  }
}
class c4 extends gr {
  constructor() {
    super(...arguments), this.type = "feComposite";
  }
  apply(t, e, A, n, a) {
  }
}
class f4 extends gr {
  constructor(t, e, A) {
    super(t, e, A), this.type = "feGaussianBlur", this.blurRadius = Math.floor(this.getAttribute("stdDeviation").getNumber()), this.extraFilterDistance = this.blurRadius;
  }
  apply(t, e, A, n, a) {
    var {
      document: s,
      blurRadius: i
    } = this, o = s.window ? s.window.document.body : null, l = t.canvas;
    l.id = s.getUniqueId(), o && (l.style.display = "none", o.appendChild(l)), F8(l, e, A, n, a, i), o && o.removeChild(l);
  }
}
class h4 extends gr {
  constructor() {
    super(...arguments), this.type = "title";
  }
}
class d4 extends gr {
  constructor() {
    super(...arguments), this.type = "desc";
  }
}
var Y8 = {
  svg: No,
  rect: Lv,
  circle: HC,
  ellipse: PC,
  line: KC,
  polyline: Iv,
  polygon: VC,
  path: XA,
  pattern: qC,
  marker: jC,
  defs: WC,
  linearGradient: GC,
  radialGradient: YC,
  stop: $C,
  animate: Zc,
  animateColor: zC,
  animateTransform: XC,
  font: JC,
  "font-face": ZC,
  "missing-glyph": e4,
  glyph: kv,
  text: Oi,
  tspan: Hl,
  tref: t4,
  a: A4,
  textPath: r4,
  image: n4,
  g: Jc,
  symbol: a4,
  style: Nv,
  use: s4,
  mask: Pl,
  clipPath: o4,
  filter: Kl,
  feDropShadow: l4,
  feMorphology: u4,
  feComposite: c4,
  feColorMatrix: Mv,
  feGaussianBlur: f4,
  title: h4,
  desc: d4
};
function Ny(r, t) {
  var e = Object.keys(r);
  if (Object.getOwnPropertySymbols) {
    var A = Object.getOwnPropertySymbols(r);
    t && (A = A.filter(function(n) {
      return Object.getOwnPropertyDescriptor(r, n).enumerable;
    })), e.push.apply(e, A);
  }
  return e;
}
function $8(r) {
  for (var t = 1; t < arguments.length; t++) {
    var e = arguments[t] != null ? arguments[t] : {};
    t % 2 ? Ny(Object(e), !0).forEach(function(A) {
      Uv(r, A, e[A]);
    }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(r, Object.getOwnPropertyDescriptors(e)) : Ny(Object(e)).forEach(function(A) {
      Object.defineProperty(r, A, Object.getOwnPropertyDescriptor(e, A));
    });
  }
  return r;
}
function z8(r, t) {
  var e = document.createElement("canvas");
  return e.width = r, e.height = t, e;
}
function X8(r) {
  return Yp.apply(this, arguments);
}
function Yp() {
  return Yp = Mi(function* (r) {
    var t = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : !1, e = document.createElement("img");
    return t && (e.crossOrigin = "Anonymous"), new Promise((A, n) => {
      e.onload = () => {
        A(e);
      }, e.onerror = (a, s, i, o, l) => {
        n(l);
      }, e.src = r;
    });
  }), Yp.apply(this, arguments);
}
class _i {
  constructor(t) {
    var {
      rootEmSize: e = 12,
      emSize: A = 12,
      createCanvas: n = _i.createCanvas,
      createImage: a = _i.createImage,
      anonymousCrossOrigin: s
    } = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : {};
    this.canvg = t, this.definitions = /* @__PURE__ */ Object.create(null), this.styles = /* @__PURE__ */ Object.create(null), this.stylesSpecificity = /* @__PURE__ */ Object.create(null), this.images = [], this.fonts = [], this.emSizeStack = [], this.uniqueId = 0, this.screen = t.screen, this.rootEmSize = e, this.emSize = A, this.createCanvas = n, this.createImage = this.bindCreateImage(a, s), this.screen.wait(this.isImagesLoaded.bind(this)), this.screen.wait(this.isFontsLoaded.bind(this));
  }
  bindCreateImage(t, e) {
    return typeof e == "boolean" ? (A, n) => t(A, typeof n == "boolean" ? n : e) : t;
  }
  get window() {
    return this.screen.window;
  }
  get fetch() {
    return this.screen.fetch;
  }
  get ctx() {
    return this.screen.ctx;
  }
  get emSize() {
    var {
      emSizeStack: t
    } = this;
    return t[t.length - 1];
  }
  set emSize(t) {
    var {
      emSizeStack: e
    } = this;
    e.push(t);
  }
  popEmSize() {
    var {
      emSizeStack: t
    } = this;
    t.pop();
  }
  getUniqueId() {
    return "canvg".concat(++this.uniqueId);
  }
  isImagesLoaded() {
    return this.images.every((t) => t.loaded);
  }
  isFontsLoaded() {
    return this.fonts.every((t) => t.loaded);
  }
  createDocumentElement(t) {
    var e = this.createElement(t.documentElement);
    return e.root = !0, e.addStylesFromStyleDefinition(), this.documentElement = e, e;
  }
  createElement(t) {
    var e = t.nodeName.replace(/^[^:]+:/, ""), A = _i.elementTypes[e];
    return typeof A < "u" ? new A(this, t) : new RC(this, t);
  }
  createTextNode(t) {
    return new W8(this, t);
  }
  setViewBox(t) {
    this.screen.setViewBox($8({
      document: this
    }, t));
  }
}
_i.createCanvas = z8;
_i.createImage = X8;
_i.elementTypes = Y8;
function My(r, t) {
  var e = Object.keys(r);
  if (Object.getOwnPropertySymbols) {
    var A = Object.getOwnPropertySymbols(r);
    t && (A = A.filter(function(n) {
      return Object.getOwnPropertyDescriptor(r, n).enumerable;
    })), e.push.apply(e, A);
  }
  return e;
}
function Us(r) {
  for (var t = 1; t < arguments.length; t++) {
    var e = arguments[t] != null ? arguments[t] : {};
    t % 2 ? My(Object(e), !0).forEach(function(A) {
      Uv(r, A, e[A]);
    }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(r, Object.getOwnPropertyDescriptors(e)) : My(Object(e)).forEach(function(A) {
      Object.defineProperty(r, A, Object.getOwnPropertyDescriptor(e, A));
    });
  }
  return r;
}
class Ms {
  /**
   * Main constructor.
   * @param ctx - Rendering context.
   * @param svg - SVG Document.
   * @param options - Rendering options.
   */
  constructor(t, e) {
    var A = arguments.length > 2 && arguments[2] !== void 0 ? arguments[2] : {};
    this.parser = new sc(A), this.screen = new Rl(t, A), this.options = A;
    var n = new _i(this, A), a = n.createDocumentElement(e);
    this.document = n, this.documentElement = a;
  }
  /**
   * Create Canvg instance from SVG source string or URL.
   * @param ctx - Rendering context.
   * @param svg - SVG source string or URL.
   * @param options - Rendering options.
   * @returns Canvg instance.
   */
  static from(t, e) {
    var A = arguments;
    return Mi(function* () {
      var n = A.length > 2 && A[2] !== void 0 ? A[2] : {}, a = new sc(n), s = yield a.parse(e);
      return new Ms(t, s, n);
    })();
  }
  /**
   * Create Canvg instance from SVG source string.
   * @param ctx - Rendering context.
   * @param svg - SVG source string.
   * @param options - Rendering options.
   * @returns Canvg instance.
   */
  static fromString(t, e) {
    var A = arguments.length > 2 && arguments[2] !== void 0 ? arguments[2] : {}, n = new sc(A), a = n.parseFromString(e);
    return new Ms(t, a, A);
  }
  /**
   * Create new Canvg instance with inherited options.
   * @param ctx - Rendering context.
   * @param svg - SVG source string or URL.
   * @param options - Rendering options.
   * @returns Canvg instance.
   */
  fork(t, e) {
    var A = arguments.length > 2 && arguments[2] !== void 0 ? arguments[2] : {};
    return Ms.from(t, e, Us(Us({}, this.options), A));
  }
  /**
   * Create new Canvg instance with inherited options.
   * @param ctx - Rendering context.
   * @param svg - SVG source string.
   * @param options - Rendering options.
   * @returns Canvg instance.
   */
  forkString(t, e) {
    var A = arguments.length > 2 && arguments[2] !== void 0 ? arguments[2] : {};
    return Ms.fromString(t, e, Us(Us({}, this.options), A));
  }
  /**
   * Document is ready promise.
   * @returns Ready promise.
   */
  ready() {
    return this.screen.ready();
  }
  /**
   * Document is ready value.
   * @returns Is ready or not.
   */
  isReady() {
    return this.screen.isReady();
  }
  /**
   * Render only first frame, ignoring animations and mouse.
   * @param options - Rendering options.
   */
  render() {
    var t = arguments, e = this;
    return Mi(function* () {
      var A = t.length > 0 && t[0] !== void 0 ? t[0] : {};
      e.start(Us({
        enableRedraw: !0,
        ignoreAnimation: !0,
        ignoreMouse: !0
      }, A)), yield e.ready(), e.stop();
    })();
  }
  /**
   * Start rendering.
   * @param options - Render options.
   */
  start() {
    var t = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : {}, {
      documentElement: e,
      screen: A,
      options: n
    } = this;
    A.start(e, Us(Us({
      enableRedraw: !0
    }, n), t));
  }
  /**
   * Stop rendering.
   */
  stop() {
    this.screen.stop();
  }
  /**
   * Resize SVG to fit in given size.
   * @param width
   * @param height
   * @param preserveAspectRatio
   */
  resize(t) {
    var e = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : t, A = arguments.length > 2 && arguments[2] !== void 0 ? arguments[2] : !1;
    this.documentElement.resize(t, e, A);
  }
}
const J8 = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
  __proto__: null,
  AElement: A4,
  AnimateColorElement: zC,
  AnimateElement: Zc,
  AnimateTransformElement: XC,
  BoundingBox: Oa,
  CB1: Pp,
  CB2: Kp,
  CB3: Vp,
  CB4: qp,
  Canvg: Ms,
  CircleElement: HC,
  ClipPathElement: o4,
  DefsElement: WC,
  DescElement: d4,
  Document: _i,
  Element: gr,
  EllipseElement: PC,
  FeColorMatrixElement: Mv,
  FeCompositeElement: c4,
  FeDropShadowElement: l4,
  FeGaussianBlurElement: f4,
  FeMorphologyElement: u4,
  FilterElement: Kl,
  Font: Hn,
  FontElement: JC,
  FontFaceElement: ZC,
  GElement: Jc,
  GlyphElement: kv,
  GradientElement: _v,
  ImageElement: n4,
  LineElement: KC,
  LinearGradientElement: GC,
  MarkerElement: jC,
  MaskElement: Pl,
  Matrix: Qv,
  MissingGlyphElement: e4,
  Mouse: DC,
  PSEUDO_ZERO: Ps,
  Parser: sc,
  PathElement: XA,
  PathParser: mA,
  PatternElement: qC,
  Point: Rr,
  PolygonElement: VC,
  PolylineElement: Iv,
  Property: AA,
  QB1: jp,
  QB2: Wp,
  QB3: Gp,
  RadialGradientElement: YC,
  RectElement: Lv,
  RenderedElement: ws,
  Rotate: _C,
  SVGElement: No,
  SVGFontLoader: i4,
  Scale: NC,
  Screen: Rl,
  Skew: Dv,
  SkewX: MC,
  SkewY: OC,
  StopElement: $C,
  StyleElement: Nv,
  SymbolElement: a4,
  TRefElement: t4,
  TSpanElement: Hl,
  TextElement: Oi,
  TextPathElement: r4,
  TitleElement: h4,
  Transform: vs,
  Translate: IC,
  UnknownElement: RC,
  UseElement: s4,
  ViewPort: QC,
  compressSpaces: $s,
  default: Ms,
  getSelectorSpecificity: TC,
  normalizeAttributeName: SC,
  normalizeColor: UC,
  parseExternalUrl: Tv,
  presets: T8,
  toNumbers: ia,
  trimLeft: FC,
  trimRight: xC,
  vectorMagnitude: Rp,
  vectorsAngle: Hp,
  vectorsRatio: Ec
}, Symbol.toStringTag, { value: "Module" }));
export {
  BN as GanttChart,
  JU as MilestoneDialog,
  S0 as MilestonePoint,
  XF as TaskBar,
  wU as TaskDrawer,
  fF as TaskList,
  yN as TaskListColumn,
  AF as TaskRow,
  Hx as Timeline,
  tO as default,
  bN as install,
  Ma as useI18n,
  Ky as useMessage
};