UNPKG

@minto-ai/mt-ui

Version:

UI组件库

24,491 lines 1.09 MB
(function(global2, factory) {
  typeof exports === "object" && typeof module !== "undefined" ? factory(exports, require("@minto-ai/tools"), require("vue"), require("@vueuse/core"), require("@popperjs/core")) : typeof define === "function" && define.amd ? define(["exports", "@minto-ai/tools", "vue", "@vueuse/core", "@popperjs/core"], factory) : (global2 = typeof globalThis !== "undefined" ? globalThis : global2 || self, factory(global2.MtUI = {}, global2.tools, global2.Vue, global2.core, global2.core$1));
})(this, function(exports2, tools, vue, core, core$1) {
  "use strict";var __defProp = Object.defineProperty;
var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
var __publicField = (obj, key, value) => __defNormalProp(obj, typeof key !== "symbol" ? key + "" : key, value);

  class Deferred {
    constructor(param = {}) {
      __publicField(this, "promise");
      __publicField(this, "resolve");
      __publicField(this, "reject");
      this.promise = new Promise((resolve, reject) => {
        this.resolve = resolve;
        this.reject = reject;
      });
      Object.entries(param).forEach(([key, value]) => {
        this[key] = value;
      });
    }
  }
  const VALID_CSS_KEYWORD_REGEX = /^(?:fit-content|min-content|max-content|auto|inherit|initial|unset)$/;
  const NUMERIC_STRING_REGEX = /^\d+(?:\.\d+)?$/;
  const PIXEL_UNIT_STRING_REGEX = /^\d+(?:\.\d+)?px$/;
  const PERCENTAGE_STRING_REGEX = /^\d+(?:\.\d+)?%$/;
  const VIEWPORT_UNIT_STRING_REGEX = /^\d+(?:\.\d+)?(?:vw|vh)$/;
  const DESIGN_VIEWPORT_WIDTH_PIXELS = 1920;
  function isValidCssValue(value) {
    if (tools.isNumber(value)) {
      return isSingleCssValueValid(value);
    }
    if (tools.isString(value)) {
      return value.split(/\s+/).every((item) => isSingleCssValueValid(item));
    }
    if (tools.isArray(value)) {
      return value.every((item) => isSingleCssValueValid(item));
    }
    return false;
  }
  function isSingleCssValueValid(value) {
    if (tools.isNumber(value)) {
      return true;
    }
    if (tools.isString(value)) {
      if (value.includes("calc")) {
        return true;
      }
      if (NUMERIC_STRING_REGEX.test(value)) {
        return true;
      }
      if (PIXEL_UNIT_STRING_REGEX.test(value)) {
        return true;
      }
      if (VALID_CSS_KEYWORD_REGEX.test(value)) {
        return true;
      }
      if (PERCENTAGE_STRING_REGEX.test(value)) {
        return true;
      }
      if (VIEWPORT_UNIT_STRING_REGEX.test(value)) {
        return true;
      }
    }
    return false;
  }
  function convertValueToViewportWidth(value) {
    if (tools.isNumber(value)) {
      return convertSingleValueToViewportWidth(value);
    }
    if (tools.isString(value)) {
      return value.split(/\s+/).map((item) => convertSingleValueToViewportWidth(item)).join(" ");
    }
    if (tools.isArray(value)) {
      return value.map((item) => convertSingleValueToViewportWidth(item)).join(" ");
    }
    throw new Error(`Invalid CSS value: ${value}`);
  }
  function convertSingleValueToViewportWidth(value) {
    if (tools.isNumber(value)) {
      return `${tools.multiply(tools.divide(value, DESIGN_VIEWPORT_WIDTH_PIXELS), 100)}vw`;
    }
    if (tools.isString(value)) {
      if (NUMERIC_STRING_REGEX.test(value)) {
        return `${tools.multiply(tools.divide(tools.beParsedAsNumber(value), DESIGN_VIEWPORT_WIDTH_PIXELS), 100)}vw`;
      }
      if (PIXEL_UNIT_STRING_REGEX.test(value)) {
        return `${tools.multiply(tools.divide(tools.beParsedAsNumber(value), DESIGN_VIEWPORT_WIDTH_PIXELS), 100)}vw`;
      }
      if (VALID_CSS_KEYWORD_REGEX.test(value)) {
        return value;
      }
      if (PERCENTAGE_STRING_REGEX.test(value)) {
        return value;
      }
      if (VIEWPORT_UNIT_STRING_REGEX.test(value)) {
        return value;
      }
    }
    throw new Error(`Invalid CSS value: ${value}`);
  }
  function NOOP() {
  }
  const componentSize = [
    "normal",
    "small",
    "large"
  ];
  const sizeProp = {
    type: String,
    default: "normal",
    validator: (value) => {
      return componentSize.includes(value);
    }
  };
  function removeEmptyChildren(children) {
    const resultChildren = [];
    children.forEach((child) => {
      if (child.type === vue.Fragment) {
        resultChildren.push(...removeEmptyChildren(child.children));
      } else {
        resultChildren.push(child);
      }
    });
    return resultChildren.filter(
      (child) => {
        var _a;
        return !(child && (child.type === vue.Comment || child.type === vue.Fragment && ((_a = child.children) == null ? void 0 : _a.length) === 0 || child.type === vue.Text && child.children.trim() === ""));
      }
    );
  }
  function withInstall(component) {
    component.install = (app) => {
      const { name: name2 } = component;
      app.component(name2, component);
    };
    return component;
  }
  const id$3 = "4482451";
  const name = "数字人融合web";
  const font_family = "iconfont";
  const css_prefix_text = "icon-";
  const glyphs = [
    {
      icon_id: "45315587",
      name: "尺寸",
      font_class: "putongtubiao",
      unicode: "e70e",
      unicode_decimal: 59150
    },
    {
      icon_id: "44790258",
      name: "做同款",
      font_class: "zuotongkuan",
      unicode: "e70d",
      unicode_decimal: 59149
    },
    {
      icon_id: "44551484",
      name: "参与人数",
      font_class: "canyurenshu",
      unicode: "e70c",
      unicode_decimal: 59148
    },
    {
      icon_id: "44479742",
      name: "智能体广场",
      font_class: "zhinengtiguangchang",
      unicode: "e70b",
      unicode_decimal: 59147
    },
    {
      icon_id: "44295658",
      name: "编辑",
      font_class: "edit-05",
      unicode: "e70a",
      unicode_decimal: 59146
    },
    {
      icon_id: "44212154",
      name: "能提图标加载图",
      font_class: "Frame8",
      unicode: "e709",
      unicode_decimal: 59145
    },
    {
      icon_id: "44199177",
      name: "上传文档",
      font_class: "shangchuanwendang",
      unicode: "e707",
      unicode_decimal: 59143
    },
    {
      icon_id: "44199176",
      name: "上传图片",
      font_class: "shangchuantupian",
      unicode: "e708",
      unicode_decimal: 59144
    },
    {
      icon_id: "39415060",
      name: "语音",
      font_class: "voice1",
      unicode: "e638",
      unicode_decimal: 58936
    },
    {
      icon_id: "44112314",
      name: "公共服务",
      font_class: "gonggongfuwu",
      unicode: "e705",
      unicode_decimal: 59141
    },
    {
      icon_id: "44112313",
      name: "养生建议",
      font_class: "yangshengjianyi",
      unicode: "e706",
      unicode_decimal: 59142
    },
    {
      icon_id: "44112315",
      name: "智能培训",
      font_class: "zhinengpeixun",
      unicode: "e704",
      unicode_decimal: 59140
    },
    {
      icon_id: "44111335",
      name: "企业营销",
      font_class: "qiyeyingxiao",
      unicode: "e6f9",
      unicode_decimal: 59129
    },
    {
      icon_id: "44111336",
      name: "健康检测",
      font_class: "jiankangjiance",
      unicode: "e6fa",
      unicode_decimal: 59130
    },
    {
      icon_id: "44111337",
      name: "疾病筛查",
      font_class: "jibingshaicha",
      unicode: "e6fb",
      unicode_decimal: 59131
    },
    {
      icon_id: "44111338",
      name: "数字导游",
      font_class: "shuzidaoyou",
      unicode: "e6fc",
      unicode_decimal: 59132
    },
    {
      icon_id: "44111334",
      name: "工作汇报",
      font_class: "gongzuohuibao",
      unicode: "e6fd",
      unicode_decimal: 59133
    },
    {
      icon_id: "44111332",
      name: "IP打造",
      font_class: "IPdazao",
      unicode: "e6fe",
      unicode_decimal: 59134
    },
    {
      icon_id: "44111333",
      name: "心里咨询",
      font_class: "xinlizixun",
      unicode: "e6ff",
      unicode_decimal: 59135
    },
    {
      icon_id: "44111331",
      name: "报告解读",
      font_class: "baogaojiedu",
      unicode: "e700",
      unicode_decimal: 59136
    },
    {
      icon_id: "44111330",
      name: "公文写作",
      font_class: "gongwenxiezuo",
      unicode: "e701",
      unicode_decimal: 59137
    },
    {
      icon_id: "44111329",
      name: "党建教育",
      font_class: "dangjianjiaoyu",
      unicode: "e702",
      unicode_decimal: 59138
    },
    {
      icon_id: "44111328",
      name: "VR体验",
      font_class: "VRtiyan",
      unicode: "e703",
      unicode_decimal: 59139
    },
    {
      icon_id: "44111343",
      name: "智能客服",
      font_class: "zhinengkefu",
      unicode: "e6f3",
      unicode_decimal: 59123
    },
    {
      icon_id: "44111342",
      name: "特色课程",
      font_class: "tesekecheng",
      unicode: "e6f4",
      unicode_decimal: 59124
    },
    {
      icon_id: "44111344",
      name: "文旅宣传",
      font_class: "wenlvxuanchuan",
      unicode: "e6f5",
      unicode_decimal: 59125
    },
    {
      icon_id: "44111340",
      name: "数字老师",
      font_class: "shuzilaoshi",
      unicode: "e6f6",
      unicode_decimal: 59126
    },
    {
      icon_id: "44111341",
      name: "知识分享",
      font_class: "zhishifenxiang",
      unicode: "e6f7",
      unicode_decimal: 59127
    },
    {
      icon_id: "44111339",
      name: "品牌宣传",
      font_class: "pinpaixuanchuan",
      unicode: "e6f8",
      unicode_decimal: 59128
    },
    {
      icon_id: "44068075",
      name: "社交",
      font_class: "users-01",
      unicode: "e6f2",
      unicode_decimal: 59122
    },
    {
      icon_id: "44053178",
      name: "保存名片",
      font_class: "baocunmingpian",
      unicode: "e6ef",
      unicode_decimal: 59119
    },
    {
      icon_id: "44053107",
      name: "地址",
      font_class: "dizhi",
      unicode: "e6f1",
      unicode_decimal: 59121
    },
    {
      icon_id: "44053112",
      name: "去对话",
      font_class: "quduihua",
      unicode: "e6eb",
      unicode_decimal: 59115
    },
    {
      icon_id: "44053113",
      name: "邮箱",
      font_class: "youxiang",
      unicode: "e6ec",
      unicode_decimal: 59116
    },
    {
      icon_id: "44053110",
      name: "公司",
      font_class: "gongsi",
      unicode: "e6ed",
      unicode_decimal: 59117
    },
    {
      icon_id: "44053111",
      name: "电话",
      font_class: "dianhua",
      unicode: "e6ee",
      unicode_decimal: 59118
    },
    {
      icon_id: "44053108",
      name: "箭头-向下",
      font_class: "jiantou-xiangxia",
      unicode: "e6f0",
      unicode_decimal: 59120
    },
    {
      icon_id: "43943126",
      name: "导入",
      font_class: "daoru",
      unicode: "e6e9",
      unicode_decimal: 59113
    },
    {
      icon_id: "43943125",
      name: "链接",
      font_class: "lianjie",
      unicode: "e6ea",
      unicode_decimal: 59114
    },
    {
      icon_id: "43770823",
      name: "清除",
      font_class: "qingchu",
      unicode: "e6e8",
      unicode_decimal: 59112
    },
    {
      icon_id: "43631693",
      name: "上",
      font_class: "shang",
      unicode: "e6e6",
      unicode_decimal: 59110
    },
    {
      icon_id: "43631694",
      name: "下",
      font_class: "xia",
      unicode: "e6e7",
      unicode_decimal: 59111
    },
    {
      icon_id: "43615562",
      name: "闭眼",
      font_class: "a-Frame1321315885",
      unicode: "e6e5",
      unicode_decimal: 59109
    },
    {
      icon_id: "43570631",
      name: "暂停",
      font_class: "a-Rectangle346241832",
      unicode: "e6e4",
      unicode_decimal: 59108
    },
    {
      icon_id: "43570257",
      name: "缩小",
      font_class: "Frame7",
      unicode: "e6e3",
      unicode_decimal: 59107
    },
    {
      icon_id: "43558376",
      name: "采集",
      font_class: "Frame6",
      unicode: "e6e2",
      unicode_decimal: 59106
    },
    {
      icon_id: "43554396",
      name: "暂停",
      font_class: "Frame5",
      unicode: "e6e1",
      unicode_decimal: 59105
    },
    {
      icon_id: "39372407",
      name: "暂停",
      font_class: "suspend",
      unicode: "e631",
      unicode_decimal: 58929
    },
    {
      icon_id: "43539368",
      name: "播放7",
      font_class: "a-Polygon7",
      unicode: "e609",
      unicode_decimal: 58889
    },
    {
      icon_id: "43533630",
      name: "静音",
      font_class: "volume-x",
      unicode: "e6e0",
      unicode_decimal: 59104
    },
    {
      icon_id: "43531062",
      name: "全屏",
      font_class: "quanping",
      unicode: "e6dc",
      unicode_decimal: 59100
    },
    {
      icon_id: "43531060",
      name: "分享",
      font_class: "fenxiang",
      unicode: "e6dd",
      unicode_decimal: 59101
    },
    {
      icon_id: "43531061",
      name: "声音",
      font_class: "shengyin",
      unicode: "e6df",
      unicode_decimal: 59103
    },
    {
      icon_id: "43282022",
      name: "深度思考",
      font_class: "shendusikao",
      unicode: "e6db",
      unicode_decimal: 59099
    },
    {
      icon_id: "43281593",
      name: "联网搜索",
      font_class: "lianwangsousuo",
      unicode: "e6d8",
      unicode_decimal: 59096
    },
    {
      icon_id: "43281594",
      name: "多智能体思考",
      font_class: "duozhinengtisikao",
      unicode: "e6d9",
      unicode_decimal: 59097
    },
    {
      icon_id: "43281595",
      name: "个性化推荐",
      font_class: "gexinghuatuijian",
      unicode: "e6da",
      unicode_decimal: 59098
    },
    {
      icon_id: "43145738",
      name: "shop",
      font_class: "shop",
      unicode: "e606",
      unicode_decimal: 58886
    },
    {
      icon_id: "43100670",
      name: "love",
      font_class: "love",
      unicode: "e605",
      unicode_decimal: 58885
    },
    {
      icon_id: "43100699",
      name: "good",
      font_class: "good",
      unicode: "e604",
      unicode_decimal: 58884
    },
    {
      icon_id: "43099871",
      name: "fire",
      font_class: "fire",
      unicode: "e603",
      unicode_decimal: 58883
    },
    {
      icon_id: "43053214",
      name: "点赞",
      font_class: "a-IconStroke",
      unicode: "e6d7",
      unicode_decimal: 59095
    },
    {
      icon_id: "42963488",
      name: "能力",
      font_class: "Frame4",
      unicode: "e6d6",
      unicode_decimal: 59094
    },
    {
      icon_id: "42963508",
      name: "数据管理",
      font_class: "Frame3",
      unicode: "e6d5",
      unicode_decimal: 59093
    },
    {
      icon_id: "42963413",
      name: "星星",
      font_class: "xingxing",
      unicode: "e6d3",
      unicode_decimal: 59091
    },
    {
      icon_id: "42963397",
      name: "私域",
      font_class: "siyu",
      unicode: "e6d4",
      unicode_decimal: 59092
    },
    {
      icon_id: "42947863",
      name: "兑换",
      font_class: "Frame2",
      unicode: "e6d2",
      unicode_decimal: 59090
    },
    {
      icon_id: "42918433",
      name: "新手任务中心",
      font_class: "settings-01",
      unicode: "e6d1",
      unicode_decimal: 59089
    },
    {
      icon_id: "42917948",
      name: "任务安排入口",
      font_class: "renwuanpairukou",
      unicode: "e6cf",
      unicode_decimal: 59087
    },
    {
      icon_id: "42917778",
      name: "小人",
      font_class: "xiaoren",
      unicode: "e6d0",
      unicode_decimal: 59088
    },
    {
      icon_id: "42758068",
      name: "购物车",
      font_class: "a-Frame1321315545",
      unicode: "e6ce",
      unicode_decimal: 59086
    },
    {
      icon_id: "42724138",
      name: "替换",
      font_class: "repeat",
      unicode: "e6cd",
      unicode_decimal: 59085
    },
    {
      icon_id: "42724072",
      name: "重新生成",
      font_class: "zhongxinshengcheng",
      unicode: "e6cc",
      unicode_decimal: 59084
    },
    {
      icon_id: "386299",
      name: "危险",
      font_class: "weixian",
      unicode: "e616",
      unicode_decimal: 58902
    },
    {
      icon_id: "42608016",
      name: "发送",
      font_class: "fasong",
      unicode: "e6ca",
      unicode_decimal: 59082
    },
    {
      icon_id: "42608015",
      name: "麦克风",
      font_class: "maikefeng",
      unicode: "e6cb",
      unicode_decimal: 59083
    },
    {
      icon_id: "42507253",
      name: "Group 1321315107",
      font_class: "a-Group1321315107",
      unicode: "e64b",
      unicode_decimal: 58955
    },
    {
      icon_id: "42456251",
      name: "AI生成",
      font_class: "AIshengcheng",
      unicode: "e6c8",
      unicode_decimal: 59080
    },
    {
      icon_id: "42456250",
      name: "下载",
      font_class: "xiazai",
      unicode: "e6c9",
      unicode_decimal: 59081
    },
    {
      icon_id: "42436118",
      name: "left-arrow 1",
      font_class: "a-left-arrow1",
      unicode: "e6c7",
      unicode_decimal: 59079
    },
    {
      icon_id: "42389661",
      name: "付费咨询",
      font_class: "a-Group1321315080",
      unicode: "e64a",
      unicode_decimal: 58954
    },
    {
      icon_id: "42389668",
      name: "播放",
      font_class: "bofang",
      unicode: "e649",
      unicode_decimal: 58953
    },
    {
      icon_id: "42389488",
      name: "播放中",
      font_class: "a-Group1321315079",
      unicode: "e643",
      unicode_decimal: 58947
    },
    {
      icon_id: "42364763",
      name: "钱包",
      font_class: "wallet-02",
      unicode: "e6c6",
      unicode_decimal: 59078
    },
    {
      icon_id: "42362670",
      name: "私域",
      font_class: "dataflow-011",
      unicode: "e6c5",
      unicode_decimal: 59077
    },
    {
      icon_id: "42362658",
      name: "APP",
      font_class: "phone-02",
      unicode: "e6c4",
      unicode_decimal: 59076
    },
    {
      icon_id: "42343201",
      name: "1",
      font_class: "a-1",
      unicode: "e6c3",
      unicode_decimal: 59075
    },
    {
      icon_id: "42306327",
      name: "成员",
      font_class: "Frame1",
      unicode: "e6c2",
      unicode_decimal: 59074
    },
    {
      icon_id: "42302427",
      name: "风格",
      font_class: "fengge",
      unicode: "e6bf",
      unicode_decimal: 59071
    },
    {
      icon_id: "42300902",
      name: "自动执行",
      font_class: "zidongzhihang",
      unicode: "e6c0",
      unicode_decimal: 59072
    },
    {
      icon_id: "42300901",
      name: "模版",
      font_class: "moban",
      unicode: "e6c1",
      unicode_decimal: 59073
    },
    {
      icon_id: "42295901",
      name: "收起",
      font_class: "shouqi",
      unicode: "e6be",
      unicode_decimal: 59070
    },
    {
      icon_id: "8875676",
      name: "微信",
      font_class: "weixin",
      unicode: "e6bd",
      unicode_decimal: 59069
    },
    {
      icon_id: "15933089",
      name: "支付宝",
      font_class: "zhifubao",
      unicode: "e607",
      unicode_decimal: 58887
    },
    {
      icon_id: "42207535",
      name: "bold-safety",
      font_class: "bold-anquan",
      unicode: "e602",
      unicode_decimal: 58882
    },
    {
      icon_id: "42184589",
      name: "收入",
      font_class: "shouru",
      unicode: "e6bb",
      unicode_decimal: 59067
    },
    {
      icon_id: "42184588",
      name: "支出",
      font_class: "zhichu",
      unicode: "e6bc",
      unicode_decimal: 59068
    },
    {
      icon_id: "42158960",
      name: "translate-01",
      font_class: "translate-011",
      unicode: "e6ba",
      unicode_decimal: 59066
    },
    {
      icon_id: "42158953",
      name: "translate-01",
      font_class: "translate-01",
      unicode: "e6b9",
      unicode_decimal: 59065
    },
    {
      icon_id: "42063689",
      name: "日历",
      font_class: "rili",
      unicode: "e6b8",
      unicode_decimal: 59064
    },
    {
      icon_id: "42063054",
      name: "code",
      font_class: "code",
      unicode: "e601",
      unicode_decimal: 58881
    },
    {
      icon_id: "42035380",
      name: "二维码",
      font_class: "erweima",
      unicode: "e6b5",
      unicode_decimal: 59061
    },
    {
      icon_id: "42035379",
      name: "设置",
      font_class: "shezhi",
      unicode: "e6b6",
      unicode_decimal: 59062
    },
    {
      icon_id: "42035378",
      name: "问号",
      font_class: "wenhao",
      unicode: "e6b7",
      unicode_decimal: 59063
    },
    {
      icon_id: "42033679",
      name: "chat-icon",
      font_class: "chat-icon",
      unicode: "e600",
      unicode_decimal: 58880
    },
    {
      icon_id: "41721815",
      name: "私域空间",
      font_class: "dataflow-01",
      unicode: "e6b4",
      unicode_decimal: 59060
    },
    {
      icon_id: "41666567",
      name: "暂停-新",
      font_class: "zanting-xin",
      unicode: "e6b3",
      unicode_decimal: 59059
    },
    {
      icon_id: "41437602",
      name: "切换空间",
      font_class: "a-Frame1142814756",
      unicode: "e63c",
      unicode_decimal: 58940
    },
    {
      icon_id: "41437601",
      name: "西华大学",
      font_class: "a-Frame1142814757",
      unicode: "e63d",
      unicode_decimal: 58941
    },
    {
      icon_id: "41437600",
      name: "复制",
      font_class: "a-Frame1142814753",
      unicode: "e63f",
      unicode_decimal: 58943
    },
    {
      icon_id: "41437604",
      name: "邀请码",
      font_class: "a-Group1321314828",
      unicode: "e639",
      unicode_decimal: 58937
    },
    {
      icon_id: "41437603",
      name: "个人空间",
      font_class: "a-Frame1142814758",
      unicode: "e63a",
      unicode_decimal: 58938
    },
    {
      icon_id: "41365268",
      name: "难受",
      font_class: "Frame",
      unicode: "e6b2",
      unicode_decimal: 59058
    },
    {
      icon_id: "41003791",
      name: "文件",
      font_class: "wenjian1",
      unicode: "e6b1",
      unicode_decimal: 59057
    },
    {
      icon_id: "41003792",
      name: "上传文件",
      font_class: "shangchuanwenjian",
      unicode: "e6b0",
      unicode_decimal: 59056
    },
    {
      icon_id: "40979011",
      name: "叉",
      font_class: "cha",
      unicode: "e6ae",
      unicode_decimal: 59054
    },
    {
      icon_id: "40979010",
      name: "勾",
      font_class: "gou",
      unicode: "e6af",
      unicode_decimal: 59055
    },
    {
      icon_id: "40933540",
      name: "排序",
      font_class: "paixu",
      unicode: "e6ac",
      unicode_decimal: 59052
    },
    {
      icon_id: "40933541",
      name: "拖拽",
      font_class: "tuozhuai",
      unicode: "e6ad",
      unicode_decimal: 59053
    },
    {
      icon_id: "40924469",
      name: "文件",
      font_class: "wenjian",
      unicode: "e665",
      unicode_decimal: 58981
    },
    {
      icon_id: "40868666",
      name: "数字人官网",
      font_class: "shuzirenguanwang",
      unicode: "e660",
      unicode_decimal: 58976
    },
    {
      icon_id: "40868665",
      name: "退出",
      font_class: "tuichu",
      unicode: "e661",
      unicode_decimal: 58977
    },
    {
      icon_id: "40868664",
      name: "仅自己可见",
      font_class: "jinzijikejian",
      unicode: "e662",
      unicode_decimal: 58978
    },
    {
      icon_id: "40868663",
      name: "密码",
      font_class: "mima",
      unicode: "e663",
      unicode_decimal: 58979
    },
    {
      icon_id: "40868662",
      name: "角色设定",
      font_class: "jiaosesheding",
      unicode: "e664",
      unicode_decimal: 58980
    },
    {
      icon_id: "40603723",
      name: "share",
      font_class: "share",
      unicode: "e6de",
      unicode_decimal: 59102
    },
    {
      icon_id: "40509023",
      name: "general-k",
      font_class: "general-k",
      unicode: "e6aa",
      unicode_decimal: 59050
    },
    {
      icon_id: "40509022",
      name: "general-vo",
      font_class: "general-vo",
      unicode: "e6ab",
      unicode_decimal: 59051
    },
    {
      icon_id: "40490231",
      name: "general-sb",
      font_class: "general-sb",
      unicode: "e6a6",
      unicode_decimal: 59046
    },
    {
      icon_id: "40490229",
      name: "general-bc",
      font_class: "general-bc",
      unicode: "e6a7",
      unicode_decimal: 59047
    },
    {
      icon_id: "40490230",
      name: "general-同级",
      font_class: "general-tongji",
      unicode: "e6a8",
      unicode_decimal: 59048
    },
    {
      icon_id: "40490228",
      name: "general-下级",
      font_class: "general-xiaji",
      unicode: "e6a9",
      unicode_decimal: 59049
    },
    {
      icon_id: "35687320",
      name: "pen-line-black",
      font_class: "pen-line-black1",
      unicode: "e64d",
      unicode_decimal: 58957
    },
    {
      icon_id: "40212433",
      name: "icon-bq",
      font_class: "icon-bq",
      unicode: "e6a2",
      unicode_decimal: 59042
    },
    {
      icon_id: "40212432",
      name: "icon-j",
      font_class: "icon-j",
      unicode: "e6a3",
      unicode_decimal: 59043
    },
    {
      icon_id: "40212431",
      name: "icon-image",
      font_class: "icon-image",
      unicode: "e6a4",
      unicode_decimal: 59044
    },
    {
      icon_id: "40212430",
      name: "icon-m",
      font_class: "icon-m",
      unicode: "e6a5",
      unicode_decimal: 59045
    },
    {
      icon_id: "40206656",
      name: "camera",
      font_class: "camera",
      unicode: "e69f",
      unicode_decimal: 59039
    },
    {
      icon_id: "40206655",
      name: "general-dhjz",
      font_class: "general-dhjz",
      unicode: "e6a0",
      unicode_decimal: 59040
    },
    {
      icon_id: "40206654",
      name: "general-addf-line",
      font_class: "general-addf-line",
      unicode: "e6a1",
      unicode_decimal: 59041
    },
    {
      icon_id: "40152663",
      name: "general_more-black2",
      font_class: "general_more-black2",
      unicode: "e69e",
      unicode_decimal: 59038
    },
    {
      icon_id: "40150625",
      name: "dg",
      font_class: "dg",
      unicode: "e69c",
      unicode_decimal: 59036
    },
    {
      icon_id: "40150624",
      name: "wt",
      font_class: "wt",
      unicode: "e69d",
      unicode_decimal: 59037
    },
    {
      icon_id: "39966649",
      name: "添加到",
      font_class: "toAdd",
      unicode: "e64e",
      unicode_decimal: 58958
    },
    {
      icon_id: "35681680",
      name: "方向=左, 颜色=false",
      font_class: "a-fangxiangzuoyansefalse1",
      unicode: "e63b",
      unicode_decimal: 58939
    },
    {
      icon_id: "35681683",
      name: "方向=上, 颜色=false",
      font_class: "a-fangxiangshangyansefalse",
      unicode: "e63e",
      unicode_decimal: 58942
    },
    {
      icon_id: "35681685",
      name: "方向=下, 颜色=false",
      font_class: "a-fangxiangxiayansefalse",
      unicode: "e640",
      unicode_decimal: 58944
    },
    {
      icon_id: "35681686",
      name: "方向=右, 颜色=false",
      font_class: "a-fangxiangyouyansefalse1",
      unicode: "e641",
      unicode_decimal: 58945
    },
    {
      icon_id: "40044200",
      name: "general-star",
      font_class: "general-star",
      unicode: "e699",
      unicode_decimal: 59033
    },
    {
      icon_id: "40044201",
      name: "general-fs",
      font_class: "general-fs",
      unicode: "e69a",
      unicode_decimal: 59034
    },
    {
      icon_id: "40044202",
      name: "general-y",
      font_class: "general-y",
      unicode: "e69b",
      unicode_decimal: 59035
    },
    {
      icon_id: "40033571",
      name: "general-knowledge",
      font_class: "general-knowledge",
      unicode: "e698",
      unicode_decimal: 59032
    },
    {
      icon_id: "40038405",
      name: "general-zl-de",
      font_class: "general-zl-de",
      unicode: "e690",
      unicode_decimal: 59024
    },
    {
      icon_id: "39998430",
      name: "general-fs",
      font_class: "a-general-fs",
      unicode: "e68f",
      unicode_decimal: 59023
    },
    {
      icon_id: "39953790",
      name: "general_folder-2",
      font_class: "general_folder-2",
      unicode: "e691",
      unicode_decimal: 59025
    },
    {
      icon_id: "39953791",
      name: "general-header-动态blue",
      font_class: "general-header-dongtaiblue",
      unicode: "e692",
      unicode_decimal: 59026
    },
    {
      icon_id: "39953792",
      name: "general-?",
      font_class: "a-general-",
      unicode: "e693",
      unicode_decimal: 59027
    },
    {
      icon_id: "39953793",
      name: "general_folder-1",
      font_class: "general_folder-1",
      unicode: "e694",
      unicode_decimal: 59028
    },
    {
      icon_id: "39953794",
      name: "general-delete-bold",
      font_class: "general-delete-bold",
      unicode: "e695",
      unicode_decimal: 59029
    },
    {
      icon_id: "39953795",
      name: "general-delete2-black",
      font_class: "general-delete2-black",
      unicode: "e696",
      unicode_decimal: 59030
    },
    {
      icon_id: "39953796",
      name: "general-lock",
      font_class: "general-lock",
      unicode: "e697",
      unicode_decimal: 59031
    },
    {
      icon_id: "35857658",
      name: "sz-line-black",
      font_class: "sz-line-black",
      unicode: "e623",
      unicode_decimal: 58915
    },
    {
      icon_id: "35857836",
      name: "Alerts_02",
      font_class: "Alerts_02",
      unicode: "e629",
      unicode_decimal: 58921
    },
    {
      icon_id: "35857837",
      name: "Alerts_-false",
      font_class: "Alerts_-false",
      unicode: "e62a",
      unicode_decimal: 58922
    },
    {
      icon_id: "35857839",
      name: "Alerts_-v-blue",
      font_class: "Alerts_-v-blue",
      unicode: "e62b",
      unicode_decimal: 58923
    },
    {
      icon_id: "35857894",
      name: "general_fj-line-gray",
      font_class: "General_fj-line-gray",
      unicode: "e62d",
      unicode_decimal: 58925
    },
    {
      icon_id: "35857895",
      name: "general_sx-line-black",
      font_class: "General_sx-line-black",
      unicode: "e62e",
      unicode_decimal: 58926
    },
    {
      icon_id: "36123273",
      name: "Alerts-2",
      font_class: "Alerts-2",
      unicode: "e62f",
      unicode_decimal: 58927
    },
    {
      icon_id: "36123274",
      name: "Alerts-1",
      font_class: "Alerts-1",
      unicode: "e630",
      unicode_decimal: 58928
    },
    {
      icon_id: "36484870",
      name: "Alerts_-v-blue",
      font_class: "Alerts_-v-blue1",
      unicode: "e642",
      unicode_decimal: 58946
    },
    {
      icon_id: "36484923",
      name: "Alerts_success",
      font_class: "Alerts_success",
      unicode: "e644",
      unicode_decimal: 58948
    },
    {
      icon_id: "36485318",
      name: "方向=右, 颜色=false",
      font_class: "a-fangxiangyouyansefalse",
      unicode: "e645",
      unicode_decimal: 58949
    },
    {
      icon_id: "36485319",
      name: "方向=左, 颜色=false",
      font_class: "a-fangxiangzuoyansefalse",
      unicode: "e646",
      unicode_decimal: 58950
    },
    {
      icon_id: "36485329",
      name: "状态=左, 颜色=false",
      font_class: "a-zhuangtaizuoyansefalse",
      unicode: "e647",
      unicode_decimal: 58951
    },
    {
      icon_id: "36485330",
      name: "状态=右, 颜色=false",
      font_class: "a-zhuangtaiyouyansefalse",
      unicode: "e648",
      unicode_decimal: 58952
    },
    {
      icon_id: "36485413",
      name: "wdbm-line-black",
      font_class: "wdbm-line-black",
      unicode: "e64c",
      unicode_decimal: 58956
    },
    {
      icon_id: "36511533",
      name: "mt-fgbm-line",
      font_class: "mt-fgbm-line",
      unicode: "e654",
      unicode_decimal: 58964
    },
    {
      icon_id: "36840325",
      name: "mt-star-de",
      font_class: "mt-star-de",
      unicode: "e659",
      unicode_decimal: 58969
    },
    {
      icon_id: "36840326",
      name: "mt-star-ac",
      font_class: "mt-star-ac",
      unicode: "e65a",
      unicode_decimal: 58970
    },
    {
      icon_id: "37307108",
      name: "mt-send",
      font_class: "mt-send",
      unicode: "e666",
      unicode_decimal: 58982
    },
    {
      icon_id: "38552674",
      name: "位置",
      font_class: "weizhi",
      unicode: "e667",
      unicode_decimal: 58983
    },
    {
      icon_id: "39829997",
      name: "Frame 1142813915",
      font_class: "a-Frame1142813915",
      unicode: "e669",
      unicode_decimal: 58985
    },
    {
      icon_id: "39829999",
      name: "general_add_line-gray",
      font_class: "general_add_line-gray",
      unicode: "e66a",
      unicode_decimal: 58986
    },
    {
      icon_id: "39830000",
      name: "Alerts_02",
      font_class: "Alerts_021",
      unicode: "e668",
      unicode_decimal: 58984
    },
    {
      icon_id: "39830002",
      name: "general_black-点踩",
      font_class: "general_black-diancai",
      unicode: "e66b",
      unicode_decimal: 58987
    },
    {
      icon_id: "39830003",
      name: "general_black-点赞",
      font_class: "general_black-dianzan",
      unicode: "e66c",
      unicode_decimal: 58988
    },
    {
      icon_id: "39830004",
      name: "general_black-alert",
      font_class: "general_black-alert",
      unicode: "e66d",
      unicode_decimal: 58989
    },
    {
      icon_id: "39830005",
      name: "general__filter-line-gray",
      font_class: "general__filter-line-gray",
      unicode: "e66e",
      unicode_decimal: 58990
    },
    {
      icon_id: "39830006",
      name: "general_black-switch",
      font_class: "general_black-switch",
      unicode: "e66f",
      unicode_decimal: 58991
    },
    {
      icon_id: "39830007",
      name: "general_black-copy",
      font_class: "general_black-copy",
      unicode: "e670",
      unicode_decimal: 58992
    },
    {
      icon_id: "39830008",
      name: "general_black-location",
      font_class: "general_black-location",
      unicode: "e671",
      unicode_decimal: 58993
    },
    {
      icon_id: "39830009",
      name: "general_black-call",
      font_class: "general_black-call",
      unicode: "e672",
      unicode_decimal: 58994
    },
    {
      icon_id: "39830010",
      name: "general_black-New topic",
      font_class: "a-general_black-Newtopic",
      unicode: "e673",
      unicode_decimal: 58995
    },
    {
      icon_id: "39830011",
      name: "general_black-clock-line",
      font_class: "general_black-clock-line",
      unicode: "e674",
      unicode_decimal: 58996
    },
    {
      icon_id: "39830012",
      name: "general_black-car",
      font_class: "general_black-car",
      unicode: "e675",
      unicode_decimal: 58997
    },
    {
      icon_id: "39830013",
      name: "general_bold_like",
      font_class: "general_bold_like",
      unicode: "e676",
      unicode_decimal: 58998
    },
    {
      icon_id: "39830014",
      name: "general_black-img",
      font_class: "general_black-img",
      unicode: "e677",
      unicode_decimal: 58999
    },
    {
      icon_id: "39830015",
      name: "general_bold_dislike",
      font_class: "general_bold_dislike",
      unicode: "e678",
      unicode_decimal: 59e3
    },
    {
      icon_id: "39830016",
      name: "general_black-clock",
      font_class: "general_black-clock",
      unicode: "e679",
      unicode_decimal: 59001
    },
    {
      icon_id: "39830017",
      name: "general_gray_research",
      font_class: "general_gray_research",
      unicode: "e67a",
      unicode_decimal: 59002
    },
    {
      icon_id: "39830018",
      name: "general_bold_video",
      font_class: "general_bold_video",
      unicode: "e67b",
      unicode_decimal: 59003
    },
    {
      icon_id: "39830019",
      name: "general_black-video",
      font_class: "general_black-video",
      unicode: "e67c",
      unicode_decimal: 59004
    },
    {
      icon_id: "39830020",
      name: "general_delete-black",
      font_class: "general_delete-black",
      unicode: "e67d",
      unicode_decimal: 59005
    },
    {
      icon_id: "39830021",
      name: "general_home_blue",
      font_class: "general_home_blue",
      unicode: "e67e",
      unicode_decimal: 59006
    },
    {
      icon_id: "39830022",
      name: "general_more-black",
      font_class: "general_more-black",
      unicode: "e67f",
      unicode_decimal: 59007
    },
    {
      icon_id: "39830023",
      name: "icon_delete_gray-14",
      font_class: "icon_delete_gray-14",
      unicode: "e680",
      unicode_decimal: 59008
    },
    {
      icon_id: "39830025",
      name: "general_read_bold-white",
      font_class: "general_read_bold-white",
      unicode: "e681",
      unicode_decimal: 59009
    },
    {
      icon_id: "39830026",
      name: "general_folder-black-1",
      font_class: "general_folder-black-1",
      unicode: "e682",
      unicode_decimal: 59010
    },
    {
      icon_id: "39830027",
      name: "icon_qa",
      font_class: "icon_qa",
      unicode: "e683",
      unicode_decimal: 59011
    },
    {
      icon_id: "39830028",
      name: "general_delete_line",
      font_class: "general_delete_line",
      unicode: "e684",
      unicode_decimal: 59012
    },
    {
      icon_id: "39830030",
      name: "x_circle",
      font_class: "x_circle",
      unicode: "e685",
      unicode_decimal: 59013
    },
    {
      icon_id: "39830031",
      name: "general_white-maximize",
      font_class: "general_white-maximize",
      unicode: "e686",
      unicode_decimal: 59014
    },
    {
      icon_id: "39830032",
      name: "General_xz_line-blue",
      font_class: "General_xz_line-blue",
      unicode: "e687",
      unicode_decimal: 59015
    },
    {
      icon_id: "39830033",
      name: "general_white-dhjz",
      font_class: "general_white-dhjz",
      unicode: "e688",
      unicode_decimal: 59016
    },
    {
      icon_id: "39830034",
      name: "General_sc_line-blue",
      font_class: "General_sc_line-blue",
      unicode: "e689",
      unicode_decimal: 59017
    },
    {
      icon_id: "39830036",
      name: "general_folder-black",
      font_class: "general_folder-black",
      unicode: "e68a",
      unicode_decimal: 59018
    },
    {
      icon_id: "39830037",
      name: "general_picture",
      font_class: "general_picture",
      unicode: "e68b",
      unicode_decimal: 59019
    },
    {
      icon_id: "39830039",
      name: "general_zb_line-black",
      font_class: "general_zb_line-black",
      unicode: "e68c",
      unicode_decimal: 59020
    },
    {
      icon_id: "39830040",
      name: "notification",
      font_class: "notification",
      unicode: "e68d",
      unicode_decimal: 59021
    },
    {
      icon_id: "39830080",
      name: "general_tool-black",
      font_class: "general_tool-black",
      unicode: "e68e",
      unicode_decimal: 59022
    }
  ];
  const iconfontJson = {
    id: id$3,
    name,
    font_family,
    css_prefix_text,
    glyphs
  };
  const iconClassList = iconfontJson.glyphs.map((item) => `icon-${item.font_class}`);
  const iconProps = {
    /**
     * 图标大小
     */
    size: {
      type: [Number, String],
      validator: (value) => {
        return tools.isNumber(value) || tools.isString(value) && value === "inherit";
      },
      default: "inherit"
    },
    /**
     * 图标颜色
     */
    color: {
      type: String,
      default: "inherit"
    },
    /**
     * 图标名称
     */
    name: {
      type: String,
      required: true,
      validator: (value) => {
        return iconClassList.includes(value);
      }
    },
    /**
     * 图标旋转角度
     */
    rotate: {
      type: Number,
      default: 0
    },
    /**
     * 是否显示可点击指针样式
     */
    clickable: {
      type: Boolean,
      default: false
    }
  };
  const _sfc_main$C = /* @__PURE__ */ vue.defineComponent({
    ...{
      name: "MtIcon"
    },
    __name: "icon",
    props: iconProps,
    setup(__props) {
      const props = __props;
      const iconClasses = vue.computed(() => {
        const classes = [];
        classes.push(`mt-icon`);
        if (props.clickable) {
          classes.push("is-clickable");
        }
        if (props.name) {
          classes.push(`${props.name}`);
        }
        return classes;
      });
      const iconStyles = vue.computed(() => {
        const styles = {};
        if (!tools.checkEmpty(props.color)) {
          styles["--mt-icon-color"] = props.color;
        }
        if (!tools.checkEmpty(props.size)) {
          styles["--mt-icon-color"] = props.color;
          styles["--mt-icon-font-size"] = convertValueToViewportWidth(props.size);
        }
        Object.assign(styles, {
          transform: `rotate(${props.rotate}deg)`
        });
        return styles;
      });
      return (_ctx, _cache) => {
        return vue.openBlock(), vue.createElementBlock("i", {
          class: vue.normalizeClass(iconClasses.value),
          style: vue.normalizeStyle(iconStyles.value)
        }, null, 6);
      };
    }
  });
  const MtIcon = withInstall(_sfc_main$C);
  const loadingProps = {
    /**
     * 加载动画的类型
     */
    type: {
      type: String,
      validator: (value) => {
        return ["spinner"].includes(value);
      },
      default: "spinner"
    },
    /**
     * 加载动画的大小
     */
    size: {
      type: Number,
      default: 42
    },
    /**
     * 加载时显示的文本
     */
    text: {
      type: String,
      default: ""
    }
  };
  const _hoisted_1$p = { class: "mt-loading" };
  const _hoisted_2$i = {
    key: 0,
    class: "mt-loading__text"
  };
  const _sfc_main$B = /* @__PURE__ */ vue.defineComponent({
    ...{
      name: "MtLoading"
    },
    __name: "loading",
    props: loadingProps,
    setup(__props) {
      const props = __props;
      const iconClass = vue.computed(() => {
        const classes = [];
        classes.push(`mt-loading__icon`);
        classes.push(`mt-loading__icon--${props.type}`);
        return classes;
      });
      const iconStyles = vue.computed(() => {
        const styles = {};
        if (!tools.checkEmpty(props.size)) {
          styles["--mt-loading-size"] = convertValueToViewportWidth(props.size);
        }
        return styles;
      });
      return (_ctx, _cache) => {
        return vue.openBlock(), vue.createElementBlock("div", _hoisted_1$p, [
          vue.createElementVNode("div", {
            class: vue.normalizeClass(iconClass.value),
            style: vue.normalizeStyle(iconStyles.value)
          }, null, 6),
          props.text || _ctx.$slots.default ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_2$i, [
            vue.renderSlot(_ctx.$slots, "default", {}, () => [
              vue.createTextVNode(vue.toDisplayString(props.text), 1)
            ])
          ])) : vue.createCommentVNode("", true)
        ]);
      };
    }
  });
  const MtLoading = withInstall(_sfc_main$B);
  const imageProps = {
    /**
     * 图片地址
     */
    src: {
      type: String,
      default: ""
    },
    /**
     * 图片的宽度
     */
    width: {
      type: [Number, String],
      validator: (value) => {
        return isValidCssValue(value);
      },
      default: "100%"
    },
    /**
     * 图片的高度
     */
    height: {
      type: [Number, String],
      validator: (value) => {
        return isValidCssValue(value);
      },
      default: "100%"
    },
    /**
     * 图片缩放模式
     */
    fit: {
      type: String,
      validator: (value) => {
        return ["fill", "contain", "cover", "none", "scale-down"].includes(value);
      },
      default: "cover"
    },
    /**
     * 图片是否可拖动
     */
    draggable: {
      type: Boolean,
      default: false
    },
    /**
     * 懒加载
     */
    lazy: {
      type: Boolean,
      default: false
    }
  };
  const _hoisted_1$o = {
    key: 0,
    class: "mt-image__error"
  };
  const _hoisted_2$h = ["src", "draggable"];
  const _hoisted_3$b = {
    key: 1,
    class: "mt-image__loading"
  };
  const _sfc_main$A = /* @__PURE__ */ vue.defineComponent({
    ...{
      name: "MtImage"
    },
    __name: "image",
    props: imageProps,
    emits: ["load", "error"],
    setup(__props, { emit: __emit }) {
      const props = __props;
      const emits = __emit;
      const imageClasses = vue.computed(() => {
        const classes = ["mt-image"];
        return classes;
      });
      const imageStyles = vue.computed(() => {
        const styles = {};
        if (!tools.checkEmpty(props.width)) {
          styles["--mt-image-width"] = convertValueToViewportWidth(props.width);
        }
        if (!tools.checkEmpty(props.height)) {
          styles["--mt-image-height"] = convertValueToViewportWidth(props.height);
        }
        return styles;
      });
      const hasLoadError = vue.ref(false);
      const isLoading = vue.ref(true);
      const imageSrc = vue.ref("");
      const observer = vue.ref();
      const imageRef = vue.ref(null);
      function loadImage() {
        isLoading.value = true;
        hasLoadError.value = false;
        imageSrc.value = props.src;
      }
      function handleLoad() {
        isLoading.value = false;
        hasLoadError.value = false;
        emits("load");
      }
      function handleError() {
        isLoading.value = false;
        hasLoadError.value = true;
        emits("error");
      }
      function initObserver() {
        observer.value = new IntersectionObserver((entries) => {
          entries.forEach((entry) => {
            if (entry.isIntersecting && !isLoading.value) {
              loadImage();
              observer.value.unobserve(imageRef.value);
            }
          });
        }, {
          threshold: 0.1
        });
        observer.value.observe(imageRef.value);
      }
      vue.watch(
        () => props.src,
        () => {
          if (props.lazy) {
            initObserver();
          } else {
            loadImage();
          }
        }
      );
      vue.onMounted(() => {
        if (props.lazy) {
          initObserver();
        } else {
          loadImage();
        }
      });
      return (_ctx, _cache) => {
        return vue.openBlock(), vue.createElementBlock("div", {
          ref_key: "imageRef",
          ref: imageRef,
          class: vue.normalizeClass(imageClasses.value),
          style: vue.normalizeStyle(imageStyles.value)
        }, [
          hasLoadError.value ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_1$o, [
            vue.renderSlot(_ctx.$slots, "error", {}, () => [
              vue.createVNode(vue.unref(MtIcon), {
                name: "icon-Frame8",
                color: "#CCE0FD",
                size: 50
              })
            ])
          ])) : (vue.openBlock(), vue.createElementBlock(vue.Fragment, { key: 1 }, [
            imageSrc.value !== void 0 ? (vue.openBlock(), vue.createElementBlock("img", {
              key: 0,
              src: imageSrc.value,
              class: "mt-image__img",
              style: vue.normalizeStyle({
                objectFit: _ctx.fit
              }),
              draggable: _ctx.draggable,
              onLoad: handleLoad,
              onError: handleError
            }, null, 44, _hoisted_2$h)) : vue.createCommentVNode("", true),
            isLoading.value ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_3$b, [
              vue.createVNode(vue.unref(MtLoading), { size: 38 })
            ])) : vue.createCommentVNode("", true)
          ], 64))
        ], 6);
      };
    }
  });
  const MtImage = withInstall(_sfc_main$A);
  const avatarImageProps = {
    /**
     * 头像的形状
     */
    shape: {
      type: String,
      default: "circle",
      validator: (value) => ["circle", "square"].includes(value)
    },
    /**
     * 头像的大小
     */
    size: {
      type: Number,
      default: 32
    },
    /**
     * 头像的图片
     */
    src: {
      type: String,
      default: ""
    },
    /**
     * 头像的样式类型
     */
    effect: {
      type: String,
      validator: (value) => {
        return ["dark", "light", "plain"].includes(value);
      },
      default: "dark"
    }
  };
  const _sfc_main$z = /* @__PURE__ */ vue.defineComponent({
    ...{
      name: "MtAvatarImage"
    },
    __name: "avatar-image",
    props: avatarImageProps,
    setup(__props) {
      const props = __props;
      const avatarImageClasses = vue.computed(() => {
        const classes = [];
        classes.push(`mt-avatar-image`);
        classes.push(`mt-avatar-image--${props.effect}`);
        classes.push(`mt-avatar-image--${props.shape}`);
        if (props.src) {
          classes.push(`is-value`);
        }
        return classes;
      });
      const avatarImageStyles = vue.computed(() => {
        const styles = {};
        if (!tools.checkEmpty(props.size)) {
          styles["--mt-avatar-image-width"] = convertValueToViewportWidth(props.size);
          styles["--mt-avatar-image-height"] = convertValueToViewportWidth(props.size);
        }
        return styles;
      });
      return (_ctx, _cache) => {
        return vue.openBlock(), vue.createElementBlock("div", {
          class: vue.normalizeClass(avatarImageClasses.value),
          style: vue.normalizeStyle(avatarImageStyles.value)
        }, [
          vue.createVNode(vue.unref(MtImage), {
            src: props.src
          }, {
            error: vue.withCtx(() => [
              props.effect === "dark" ? (vue.openBlock(), vue.createBlock(vue.unref(MtIcon), {
                key: 0,
                name: "icon-xiaoren",
                color: "#5d89f7",
                size: props.size * 0.7
              }, null, 8, ["size"])) : (vue.openBlock(), vue.createBlock(vue.unref(MtIcon), {
                key: 1,
                name: "icon-Frame8",
                color: "#CCE0FD",
                size: props.size * 0.5
              }, null, 8, ["size"]))
            ]),
            _: 1
          }, 8, ["src"])
        ], 6);
      };
    }
  });
  const MtAvatarImage = withInstall(_sfc_main$z);
  const avatarTextProps = {
    /**
     * 头像的形状
     */
    shape: {
      type: String,
      default: "circle",
      validator: (value) => ["circle", "square"].includes(value)
    },
    /**
     * 头像的大小
     */
    size: {
      type: Number,
      default: 32
    },
    /**
     * 头像的文字
     */
    text: {
      type: String,
      default: ""
    },
    /**
     * 样式风格
     */
    effect: {
      type: String,
      validator: (value) => {
        return ["dark", "light"].includes(value);
      },
      default: "dark"
    }
  };
  const _sfc_main$y = /* @__PURE__ */ vue.defineComponent({
    ...{
      name: "MtAvatarText"
    },
    __name: "avatar-text",
    props: avatarTextProps,
    setup(__props) {
      const props = __props;
      const slots = vue.useSlots();
      const displayText = vue.computed(() => {
        var _a, _b, _c;
        const text = props.text || (((_c = (_b = (_a = slots.default) == null ? void 0 : _a.call(slots)) == null ? void 0 : _b[0]) == null ? void 0 : _c.children) ?? props.text).trim();
        if (text.length >= 4) {
          return text.substring(0, 4);
        }
        return text.substring(0, 1);
      });
      const isDisplayedTextOneChar = vue.computed(() => {
        return displayText.value.length === 1;
      });
      const isDisplayedTextFourChar = vue.computed(() => {
        return displayText.value.length === 4;
      });
      const avatarTextClasses = vue.computed(() => {
        const classes = [];
        classes.push(`mt-avatar-text`);
        classes.push(`mt-avatar-text--${props.effect}`);
        classes.push(`mt-avatar-text--${displayText.value.length}`);
        classes.push(`mt-avatar-image--${props.shape}`);
        return classes;
      });
      const avatarTextStyles = vue.computed(() => {
        const styles = {};
        if (!tools.checkEmpty(props.size)) {
          styles["--mt-avatar-text-padding"] = convertValueToViewportWidth(props.size * 0.15);
          if (isDisplayedTextOneChar.value) {
            styles["--mt-avatar-text-font-size"] = convertValueToViewportWidth(props.size * 0.6);
          }
          if (isDisplayedTextFourChar.value) {
            styles["--mt-avatar-text-font-size"] = convertValueToViewportWidth(props.size * 0.3);
          }
        }
        if (!tools.checkEmpty(props.size)) {
          styles["--mt-avatar-text-width"] = convertValueToViewportWidth(props.size);
          styles["--mt-avatar-text-height"] = convertValueToViewportWidth(props.size);
        }
        return styles;
      });
      return (_ctx, _cache) => {
        return vue.openBlock(), vue.createElementBlock("div", {
          class: vue.normalizeClass(avatarTextClasses.value),
          style: vue.normalizeStyle(avatarTextStyles.value)
        }, [
          (vue.openBlock(true), vue.createElementBlock(vue.Fragment, null, vue.renderList(displayText.value, (text) => {
            return vue.openBlock(), vue.createElementBlock("span", { key: text }, vue.toDisplayString(text), 1);
          }), 128))
        ], 6);
      };
    }
  });
  const MtAvatarText = withInstall(_sfc_main$y);
  const badgeProps = {
    /**
     * 是否展示为小红点
     */
    dot: {
      type: Boolean,
      default: false
    },
    /**
     * 设置徽标的偏移量,数组的两项分别对应水平向右和垂直向下方向的偏移量
     */
    offset: {
      type: Object,
      default: () => [0, 0],
      validator: (value) => {
        return value.length === 2 && value.every((item) => tools.isNumber(item));
      }
    },
    /**
     * 徽标内容
     */
    value: {
      type: [String, Number],
      default: ""
    },
    /**
     * 最大值,超过最大值会显示 {max}+,仅当 value 为数字时有效
     */
    max: {
      type: Number,
      default: 99
    },
    /**
     * 值为零时是否显示 Badge
     */
    zero: {
      type: Boolean,
      default: true
    },
    /**
     * 是否显示
     */
    visible: {
      type: Boolean,
      default: true
    }
  };
  const _hoisted_1$n = { class: "mt-badge" };
  const _sfc_main$x = /* @__PURE__ */ vue.defineComponent({
    ...{
      name: "MtBadge"
    },
    __name: "badge",
    props: badgeProps,
    setup(__props) {
      const props = __props;
      const slots = vue.useSlots();
      const badgeClasses = vue.computed(() => {
        const classes = [];
        classes.push(`mt-badge__content`);
        if (slots.default) {
          classes.push(`mt-badge__content--fixed`);
        }
        if (props.dot) {
          classes.push(`mt-badge__content--dot`);
        }
        return classes;
      });
      const badgeStyles = vue.computed(() => {
        var _a, _b;
        const styles = {};
        styles["margin-right"] = convertValueToViewportWidth(((_a = props.offset) == null ? void 0 : _a[0]) ?? 0);
        styles["margin-top"] = convertValueToViewportWidth(((_b = props.offset) == null ? void 0 : _b[1]) ?? 0);
        return styles;
      });
      const content = vue.computed(() => {
        if (props.dot) {
          return "";
        }
        if (!props.zero && (props.value === 0 || props.value === "0")) {
          return "";
        }
        if (tools.isNumber(props.value)) {
          if (tools.beParsedAsNumber(props.max) < tools.beParsedAsNumber(props.value)) {
            return `${props.max}+`;
          }
        }
        return `${props.value}`;
      });
      return (_ctx, _cache) => {
        return vue.openBlock(), vue.createElementBlock("div", _hoisted_1$n, [
          vue.renderSlot(_ctx.$slots, "default"),
          vue.withDirectives(vue.createElementVNode("div", {
            class: vue.normalizeClass(badgeClasses.value),
            style: vue.normalizeStyle(badgeStyles.value)
          }, vue.toDisplayString(content.value), 7), [
            [vue.vShow, _ctx.visible && (props.dot || content.value)]
          ])
        ]);
      };
    }
  });
  const MtBadge = withInstall(_sfc_main$x);
  const buttonProps = {
    /**
     * 按钮的外观风格
     */
    type: {
      type: String,
      validator: (value) => {
        return ["default", "primary", "error", "success", "noble"].includes(value);
      },
      default: "default"
    },
    /**
     * 按钮的尺寸
     */
    size: sizeProp,
    /**
     * 按钮的宽度
     */
    width: {
      type: [Number, String],
      validator: (value) => {
        return isValidCssValue(value);
      },
      default: "auto"
    },
    /**
     * 按钮的高度
     */
    height: {
      type: [Number, String],
      validator: (value) => {
        return isValidCssValue(value);
      },
      default: "auto"
    },
    /**
     * 控制按钮是否呈现圆角样式
     */
    round: {
      type: Boolean,
      default: false
    },
    /**
     * 按钮是否为圆形按钮
     */
    circle: {
      type: Boolean,
      default: false
    },
    /**
     * 按钮是否处于加载中状态
     */
    loading: {
      type: Boolean,
      default: false
    },
    /**
     * 按钮是否处于禁用状态
     */
    disabled: {
      type: Boolean,
      default: false
    },
    /**
     * 是否为文字按钮
     */
    text: {
      type: Boolean,
      default: false
    },
    /**
     * 是否为块级元素
     */
    block: {
      type: Boolean,
      default: false
    },
    /**
     * 是否为朴素按钮
     */
    plain: {
      type: Boolean,
      default: false
    },
    /**
     * 原生 type 属性
     */
    nativeType: {
      type: String,
      default: "button"
    }
  };
  const _hoisted_1$m = ["disabled", "type"];
  const _hoisted_2$g = { class: "mt-button__content" };
  const _sfc_main$w = /* @__PURE__ */ vue.defineComponent({
    ...{
      name: "MtButton"
    },
    __name: "button",
    props: buttonProps,
    emits: ["click"],
    setup(__props, { emit: __emit }) {
      const props = __props;
      const emits = __emit;
      const buttonClasses = vue.computed(() => {
        const classes = [];
        classes.push("mt-button");
        classes.push(`mt-button--${props.type}`);
        classes.push(`mt-button--${props.size}`);
        if (props.text) {
          classes.push("is-text");
        }
        if (props.round) {
          classes.push("is-round");
        }
        if (props.circle) {
          classes.push("is-circle");
        }
        if (props.loading) {
          classes.push("is-loading");
        }
        if (props.block) {
          classes.push("is-block");
        }
        if (props.disabled || props.loading) {
          classes.push("is-disabled");
        }
        if (props.plain) {
          classes.push("is-plain");
        }
        return classes;
      });
      const buttonStyles = vue.computed(() => {
        const styles = {};
        if (!tools.checkEmpty(props.height)) {
          Object.assign(styles, {
            "--mt-button-height": convertValueToViewportWidth(props.height)
          });
        }
        if (!tools.checkEmpty(props.width)) {
          Object.assign(styles, {
            "--mt-button-width": convertValueToViewportWidth(props.width)
          });
        }
        return styles;
      });
      function handleClick(event) {
        emits("click", event);
      }
      return (_ctx, _cache) => {
        return vue.openBlock(), vue.createElementBlock("button", {
          class: vue.normalizeClass(buttonClasses.value),
          style: vue.normalizeStyle(buttonStyles.value),
          disabled: props.disabled || props.loading,
          type: props.nativeType,
          onClick: handleClick
        }, [
          vue.renderSlot(_ctx.$slots, "icon", {}, () => [
            props.loading ? (vue.openBlock(), vue.createBlock(vue.unref(MtLoading), { key: 0 })) : vue.createCommentVNode("", true)
          ]),
          vue.createElementVNode("span", _hoisted_2$g, [
            vue.renderSlot(_ctx.$slots, "default")
          ])
        ], 14, _hoisted_1$m);
      };
    }
  });
  const MtButton = withInstall(_sfc_main$w);
  const defaultInitialZIndex = 2e3;
  const zIndex = vue.ref(0);
  function useZIndex(initialZIndex = defaultInitialZIndex) {
    const currentZIndex = vue.computed(() => initialZIndex + zIndex.value);
    const nextZIndex = () => {
      zIndex.value += 1;
      return currentZIndex.value;
    };
    return {
      nextZIndex
    };
  }
  function useSameTarget(handleClick) {
    if (!handleClick) {
      return { onClick: NOOP, onMousedown: NOOP, onMouseup: NOOP };
    }
    let mousedownTarget = false;
    let mouseupTarget = false;
    const onClick = (e) => {
      if (mousedownTarget && mouseupTarget) {
        handleClick(e);
      }
      mousedownTarget = false;
      mouseupTarget = false;
    };
    const onMousedown = (e) => {
      mousedownTarget = e.target === e.currentTarget;
    };
    const onMouseup = (e) => {
      mouseupTarget = e.target === e.currentTarget;
    };
    return { onClick, onMousedown, onMouseup };
  }
  function useChildren(key, value) {
    const children = vue.reactive([]);
    const link = (child) => {
      children.push(child);
    };
    const unlink = (child) => {
      children.splice(children.indexOf(child), 1);
    };
    vue.provide(key, {
      link,
      unlink,
      children,
      ...value
    });
    return {
      children
    };
  }
  function useParent(key) {
    const parent = vue.inject(key, null);
    if (parent) {
      const instance = vue.getCurrentInstance();
      const { link, unlink, children } = parent;
      link(instance);
      vue.onUnmounted(() => unlink(instance));
      const index2 = vue.computed(() => children.indexOf(instance));
      return {
        parent,
        index: index2
      };
    }
    return {
      parent: null,
      index: vue.computed(() => -1)
    };
  }
  const cellGroupProps = {
    /**
     * 单元格之间的间距
     */
    gutter: {
      type: Number,
      default: 10
    },
    /**
     * 整体宽度
     */
    width: {
      type: [Number, String],
      validator: (value) => {
        return isValidCssValue(value);
      },
      default: "100%"
    },
    /**
     * 隐藏第一个单元格间距
     */
    hideFirstMargin: {
      type: Boolean,
      default: false
    },
    /**
     * 隐藏最后一个单元格间距
     */
    hideLastMargin: {
      type: Boolean,
      default: true
    }
  };
  const CellGroupKey = Symbol("cell-group");
  const CellGroup = /* @__PURE__ */ vue.defineComponent({
    name: "MtCellGroup",
    props: cellGroupProps,
    setup(props, {
      slots
    }) {
      useChildren(CellGroupKey, {});
      const getMarginStyle = (isLast, isFirst) => {
        const styles = {};
        if (!tools.checkEmpty(props.gutter)) {
          styles["--mt-cell-group-margin-bottom"] = convertValueToViewportWidth(props.gutter);
        }
        if (props.hideLastMargin && isLast) {
          styles["--mt-cell-group-margin-bottom"] = convertValueToViewportWidth(0);
        }
        if (props.hideFirstMargin && isFirst) {
          styles["--mt-cell-group-margin-top"] = convertValueToViewportWidth(0);
        }
        return styles;
      };
      const cellGroupStyle = vue.computed(() => {
        const styles = {};
        if (!tools.checkEmpty(props.width)) {
          styles["--mt-cell-group-width"] = convertValueToViewportWidth(props.width);
        }
        return styles;
      });
      return () => {
        var _a;
        const children = removeEmptyChildren(((_a = slots.default) == null ? void 0 : _a.call(slots)) || []);
        return vue.createVNode("div", {
          "class": "mt-cell-group",
          "style": cellGroupStyle.value
        }, [children.map((Child, childIndex) => vue.createVNode("div", {
          "class": "mt-cell-group__item",
          "style": {
            ...getMarginStyle(childIndex === children.length - 1, childIndex === 0)
          }
        }, [Child]))]);
      };
    }
  });
  const cellProps = {
    /**
     * 左侧的图片路径
     */
    icon: {
      type: String,
      default: ""
    },
    /**
     * 中间的标题文本
     */
    title: {
      type: String,
      default: ""
    },
    /**
     * 标题下方的描述信息
     */
    description: {
      type: String,
      default: ""
    },
    /**
     * 是否展示右侧箭头
     */
    link: {
      type: Boolean,
      default: false
    },
    /**
     * 是否显示可点击指针样式
     */
    clickable: {
      type: Boolean,
      default: true
    },
    /**
     * 单元格宽度
     */
    width: {
      type: [Number, String],
      validator: (value) => {
        return isValidCssValue(value);
      },
      default: "100%"
    },
    /**
     * 单元格高度
     */
    height: {
      type: [Number, String],
      validator: (value) => {
        return isValidCssValue(value);
      },
      default: "auto"
    }
  };
  const _hoisted_1$l = {
    key: 0,
    class: "mt-cell__left"
  };
  const _hoisted_2$f = { class: "mt-cell__center" };
  const _hoisted_3$a = {
    key: 0,
    class: "mt-cell__title"
  };
  const _hoisted_4$7 = {
    key: 1,
    class: "mt-cell__description"
  };
  const _hoisted_5$4 = {
    key: 1,
    class: "mt-cell__right"
  };
  const _sfc_main$v = /* @__PURE__ */ vue.defineComponent({
    ...{
      name: "MtCell"
    },
    __name: "cell",
    props: cellProps,
    emits: ["click"],
    setup(__props, { emit: __emit }) {
      const props = __props;
      const emits = __emit;
      const slots = vue.useSlots();
      const isCellHover = vue.ref(false);
      useParent(CellGroupKey);
      const cellClasses = vue.computed(() => {
        const classes = [];
        classes.push("mt-cell");
        if (props.clickable) {
          classes.push("is-clickable");
        }
        if (isCellHover.value) {
          classes.push("is-hover");
        }
        return classes;
      });
      const cellStyles = vue.computed(() => {
        const styles = {};
        if (!tools.checkEmpty(props.height)) {
          styles["--mt-cell-height"] = convertValueToViewportWidth(props.height);
        }
        if (!tools.checkEmpty(props.width)) {
          styles["--mt-cell-width"] = convertValueToViewportWidth(props.width);
        }
        return styles;
      });
      function handleClick() {
        if (props.clickable) {
          emits("click");
        }
      }
      function handleMouseover() {
        isCellHover.value = true;
      }
      function handleMouseout() {
        isCellHover.value = false;
      }
      return (_ctx, _cache) => {
        return vue.openBlock(), vue.createElementBlock("div", {
          class: vue.normalizeClass(cellClasses.value),
          style: vue.normalizeStyle(cellStyles.value),
          onClick: handleClick,
          onMouseover: handleMouseover,
          onMouseout: handleMouseout
        }, [
          slots.icon || props.icon ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_1$l, [
            vue.renderSlot(_ctx.$slots, "icon", {}, () => [
              vue.createVNode(vue.unref(MtAvatarImage), {
                src: props.icon,
                size: 40
              }, null, 8, ["src"])
            ])
          ])) : vue.createCommentVNode("", true),
          vue.createElementVNode("div", _hoisted_2$f, [
            slots.title || props.title ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_3$a, [
              vue.renderSlot(_ctx.$slots, "title", {}, () => [
                vue.createElementVNode("span", null, vue.toDisplayString(props.title), 1)
              ])
            ])) : vue.createCommentVNode("", true),
            slots.description || props.description ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_4$7, [
              vue.renderSlot(_ctx.$slots, "description", {}, () => [
                vue.createTextVNode(vue.toDisplayString(props.description), 1)
              ])
            ])) : vue.createCommentVNode("", true)
          ]),
          props.link || slots.right ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_5$4, [
            vue.renderSlot(_ctx.$slots, "right", { isHover: isCellHover.value }, () => [
              props.link ? (vue.openBlock(), vue.createBlock(vue.unref(MtIcon), {
                key: 0,
                name: "icon-a-fangxiangyouyansefalse1",
                size: 23,
                color: "#4E5869"
              })) : vue.createCommentVNode("", true)
            ])
          ])) : vue.createCommentVNode("", true)
        ], 38);
      };
    }
  });
  const MtCell = withInstall(_sfc_main$v);
  const MtCellGroup = withInstall(CellGroup);
  const _sfc_main$u = /* @__PURE__ */ vue.defineComponent({
    ...{
      name: "MtCollapseTransition"
    },
    __name: "collapse-transition",
    setup(__props) {
      function handleBeforeEnter(el) {
        if (!el.dataset) {
          el.dataset = {};
        }
        el.dataset.oldPaddingTop = el.style.paddingTop;
        el.dataset.oldPaddingBottom = el.style.paddingBottom;
        el.dataset.oldOverflow = el.style.overflow;
        if (el.style.height) {
          el.dataset.elExistsHeight = el.style.height;
        }
        el.style.maxHeight = "0";
        el.style.paddingTop = "0";
        el.style.paddingBottom = "0";
      }
      function handleEnter(el) {
        requestAnimationFrame(() => {
          el.dataset.oldOverflow = el.style.overflow;
          if (el.dataset.elExistsHeight) {
            el.style.maxHeight = el.dataset.elExistsHeight;
          } else if (el.scrollHeight !== 0) {
            el.style.maxHeight = `${el.scrollHeight}px`;
          } else {
            el.style.maxHeight = "0";
          }
          el.style.paddingTop = el.dataset.oldPaddingTop;
          el.style.paddingBottom = el.dataset.oldPaddingBottom;
          el.style.overflow = "hidden";
        });
      }
      function handleAfterEnter(el) {
        el.style.maxHeight = "";
        el.style.overflow = el.dataset.oldOverflow;
      }
      function enterCancelled(el) {
        el.style.maxHeight = "";
        el.style.overflow = el.dataset.oldOverflow;
        el.style.paddingTop = el.dataset.oldPaddingTop;
        el.style.paddingBottom = el.dataset.oldPaddingBottom;
      }
      function handleBeforeLeave(el) {
        if (!el.dataset) {
          el.dataset = {};
        }
        el.dataset.oldPaddingTop = el.style.paddingTop;
        el.dataset.oldPaddingBottom = el.style.paddingBottom;
        el.dataset.oldOverflow = el.style.overflow;
        el.style.maxHeight = `${el.scrollHeight}px`;
        el.style.overflow = "hidden";
      }
      function handleLeave(el) {
        el.style.maxHeight = "0";
        el.style.paddingTop = "0";
        el.style.paddingBottom = "0";
      }
      function handleAfterLeave(el) {
        el.style.maxHeight = "";
        el.style.paddingTop = el.dataset.oldPaddingTop;
        el.style.paddingBottom = el.dataset.oldPaddingBottom;
        el.style.overflow = el.dataset.oldOverflow;
      }
      function leaveCancelled(el) {
        el.style.maxHeight = "";
        el.style.overflow = el.dataset.oldOverflow;
        el.style.paddingTop = el.dataset.oldPaddingTop;
        el.style.paddingBottom = el.dataset.oldPaddingBottom;
      }
      return (_ctx, _cache) => {
        return vue.openBlock(), vue.createBlock(vue.Transition, {
          name: "mt-collapse-transition",
          onBeforeEnter: handleBeforeEnter,
          onEnter: handleEnter,
          onAfterEnter: handleAfterEnter,
          onEnterCancelled: enterCancelled,
          onBeforeLeave: handleBeforeLeave,
          onLeave: handleLeave,
          onAfterLeave: handleAfterLeave,
          onLeaveCancelled: leaveCancelled
        }, {
          default: vue.withCtx(() => [
            vue.renderSlot(_ctx.$slots, "default")
          ]),
          _: 3
        });
      };
    }
  });
  const MtCollapseTransition = withInstall(_sfc_main$u);
  const filePreviewConfig = {};
  const fileUploadConfig = {};
  const ConfigProvider = vue.defineComponent({
    name: "MtConfigProvider",
    props: {
      filePreview: {
        type: Object,
        required: true
      },
      fileUpload: {
        type: Object,
        required: true
      }
    },
    setup(props, { slots }) {
      vue.watch(
        () => props.filePreview,
        (value) => {
          Object.assign(filePreviewConfig, value);
        },
        { immediate: true, deep: true }
      );
      vue.watch(
        () => props.fileUpload,
        (value) => {
          Object.assign(fileUploadConfig, value);
        },
        { immediate: true, deep: true }
      );
      return () => vue.renderSlot(slots, "default", {});
    }
  });
  const MtConfigProvider = withInstall(ConfigProvider);
  const overlayProps = {
    /**
     * 是否显示遮罩层
     */
    mask: {
      type: Boolean,
      default: true
    },
    /**
     * 遮罩层层级
     */
    zIndex: {
      type: Number,
      default: 2026
    }
  };
  const _sfc_main$t = /* @__PURE__ */ vue.defineComponent({
    ...{
      name: "MtOverlay"
    },
    __name: "overlay",
    props: overlayProps,
    setup(__props) {
      const props = __props;
      const overlayStyles = vue.computed(() => {
        const styles = {};
        styles.zIndex = props.zIndex;
        return styles;
      });
      const overlayClasses = vue.computed(() => {
        const classes = [];
        classes.push("mt-overlay");
        if (props.mask) {
          classes.push("mt-overlay--mask");
        }
        return classes;
      });
      return (_ctx, _cache) => {
        return vue.openBlock(), vue.createElementBlock("div", {
          class: vue.normalizeClass(overlayClasses.value),
          style: vue.normalizeStyle(overlayStyles.value)
        }, [
          vue.renderSlot(_ctx.$slots, "default")
        ], 6);
      };
    }
  });
  const MtOverlay = withInstall(_sfc_main$t);
  const teleportProps = {
    to: {
      type: [String, Object],
      required: true
    },
    disabled: {
      type: Boolean,
      default: false
    }
  };
  const _sfc_main$s = /* @__PURE__ */ vue.defineComponent({
    ...{
      name: "MtTeleport",
      inheritAttrs: false
    },
    __name: "teleport",
    props: teleportProps,
    setup(__props) {
      return (_ctx, _cache) => {
        return _ctx.disabled ? vue.renderSlot(_ctx.$slots, "default", { key: 0 }) : (vue.openBlock(), vue.createBlock(vue.Teleport, {
          key: 1,
          to: _ctx.to
        }, [
          vue.renderSlot(_ctx.$slots, "default")
        ], 8, ["to"]));
      };
    }
  });
  const MtTeleport = withInstall(_sfc_main$s);
  const dialogProps = {
    /**
     * 是否显示 Dialog
     */
    modelValue: {
      type: Boolean,
      default: false
    },
    /**
     *  Dialog 挂载到哪个 DOM 元素
     */
    appendTo: {
      type: [String, Object],
      default: "body"
    },
    /**
     * 是否显示遮罩层
     */
    mask: {
      type: Boolean,
      default: true
    },
    /**
     * 关闭时是否销毁 DOM 元素
     */
    destroyOnClose: {
      type: Boolean,
      default: false
    },
    /**
     * 弹框距离顶部的距离
     */
    top: {
      type: [String, Number],
      validator: (value) => {
        return isValidCssValue(value);
      },
      default: "15vh"
    },
    /**
     * 弹框的宽度,默认值为 fit-content
     */
    width: {
      type: [String, Number],
      validator: (value) => {
        return isValidCssValue(value);
      },
      default: "fit-content"
    },
    /**
     * 弹框内边距
     */
    padding: {
      type: [Number, String, Array],
      validator: (value) => {
        return isValidCssValue(value);
      },
      default: () => [16, 16]
    },
    /**
     * 是否显示关闭按钮
     */
    showClose: {
      type: Boolean,
      default: true
    },
    /**
     * 弹框的标题
     */
    title: {
      type: String,
      default: ""
    },
    /**
     * 是否设置弹框的位置居中
     */
    alignCenter: {
      type: Boolean,
      default: false
    },
    /**
     * 是否可以通过点击 modal 关闭 Dialog
     */
    closeOnClickModal: {
      type: Boolean,
      default: true
    },
    /**
     * 关闭前的回调函数。
     * 当用户尝试关闭 Dialog 时,会触发此回调。
     * 回调函数返回一个 Promise,只有当 Promise 被解析(resolve)时,Dialog 才会关闭。
     * 如果 Promise 被拒绝(reject),Dialog 不会关闭。
     * 这可以用于在关闭前执行异步操作,例如确认用户意图或保存数据。
     */
    beforeClose: {
      type: Function,
      default: () => Promise.resolve()
    },
    /**
     * 弹框的背景色
     */
    background: {
      type: String,
      default: "#fff"
    },
    /**
     * 设置z-index
     */
    zIndex: {
      type: Number
    }
  };
  const DialogKey = Symbol("dialog");
  const _hoisted_1$k = {
    key: 0,
    class: "mt-dialog__header"
  };
  const _hoisted_2$e = { class: "mt-dialog__title" };
  const _hoisted_3$9 = { class: "mt-dialog__body" };
  const _hoisted_4$6 = {
    key: 2,
    class: "mt-dialog__footer"
  };
  const _sfc_main$r = /* @__PURE__ */ vue.defineComponent({
    ...{
      name: "MtDialog"
    },
    __name: "dialog",
    props: dialogProps,
    emits: ["update:modelValue", "close", "closed"],
    setup(__props, { expose: __expose, emit: __emit }) {
      const props = __props;
      const emits = __emit;
      const slots = vue.useSlots();
      const { nextZIndex } = useZIndex();
      const zIndex2 = vue.ref(props.zIndex || nextZIndex());
      const rendered = vue.ref(false);
      const visible = vue.ref(false);
      vue.provide(DialogKey, {
        visible
      });
      const wrapperClasses = vue.computed(() => {
        const classes = [];
        classes.push("mt-dialog__wrapper");
        if (props.alignCenter) {
          classes.push("is-align-center");
        }
        return classes;
      });
      const dialogClasses = vue.computed(() => {
        const classes = [];
        classes.push("mt-dialog");
        return classes;
      });
      const dialogStyles = vue.computed(() => {
        const styles = {};
        styles["--mt-dialog-width"] = convertValueToViewportWidth(props.width);
        styles["--mt-dialog-margin"] = `${convertValueToViewportWidth(props.top)} auto 50px`;
        if (props.alignCenter) {
          styles["--mt-dialog-margin"] = `auto`;
        }
        styles["--mt-dialog-background"] = props.background;
        styles["--mt-dialog-padding"] = convertValueToViewportWidth(props.padding);
        return styles;
      });
      vue.watch(
        () => props.modelValue,
        (value) => {
          if (value) {
            visible.value = true;
            rendered.value = true;
            zIndex2.value = props.zIndex || nextZIndex();
          } else {
            visible.value = false;
            emits("close");
          }
        }
      );
      function close() {
        if (props.beforeClose) {
          const result = props.beforeClose();
          if (result instanceof Promise) {
            result.then(() => {
              emits("update:modelValue", false);
            }).catch(() => {
            });
          } else {
            if (result) {
              emits("update:modelValue", false);
            }
          }
        } else {
          emits("update:modelValue", false);
        }
      }
      function handleAfterLeave() {
        if (props.destroyOnClose) {
          rendered.value = false;
        }
        emits("closed");
      }
      function handleModalClick() {
        if (props.closeOnClickModal) {
          close();
        }
      }
      function handleCloseClick() {
        close();
      }
      const overlayEvent = useSameTarget(handleModalClick);
      vue.onMounted(() => {
        if (props.modelValue) {
          visible.value = true;
          rendered.value = true;
        }
      });
      __expose({
        close
      });
      return (_ctx, _cache) => {
        return vue.openBlock(), vue.createBlock(vue.unref(MtTeleport), {
          to: props.appendTo
        }, {
          default: vue.withCtx(() => [
            vue.createVNode(vue.Transition, {
              name: "mt-dialog__overlay-fade",
              onAfterLeave: handleAfterLeave
            }, {
              default: vue.withCtx(() => [
                vue.withDirectives(vue.createVNode(vue.unref(MtOverlay), {
                  mask: props.mask,
                  "z-index": zIndex2.value
                }, {
                  default: vue.withCtx(() => {
                    var _a, _b;
                    return [
                      vue.createElementVNode("div", {
                        class: vue.normalizeClass([...wrapperClasses.value, _ctx.$attrs.class]),
                        onClick: _cache[0] || (_cache[0] = //@ts-ignore
                        (...args) => vue.unref(overlayEvent).onClick && vue.unref(overlayEvent).onClick(...args)),
                        onMousedown: _cache[1] || (_cache[1] = //@ts-ignore
                        (...args) => vue.unref(overlayEvent).onMousedown && vue.unref(overlayEvent).onMousedown(...args)),
                        onMouseup: _cache[2] || (_cache[2] = //@ts-ignore
                        (...args) => vue.unref(overlayEvent).onMouseup && vue.unref(overlayEvent).onMouseup(...args))
                      }, [
                        rendered.value ? (vue.openBlock(), vue.createElementBlock("div", {
                          key: 0,
                          class: vue.normalizeClass(dialogClasses.value),
                          style: vue.normalizeStyle(dialogStyles.value)
                        }, [
                          ((_a = slots.title) == null ? void 0 : _a.call(slots)) || props.title ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_1$k, [
                            vue.renderSlot(_ctx.$slots, "title", {}, () => [
                              vue.createElementVNode("div", _hoisted_2$e, vue.toDisplayString(props.title), 1)
                            ])
                          ])) : vue.createCommentVNode("", true),
                          props.showClose ? (vue.openBlock(), vue.createElementBlock("div", {
                            key: 1,
                            class: "mt-dialog__close",
                            onClick: handleCloseClick
                          }, [
                            vue.createVNode(vue.unref(MtIcon), {
                              name: "icon-cha",
                              size: 24,
                              color: "#909399"
                            })
                          ])) : vue.createCommentVNode("", true),
                          vue.createElementVNode("div", _hoisted_3$9, [
                            vue.renderSlot(_ctx.$slots, "default")
                          ]),
                          ((_b = slots.footer) == null ? void 0 : _b.call(slots)) ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_4$6, [
                            vue.renderSlot(_ctx.$slots, "footer")
                          ])) : vue.createCommentVNode("", true)
                        ], 6)) : vue.createCommentVNode("", true)
                      ], 34)
                    ];
                  }),
                  _: 3
                }, 8, ["mask", "z-index"]), [
                  [vue.vShow, visible.value]
                ])
              ]),
              _: 3
            })
          ]),
          _: 3
        }, 8, ["to"]);
      };
    }
  });
  const _hoisted_1$j = { class: "mt-dialog-confirm-layout" };
  const _hoisted_2$d = { class: "mt-dialog-confirm-layout__footer" };
  const _sfc_main$q = /* @__PURE__ */ vue.defineComponent({
    ...{
      name: "MtDialogConfirmLayout"
    },
    __name: "dialog-confirm-layout",
    props: {
      /**
       * 是否显示确认按钮
       */
      showConfirm: {
        type: Boolean,
        default: true
      },
      /**
       * 确认按钮的文本
       */
      confirmText: {
        type: String,
        default: "确认"
      },
      /**
       * 是否显示取消按钮
       */
      showCancel: {
        type: Boolean,
        default: true
      },
      /**
       * 取消按钮的文本
       */
      cancelText: {
        type: String,
        default: "取消"
      },
      /**
       * 提交时是否显示加载中状态
       */
      loading: {
        type: Boolean,
        default: false
      },
      /**
       * 确认按钮是否禁用
       */
      disabled: {
        type: Boolean,
        default: false
      }
    },
    emits: ["cancel", "confirm"],
    setup(__props, { emit: __emit }) {
      const props = __props;
      const emits = __emit;
      function handleCancel() {
        emits("cancel");
      }
      function handleConfirm() {
        emits("confirm");
      }
      return (_ctx, _cache) => {
        return vue.openBlock(), vue.createElementBlock("div", _hoisted_1$j, [
          vue.renderSlot(_ctx.$slots, "default"),
          vue.createElementVNode("div", _hoisted_2$d, [
            props.showCancel ? (vue.openBlock(), vue.createBlock(vue.unref(MtButton), {
              key: 0,
              class: "mt-dialog-confirm-layout__btn",
              block: "",
              size: "large",
              onClick: handleCancel
            }, {
              default: vue.withCtx(() => [
                vue.createTextVNode(vue.toDisplayString(props.cancelText), 1)
              ]),
              _: 1
            })) : vue.createCommentVNode("", true),
            props.showConfirm ? (vue.openBlock(), vue.createBlock(vue.unref(MtButton), {
              key: 1,
              class: "mt-dialog-confirm-layout__btn",
              type: "primary",
              block: "",
              size: "large",
              loading: props.loading,
              disabled: props.disabled,
              onClick: handleConfirm
            }, {
              default: vue.withCtx(() => [
                vue.createTextVNode(vue.toDisplayString(props.confirmText), 1)
              ]),
              _: 1
            }, 8, ["loading", "disabled"])) : vue.createCommentVNode("", true)
          ])
        ]);
      };
    }
  });
  const MtDialogConfirmLayout = withInstall(_sfc_main$q);
  const MtDialog = withInstall(_sfc_main$r);
  const ImgEmpty = "data:image/png;base64,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";
  const emptyProps = {
    /**
     * 自定义图片
     */
    image: {
      type: String,
      default: ""
    },
    /**
     * 图片宽度
     */
    imageWidth: {
      type: [String, Number],
      validator: (value) => {
        return isValidCssValue(value);
      },
      default: "50%"
    },
    /**
     * 描述
     */
    description: {
      type: String,
      default: ""
    },
    /**
     * 上下的内边距
     */
    verticalPadding: {
      type: Number,
      validator: (value) => {
        return isValidCssValue(value);
      },
      default: 20
    }
  };
  const _hoisted_1$i = {
    key: 0,
    class: "mt-empty__description"
  };
  const _sfc_main$p = /* @__PURE__ */ vue.defineComponent({
    ...{
      name: "MtEmpty"
    },
    __name: "empty",
    props: emptyProps,
    setup(__props) {
      const props = __props;
      const emptyStyles = vue.computed(() => {
        const styles = {};
        if (!tools.checkEmpty(props.verticalPadding)) {
          styles["--mt-empty-padding"] = `${convertValueToViewportWidth(props.verticalPadding)} 0 `;
        }
        return styles;
      });
      return (_ctx, _cache) => {
        return vue.openBlock(), vue.createElementBlock("div", {
          class: "mt-empty",
          style: vue.normalizeStyle(emptyStyles.value)
        }, [
          vue.createVNode(vue.unref(MtImage), {
            width: props.imageWidth,
            src: props.image || vue.unref(ImgEmpty)
          }, null, 8, ["width", "src"]),
          props.description ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_1$i, vue.toDisplayString(props.description), 1)) : vue.createCommentVNode("", true)
        ], 4);
      };
    }
  });
  const MtEmpty = withInstall(_sfc_main$p);
  const fadeTransitionProps = {
    duration: {
      type: Number,
      default: 300
    }
  };
  const _sfc_main$o = /* @__PURE__ */ vue.defineComponent({
    ...{
      name: "MtFadeTransition"
    },
    __name: "fade-transition",
    props: fadeTransitionProps,
    emits: ["afterLeave"],
    setup(__props, { emit: __emit }) {
      const props = __props;
      const emits = __emit;
      function handleBeforeEnter(el) {
        el.style.opacity = 0;
        el.style.transition = `opacity ${props.duration}ms ease`;
      }
      function handleEnter(el) {
        requestAnimationFrame(() => {
          el.style.opacity = 1;
        });
      }
      function handleAfterEnter(el) {
        el.style.opacity = 1;
        el.style.transition = "";
      }
      function enterCancelled(el) {
        el.style.opacity = 1;
        el.style.transition = "";
      }
      function handleBeforeLeave(el) {
        el.style.opacity = 1;
        el.style.transition = `opacity ${props.duration}ms ease`;
      }
      function handleLeave(el) {
        el.style.opacity = 0;
      }
      function handleAfterLeave(el) {
        el.style.opacity = 0;
        el.style.transition = "";
        emits("afterLeave");
      }
      function leaveCancelled(el) {
        el.style.opacity = 0;
        el.style.transition = "";
      }
      return (_ctx, _cache) => {
        return vue.openBlock(), vue.createBlock(vue.Transition, {
          name: "mt-fade-transition",
          onBeforeEnter: handleBeforeEnter,
          onEnter: handleEnter,
          onAfterEnter: handleAfterEnter,
          onEnterCancelled: enterCancelled,
          onBeforeLeave: handleBeforeLeave,
          onLeave: handleLeave,
          onAfterLeave: handleAfterLeave,
          onLeaveCancelled: leaveCancelled
        }, {
          default: vue.withCtx(() => [
            vue.renderSlot(_ctx.$slots, "default")
          ]),
          _: 3
        });
      };
    }
  });
  const MtFadeTransition = withInstall(_sfc_main$o);
  const aiMarkIcon = "data:image/png;base64,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";
  const audioBg = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAKcAAACmCAYAAAC/Sp9JAAAAAXNSR0IArs4c6QAAIABJREFUeAHs3Qn0pVV57/nb4hTjkGgUVEZBHErFmVIQpECRGQMiBUZmLYRCowwlouBANCqiKJNCwqAoxVjGRqJtJxpF+mp6aWPS3usV7XjjrFGvA16H0/05y2+t7en/v6ooZoG19tp7P/vZez/P7/d79/ue95x/8Z/+013/3YXAXQjchcBdCNyFwF0I3IXAnRuByWRyt8lkcq/JZPKgyWSy3mQy2XgymTz6hhtu2HwymTxkMpn82WQyuc9kMrn7nRupu7K/2RGYTCb3/da3vvXY97///TstW7bs4AMPPPD4/fbb78wXvehFH3nBC17wuT333PO/PfvZz/7GwoULv/3EJz7xB4997GO/v8UWW/x0iy22+MkTnvCE7y1cuPA722+//Tf33HPP6/fee+/PLV68+MMHHHDA2YcddtgJS5cuPfiUU07Z+Qtf+MKTJpPJA2/24O9a8A8HgW9+85v3+dKXvvS0173udQcdcMABb99nn33+cZtttvn3jTba6H+st956v73f/e43ufvd7z4t97jHPSbKPe95z2m5173uNVH+6I/+aFrufe97TxQ2PtXmN/c+97nPZN11151svPHGv9hqq62+uc8++1xz6KGHnnb00UcfdPnllz/jJz/5yYP+cNC9K5MbhcBkMrnHP//zPz/l2GOPPXKvvfa6aIcddvi3jTba6Jf3v//9VwowwRHSfe9734mxP/mTP5k88IEPnDzoQQ+a1tp/+qd/urIYV9ga45u/sQc84AETYrdugiZiwmXbcMMNf7Xtttv++/7777/iFa94xSuWL1++9Q9/+MMH3KgE73K+YyHg+e8jH/nI7vvtt98pO++883/ZcMMNbyA6JxpxJELCGgWlT0x//Md/PK21FWKtTnBjfxxvjtqe6lHo9tNnF4cLg1jVG2200W8WLVr0Xw866KAzXv/61+/y9a9//aF3LOTvinZOBCaTyT2vuuqqRYcddti7nY7rrrvubyKdCIjBCfdnf/ZnU0EmKGJT9AnnIQ95yLS4Fa+33nqThz70oZOHPexh06KtsBtXsuVX31hrWXfcp/2KR23/xOoCMmf77bf/1qGHHnrmySefvOOPf/zju55X52T+dmz81re+tfFJJ530toULF/6XDTbY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nvCE3wCAKAW03XbbTTf0bCGQgnPVCFbhZ0xyggsYSXY7kCCA1AAIHKIFqDr7KExzAl0tNoQQKz+nBRIR6MRJmJFNAAmnehRJQiXOhJjA809MfIgnwek31j72F0drsPNXt5e+tvXbs3G1Yr51HBTycwHKN0GGQ1gkOP3ECWsiYzOOC2vAWVtJeNqEjEv84dncCh6IT59P427ptLBo0aLpmD6eNt98899cfPHFO95sp+dxxx13GpKJzOYEuv3220+fN23KRoQEKNA+qakFzA4EifAlztpAULo6AcDXlQwYSQPOHMmpAxHYgEMMHyeHeWq3P8QhU0EswquJJZElqgRAXERinpNK3dzRxzyCdtL6QFRdu3Wt15rWtXfr6ltTrZij1E+k9a0jngRKpC5EuMABHvKHTWKEdXcZWMMKTwkX9ubzwRcf2PNpjF2bHdf6HUTqeDemrzi4iHN8/HMXO/roo6+8WcTpX+3Yddddv0Gcz3rWs6biIkwbEqYAOj0Tp8CJkJ241BJnIyygaANNO2FKXFshUgny165Yhw2YiHBSqhHBRsAAQBgCFYR2cqoTptpYgk0k5iSexKhOOG6pYthzzz0nL3nJSyaveMUr/DuWk9e//vWT1772tf7x/8nLXvayyQte8IJpni6U5rZHorOP/cSSANX5Za/uIilGueIGDuVPfN1BtOFKcDDUT3yEZA4e3KFgW1ut8MEHP21r4Vk73gkTz+zVxhxiNPKc5zxn6u8WL9aFCxf+8Kc//em6N1mgn//857eWEPKJ04bPfe5zp5sSqIAEQkgE120/mznEKnk2wGibJ/mEKmmES5RPAjcOGMA2nlDVnaYEqt+nV59uEYhkJw3C1UpEEyayI9yYd4vmZeejyH/fffednHzyyZMPfOADkyuuuGJy2WWX/f/K5Zdf/ns2fu9///v9K8GTQw45ZJqLmKwpJvvYt3gTqBhHgerz49+YOM1DuNu5GMNBG28wgR9c4acPX9h32hknKljjQXvkBhfsODYHf0Snr9bv80d6UOOe3WGWduyFs/e+973732RxnnDCCecjnLAE4lnzec973vTkJE6bs9tcQNqSSbj6kjbfFWhMWy1RQGgDQzsQidy8rtqEmVgliQAFcPpu405MpxHSEqQakRUEsyVSNX/ztCNfve22207e8573TC655JKVorv00ksnF1100eS8886b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";
  const _hoisted_1$h = { class: "mt-ai-music-preview__content" };
  const _hoisted_2$c = { class: "mt-ai-music-preview__detail" };
  const _hoisted_3$8 = { class: "mt-ai-music-preview__base" };
  const _hoisted_4$5 = { class: "mt-ai-music-preview__title" };
  const _hoisted_5$3 = ["src"];
  const _sfc_main$n = /* @__PURE__ */ vue.defineComponent({
    ...{
      name: "MtAiMusicPreview"
    },
    __name: "ai-music-preview",
    props: {
      title: {
        type: String,
        require: true
      },
      prompt: {
        type: String,
        require: true
      },
      src: {
        type: String,
        require: true
      },
      background: {
        type: String,
        require: true
      }
    },
    emits: ["load"],
    setup(__props, { emit: __emit }) {
      const props = __props;
      const emits = __emit;
      const audioRef = vue.ref();
      const promptContentRef = vue.ref();
      const promptSpeed = vue.ref(0);
      const audioDuration = vue.ref(0);
      const isAudioPlay = vue.ref(false);
      const aiMusicPreviewStyles = vue.computed(() => {
        const styles = {};
        styles["background-image"] = `url(${props.background})`;
        return styles;
      });
      function handlePlay() {
        var _a, _b;
        audioDuration.value = ((_a = audioRef == null ? void 0 : audioRef.value) == null ? void 0 : _a.duration) ?? 0;
        isAudioPlay.value = true;
        if (promptContentRef.value) {
          promptSpeed.value = ((_b = promptContentRef == null ? void 0 : promptContentRef.value) == null ? void 0 : _b.scrollHeight) / audioDuration.value;
        }
      }
      function handlePause() {
        isAudioPlay.value = false;
      }
      function handleTimeUpdate() {
        if (audioRef.value && promptContentRef.value) {
          promptContentRef.value.scrollTo({
            top: promptSpeed.value * audioRef.value.currentTime,
            behavior: "smooth"
          });
        }
      }
      function handleLoadedMetaData() {
        emits("load");
      }
      return (_ctx, _cache) => {
        return vue.openBlock(), vue.createElementBlock("div", {
          class: "mt-ai-music-preview",
          style: vue.normalizeStyle(aiMusicPreviewStyles.value)
        }, [
          vue.createElementVNode("div", _hoisted_1$h, [
            vue.createElementVNode("div", {
              class: vue.normalizeClass(["mt-ai-music-preview__round", {
                "mt-ai-music-preview__round--play": isAudioPlay.value,
                "mt-ai-music-preview__round--pause": !isAudioPlay.value
              }])
            }, [
              vue.createVNode(vue.unref(MtImage), {
                src: vue.unref(audioBg),
                class: "mt-ai-music-preview__audio-image"
              }, null, 8, ["src"]),
              vue.createVNode(vue.unref(MtImage), {
                src: props.background,
                class: "mt-ai-music-preview__song-image"
              }, null, 8, ["src"])
            ], 2),
            vue.createElementVNode("div", _hoisted_2$c, [
              vue.createElementVNode("div", _hoisted_3$8, [
                vue.createElementVNode("div", _hoisted_4$5, vue.toDisplayString(props.title), 1),
                vue.createElementVNode("audio", {
                  ref_key: "audioRef",
                  ref: audioRef,
                  class: "mt-ai-music-preview__audio",
                  controls: "",
                  src: props.src,
                  audio: "",
                  onPlay: handlePlay,
                  onPause: handlePause,
                  onTimeupdate: handleTimeUpdate,
                  onLoadedmetadata: handleLoadedMetaData
                }, null, 40, _hoisted_5$3)
              ]),
              vue.createElementVNode("div", {
                ref_key: "promptContentRef",
                ref: promptContentRef,
                class: "mt-ai-music-preview__prompt"
              }, vue.toDisplayString(props.prompt), 513)
            ]),
            vue.createVNode(vue.unref(MtImage), {
              src: vue.unref(aiMarkIcon),
              class: "mt-ai-music-preview__ai-mark"
            }, null, 8, ["src"])
          ])
        ], 4);
      };
    }
  });
  const filePreviewProps = {
    /**
     * 文件在Obs服务器上原始地址。
     */
    viewUrl: {
      type: String,
      required: true
    },
    /**
     * 文件生成iframe的预览地址。
     */
    previewUrl: {
      type: String,
      required: true
    },
    /**
     * Ai生成的音乐预览时,音乐的标题。
     */
    title: {
      type: String
    },
    /**
     * Ai生成的音乐预览时,音乐的背景图片。
     */
    background: {
      type: String
    },
    /**
     * Ai生成的音乐预览时,音乐的歌词。
     */
    prompt: {
      type: String
    }
  };
  const _hoisted_1$g = ["src"];
  const _sfc_main$m = /* @__PURE__ */ vue.defineComponent({
    ...{
      name: "MtIframePreview"
    },
    __name: "iframe-preview",
    props: {
      src: {
        type: String,
        required: true
      }
    },
    emits: ["load"],
    setup(__props, { emit: __emit }) {
      const props = __props;
      const emits = __emit;
      const iframeStyles = vue.computed(() => {
        const styles = {};
        Object.assign(styles, {
          height: "95vh",
          width: "95vw"
        });
        return styles;
      });
      function handleLoad() {
        emits("load");
      }
      return (_ctx, _cache) => {
        return vue.openBlock(), vue.createElementBlock("iframe", {
          src: props.src,
          style: vue.normalizeStyle(iframeStyles.value),
          download: false,
          onLoad: handleLoad
        }, null, 44, _hoisted_1$g);
      };
    }
  });
  const _sfc_main$l = /* @__PURE__ */ vue.defineComponent({
    ...{
      name: "MtImagePreview"
    },
    __name: "image-preview",
    props: {
      src: {
        type: String
      }
    },
    emits: ["load"],
    setup(__props, { emit: __emit }) {
      const props = __props;
      const emits = __emit;
      function handleLoad() {
        emits("load");
      }
      return (_ctx, _cache) => {
        return vue.openBlock(), vue.createBlock(vue.unref(MtImage), {
          class: "mt-image-preview",
          src: props.src,
          onLoad: handleLoad
        }, null, 8, ["src"]);
      };
    }
  });
  const _hoisted_1$f = ["src"];
  const _sfc_main$k = /* @__PURE__ */ vue.defineComponent({
    ...{
      name: "MtMusicPreview"
    },
    __name: "music-preview",
    props: {
      src: {
        type: String
      }
    },
    emits: ["load"],
    setup(__props, { emit: __emit }) {
      const props = __props;
      const emits = __emit;
      const audioStyles = vue.computed(() => {
        const styles = {};
        return styles;
      });
      function handleLoadeData() {
        emits("load");
      }
      return (_ctx, _cache) => {
        return vue.openBlock(), vue.createElementBlock("audio", {
          src: props.src,
          autoplay: "",
          controls: "",
          style: vue.normalizeStyle(audioStyles.value),
          onLoadeddata: handleLoadeData
        }, null, 44, _hoisted_1$f);
      };
    }
  });
  const _hoisted_1$e = ["src"];
  const _sfc_main$j = /* @__PURE__ */ vue.defineComponent({
    ...{
      name: "MtVideoPreview"
    },
    __name: "video-preview",
    props: {
      src: {
        type: String
      }
    },
    emits: ["load"],
    setup(__props, { emit: __emit }) {
      const props = __props;
      const emits = __emit;
      const videoStyles = vue.computed(() => {
        const styles = {};
        Object.assign(styles, {
          maxHeight: "95vh",
          maxWidth: "95vw",
          width: "auto"
        });
        return styles;
      });
      function handleLoadedMetaData() {
        emits("load");
      }
      return (_ctx, _cache) => {
        return vue.openBlock(), vue.createElementBlock("video", {
          src: props.src,
          controls: "",
          style: vue.normalizeStyle(videoStyles.value),
          onLoadedmetadata: handleLoadedMetaData
        }, null, 44, _hoisted_1$e);
      };
    }
  });
  const _sfc_main$i = /* @__PURE__ */ vue.defineComponent({
    __name: "file-preview",
    props: filePreviewProps,
    emits: ["close"],
    setup(__props, { emit: __emit }) {
      const props = __props;
      const emits = __emit;
      const { nextZIndex } = useZIndex(5e3);
      const visible = vue.ref(false);
      const isLoading = vue.ref(true);
      const zIndex2 = vue.ref(nextZIndex());
      vue.onMounted(() => {
        visible.value = true;
      });
      function handleClosed() {
        emits("close");
      }
      const isMusicFileAndNotAi = vue.computed(() => {
        return tools.isMusicFilePath(props.viewUrl) && tools.checkEmpty(props.background) && tools.checkEmpty(props.title) && tools.checkEmpty(props.prompt);
      });
      function handleLoad() {
        isLoading.value = false;
      }
      return (_ctx, _cache) => {
        return vue.openBlock(), vue.createBlock(vue.unref(MtDialog), {
          modelValue: visible.value,
          "onUpdate:modelValue": _cache[0] || (_cache[0] = ($event) => visible.value = $event),
          class: "mt-file-preview",
          background: "transparent",
          "show-close": !isLoading.value && !isMusicFileAndNotAi.value,
          "z-index": zIndex2.value,
          onClosed: handleClosed
        }, {
          default: vue.withCtx(() => [
            isLoading.value ? (vue.openBlock(), vue.createBlock(vue.unref(MtLoading), {
              key: 0,
              size: 100
            })) : vue.createCommentVNode("", true),
            vue.withDirectives(vue.createElementVNode("div", null, [
              vue.unref(tools.isVideoFilePath)(props.viewUrl) ? (vue.openBlock(), vue.createBlock(_sfc_main$j, {
                key: 0,
                src: props.viewUrl,
                onLoad: handleLoad
              }, null, 8, ["src"])) : vue.createCommentVNode("", true),
              vue.unref(tools.isImageFilePath)(props.viewUrl) ? (vue.openBlock(), vue.createBlock(_sfc_main$l, {
                key: 1,
                src: props.viewUrl,
                onLoad: handleLoad
              }, null, 8, ["src"])) : vue.createCommentVNode("", true),
              vue.unref(tools.isPptFilePath)(props.viewUrl) ? (vue.openBlock(), vue.createBlock(_sfc_main$m, {
                key: 2,
                src: props.previewUrl,
                onLoad: handleLoad
              }, null, 8, ["src"])) : vue.createCommentVNode("", true),
              vue.unref(tools.isDocumentFilePath)(props.viewUrl) ? (vue.openBlock(), vue.createBlock(_sfc_main$m, {
                key: 3,
                src: props.previewUrl,
                onLoad: handleLoad
              }, null, 8, ["src"])) : vue.createCommentVNode("", true),
              vue.unref(tools.isMusicFilePath)(props.viewUrl) ? (vue.openBlock(), vue.createElementBlock(vue.Fragment, { key: 4 }, [
                !vue.unref(tools.checkEmpty)(props.background) && !vue.unref(tools.checkEmpty)(props.title) && !vue.unref(tools.checkEmpty)(props.prompt) ? (vue.openBlock(), vue.createBlock(_sfc_main$n, {
                  key: 0,
                  src: props.viewUrl,
                  background: props.background,
                  prompt: props.prompt,
                  title: props.title,
                  onLoad: handleLoad
                }, null, 8, ["src", "background", "prompt", "title"])) : (vue.openBlock(), vue.createBlock(_sfc_main$k, {
                  key: 1,
                  src: props.viewUrl,
                  onLoad: handleLoad
                }, null, 8, ["src"]))
              ], 64)) : vue.createCommentVNode("", true)
            ], 512), [
              [vue.vShow, !isLoading.value]
            ])
          ]),
          _: 1
        }, 8, ["modelValue", "show-close", "z-index"]);
      };
    }
  });
  function filePreview(fileItem) {
    if (!filePreviewConfig.generatePreviewUrl) {
      throw new Error("文件预览功能未正确配置。请确保通过 mt-config-provider 组件全局配置了 filePreview.generatePreviewUrl 方法,以生成文件的预览地址。");
    }
    const fileItemWithPreview = fileItem;
    fileItemWithPreview.previewUrl = filePreviewConfig.generatePreviewUrl(fileItem.viewUrl);
    const container = document.createElement("div");
    document.body.appendChild(container);
    vue.render(
      vue.createVNode(_sfc_main$i, {
        ...fileItemWithPreview,
        onClose: () => {
          vue.render(null, container);
          document.body.removeChild(container);
        }
      }),
      container
    );
  }
  const MtFilePreview = withInstall(filePreview);
  const infiniteScrollProps = {
    /**
     * 绑定最终的列表渲染变量(页面data中声明的值),当列表数据改变时,所绑定的变量会跟着改变
     */
    modelValue: {
      type: Array,
      default: () => []
    },
    /**
     * 滚动区域高度
     */
    height: {
      type: [Number, String],
      validator: (value) => {
        return isValidCssValue(value);
      },
      default: "100%"
    },
    /**
     * 默认页码
     */
    upScrollPageNum: {
      type: Number,
      default: 1
    },
    /**
     * 默认每页加载数量
     */
    upScrollPageSize: {
      type: Number,
      default: 10
    },
    /**
     * 是否开启加载更多数据
     */
    upScrollEnabled: {
      type: Boolean,
      default: true
    },
    /**
     * 是否立即上拉加载
     */
    upScrollImmediate: {
      type: Boolean,
      default: true
    },
    /**
     * 滚动节流时延,单位为ms
     */
    scrollEventDelay: {
      type: Number,
      default: 30
    },
    /**
     * 上拉加载的阈值
     */
    upScrollDistance: {
      type: Number,
      default: 75
    },
    /**
     * 当没有更多数据且分页数组长度少于这个值时,隐藏没有更多
     */
    hideNoMoreByLimit: {
      type: Number,
      default: 5
    },
    /**
     * 滑动到底部"加载中"文字
     */
    loadingMoreLoadingText: {
      type: String,
      default: "加载中..."
    },
    /**
     * 滑动到底部"没有更多"文字
     */
    loadingMoreNoMoreText: {
      type: String,
      default: "没有更多了"
    },
    /**
     * 空数据图描述文字
     */
    emptyText: {
      type: String,
      default: "没有数据哦~"
    },
    /**
     * 空数据图图片地址
     */
    emptyImg: {
      type: String,
      default: ""
    },
    /**
     * 空数据图图片宽度
     */
    emptyImageWidth: {
      type: [Number, String],
      validator: (value) => {
        return isValidCssValue(value);
      },
      default: 200
    },
    // 请求最慢的时间,单位为ms
    queryMinDelay: {
      type: Number,
      default: 0
    }
  };
  var UpScrollStatusEnum = /* @__PURE__ */ ((UpScrollStatusEnum2) => {
    UpScrollStatusEnum2[UpScrollStatusEnum2["DEFAULT"] = 0] = "DEFAULT";
    UpScrollStatusEnum2[UpScrollStatusEnum2["LOADING"] = 1] = "LOADING";
    UpScrollStatusEnum2[UpScrollStatusEnum2["NO_MORE"] = 2] = "NO_MORE";
    UpScrollStatusEnum2[UpScrollStatusEnum2["EMPTY"] = 3] = "EMPTY";
    UpScrollStatusEnum2[UpScrollStatusEnum2["FAIL"] = 4] = "FAIL";
    return UpScrollStatusEnum2;
  })(UpScrollStatusEnum || {});
  const _hoisted_1$d = { class: "mt-infinite-scroll__footer" };
  const _hoisted_2$b = {
    key: 1,
    class: "mt-infinite-scroll__no-more"
  };
  const _hoisted_3$7 = {
    key: 3,
    class: "mt-infinite-scroll__fail"
  };
  const _sfc_main$h = /* @__PURE__ */ vue.defineComponent({
    ...{
      name: "MtInfiniteScroll"
    },
    __name: "infinite-scroll",
    props: infiniteScrollProps,
    emits: ["update:modelValue", "query"],
    setup(__props, { expose: __expose, emit: __emit }) {
      const props = __props;
      const emits = __emit;
      const containerRef = vue.ref(null);
      const contentRef = vue.ref(null);
      const lastScrollTop = vue.ref(0);
      const upScrollStatus = vue.ref(UpScrollStatusEnum.DEFAULT);
      const upScrollPage = vue.ref({
        pageNum: props.upScrollPageNum,
        pageSize: props.upScrollPageSize
      });
      const upScrollShowNoMore = vue.ref(false);
      const observer = vue.ref(null);
      const queryStartTime = vue.ref((/* @__PURE__ */ new Date()).getTime());
      const list = vue.computed({
        get: () => props.modelValue,
        set: (value) => emits("update:modelValue", value)
      });
      function setUpScrollStatus(status) {
        upScrollStatus.value = status;
      }
      function initUpScroll() {
        list.value = [];
        setUpScrollStatus(UpScrollStatusEnum.DEFAULT);
        upScrollPage.value = {
          pageNum: props.upScrollPageNum,
          pageSize: props.upScrollPageSize
        };
      }
      function triggerUpScroll() {
        if (!props.upScrollEnabled)
          return;
        if (!containerRef.value)
          return;
        if (![UpScrollStatusEnum.DEFAULT].includes(upScrollStatus.value))
          return;
        const { scrollTop, clientHeight, scrollHeight } = containerRef.value;
        const isScrollToBottom = scrollHeight - (scrollTop + clientHeight) <= Number(props.upScrollDistance);
        if (isScrollToBottom) {
          setUpScrollStatus(UpScrollStatusEnum.LOADING);
          queryStartTime.value = (/* @__PURE__ */ new Date()).getTime();
          emits("query", {
            pageNum: upScrollPage.value.pageNum,
            pageSize: upScrollPage.value.pageSize
          });
        }
      }
      function handleScroll() {
        if (!containerRef.value) {
          return;
        }
        const elelmentRect = containerRef.value.getBoundingClientRect();
        if (!elelmentRect.width && !elelmentRect.height)
          return;
        const { scrollTop } = containerRef.value;
        const isScrollUp = scrollTop - lastScrollTop.value > 0;
        lastScrollTop.value = scrollTop;
        if (isScrollUp) {
          triggerUpScroll();
        }
      }
      function endError() {
        setUpScrollStatus(UpScrollStatusEnum.FAIL);
        upScrollShowNoMore.value = false;
      }
      async function endSuccess(data2, totalSize) {
        const queryTime = (/* @__PURE__ */ new Date()).getTime() - queryStartTime.value;
        if (queryTime < props.queryMinDelay) {
          await tools.timeDelay(props.queryMinDelay - queryTime);
        }
        const { pageSize, pageNum } = upScrollPage.value;
        const dataSize = data2.length;
        const loadSize = (pageNum - 1) * pageSize + dataSize;
        const hasNext = dataSize >= pageSize || Number(loadSize) < Number(totalSize);
        if (pageNum === 1) {
          list.value = [];
        }
        upScrollShowNoMore.value = false;
        if (hasNext) {
          if (pageNum === 1) {
            list.value = [...data2];
          } else {
            list.value = [...list.value, ...data2];
          }
          setUpScrollStatus(UpScrollStatusEnum.DEFAULT);
          upScrollPage.value.pageNum += 1;
        } else {
          if (dataSize === 0 && pageNum === 1) {
            setUpScrollStatus(UpScrollStatusEnum.EMPTY);
          } else {
            if (loadSize <= props.hideNoMoreByLimit) {
              upScrollShowNoMore.value = false;
            } else {
              upScrollShowNoMore.value = true;
            }
            if (pageNum === 1) {
              list.value = [...data2];
            } else {
              list.value = [...list.value, ...data2];
            }
            setUpScrollStatus(UpScrollStatusEnum.NO_MORE);
          }
        }
      }
      function bindUpScrollEvent() {
        var _a;
        const handleScrollThrottleFn = tools.throttle(handleScroll, props.scrollEventDelay);
        (_a = containerRef.value) == null ? void 0 : _a.addEventListener("scroll", handleScrollThrottleFn);
      }
      function destroyObserver() {
        if (observer.value) {
          observer.value.disconnect();
        }
      }
      function checkFullUpScroll() {
        if (!props.upScrollEnabled)
          return;
        if (!containerRef.value)
          return;
        if (![UpScrollStatusEnum.DEFAULT].includes(upScrollStatus.value))
          return;
        const elelmentRect = containerRef.value.getBoundingClientRect();
        if (!elelmentRect.width && !elelmentRect.height)
          return;
        if (containerRef.value.scrollHeight <= containerRef.value.clientHeight) {
          setUpScrollStatus(UpScrollStatusEnum.LOADING);
          queryStartTime.value = (/* @__PURE__ */ new Date()).getTime();
          emits("query", {
            pageNum: upScrollPage.value.pageNum,
            pageSize: upScrollPage.value.pageSize
          });
        } else {
          destroyObserver();
        }
      }
      function observerUpScroll() {
        observer.value = new MutationObserver(checkFullUpScroll);
        observer.value.observe(contentRef.value, { childList: true, subtree: true });
        checkFullUpScroll();
      }
      async function resetUpScroll() {
        initUpScroll();
        await vue.nextTick();
        observerUpScroll();
      }
      vue.onMounted(async () => {
        var _a;
        initUpScroll();
        await vue.nextTick();
        lastScrollTop.value = ((_a = containerRef.value) == null ? void 0 : _a.scrollTop) || 0;
        if (props.upScrollImmediate) {
          observerUpScroll();
        }
        bindUpScrollEvent();
      });
      vue.onUnmounted(() => {
        var _a;
        (_a = containerRef.value) == null ? void 0 : _a.removeEventListener("scroll", handleScroll);
        destroyObserver();
      });
      __expose({
        endSuccess,
        endError,
        resetUpScroll
      });
      return (_ctx, _cache) => {
        return vue.openBlock(), vue.createElementBlock("div", {
          ref_key: "containerRef",
          ref: containerRef,
          class: "mt-infinite-scroll",
          style: vue.normalizeStyle({ height: vue.unref(convertValueToViewportWidth)(props.height) })
        }, [
          vue.createElementVNode("div", {
            ref_key: "contentRef",
            ref: contentRef,
            class: "mt-infinite-scroll__content"
          }, [
            vue.renderSlot(_ctx.$slots, "default")
          ], 512),
          vue.createElementVNode("div", _hoisted_1$d, [
            upScrollStatus.value === vue.unref(UpScrollStatusEnum).LOADING ? (vue.openBlock(), vue.createBlock(vue.unref(MtLoading), {
              key: 0,
              text: props.loadingMoreLoadingText
            }, null, 8, ["text"])) : upScrollStatus.value === vue.unref(UpScrollStatusEnum).NO_MORE && upScrollShowNoMore.value ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_2$b, vue.toDisplayString(props.loadingMoreNoMoreText), 1)) : upScrollStatus.value === vue.unref(UpScrollStatusEnum).EMPTY ? vue.renderSlot(_ctx.$slots, "empty", { key: 2 }, () => [
              vue.createVNode(vue.unref(MtEmpty), {
                "image-width": props.emptyImageWidth,
                image: props.emptyImg,
                description: props.emptyText
              }, null, 8, ["image-width", "image", "description"])
            ]) : upScrollStatus.value === vue.unref(UpScrollStatusEnum).FAIL ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_3$7, " 加载失败,请重试 ")) : vue.createCommentVNode("", true)
          ])
        ], 4);
      };
    }
  });
  const MtInfiniteScroll = withInstall(_sfc_main$h);
  const instances = vue.shallowReactive([]);
  function getInstance(id2) {
    const idx = instances.findIndex((instance) => instance.id === id2);
    const current = instances[idx];
    let prev;
    if (idx > 0) {
      prev = instances[idx - 1];
    }
    return { current, prev };
  }
  function getLastOffset(id2) {
    const { prev } = getInstance(id2);
    if (!prev) {
      return 0;
    }
    return prev.vm.exposed.bottom.value;
  }
  function getOffsetOrSpace(id2, offset) {
    const idx = instances.findIndex((instance) => instance.id === id2);
    return idx > 0 ? 16 : offset;
  }
  const messageTypes = ["success", "error", "warning"];
  const messageProps = {
    /**
     * 消息文字
     */
    message: {
      type: String,
      required: true
    },
    /**
     * 消息类型
     */
    type: {
      type: String,
      validator: (value) => {
        return messageTypes.includes(value);
      },
      default: messageTypes[0]
    },
    /**
     * 显示时间,单位为毫秒。 设为 0 则不会自动关闭
     */
    duration: {
      type: Number,
      default: 3e3
    },
    /**
     * 是否显示关闭按钮
     */
    showClose: {
      type: Boolean,
      default: false
    },
    /**
     * Message 距离窗口顶部的偏移量
     */
    offset: {
      type: Number,
      default: 16
    },
    /**
     * 关闭时的回调函数, 参数为被关闭的 message 实例
     */
    onClose: {
      type: Function,
      default: () => {
      }
    },
    /**
     * 唯一标识符
     */
    id: {
      type: String,
      required: true
    }
  };
  const _hoisted_1$c = { class: "mt-message__content" };
  const _sfc_main$g = /* @__PURE__ */ vue.defineComponent({
    ...{
      name: "MtMessage"
    },
    __name: "message",
    props: messageProps,
    emits: ["destroy"],
    setup(__props, { expose: __expose, emit: __emit }) {
      const props = __props;
      const emits = __emit;
      let stopTimer;
      const { nextZIndex } = useZIndex(8e3);
      const messageRef = vue.ref();
      const zIndex2 = vue.ref(nextZIndex());
      const visible = vue.ref(false);
      const height = vue.ref(0);
      const lastOffset = vue.computed(() => getLastOffset(props.id));
      const offset = vue.computed(
        () => getOffsetOrSpace(props.id, props.offset) + lastOffset.value
      );
      const bottom = vue.computed(() => height.value + offset.value);
      const messageClasses = vue.computed(() => {
        const classes = [];
        classes.push("mt-message");
        classes.push(`mt-message--${props.type}`);
        return classes;
      });
      const messageStyles = vue.computed(() => {
        const styles = {};
        styles.top = `${offset.value}px`;
        styles.zIndex = zIndex2.value;
        return styles;
      });
      const messageIconName = vue.computed(() => {
        return {
          [messageTypes[0]]: "icon-Alerts_success",
          [messageTypes[1]]: "icon-Alerts_-false",
          [messageTypes[2]]: "icon-Alerts_-v-blue"
        }[props.type];
      });
      function startTimer() {
        if (props.duration === 0) {
          return;
        }
        ({ stop: stopTimer } = core.useTimeoutFn(() => {
          close();
        }, props.duration));
      }
      function clearTimer() {
        stopTimer == null ? void 0 : stopTimer();
      }
      function close() {
        visible.value = false;
      }
      vue.onMounted(() => {
        startTimer();
        visible.value = true;
      });
      core.useResizeObserver(messageRef, () => {
        height.value = messageRef.value.getBoundingClientRect().height;
      });
      core.useEventListener(document, "keydown", keydown);
      function keydown({ code }) {
        if (code === "Escape") {
          close();
        }
      }
      __expose({
        close,
        bottom
      });
      return (_ctx, _cache) => {
        return vue.openBlock(), vue.createBlock(vue.Transition, {
          name: "mt-message__fade",
          onAfterLeave: _cache[0] || (_cache[0] = ($event) => emits("destroy"))
        }, {
          default: vue.withCtx(() => [
            vue.withDirectives(vue.createElementVNode("div", {
              ref_key: "messageRef",
              ref: messageRef,
              class: vue.normalizeClass(messageClasses.value),
              style: vue.normalizeStyle(messageStyles.value),
              onMouseenter: clearTimer,
              onMouseleave: startTimer
            }, [
              props.type ? (vue.openBlock(), vue.createBlock(vue.unref(MtIcon), {
                key: 0,
                name: messageIconName.value
              }, null, 8, ["name"])) : vue.createCommentVNode("", true),
              vue.renderSlot(_ctx.$slots, "default", {}, () => [
                vue.createElementVNode("div", _hoisted_1$c, vue.toDisplayString(props.message), 1)
              ]),
              props.showClose ? (vue.openBlock(), vue.createBlock(vue.unref(MtIcon), {
                key: 1,
                name: "icon-cha",
                clickable: "",
                onClick: vue.withModifiers(close, ["stop"])
              })) : vue.createCommentVNode("", true)
            ], 38), [
              [vue.vShow, visible.value]
            ])
          ]),
          _: 3
        });
      };
    }
  });
  let seed = 1;
  function removeInstance(id2) {
    const idx = instances.findIndex((instance) => instance.id === id2);
    if (idx === -1) {
      return;
    }
    instances.splice(idx, 1);
  }
  function createMessage(options) {
    const id2 = `message_${seed++}`;
    const userOnClose = options.onClose;
    const container = document.createElement("div");
    const vnode = vue.createVNode(_sfc_main$g, {
      ...options,
      id: id2,
      onClose: () => {
        userOnClose == null ? void 0 : userOnClose();
        const { current } = getInstance(id2);
        current == null ? void 0 : current.vm.exposed.close();
      },
      onDestroy() {
        vue.render(null, container);
        removeInstance(id2);
      }
    });
    vue.render(vnode, container);
    const vm = vnode.component;
    const handler = {
      close: () => {
        vm.exposed.close();
      }
    };
    const instance = {
      id: id2,
      vnode,
      vm,
      handler,
      props: vnode.component.props
    };
    document.body.appendChild(container.firstElementChild);
    return instance;
  }
  function normalizeOptions(options) {
    if (tools.isString(options)) {
      options = { message: options };
    }
    return options;
  }
  const Message = (options) => {
    const instance = createMessage(normalizeOptions(options));
    instances.push(instance);
    return instance.handler;
  };
  messageTypes.forEach((type) => {
    Message[type] = (options) => {
      return Message({ ...normalizeOptions(options), type });
    };
  });
  function closeAll(type) {
    for (const instance of instances) {
      if (!type || type === instance.props.type) {
        instance.handler.close();
      }
    }
  }
  Message.closeAll = closeAll;
  const MtMessage = withInstall(Message);
  function useClickOutside(elementRefs, callback) {
    const handleClick = (event) => {
      const target = event.target;
      for (const elementRef of elementRefs) {
        const element = elementRef.value;
        if (element && element.contains(target)) {
          return;
        }
      }
      callback(event);
    };
    vue.onMounted(async () => {
      await vue.nextTick();
      document.addEventListener("click", handleClick);
    });
    vue.onUnmounted(() => {
      document.removeEventListener("click", handleClick);
    });
  }
  function findFirstLegitChild(node2) {
    if (!node2) {
      return null;
    }
    const children = node2;
    for (const child of children) {
      if (tools.isObject(child)) {
        switch (child.type) {
          case vue.Comment:
            continue;
          case vue.Text:
          case "svg":
            return wrapTextContent(child);
          case vue.Fragment:
            return findFirstLegitChild(child.children);
          default:
            return child;
        }
      }
      return wrapTextContent(child);
    }
    return null;
  }
  function wrapTextContent(s) {
    return vue.h("span", {
      class: "mt-only-child__content"
    }, s);
  }
  const MtOnlyChild = /* @__PURE__ */ vue.defineComponent({
    name: "MtOnlyChild",
    props: {
      setRef: {
        type: Function,
        default: () => () => {
        }
      }
    },
    setup(props, {
      slots,
      attrs
    }) {
      var _a;
      const el = vue.ref();
      const uid = tools.getUuid();
      const defaultSlot = (_a = slots.default) == null ? void 0 : _a.call(slots);
      if (!defaultSlot) {
        return () => null;
      }
      const firstLegitNode = findFirstLegitChild(defaultSlot);
      if (!firstLegitNode) {
        return () => null;
      }
      vue.onMounted(() => {
        props.setRef(document.querySelector(`#mt-popover__trigger__${uid}`));
      });
      return () => {
        return vue.h(firstLegitNode, {
          ...attrs,
          id: [`mt-popover__trigger__${uid}`],
          ref: el
        });
      };
    }
  });
  const popoverProps = {
    /**
     * 是否显示
     */
    modelValue: {
      type: Boolean,
      default: false
    },
    /**
     * 显示的内容
     */
    content: {
      type: String,
      default: ""
    },
    /**
     * 延迟显示,单位毫秒
     */
    showDelay: {
      type: Number,
      default: 0
    },
    /**
     * 延迟关闭,单位毫秒
     */
    closeDelay: {
      type: Number,
      default: 250
    },
    /**
     * 触发方式
     */
    trigger: {
      type: String,
      default: "hover"
    },
    /**
     * 出现的位置
     */
    placement: {
      type: String,
      default: "bottom"
    },
    /**
     * popover 的参数
     */
    popperOptions: {
      type: Object,
      default: () => ({})
    },
    /**
     * Content 挂载到哪个 DOM 元素
     */
    appendTo: {
      type: [String, Object],
      default: "body"
    },
    /**
     * Content 主题
     */
    effect: {
      type: String,
      default: "light"
    }
  };
  const _sfc_main$f = /* @__PURE__ */ vue.defineComponent({
    ...{
      name: "MtPopover"
    },
    __name: "popover",
    props: popoverProps,
    emits: ["update:modelValue", "close"],
    setup(__props, { expose: __expose, emit: __emit }) {
      const props = __props;
      const emits = __emit;
      const triggerRef = vue.ref(null);
      const contentRef = vue.ref(null);
      const arrowRef = vue.ref(null);
      const popperInstance = vue.ref(null);
      const popoverContentEvents = vue.ref({});
      const triggerEvents = vue.ref({});
      const contentVisible = vue.ref(false);
      const popperOptions = vue.computed(() => {
        return {
          placement: props.placement,
          modifiers: [
            {
              name: "arrow",
              options: {
                element: arrowRef.value
              }
            },
            {
              name: "offset",
              options: {
                offset: [0, 8]
              }
            }
          ],
          ...props.popperOptions
        };
      });
      const contentStyles = vue.computed(() => {
        const styles = {};
        return styles;
      });
      const popoverContentClass = vue.computed(() => {
        const classes = [];
        classes.push("mt-popover__content");
        classes.push(`mt-popover__content--${props.effect}`);
        return classes;
      });
      function showPopper() {
        contentVisible.value = true;
      }
      function closePopper() {
        contentVisible.value = false;
      }
      const showPopperDebounce = tools.debounce(showPopper, props.showDelay);
      const closePopperDebounce = tools.debounce(closePopper, props.closeDelay);
      function showPopperFinal() {
        closePopperDebounce.cancel();
        showPopperDebounce();
      }
      function closePopperFinal() {
        showPopperDebounce.cancel();
        closePopperDebounce();
      }
      function togglePopper() {
        if (contentVisible.value) {
          closePopperFinal();
        } else {
          showPopperFinal();
        }
      }
      function bindElementEvents() {
        popoverContentEvents.value = {};
        triggerEvents.value = {};
        if (props.trigger === "manual") {
          return;
        }
        if (props.trigger === "hover") {
          popoverContentEvents.value = {
            mouseenter: showPopperFinal,
            mouseleave: closePopperFinal
          };
          triggerEvents.value = {
            mouseenter: showPopperFinal,
            mouseleave: closePopperFinal
          };
        }
        if (props.trigger === "click") {
          triggerEvents.value = {
            click: togglePopper
          };
        }
      }
      vue.watch(() => props.trigger, (newValue, oldValue) => {
        if (newValue !== oldValue) {
          bindElementEvents();
        }
      });
      vue.watch(contentVisible, (newValue) => {
        if (newValue) {
          if (triggerRef.value && contentRef.value) {
            popperInstance.value = core$1.createPopper(triggerRef.value, contentRef.value, {
              ...popperOptions.value
            });
          }
        } else {
          emits("close");
        }
        emits("update:modelValue", newValue);
      }, {
        flush: "post"
      });
      vue.watch(() => props.modelValue, (newValue) => {
        if (newValue) {
          showPopperFinal();
        } else {
          closePopperFinal();
        }
      }, {
        immediate: true
      });
      function setTriggerRef(el) {
        triggerRef.value = el;
      }
      useClickOutside([
        triggerRef,
        contentRef
      ], () => {
        if (contentVisible.value && props.trigger === "click") {
          closePopperFinal();
        }
      });
      vue.onMounted(() => {
        bindElementEvents();
      });
      vue.onUnmounted(() => {
        if (popperInstance.value) {
          popperInstance.value.destroy();
          popperInstance.value = null;
        }
      });
      __expose({
        close() {
          closePopperFinal();
        },
        show() {
          showPopperFinal();
        }
      });
      return (_ctx, _cache) => {
        return vue.openBlock(), vue.createElementBlock(vue.Fragment, null, [
          vue.createVNode(vue.unref(MtOnlyChild), vue.mergeProps({ "set-ref": setTriggerRef }, vue.toHandlers(triggerEvents.value)), {
            default: vue.withCtx(() => [
              vue.renderSlot(_ctx.$slots, "reference")
            ]),
            _: 3
          }, 16),
          vue.createVNode(vue.unref(MtTeleport), {
            to: props.appendTo
          }, {
            default: vue.withCtx(() => [
              vue.createVNode(vue.unref(MtFadeTransition), { duration: 250 }, {
                default: vue.withCtx(() => [
                  contentVisible.value ? (vue.openBlock(), vue.createElementBlock("div", vue.mergeProps({
                    key: 0,
                    ref_key: "contentRef",
                    ref: contentRef,
                    style: contentStyles.value,
                    class: popoverContentClass.value
                  }, vue.toHandlers(popoverContentEvents.value, true)), [
                    vue.renderSlot(_ctx.$slots, "default", {}, () => [
                      vue.createTextVNode(vue.toDisplayString(props.content), 1)
                    ]),
                    vue.createElementVNode("div", {
                      ref_key: "arrowRef",
                      ref: arrowRef,
                      class: "mt-popover__arrow"
                    }, null, 512)
                  ], 16)) : vue.createCommentVNode("", true)
                ]),
                _: 3
              })
            ]),
            _: 3
          }, 8, ["to"])
        ], 64);
      };
    }
  });
  const MtPopover = withInstall(_sfc_main$f);
  const posterComponent = vue.defineComponent({
    inheritAttrs: false,
    emits: ["close"],
    setup(_props, { slots, emit, attrs, expose }) {
      const visible = vue.ref(true);
      const dialogRef = vue.ref(null);
      const handleUpdateModelValue = (value) => {
        visible.value = value;
      };
      const handleClosed = () => {
        emit("close");
      };
      expose({
        dialogRef
      });
      return () => vue.createVNode(
        MtDialog,
        {
          ...{
            modelValue: visible.value,
            ...attrs
          },
          "onUpdate:modelValue": handleUpdateModelValue,
          "onClosed": handleClosed,
          "ref": dialogRef
        },
        {
          default: () => {
            var _a;
            return (_a = slots.default) == null ? void 0 : _a.call(slots);
          }
        }
      );
    }
  });
  function Poster(options) {
    const container = document.createElement("div");
    let dialogVNode = null;
    let contentVNode = null;
    function doClose() {
      var _a, _b, _c, _d, _e;
      (_e = (_d = (_c = (_b = (_a = dialogVNode == null ? void 0 : dialogVNode.component) == null ? void 0 : _a.exposed) == null ? void 0 : _b.dialogRef) == null ? void 0 : _c.value) == null ? void 0 : _d.close) == null ? void 0 : _e.call(_d);
      document.body.removeChild(container);
    }
    const contentEvents = {
      ...options.events,
      onClose() {
        doClose();
      }
    };
    const contentProps = {
      ...options.props
    };
    const dialogProps2 = {
      ...{
        padding: 0,
        alignCenter: true
      },
      ...options.dialogProps
    };
    const dialogEvents = {
      onClose() {
        var _a, _b;
        (_b = (_a = options == null ? void 0 : options.events) == null ? void 0 : _a.onClose) == null ? void 0 : _b.call(_a);
        vue.render(null, container);
      }
    };
    document.body.appendChild(container);
    options.component().then((component) => {
      const contentComponent = component.default;
      contentVNode = vue.createVNode(contentComponent, {
        ...contentProps,
        ...contentEvents
      });
      dialogVNode = vue.createVNode(
        posterComponent,
        {
          ...dialogProps2,
          ...dialogEvents
        },
        {
          default: () => contentVNode
        }
      );
      vue.render(dialogVNode, container);
    });
    return {
      close() {
        doClose();
      },
      /**
       * 动态更新内容组件的属性。
       * @param props 新的属性对象。
       */
      setProps(props) {
        if (contentVNode && contentVNode.component) {
          Object.assign(contentVNode.component.props, {
            ...props
          });
        }
      }
    };
  }
  const MtPoster = withInstall(Poster);
  const progressTypes = ["line", "circle", "dashboard"];
  const progressStatus = ["default", "success", "exception", "warning"];
  const progressProps = {
    // 进度条类型
    type: {
      type: String,
      default: progressTypes[0],
      values: progressTypes
    },
    // 进度条进度
    percentage: {
      type: Number,
      default: 0,
      validator: (value) => value >= 0 && value <= 100
    },
    // 进度条当前状态
    status: {
      type: String,
      default: progressStatus[0],
      values: progressStatus
    },
    // 进度条的宽度
    strokeWidth: {
      type: Number,
      default: 6
    },
    // 是否显示进度条文字内容
    showText: {
      type: Boolean,
      default: true
    },
    // 进度条显示文字内置在进度条内(仅 type 为 'line' 时可用)
    textInside: {
      type: Boolean,
      default: false
    },
    // 环形进度条画布宽度(只在 type 为 circle 或 dashboard 时可用)
    width: {
      type: Number,
      default: 126
    },
    // circle/dashboard 类型路径两端的形状
    strokeLinecap: {
      type: String,
      default: "round"
    },
    // 进度条背景色 (会覆盖 status 状态颜色)
    color: {
      type: String,
      default: ""
    }
  };
  const _hoisted_1$b = {
    key: 0,
    class: "mt-progress__bar"
  };
  const _hoisted_2$a = {
    key: 0,
    class: "mt-progress__inner-text"
  };
  const _hoisted_3$6 = { viewBox: "0 0 100 100" };
  const _hoisted_4$4 = ["d", "stroke-linecap", "stroke-width"];
  const _hoisted_5$2 = ["d", "stroke", "opacity", "stroke-linecap", "stroke-width"];
  const _sfc_main$e = /* @__PURE__ */ vue.defineComponent({
    ...{
      name: "MtProgress"
    },
    __name: "progress",
    props: progressProps,
    setup(__props) {
      const props = __props;
      const slots = vue.useSlots();
      const progressClasses = vue.computed(() => {
        const classes = [];
        classes.push("mt-progress");
        if (props.type) {
          classes.push(`mt-progress--${props.type}`);
        }
        if (props.status) {
          classes.push(`mt-progress--${props.status}`);
        }
        return classes;
      });
      const progressStyles = vue.computed(() => {
        const styles = {};
        styles.height = convertValueToViewportWidth(props.strokeWidth);
        return styles;
      });
      const innerStyles = vue.computed(() => {
        const styles = {};
        styles.width = `${props.percentage}%`;
        const color = getCurrentColor();
        if (color.includes("gradient")) {
          styles.background = color;
        } else {
          styles.backgroundColor = color;
        }
        return styles;
      });
      const circleStyles = vue.computed(() => {
        const styles = {};
        styles.width = convertValueToViewportWidth(props.width);
        styles.height = convertValueToViewportWidth(props.width);
        return styles;
      });
      const content = vue.computed(() => {
        return `${props.percentage}%`;
      });
      const relativeStrokeWidth = vue.computed(
        () => (props.strokeWidth / props.width * 100).toFixed(1)
      );
      const radius = vue.computed(() => {
        if (["circle", "dashboard"].includes(props.type)) {
          return Number.parseInt(
            `${50 - Number.parseFloat(relativeStrokeWidth.value) / 2}`,
            10
          );
        }
        return 0;
      });
      const trackPath = vue.computed(() => {
        const r = radius.value;
        const isDashboard = props.type === "dashboard";
        return `
          M 50 50
          m 0 ${isDashboard ? "" : "-"}${r}
          a ${r} ${r} 0 1 1 0 ${isDashboard ? "-" : ""}${r * 2}
          a ${r} ${r} 0 1 1 0 ${isDashboard ? "" : "-"}${r * 2}
          `;
      });
      const perimeter = vue.computed(() => 2 * Math.PI * radius.value);
      const rate = vue.computed(() => props.type === "dashboard" ? 0.75 : 1);
      const strokeDashoffset = vue.computed(() => {
        const offset = -1 * perimeter.value * (1 - rate.value) / 2;
        return convertValueToViewportWidth(offset);
      });
      const trailPathStyle = vue.computed(() => ({
        strokeDasharray: `${convertValueToViewportWidth(perimeter.value * rate.value)}, ${convertValueToViewportWidth(perimeter.value)}`,
        strokeDashoffset: strokeDashoffset.value
      }));
      const circlePathStyle = vue.computed(() => ({
        strokeDasharray: `${convertValueToViewportWidth(perimeter.value * rate.value * (props.percentage / 100))}, ${convertValueToViewportWidth(perimeter.value)}`,
        strokeDashoffset: strokeDashoffset.value,
        transition: "stroke-dasharray 0.6s ease 0s, stroke 0.6s ease, opacity ease 0.6s"
      }));
      const stroke = vue.computed(() => {
        const STATUS_COLOR_MAP = {
          default: "#5d89f7",
          success: "#00b42a",
          exception: "#f44049",
          warning: "#ff7a3d"
        };
        let strokeColor;
        if (props.color) {
          strokeColor = getCurrentColor();
        } else {
          strokeColor = STATUS_COLOR_MAP[props.status] || STATUS_COLOR_MAP.default;
        }
        return strokeColor;
      });
      const progressTextSize = vue.computed(() => {
        return convertValueToViewportWidth(props.type === "line" ? 12 + props.strokeWidth * 0.4 : props.width * 0.111111 + 2);
      });
      function getCurrentColor() {
        return props.color;
      }
      return (_ctx, _cache) => {
        return vue.openBlock(), vue.createElementBlock("div", {
          class: vue.normalizeClass(progressClasses.value)
        }, [
          _ctx.type === "line" ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_1$b, [
            vue.createElementVNode("div", {
              class: "mt-progress__outer",
              style: vue.normalizeStyle(progressStyles.value)
            }, [
              vue.createElementVNode("div", {
                class: "mt-progress__inner",
                style: vue.normalizeStyle(innerStyles.value)
              }, [
                (props.showText || slots.default) && _ctx.textInside ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_2$a, [
                  vue.renderSlot(_ctx.$slots, "default", {
                    percentage: props.percentage
                  }, () => [
                    vue.createElementVNode("span", null, vue.toDisplayString(content.value), 1)
                  ])
                ])) : vue.createCommentVNode("", true)
              ], 4)
            ], 4)
          ])) : (vue.openBlock(), vue.createElementBlock("div", {
            key: 1,
            class: "mt-progress__circle",
            style: vue.normalizeStyle(circleStyles.value)
          }, [
            (vue.openBlock(), vue.createElementBlock("svg", _hoisted_3$6, [
              vue.createElementVNode("path", {
                class: "mt-progress__circle--track",
                d: trackPath.value,
                stroke: "var(--mt-color-gray-e5e6eb)",
                "stroke-linecap": props.strokeLinecap,
                "stroke-width": relativeStrokeWidth.value,
                fill: "none",
                style: vue.normalizeStyle(trailPathStyle.value)
              }, null, 12, _hoisted_4$4),
              vue.createElementVNode("path", {
                class: "mt-progress__circle--path",
                d: trackPath.value,
                stroke: stroke.value,
                fill: "none",
                opacity: _ctx.percentage ? 1 : 0,
                "stroke-linecap": props.strokeLinecap,
                "stroke-width": relativeStrokeWidth.value,
                style: vue.normalizeStyle(circlePathStyle.value)
              }, null, 12, _hoisted_5$2)
            ]))
          ], 4)),
          (_ctx.showText || slots.default) && !_ctx.textInside ? (vue.openBlock(), vue.createElementBlock("div", {
            key: 2,
            class: "mt-progress__text",
            style: vue.normalizeStyle({ fontSize: `${progressTextSize.value}` })
          }, [
            vue.renderSlot(_ctx.$slots, "default", {
              percentage: props.percentage
            }, () => [
              vue.createElementVNode("span", null, vue.toDisplayString(content.value), 1)
            ])
          ], 4)) : vue.createCommentVNode("", true)
        ], 2);
      };
    }
  });
  const MtProgress = withInstall(_sfc_main$e);
  const tabsProps = {
    /**
     * 绑定值,选中选项卡的 name/索引 ,默认值是第一个 tab 的 索引
     */
    modelValue: {
      type: [String, Number],
      default: 0
    },
    /**
     * 风格类型
     */
    type: {
      type: String,
      default: "card"
    }
  };
  const TabsKey = Symbol("tabs");
  const tabProps = {
    /**
     * 选项卡标题
     */
    label: {
      type: String,
      default: ""
    },
    /**
     * 与选项卡绑定值 value 对应的标识符,表示选项卡别名。默认值是tab面板的序列号,如第一个 tab 是 0
     */
    name: {
      type: [String, Number],
      default: 0
    }
  };
  const _hoisted_1$a = ["id"];
  const _sfc_main$d = /* @__PURE__ */ vue.defineComponent({
    ...{
      name: "MtTab"
    },
    __name: "tab",
    props: tabProps,
    setup(__props, { expose: __expose }) {
      const props = __props;
      const { index: index2, parent } = useParent(TabsKey);
      const tabName = vue.computed(() => props.name || index2.value);
      const isActive = vue.computed(() => tabName.value === (parent == null ? void 0 : parent.currentTabName.value));
      const tabClasses = vue.computed(() => {
        const classes = [];
        classes.push(`mt-tab`);
        if (isActive.value) {
          classes.push(`is-active`);
        }
        classes.push(`mt-tab--${parent == null ? void 0 : parent.type}`);
        return classes;
      });
      function handleClick() {
        parent == null ? void 0 : parent.onChange(tabName.value);
      }
      __expose({
        isActive
      });
      return (_ctx, _cache) => {
        return vue.openBlock(), vue.createElementBlock("div", {
          id: `tab-${vue.unref(index2)}`,
          class: vue.normalizeClass(tabClasses.value),
          onClick: handleClick
        }, vue.toDisplayString(props.label), 11, _hoisted_1$a);
      };
    }
  });
  const MtTab = withInstall(_sfc_main$d);
  const _sfc_main$c = /* @__PURE__ */ vue.defineComponent({
    ...{
      name: "MtTabs"
    },
    __name: "tabs",
    props: tabsProps,
    emits: ["update:modelValue", "change"],
    setup(__props, { emit: __emit }) {
      const props = __props;
      const emits = __emit;
      const tabsRef = vue.ref();
      const currentTabName = vue.computed({
        get() {
          return props.modelValue;
        },
        set(value) {
          emits("update:modelValue", value);
          emits("change", value);
        }
      });
      const { children } = useChildren(TabsKey, {
        currentTabName,
        onChange,
        type: props.type
      });
      const barStyles = vue.computed(() => {
        const styles = {};
        if (tabsRef.value) {
          children.forEach((child, index2) => {
            const $el = tabsRef.value.querySelector(`#tab-${index2}`);
            if (!$el) {
              return;
            }
            if (!child.exposed.isActive) {
              return;
            }
            styles.width = `${$el.clientWidth}px`;
            styles.left = `${$el.offsetLeft}px`;
          });
        }
        return styles;
      });
      const lineStyles = vue.computed(() => {
        const styles = {};
        if (tabsRef.value) {
          children.forEach((child, index2) => {
            const $el = tabsRef.value.querySelector(`#tab-${index2}`);
            if (!$el) {
              return;
            }
            if (!child.exposed.isActive) {
              return;
            }
            const tabStyles = window.getComputedStyle($el);
            styles.width = `${$el.clientWidth - tools.beParsedAsNumber(tabStyles.paddingLeft) - tools.beParsedAsNumber(tabStyles.paddingRight)}px`;
            styles.left = `${$el.offsetLeft + tools.beParsedAsNumber(tabStyles.paddingLeft)}px`;
          });
        }
        return styles;
      });
      const tabsClasses = vue.computed(() => {
        const classes = [];
        classes.push(`mt-tabs`);
        classes.push(`mt-tabs--${props.type}`);
        return classes;
      });
      function onChange(tabName) {
        currentTabName.value = tabName;
      }
      return (_ctx, _cache) => {
        return vue.openBlock(), vue.createElementBlock("div", {
          ref_key: "tabsRef",
          ref: tabsRef,
          class: vue.normalizeClass(tabsClasses.value)
        }, [
          _ctx.type === "card" ? (vue.openBlock(), vue.createElementBlock("div", {
            key: 0,
            class: "mt-tabs__active-bar",
            style: vue.normalizeStyle(barStyles.value)
          }, null, 4)) : vue.createCommentVNode("", true),
          _ctx.type === "line" ? (vue.openBlock(), vue.createElementBlock("div", {
            key: 1,
            class: "mt-tabs__active-line",
            style: vue.normalizeStyle(lineStyles.value)
          }, null, 4)) : vue.createCommentVNode("", true),
          vue.renderSlot(_ctx.$slots, "default")
        ], 2);
      };
    }
  });
  const MtTabs = withInstall(_sfc_main$c);
  const tagProps = {
    /**
     * 标签类型
     */
    type: {
      type: String,
      validator: (value) => {
        return ["default", "primary", "success", "error", "warning"].includes(value);
      },
      default: "default"
    },
    /**
     * 是否可关闭
     */
    closable: {
      type: Boolean,
      default: false
    },
    /**
     * 标签大小
     */
    size: sizeProp,
    /**
     * 是否为圆形
     */
    round: {
      type: Boolean,
      default: false
    },
    /**
     * 主题效果
     */
    effect: {
      type: String,
      validator: (value) => {
        return ["dark", "light", "plain"].includes(value);
      },
      default: "light"
    }
  };
  const _sfc_main$b = /* @__PURE__ */ vue.defineComponent({
    ...{
      name: "MtTag"
    },
    __name: "tag",
    props: tagProps,
    emits: ["close"],
    setup(__props, { emit: __emit }) {
      const props = __props;
      const emits = __emit;
      const tagClasses = vue.computed(() => {
        const classes = [];
        classes.push("mt-tag");
        classes.push(`mt-tag--${props.type}`);
        classes.push(`mt-tag--${props.size}`);
        classes.push(`mt-tag--${props.effect}`);
        classes.push({ "mt-tag--round": props.round });
        return classes;
      });
      function handleClose() {
        emits("close");
      }
      return (_ctx, _cache) => {
        return vue.openBlock(), vue.createElementBlock("span", {
          class: vue.normalizeClass(tagClasses.value)
        }, [
          vue.renderSlot(_ctx.$slots, "default"),
          props.closable ? (vue.openBlock(), vue.createBlock(vue.unref(MtIcon), {
            key: 0,
            class: "mt-tag__close",
            name: "icon-cha",
            onClick: handleClose
          })) : vue.createCommentVNode("", true)
        ], 2);
      };
    }
  });
  const MtTag = withInstall(_sfc_main$b);
  const tooltipProps = {
    ...popoverProps,
    effect: {
      type: String,
      default: "dark"
    }
  };
  const _sfc_main$a = /* @__PURE__ */ vue.defineComponent({
    ...{
      name: "MtTooltip"
    },
    __name: "tooltip",
    props: tooltipProps,
    emits: ["update:modelValue", "close"],
    setup(__props, { expose: __expose, emit: __emit }) {
      const props = __props;
      const emits = __emit;
      const popoverRef = vue.ref();
      __expose({
        close: () => {
          var _a;
          (_a = popoverRef.value) == null ? void 0 : _a.close();
        },
        show: () => {
          var _a;
          (_a = popoverRef.value) == null ? void 0 : _a.show();
        }
      });
      return (_ctx, _cache) => {
        return vue.openBlock(), vue.createBlock(vue.unref(MtPopover), vue.mergeProps(props, {
          ref_key: "popoverRef",
          ref: popoverRef
        }, vue.toHandlers(emits)), {
          default: vue.withCtx(() => [
            vue.renderSlot(_ctx.$slots, "default")
          ]),
          reference: vue.withCtx(() => [
            vue.renderSlot(_ctx.$slots, "reference")
          ]),
          _: 3
        }, 16);
      };
    }
  });
  const MtTooltip = withInstall(_sfc_main$a);
  const _hoisted_1$9 = { class: "mt-upload-file-list-layout__list" };
  const _hoisted_2$9 = ["onClick"];
  const _sfc_main$9 = /* @__PURE__ */ vue.defineComponent({
    ...{
      name: "MtUploadFileListLayout"
    },
    __name: "upload-file-list-layout",
    props: {
      fileList: {
        type: Array,
        default: () => []
      },
      disabled: {
        type: Boolean,
        default: false
      }
    },
    emits: ["remove"],
    setup(__props, { emit: __emit }) {
      const props = __props;
      const emits = __emit;
      function handleRemove(fileItem, fileIndex) {
        if (props.disabled) {
          return;
        }
        emits("remove", {
          fileItem,
          fileIndex
        });
      }
      function handlePreview(fileItem) {
        if (fileItem.url) {
          MtFilePreview({
            viewUrl: fileItem.url
          });
        }
      }
      return (_ctx, _cache) => {
        return vue.openBlock(), vue.createElementBlock("div", {
          class: vue.normalizeClass(["mt-upload-file-list-layout", { "mt-upload-file-list-layout--disabled": props.disabled, "mt-upload-file-list-layout--empty": props.fileList.length === 0 }])
        }, [
          vue.createElementVNode("div", _hoisted_1$9, [
            props.fileList && props.fileList.length ? (vue.openBlock(), vue.createBlock(vue.unref(MtCellGroup), { key: 0 }, {
              default: vue.withCtx(() => [
                (vue.openBlock(true), vue.createElementBlock(vue.Fragment, null, vue.renderList(props.fileList, (fileItem, fileIndex) => {
                  return vue.openBlock(), vue.createBlock(vue.unref(MtCell), {
                    key: fileItem.uid,
                    icon: vue.unref(tools.getFileIcon)(fileItem.name),
                    title: fileItem.name
                  }, vue.createSlots({
                    icon: vue.withCtx(() => [
                      vue.createVNode(vue.unref(MtAvatarImage), {
                        src: vue.unref(tools.getFileIcon)(fileItem.name),
                        onClick: ($event) => handlePreview(fileItem)
                      }, null, 8, ["src", "onClick"])
                    ]),
                    title: vue.withCtx(() => [
                      vue.createElementVNode("div", {
                        onClick: ($event) => handlePreview(fileItem)
                      }, vue.toDisplayString(fileItem.name), 9, _hoisted_2$9)
                    ]),
                    right: vue.withCtx(() => [
                      !props.disabled ? (vue.openBlock(), vue.createBlock(vue.unref(MtIcon), {
                        key: 0,
                        name: "icon-cha",
                        clickable: "",
                        onClick: vue.withModifiers(($event) => handleRemove(fileItem, fileIndex), ["stop"])
                      }, null, 8, ["onClick"])) : vue.createCommentVNode("", true)
                    ]),
                    _: 2
                  }, [
                    fileItem.percentage && fileItem.percentage < 100 ? {
                      name: "description",
                      fn: vue.withCtx(() => [
                        vue.createVNode(vue.unref(MtProgress), {
                          percentage: fileItem.percentage
                        }, null, 8, ["percentage"])
                      ]),
                      key: "0"
                    } : void 0
                  ]), 1032, ["icon", "title"]);
                }), 128))
              ]),
              _: 1
            })) : vue.createCommentVNode("", true)
          ])
        ], 2);
      };
    }
  });
  const fileSizeLimitConfigMap = /* @__PURE__ */ new Map([
    [
      "normal",
      {
        [tools.FileSuffixEnum.PNG]: 500 * 1024 * 1024,
        [tools.FileSuffixEnum.JPG]: 500 * 1024 * 1024,
        [tools.FileSuffixEnum.JPEG]: 500 * 1024 * 1024,
        [tools.FileSuffixEnum.GIF]: 500 * 1024 * 1024,
        [tools.FileSuffixEnum.WEBP]: 500 * 1024 * 1024,
        [tools.FileSuffixEnum.PPT]: 500 * 1024 * 1024,
        [tools.FileSuffixEnum.PPTX]: 500 * 1024 * 1024,
        [tools.FileSuffixEnum.DOC]: 500 * 1024 * 1024,
        [tools.FileSuffixEnum.DOCX]: 500 * 1024 * 1024,
        [tools.FileSuffixEnum.PDF]: 500 * 1024 * 1024,
        [tools.FileSuffixEnum.TXT]: 500 * 1024 * 1024,
        [tools.FileSuffixEnum.XLS]: 500 * 1024 * 1024,
        [tools.FileSuffixEnum.XLSX]: 500 * 1024 * 1024,
        [tools.FileSuffixEnum.MP4]: 500 * 1024 * 1024,
        [tools.FileSuffixEnum.MKV]: 500 * 1024 * 1024,
        [tools.FileSuffixEnum.FLV]: 500 * 1024 * 1024,
        [tools.FileSuffixEnum.AVI]: 500 * 1024 * 1024,
        [tools.FileSuffixEnum.WAV]: 500 * 1024 * 1024,
        [tools.FileSuffixEnum.MP3]: 500 * 1024 * 1024,
        [tools.FileSuffixEnum.ZIP]: 500 * 1024 * 1024,
        [tools.FileSuffixEnum.RAR]: 500 * 1024 * 1024,
        [tools.FileSuffixEnum.HTML]: 500 * 1024 * 1024
      }
    ],
    [
      "small",
      {
        [tools.FileSuffixEnum.PNG]: 100 * 1024 * 1024,
        [tools.FileSuffixEnum.JPG]: 100 * 1024 * 1024,
        [tools.FileSuffixEnum.JPEG]: 100 * 1024 * 1024,
        [tools.FileSuffixEnum.GIF]: 100 * 1024 * 1024,
        [tools.FileSuffixEnum.WEBP]: 100 * 1024 * 1024,
        [tools.FileSuffixEnum.PPT]: 100 * 1024 * 1024,
        [tools.FileSuffixEnum.PPTX]: 100 * 1024 * 1024,
        [tools.FileSuffixEnum.DOC]: 100 * 1024 * 1024,
        [tools.FileSuffixEnum.DOCX]: 100 * 1024 * 1024,
        [tools.FileSuffixEnum.PDF]: 100 * 1024 * 1024,
        [tools.FileSuffixEnum.TXT]: 100 * 1024 * 1024,
        [tools.FileSuffixEnum.XLS]: 100 * 1024 * 1024,
        [tools.FileSuffixEnum.XLSX]: 100 * 1024 * 1024,
        [tools.FileSuffixEnum.MP4]: 100 * 1024 * 1024,
        [tools.FileSuffixEnum.MKV]: 100 * 1024 * 1024,
        [tools.FileSuffixEnum.FLV]: 100 * 1024 * 1024,
        [tools.FileSuffixEnum.AVI]: 100 * 1024 * 1024,
        [tools.FileSuffixEnum.WAV]: 100 * 1024 * 1024,
        [tools.FileSuffixEnum.MP3]: 100 * 1024 * 1024,
        [tools.FileSuffixEnum.ZIP]: 100 * 1024 * 1024,
        [tools.FileSuffixEnum.RAR]: 100 * 1024 * 1024,
        [tools.FileSuffixEnum.HTML]: 100 * 1024 * 1024
      }
    ]
  ]);
  var ListTypeEnum = /* @__PURE__ */ ((ListTypeEnum2) => {
    ListTypeEnum2["FILE_LIST"] = "file-list";
    ListTypeEnum2["IMAGE_GRID"] = "image-grid";
    ListTypeEnum2["IMAGE_ONLY"] = "image-only";
    return ListTypeEnum2;
  })(ListTypeEnum || {});
  const uploadProps = {
    modelValue: {
      type: Array,
      default: () => []
    },
    limit: {
      type: Number,
      default: 9
    },
    multiple: {
      type: Boolean,
      default: true
    },
    suffixes: {
      type: Array,
      default: Object.values(tools.FileSuffixEnum)
    },
    disabled: {
      type: Boolean,
      default: false
    },
    listType: {
      type: String,
      default: "file-list",
      values: Object.values(ListTypeEnum)
    },
    showTrigger: {
      type: Boolean,
      default: true
    },
    showList: {
      type: Boolean,
      default: false
    },
    isFullScreeDrag: {
      type: Boolean,
      default: false
    },
    sizeType: {
      type: String,
      default: "normal",
      values: fileSizeLimitConfigMap.keys()
    },
    autoCropper: {
      type: Boolean,
      default: true
    },
    copperOptions: {
      type: Object,
      default: () => ({})
    }
  };
  let fileId = 1;
  const genFileId = () => Date.now() + fileId++;
  const uploadContextKey = Symbol("uploadContextKey");
  function formatUploadFiles(data2) {
    return data2.map((item) => {
      let uploadFile = {};
      if (tools.isString(item)) {
        uploadFile.url = item;
      } else {
        uploadFile = {
          ...item
        };
      }
      if (!Reflect.has(uploadFile, "percentage")) {
        uploadFile.percentage = 100;
        uploadFile.status = "success";
      }
      if (!Reflect.has(uploadFile, "uid")) {
        uploadFile.uid = genFileId();
      }
      if (!Reflect.has(uploadFile, "name")) {
        uploadFile.name = tools.getFileName(uploadFile.url);
      }
      return uploadFile;
    });
  }
  const Y = {};
  Y.getData = (t) => new Promise((e, i) => {
    let s = {};
    L(t).then((r) => {
      s.arrayBuffer = r;
      try {
        s.orientation = N(r);
      } catch {
        s.orientation = -1;
      }
      e(s);
    }).catch((r) => {
      i(r);
    });
  });
  function L(t) {
    let e = null;
    return new Promise((i, s) => {
      if (t.src)
        if (/^data\:/i.test(t.src))
          e = k(t.src), i(e);
        else if (/^blob\:/i.test(t.src)) {
          var r = new FileReader();
          r.onload = function(h) {
            e = h.target.result, i(e);
          }, E$2(t.src, function(h) {
            r.readAsArrayBuffer(h);
          });
        } else {
          var o = new XMLHttpRequest();
          o.onload = function() {
            if (this.status == 200 || this.status === 0)
              e = o.response, i(e);
            else
              throw "Could not load image";
            o = null;
          }, o.open("GET", t.src, true), o.responseType = "arraybuffer", o.send(null);
        }
      else
        s("img error");
    });
  }
  function E$2(t, e) {
    var i = new XMLHttpRequest();
    i.open("GET", t, true), i.responseType = "blob", i.onload = function(s) {
      (this.status == 200 || this.status === 0) && e(this.response);
    }, i.send();
  }
  function k(t, e) {
    e = e || t.match(/^data\:([^\;]+)\;base64,/mi)[1] || "", t = t.replace(/^data\:([^\;]+)\;base64,/gmi, "");
    for (var i = atob(t), s = i.length % 2 == 0 ? i.length : i.length + 1, r = new ArrayBuffer(s), o = new Uint16Array(r), h = 0; h < s; h++)
      o[h] = i.charCodeAt(h);
    return r;
  }
  function T(t, e, i) {
    var s = "", r;
    for (r = e, i += e; r < i; r++)
      s += String.fromCharCode(t.getUint8(r));
    return s;
  }
  function N(t) {
    var e = new DataView(t), i = e.byteLength, s, r, o, h, a, n, c, l, f, p;
    if (e.getUint8(0) === 255 && e.getUint8(1) === 216)
      for (f = 2; f < i; ) {
        if (e.getUint8(f) === 255 && e.getUint8(f + 1) === 225) {
          c = f;
          break;
        }
        f++;
      }
    if (c && (r = c + 4, o = c + 10, T(e, r, 4) === "Exif" && (n = e.getUint16(o), a = n === 18761, (a || n === 19789) && e.getUint16(o + 2, a) === 42 && (h = e.getUint32(o + 4, a), h >= 8 && (l = o + h)))), l) {
      for (i = e.getUint16(l, a), p = 0; p < i; p++)
        if (f = l + p * 12 + 2, e.getUint16(f, a) === 274) {
          f += 8, s = e.getUint16(f, a);
          break;
        }
    }
    return s;
  }
  const $$3F = (t, e) => {
    const i = t.__vccOpts || t;
    for (const [s, r] of e)
      i[s] = r;
    return i;
  }, z = vue.defineComponent({
    data: function() {
      return {
        // 容器高宽
        w: 0,
        h: 0,
        // 图片缩放比例
        scale: 1,
        // 图片偏移x轴
        x: 0,
        // 图片偏移y轴
        y: 0,
        // 图片加载
        loading: true,
        // 图片真实宽度
        trueWidth: 0,
        // 图片真实高度
        trueHeight: 0,
        move: true,
        // 移动的x
        moveX: 0,
        // 移动的y
        moveY: 0,
        // 开启截图
        crop: false,
        // 正在截图
        cropping: false,
        // 裁剪框大小
        cropW: 0,
        cropH: 0,
        cropOldW: 0,
        cropOldH: 0,
        // 判断是否能够改变
        canChangeX: false,
        canChangeY: false,
        // 改变的基准点
        changeCropTypeX: 1,
        changeCropTypeY: 1,
        // 裁剪框的坐标轴
        cropX: 0,
        cropY: 0,
        cropChangeX: 0,
        cropChangeY: 0,
        cropOffsertX: 0,
        cropOffsertY: 0,
        // 支持的滚动事件
        support: "",
        // 移动端手指缩放
        touches: [],
        touchNow: false,
        // 图片旋转
        rotate: 0,
        isIos: false,
        orientation: 0,
        imgs: "",
        // 图片缩放系数
        coe: 0.2,
        // 是否正在多次缩放
        scaling: false,
        scalingSet: "",
        coeStatus: "",
        // 控制emit触发频率
        isCanShow: true,
        // 图片是否等于截图大小
        imgIsQqualCrop: false
      };
    },
    props: {
      img: {
        type: [String, Blob, null, File],
        default: ""
      },
      // 输出图片压缩比
      outputSize: {
        type: Number,
        default: 1
      },
      outputType: {
        type: String,
        default: "jpeg"
      },
      info: {
        type: Boolean,
        default: true
      },
      // 是否开启滚轮放大缩小
      canScale: {
        type: Boolean,
        default: true
      },
      // 是否自成截图框
      autoCrop: {
        type: Boolean,
        default: false
      },
      autoCropWidth: {
        type: [Number, String],
        default: 0
      },
      autoCropHeight: {
        type: [Number, String],
        default: 0
      },
      // 是否开启固定宽高比
      fixed: {
        type: Boolean,
        default: false
      },
      // 宽高比 w/h
      fixedNumber: {
        type: Array,
        default: () => [1, 1]
      },
      // 固定大小 禁止改变截图框大小
      fixedBox: {
        type: Boolean,
        default: false
      },
      // 输出截图是否缩放
      full: {
        type: Boolean,
        default: false
      },
      // 是否可以拖动图片
      canMove: {
        type: Boolean,
        default: true
      },
      // 是否可以拖动截图框
      canMoveBox: {
        type: Boolean,
        default: true
      },
      // 上传图片按照原始比例显示
      original: {
        type: Boolean,
        default: false
      },
      // 截图框能否超过图片
      centerBox: {
        type: Boolean,
        default: false
      },
      // 是否根据dpr输出高清图片
      high: {
        type: Boolean,
        default: true
      },
      // 截图框展示宽高类型
      infoTrue: {
        type: Boolean,
        default: false
      },
      // 可以压缩图片宽高  默认不超过200
      maxImgSize: {
        type: [Number, String],
        default: 2e3
      },
      // 倍数  可渲染当前截图框的n倍 0 - 1000;
      enlarge: {
        type: [Number, String],
        default: 1
      },
      // 自动预览的固定宽度
      preW: {
        type: [Number, String],
        default: 0
      },
      /*
        图片布局方式 mode 实现和css背景一样的效果
        contain  居中布局 默认不会缩放 保证图片在容器里面 mode: 'contain'
        cover    拉伸布局 填充整个容器  mode: 'cover'
        如果仅有一个数值被给定,这个数值将作为宽度值大小,高度值将被设定为auto。 mode: '50px'
        如果有两个数值被给定,第一个将作为宽度值大小,第二个作为高度值大小。 mode: '50px 60px'
      */
      mode: {
        type: String,
        default: "contain"
      },
      //限制最小区域,可传1以上的数字和字符串,限制长宽都是这么大
      // 也可以传数组[90,90] 
      limitMinSize: {
        type: [Number, Array, String],
        default: () => 10,
        validator: function(t) {
          return Array.isArray(t) ? Number(t[0]) >= 0 && Number(t[1]) >= 0 : Number(t) >= 0;
        }
      },
      // 导出时,填充背景颜色
      fillColor: {
        type: String,
        default: ""
      }
    },
    computed: {
      cropInfo() {
        let t = {};
        if (t.top = this.cropOffsertY > 21 ? "-21px" : "0px", t.width = this.cropW > 0 ? this.cropW : 0, t.height = this.cropH > 0 ? this.cropH : 0, this.infoTrue) {
          let e = 1;
          this.high && !this.full && (e = window.devicePixelRatio), this.enlarge !== 1 & !this.full && (e = Math.abs(Number(this.enlarge))), t.width = t.width * e, t.height = t.height * e, this.full && (t.width = t.width / this.scale, t.height = t.height / this.scale);
        }
        return t.width = t.width.toFixed(0), t.height = t.height.toFixed(0), t;
      },
      isIE() {
        return !!window.ActiveXObject || "ActiveXObject" in window;
      },
      passive() {
        return this.isIE ? null : {
          passive: false
        };
      },
      // 是否处于左右旋转
      isRotateRightOrLeft() {
        return [1, -1, 3, -3].includes(this.rotate);
      }
    },
    watch: {
      // 如果图片改变, 重新布局
      img() {
        this.checkedImg();
      },
      imgs(t) {
        t !== "" && this.reload();
      },
      cropW() {
        this.showPreview();
      },
      cropH() {
        this.showPreview();
      },
      cropOffsertX() {
        this.showPreview();
      },
      cropOffsertY() {
        this.showPreview();
      },
      scale(t, e) {
        this.showPreview();
      },
      x() {
        this.showPreview();
      },
      y() {
        this.showPreview();
      },
      autoCrop(t) {
        t && this.goAutoCrop();
      },
      // 修改了自动截图框
      autoCropWidth() {
        this.autoCrop && this.goAutoCrop();
      },
      autoCropHeight() {
        this.autoCrop && this.goAutoCrop();
      },
      mode() {
        this.checkedImg();
      },
      rotate() {
        this.showPreview(), this.autoCrop ? this.goAutoCrop(this.cropW, this.cropH) : (this.cropW > 0 || this.cropH > 0) && this.goAutoCrop(this.cropW, this.cropH);
      }
    },
    methods: {
      getVersion(t) {
        var e = navigator.userAgent.split(" "), i = "";
        let s = 0;
        const r = new RegExp(t, "i");
        for (var o = 0; o < e.length; o++)
          r.test(e[o]) && (i = e[o]);
        return i ? s = i.split("/")[1].split(".") : s = ["0", "0", "0"], s;
      },
      checkOrientationImage(t, e, i, s) {
        if (this.getVersion("chrome")[0] >= 81)
          e = -1;
        else if (this.getVersion("safari")[0] >= 605) {
          const h = this.getVersion("version");
          h[0] > 13 && h[1] > 1 && (e = -1);
        } else {
          const h = navigator.userAgent.toLowerCase().match(/cpu iphone os (.*?) like mac os/);
          if (h) {
            let a = h[1];
            a = a.split("_"), (a[0] > 13 || a[0] >= 13 && a[1] >= 4) && (e = -1);
          }
        }
        let r = document.createElement("canvas"), o = r.getContext("2d");
        switch (o.save(), e) {
          case 2:
            r.width = i, r.height = s, o.translate(i, 0), o.scale(-1, 1);
            break;
          case 3:
            r.width = i, r.height = s, o.translate(i / 2, s / 2), o.rotate(180 * Math.PI / 180), o.translate(-i / 2, -s / 2);
            break;
          case 4:
            r.width = i, r.height = s, o.translate(0, s), o.scale(1, -1);
            break;
          case 5:
            r.height = i, r.width = s, o.rotate(0.5 * Math.PI), o.scale(1, -1);
            break;
          case 6:
            r.width = s, r.height = i, o.translate(s / 2, i / 2), o.rotate(90 * Math.PI / 180), o.translate(-i / 2, -s / 2);
            break;
          case 7:
            r.height = i, r.width = s, o.rotate(0.5 * Math.PI), o.translate(i, -s), o.scale(-1, 1);
            break;
          case 8:
            r.height = i, r.width = s, o.translate(s / 2, i / 2), o.rotate(-90 * Math.PI / 180), o.translate(-i / 2, -s / 2);
            break;
          default:
            r.width = i, r.height = s;
        }
        o.drawImage(t, 0, 0, i, s), o.restore(), r.toBlob(
          (h) => {
            let a = URL.createObjectURL(h);
            URL.revokeObjectURL(this.imgs), this.imgs = a;
          },
          "image/" + this.outputType,
          1
        );
      },
      // checkout img
      checkedImg() {
        if (this.img === null || this.img === "") {
          this.imgs = "", this.clearCrop();
          return;
        }
        this.loading = true, this.scale = 1, this.rotate = 0, this.imgIsQqualCrop = false, this.clearCrop();
        let t = new Image();
        if (t.onload = () => {
          if (this.img === "")
            return this.$emit("img-load", new Error("图片不能为空")), false;
          let i = t.width, s = t.height;
          Y.getData(t).then((r) => {
            this.orientation = r.orientation || 1;
            let o = Number(this.maxImgSize);
            if (!this.orientation && i < o & s < o) {
              this.imgs = this.img;
              return;
            }
            i > o && (s = s / i * o, i = o), s > o && (i = i / s * o, s = o), this.checkOrientationImage(t, this.orientation, i, s);
          }).catch((r) => {
            this.$emit("img-load", "error"), this.$emit("img-load-error", r);
          });
        }, t.onerror = (i) => {
          this.$emit("img-load", "error"), this.$emit("img-load-error", i);
        }, this.img.substr(0, 4) !== "data" && (t.crossOrigin = ""), this.isIE) {
          var e = new XMLHttpRequest();
          e.onload = function() {
            var i = URL.createObjectURL(this.response);
            t.src = i;
          }, e.open("GET", this.img, true), e.responseType = "blob", e.send();
        } else
          t.src = this.img;
      },
      // 当按下鼠标键
      startMove(t) {
        if (t.preventDefault(), this.move && !this.crop) {
          if (!this.canMove)
            return false;
          this.moveX = ("clientX" in t ? t.clientX : t.touches[0].clientX) - this.x, this.moveY = ("clientY" in t ? t.clientY : t.touches[0].clientY) - this.y, t.touches ? (window.addEventListener("touchmove", this.moveImg), window.addEventListener("touchend", this.leaveImg), t.touches.length == 2 && (this.touches = t.touches, window.addEventListener("touchmove", this.touchScale), window.addEventListener("touchend", this.cancelTouchScale))) : (window.addEventListener("mousemove", this.moveImg), window.addEventListener("mouseup", this.leaveImg)), this.$emit("img-moving", {
            moving: true,
            axis: this.getImgAxis()
          });
        } else
          this.cropping = true, window.addEventListener("mousemove", this.createCrop), window.addEventListener("mouseup", this.endCrop), window.addEventListener("touchmove", this.createCrop), window.addEventListener("touchend", this.endCrop), this.cropOffsertX = t.offsetX ? t.offsetX : t.touches[0].pageX - this.$refs.cropper.offsetLeft, this.cropOffsertY = t.offsetY ? t.offsetY : t.touches[0].pageY - this.$refs.cropper.offsetTop, this.cropX = "clientX" in t ? t.clientX : t.touches[0].clientX, this.cropY = "clientY" in t ? t.clientY : t.touches[0].clientY, this.cropChangeX = this.cropOffsertX, this.cropChangeY = this.cropOffsertY, this.cropW = 0, this.cropH = 0;
      },
      // 移动端缩放
      touchScale(t) {
        t.preventDefault();
        let e = this.scale;
        var i = {
          x: this.touches[0].clientX,
          y: this.touches[0].clientY
        }, s = {
          x: t.touches[0].clientX,
          y: t.touches[0].clientY
        }, r = {
          x: this.touches[1].clientX,
          y: this.touches[1].clientY
        }, o = {
          x: t.touches[1].clientX,
          y: t.touches[1].clientY
        }, h = Math.sqrt(
          Math.pow(i.x - r.x, 2) + Math.pow(i.y - r.y, 2)
        ), a = Math.sqrt(
          Math.pow(s.x - o.x, 2) + Math.pow(s.y - o.y, 2)
        ), n = a - h, c = 1;
        c = c / this.trueWidth > c / this.trueHeight ? c / this.trueHeight : c / this.trueWidth, c = c > 0.1 ? 0.1 : c;
        var l = c * n;
        if (!this.touchNow) {
          if (this.touchNow = true, n > 0 ? e += Math.abs(l) : n < 0 && e > Math.abs(l) && (e -= Math.abs(l)), this.touches = t.touches, setTimeout(() => {
            this.touchNow = false;
          }, 8), !this.checkoutImgAxis(this.x, this.y, e))
            return false;
          this.scale = e;
        }
      },
      cancelTouchScale(t) {
        window.removeEventListener("touchmove", this.touchScale);
      },
      // 移动图片
      moveImg(t) {
        if (t.preventDefault(), t.touches && t.touches.length === 2)
          return this.touches = t.touches, window.addEventListener("touchmove", this.touchScale), window.addEventListener("touchend", this.cancelTouchScale), window.removeEventListener("touchmove", this.moveImg), false;
        let e = "clientX" in t ? t.clientX : t.touches[0].clientX, i = "clientY" in t ? t.clientY : t.touches[0].clientY, s, r;
        s = e - this.moveX, r = i - this.moveY, this.$nextTick(() => {
          if (this.centerBox) {
            let o = this.getImgAxis(s, r, this.scale), h = this.getCropAxis(), a = this.trueHeight * this.scale, n = this.trueWidth * this.scale, c, l, f, p;
            switch (this.rotate) {
              case 1:
              case -1:
              case 3:
              case -3:
                c = this.cropOffsertX - this.trueWidth * (1 - this.scale) / 2 + (a - n) / 2, l = this.cropOffsertY - this.trueHeight * (1 - this.scale) / 2 + (n - a) / 2, f = c - a + this.cropW, p = l - n + this.cropH;
                break;
              default:
                c = this.cropOffsertX - this.trueWidth * (1 - this.scale) / 2, l = this.cropOffsertY - this.trueHeight * (1 - this.scale) / 2, f = c - n + this.cropW, p = l - a + this.cropH;
                break;
            }
            o.x1 >= h.x1 && (s = c), o.y1 >= h.y1 && (r = l), o.x2 <= h.x2 && (s = f), o.y2 <= h.y2 && (r = p);
          }
          this.x = s, this.y = r, this.$emit("img-moving", {
            moving: true,
            axis: this.getImgAxis()
          });
        });
      },
      // 移动图片结束
      leaveImg(t) {
        window.removeEventListener("mousemove", this.moveImg), window.removeEventListener("touchmove", this.moveImg), window.removeEventListener("mouseup", this.leaveImg), window.removeEventListener("touchend", this.leaveImg), this.$emit("img-moving", {
          moving: false,
          axis: this.getImgAxis()
        });
      },
      // 缩放图片
      scaleImg() {
        this.canScale && window.addEventListener(this.support, this.changeSize, this.passive);
      },
      // 移出框
      cancelScale() {
        this.canScale && window.removeEventListener(this.support, this.changeSize);
      },
      // 改变大小函数
      changeSize(t) {
        t.preventDefault();
        let e = this.scale;
        var i = t.deltaY || t.wheelDelta, s = navigator.userAgent.indexOf("Firefox");
        i = s > 0 ? i * 30 : i, this.isIE && (i = -i);
        var r = this.coe;
        r = r / this.trueWidth > r / this.trueHeight ? r / this.trueHeight : r / this.trueWidth;
        var o = r * i;
        o < 0 ? e += Math.abs(o) : e > Math.abs(o) && (e -= Math.abs(o));
        let h = o < 0 ? "add" : "reduce";
        if (h !== this.coeStatus && (this.coeStatus = h, this.coe = 0.2), this.scaling || (this.scalingSet = setTimeout(() => {
          this.scaling = false, this.coe = this.coe += 0.01;
        }, 50)), this.scaling = true, !this.checkoutImgAxis(this.x, this.y, e))
          return false;
        this.scale = e;
      },
      // 修改图片大小函数
      changeScale(t) {
        let e = this.scale;
        t = t || 1;
        var i = 20;
        if (i = i / this.trueWidth > i / this.trueHeight ? i / this.trueHeight : i / this.trueWidth, t = t * i, t > 0 ? e += Math.abs(t) : e > Math.abs(t) && (e -= Math.abs(t)), !this.checkoutImgAxis(this.x, this.y, e))
          return false;
        this.scale = e;
      },
      // 创建截图框
      createCrop(t) {
        t.preventDefault();
        var e = "clientX" in t ? t.clientX : t.touches ? t.touches[0].clientX : 0, i = "clientY" in t ? t.clientY : t.touches ? t.touches[0].clientY : 0;
        this.$nextTick(() => {
          var s = e - this.cropX, r = i - this.cropY;
          if (s > 0 ? (this.cropW = s + this.cropChangeX > this.w ? this.w - this.cropChangeX : s, this.cropOffsertX = this.cropChangeX) : (this.cropW = this.w - this.cropChangeX + Math.abs(s) > this.w ? this.cropChangeX : Math.abs(s), this.cropOffsertX = this.cropChangeX + s > 0 ? this.cropChangeX + s : 0), !this.fixed)
            r > 0 ? (this.cropH = r + this.cropChangeY > this.h ? this.h - this.cropChangeY : r, this.cropOffsertY = this.cropChangeY) : (this.cropH = this.h - this.cropChangeY + Math.abs(r) > this.h ? this.cropChangeY : Math.abs(r), this.cropOffsertY = this.cropChangeY + r > 0 ? this.cropChangeY + r : 0);
          else {
            var o = this.cropW / this.fixedNumber[0] * this.fixedNumber[1];
            o + this.cropOffsertY > this.h ? (this.cropH = this.h - this.cropOffsertY, this.cropW = this.cropH / this.fixedNumber[1] * this.fixedNumber[0], s > 0 ? this.cropOffsertX = this.cropChangeX : this.cropOffsertX = this.cropChangeX - this.cropW) : this.cropH = o, this.cropOffsertY = this.cropOffsertY;
          }
        });
      },
      // 改变截图框大小
      changeCropSize(t, e, i, s, r) {
        t.preventDefault(), window.addEventListener("mousemove", this.changeCropNow), window.addEventListener("mouseup", this.changeCropEnd), window.addEventListener("touchmove", this.changeCropNow), window.addEventListener("touchend", this.changeCropEnd), this.canChangeX = e, this.canChangeY = i, this.changeCropTypeX = s, this.changeCropTypeY = r, this.cropX = "clientX" in t ? t.clientX : t.touches[0].clientX, this.cropY = "clientY" in t ? t.clientY : t.touches[0].clientY, this.cropOldW = this.cropW, this.cropOldH = this.cropH, this.cropChangeX = this.cropOffsertX, this.cropChangeY = this.cropOffsertY, this.fixed && this.canChangeX && this.canChangeY && (this.canChangeY = 0), this.$emit("change-crop-size", {
          width: this.cropW,
          height: this.cropH
        });
      },
      // 正在改变
      changeCropNow(t) {
        t.preventDefault();
        var e = "clientX" in t ? t.clientX : t.touches ? t.touches[0].clientX : 0, i = "clientY" in t ? t.clientY : t.touches ? t.touches[0].clientY : 0;
        let s = this.w, r = this.h, o = 0, h = 0;
        if (this.centerBox) {
          let c = this.getImgAxis(), l = c.x2, f = c.y2;
          o = c.x1 > 0 ? c.x1 : 0, h = c.y1 > 0 ? c.y1 : 0, s > l && (s = l), r > f && (r = f);
        }
        const [a, n] = this.checkCropLimitSize();
        this.$nextTick(() => {
          var c = e - this.cropX, l = i - this.cropY;
          if (this.canChangeX && (this.changeCropTypeX === 1 ? this.cropOldW - c < a ? (this.cropW = a, this.cropOffsertX = this.cropOldW + this.cropChangeX - o - a) : this.cropOldW - c > 0 ? (this.cropW = s - this.cropChangeX - c <= s - o ? this.cropOldW - c : this.cropOldW + this.cropChangeX - o, this.cropOffsertX = s - this.cropChangeX - c <= s - o ? this.cropChangeX + c : o) : (this.cropW = Math.abs(c) + this.cropChangeX <= s ? Math.abs(c) - this.cropOldW : s - this.cropOldW - this.cropChangeX, this.cropOffsertX = this.cropChangeX + this.cropOldW) : this.changeCropTypeX === 2 && (this.cropOldW + c < a ? this.cropW = a : this.cropOldW + c > 0 ? (this.cropW = this.cropOldW + c + this.cropOffsertX <= s ? this.cropOldW + c : s - this.cropOffsertX, this.cropOffsertX = this.cropChangeX) : (this.cropW = s - this.cropChangeX + Math.abs(c + this.cropOldW) <= s - o ? Math.abs(c + this.cropOldW) : this.cropChangeX - o, this.cropOffsertX = s - this.cropChangeX + Math.abs(c + this.cropOldW) <= s - o ? this.cropChangeX - Math.abs(c + this.cropOldW) : o))), this.canChangeY && (this.changeCropTypeY === 1 ? this.cropOldH - l < n ? (this.cropH = n, this.cropOffsertY = this.cropOldH + this.cropChangeY - h - n) : this.cropOldH - l > 0 ? (this.cropH = r - this.cropChangeY - l <= r - h ? this.cropOldH - l : this.cropOldH + this.cropChangeY - h, this.cropOffsertY = r - this.cropChangeY - l <= r - h ? this.cropChangeY + l : h) : (this.cropH = Math.abs(l) + this.cropChangeY <= r ? Math.abs(l) - this.cropOldH : r - this.cropOldH - this.cropChangeY, this.cropOffsertY = this.cropChangeY + this.cropOldH) : this.changeCropTypeY === 2 && (this.cropOldH + l < n ? this.cropH = n : this.cropOldH + l > 0 ? (this.cropH = this.cropOldH + l + this.cropOffsertY <= r ? this.cropOldH + l : r - this.cropOffsertY, this.cropOffsertY = this.cropChangeY) : (this.cropH = r - this.cropChangeY + Math.abs(l + this.cropOldH) <= r - h ? Math.abs(l + this.cropOldH) : this.cropChangeY - h, this.cropOffsertY = r - this.cropChangeY + Math.abs(l + this.cropOldH) <= r - h ? this.cropChangeY - Math.abs(l + this.cropOldH) : h))), this.canChangeX && this.fixed) {
            var f = this.cropW / this.fixedNumber[0] * this.fixedNumber[1];
            f < n ? (this.cropH = n, this.cropW = this.fixedNumber[0] * n / this.fixedNumber[1], this.changeCropTypeX === 1 && (this.cropOffsertX = this.cropChangeX + (this.cropOldW - this.cropW))) : f + this.cropOffsertY > r ? (this.cropH = r - this.cropOffsertY, this.cropW = this.cropH / this.fixedNumber[1] * this.fixedNumber[0], this.changeCropTypeX === 1 && (this.cropOffsertX = this.cropChangeX + (this.cropOldW - this.cropW))) : this.cropH = f;
          }
          if (this.canChangeY && this.fixed) {
            var p = this.cropH / this.fixedNumber[1] * this.fixedNumber[0];
            p < a ? (this.cropW = a, this.cropH = this.fixedNumber[1] * a / this.fixedNumber[0], this.cropOffsertY = this.cropOldH + this.cropChangeY - this.cropH) : p + this.cropOffsertX > s ? (this.cropW = s - this.cropOffsertX, this.cropH = this.cropW / this.fixedNumber[0] * this.fixedNumber[1]) : this.cropW = p;
          }
        });
      },
      checkCropLimitSize() {
        let { cropW: t, cropH: e, limitMinSize: i } = this, s = new Array();
        return Array.isArray(i) ? s = i : s = [i, i], t = parseFloat(s[0]), e = parseFloat(s[1]), [t, e];
      },
      // 结束改变
      changeCropEnd(t) {
        window.removeEventListener("mousemove", this.changeCropNow), window.removeEventListener("mouseup", this.changeCropEnd), window.removeEventListener("touchmove", this.changeCropNow), window.removeEventListener("touchend", this.changeCropEnd);
      },
      // 根据比例x/y,最小宽度,最小高度,现有宽度,现有高度,得到应该有的宽度和高度
      calculateSize(t, e, i, s, r, o) {
        const h = t / e;
        let a = r, n = o;
        return a < i && (a = i, n = Math.ceil(a / h)), n < s && (n = s, a = Math.ceil(n * h), a < i && (a = i, n = Math.ceil(a / h))), a < r && (a = r, n = Math.ceil(a / h)), n < o && (n = o, a = Math.ceil(n * h)), { width: a, height: n };
      },
      // 创建完成
      endCrop() {
        this.cropW === 0 && this.cropH === 0 && (this.cropping = false);
        let [t, e] = this.checkCropLimitSize();
        const { width: i, height: s } = this.fixed ? this.calculateSize(
          this.fixedNumber[0],
          this.fixedNumber[1],
          t,
          e,
          this.cropW,
          this.cropH
        ) : { width: t, height: e };
        i > this.cropW && (this.cropW = i, this.cropOffsertX + i > this.w && (this.cropOffsertX = this.w - i)), s > this.cropH && (this.cropH = s, this.cropOffsertY + s > this.h && (this.cropOffsertY = this.h - s)), window.removeEventListener("mousemove", this.createCrop), window.removeEventListener("mouseup", this.endCrop), window.removeEventListener("touchmove", this.createCrop), window.removeEventListener("touchend", this.endCrop);
      },
      // 开始截图
      startCrop() {
        this.crop = true;
      },
      // 停止截图
      stopCrop() {
        this.crop = false;
      },
      // 清除截图
      clearCrop() {
        this.cropping = false, this.cropW = 0, this.cropH = 0;
      },
      // 截图移动
      cropMove(t) {
        if (t.preventDefault(), !this.canMoveBox)
          return this.crop = false, this.startMove(t), false;
        if (t.touches && t.touches.length === 2)
          return this.crop = false, this.startMove(t), this.leaveCrop(), false;
        window.addEventListener("mousemove", this.moveCrop), window.addEventListener("mouseup", this.leaveCrop), window.addEventListener("touchmove", this.moveCrop), window.addEventListener("touchend", this.leaveCrop);
        let e = "clientX" in t ? t.clientX : t.touches[0].clientX, i = "clientY" in t ? t.clientY : t.touches[0].clientY, s, r;
        s = e - this.cropOffsertX, r = i - this.cropOffsertY, this.cropX = s, this.cropY = r, this.$emit("crop-moving", {
          moving: true,
          axis: this.getCropAxis()
        });
      },
      moveCrop(t, e) {
        let i = 0, s = 0;
        t && (t.preventDefault(), i = "clientX" in t ? t.clientX : t.touches[0].clientX, s = "clientY" in t ? t.clientY : t.touches[0].clientY), this.$nextTick(() => {
          let r, o, h = i - this.cropX, a = s - this.cropY;
          if (e && (h = this.cropOffsertX, a = this.cropOffsertY), h <= 0 ? r = 0 : h + this.cropW > this.w ? r = this.w - this.cropW : r = h, a <= 0 ? o = 0 : a + this.cropH > this.h ? o = this.h - this.cropH : o = a, this.centerBox) {
            let n = this.getImgAxis();
            r <= n.x1 && (r = n.x1), r + this.cropW > n.x2 && (r = n.x2 - this.cropW), o <= n.y1 && (o = n.y1), o + this.cropH > n.y2 && (o = n.y2 - this.cropH);
          }
          this.cropOffsertX = r, this.cropOffsertY = o, this.$emit("crop-moving", {
            moving: true,
            axis: this.getCropAxis()
          });
        });
      },
      // 算出不同场景下面 图片相对于外层容器的坐标轴
      getImgAxis(t, e, i) {
        t = t || this.x, e = e || this.y, i = i || this.scale;
        let s = {
          x1: 0,
          x2: 0,
          y1: 0,
          y2: 0
        }, r = this.trueWidth * i, o = this.trueHeight * i;
        switch (this.rotate) {
          case 0:
            s.x1 = t + this.trueWidth * (1 - i) / 2, s.x2 = s.x1 + this.trueWidth * i, s.y1 = e + this.trueHeight * (1 - i) / 2, s.y2 = s.y1 + this.trueHeight * i;
            break;
          case 1:
          case -1:
          case 3:
          case -3:
            s.x1 = t + this.trueWidth * (1 - i) / 2 + (r - o) / 2, s.x2 = s.x1 + this.trueHeight * i, s.y1 = e + this.trueHeight * (1 - i) / 2 + (o - r) / 2, s.y2 = s.y1 + this.trueWidth * i;
            break;
          default:
            s.x1 = t + this.trueWidth * (1 - i) / 2, s.x2 = s.x1 + this.trueWidth * i, s.y1 = e + this.trueHeight * (1 - i) / 2, s.y2 = s.y1 + this.trueHeight * i;
            break;
        }
        return s;
      },
      // 获取截图框的坐标轴
      getCropAxis() {
        let t = {
          x1: 0,
          x2: 0,
          y1: 0,
          y2: 0
        };
        return t.x1 = this.cropOffsertX, t.x2 = t.x1 + this.cropW, t.y1 = this.cropOffsertY, t.y2 = t.y1 + this.cropH, t;
      },
      leaveCrop(t) {
        window.removeEventListener("mousemove", this.moveCrop), window.removeEventListener("mouseup", this.leaveCrop), window.removeEventListener("touchmove", this.moveCrop), window.removeEventListener("touchend", this.leaveCrop), this.$emit("crop-moving", {
          moving: false,
          axis: this.getCropAxis()
        });
      },
      getCropChecked(t) {
        let e = document.createElement("canvas"), i = e.getContext("2d"), s = new Image(), r = this.rotate, o = this.trueWidth, h = this.trueHeight, a = this.cropOffsertX, n = this.cropOffsertY;
        s.onload = () => {
          if (this.cropW !== 0) {
            let p = 1;
            this.high & !this.full && (p = window.devicePixelRatio), this.enlarge !== 1 & !this.full && (p = Math.abs(Number(this.enlarge)));
            let d = this.cropW * p, C = this.cropH * p, u = o * this.scale * p, g = h * this.scale * p, m = (this.x - a + this.trueWidth * (1 - this.scale) / 2) * p, v = (this.y - n + this.trueHeight * (1 - this.scale) / 2) * p;
            switch (f(d, C), i.save(), r) {
              case 0:
                this.full ? (f(d / this.scale, C / this.scale), i.drawImage(
                  s,
                  m / this.scale,
                  v / this.scale,
                  u / this.scale,
                  g / this.scale
                )) : i.drawImage(s, m, v, u, g);
                break;
              case 1:
              case -3:
                this.full ? (f(d / this.scale, C / this.scale), m = m / this.scale + (u / this.scale - g / this.scale) / 2, v = v / this.scale + (g / this.scale - u / this.scale) / 2, i.rotate(r * 90 * Math.PI / 180), i.drawImage(
                  s,
                  v,
                  -m - g / this.scale,
                  u / this.scale,
                  g / this.scale
                )) : (m = m + (u - g) / 2, v = v + (g - u) / 2, i.rotate(r * 90 * Math.PI / 180), i.drawImage(s, v, -m - g, u, g));
                break;
              case 2:
              case -2:
                this.full ? (f(d / this.scale, C / this.scale), i.rotate(r * 90 * Math.PI / 180), m = m / this.scale, v = v / this.scale, i.drawImage(
                  s,
                  -m - u / this.scale,
                  -v - g / this.scale,
                  u / this.scale,
                  g / this.scale
                )) : (i.rotate(r * 90 * Math.PI / 180), i.drawImage(s, -m - u, -v - g, u, g));
                break;
              case 3:
              case -1:
                this.full ? (f(d / this.scale, C / this.scale), m = m / this.scale + (u / this.scale - g / this.scale) / 2, v = v / this.scale + (g / this.scale - u / this.scale) / 2, i.rotate(r * 90 * Math.PI / 180), i.drawImage(
                  s,
                  -v - u / this.scale,
                  m,
                  u / this.scale,
                  g / this.scale
                )) : (m = m + (u - g) / 2, v = v + (g - u) / 2, i.rotate(r * 90 * Math.PI / 180), i.drawImage(s, -v - u, m, u, g));
                break;
              default:
                this.full ? (f(d / this.scale, C / this.scale), i.drawImage(
                  s,
                  m / this.scale,
                  v / this.scale,
                  u / this.scale,
                  g / this.scale
                )) : i.drawImage(s, m, v, u, g);
            }
            i.restore();
          } else {
            let p = o * this.scale, d = h * this.scale;
            switch (i.save(), r) {
              case 0:
                f(p, d), i.drawImage(s, 0, 0, p, d);
                break;
              case 1:
              case -3:
                f(d, p), i.rotate(r * 90 * Math.PI / 180), i.drawImage(s, 0, -d, p, d);
                break;
              case 2:
              case -2:
                f(p, d), i.rotate(r * 90 * Math.PI / 180), i.drawImage(s, -p, -d, p, d);
                break;
              case 3:
              case -1:
                f(d, p), i.rotate(r * 90 * Math.PI / 180), i.drawImage(s, -p, 0, p, d);
                break;
              default:
                f(p, d), i.drawImage(s, 0, 0, p, d);
            }
            i.restore();
          }
          t(e);
        };
        var c = this.img.substr(0, 4);
        c !== "data" && (s.crossOrigin = "Anonymous"), s.src = this.imgs;
        const l = this.fillColor;
        function f(p, d) {
          e.width = Math.round(p), e.height = Math.round(d), l && (i.fillStyle = l, i.fillRect(0, 0, e.width, e.height));
        }
      },
      // 获取转换成base64 的图片信息
      getCropData(t) {
        this.getCropChecked((e) => {
          t(e.toDataURL("image/" + this.outputType, this.outputSize));
        });
      },
      //canvas获取为blob对象
      getCropBlob(t) {
        this.getCropChecked((e) => {
          e.toBlob(
            (i) => t(i),
            "image/" + this.outputType,
            this.outputSize
          );
        });
      },
      // 自动预览函数
      showPreview() {
        if (this.isCanShow)
          this.isCanShow = false, setTimeout(() => {
            this.isCanShow = true;
          }, 16);
        else
          return false;
        let t = this.cropW, e = this.cropH, i = this.scale;
        var s = {};
        s.div = {
          width: `${t}px`,
          height: `${e}px`
        };
        let r = (this.x - this.cropOffsertX) / i, o = (this.y - this.cropOffsertY) / i, h = 0;
        s.w = t, s.h = e, s.url = this.imgs, s.img = {
          width: `${this.trueWidth}px`,
          height: `${this.trueHeight}px`,
          transform: `scale(${i})translate3d(${r}px, ${o}px, ${h}px)rotateZ(${this.rotate * 90}deg)`
        }, s.html = `
      <div class="show-preview" style="width: ${s.w}px; height: ${s.h}px,; overflow: hidden">
        <div style="width: ${t}px; height: ${e}px">
          <img src=${s.url} style="width: ${this.trueWidth}px; height: ${this.trueHeight}px; transform:
          scale(${i})translate3d(${r}px, ${o}px, ${h}px)rotateZ(${this.rotate * 90}deg)">
        </div>
      </div>`, this.$emit("real-time", s);
      },
      // reload 图片布局函数
      reload() {
        let t = new Image();
        t.onload = () => {
          this.w = parseFloat(window.getComputedStyle(this.$refs.cropper).width), this.h = parseFloat(window.getComputedStyle(this.$refs.cropper).height), this.trueWidth = t.width, this.trueHeight = t.height, this.original ? this.scale = 1 : this.scale = this.checkedMode(), this.$nextTick(() => {
            this.x = -(this.trueWidth - this.trueWidth * this.scale) / 2 + (this.w - this.trueWidth * this.scale) / 2, this.y = -(this.trueHeight - this.trueHeight * this.scale) / 2 + (this.h - this.trueHeight * this.scale) / 2, this.loading = false, this.autoCrop && this.goAutoCrop(), this.$emit("img-load", "success"), setTimeout(() => {
              this.showPreview();
            }, 20);
          });
        }, t.onerror = () => {
          this.$emit("img-load", "error");
        }, t.src = this.imgs;
      },
      // 背景布局的函数
      checkedMode() {
        let t = 1, e = this.trueWidth, i = this.trueHeight;
        const s = this.mode.split(" ");
        switch (s[0]) {
          case "contain":
            this.trueWidth > this.w && (t = this.w / this.trueWidth), this.trueHeight * t > this.h && (t = this.h / this.trueHeight);
            break;
          case "cover":
            e = this.w, t = e / this.trueWidth, i = i * t, i < this.h && (i = this.h, t = i / this.trueHeight);
            break;
          default:
            try {
              let r = s[0];
              if (r.search("px") !== -1) {
                r = r.replace("px", ""), e = parseFloat(r);
                const o = e / this.trueWidth;
                let h = 1, a = s[1];
                a.search("px") !== -1 && (a = a.replace("px", ""), i = parseFloat(a), h = i / this.trueHeight), t = Math.min(o, h);
              }
              if (r.search("%") !== -1 && (r = r.replace("%", ""), e = parseFloat(r) / 100 * this.w, t = e / this.trueWidth), s.length === 2 && r === "auto") {
                let o = s[1];
                o.search("px") !== -1 && (o = o.replace("px", ""), i = parseFloat(o), t = i / this.trueHeight), o.search("%") !== -1 && (o = o.replace("%", ""), i = parseFloat(o) / 100 * this.h, t = i / this.trueHeight);
              }
            } catch {
              t = 1;
            }
        }
        return t;
      },
      // 自动截图函数
      goAutoCrop(t, e) {
        if (this.imgs === "" || this.imgs === null)
          return;
        this.clearCrop(), this.cropping = true;
        let i = this.w, s = this.h;
        if (this.centerBox) {
          const h = Math.abs(this.rotate) % 2 > 0;
          let a = (h ? this.trueHeight : this.trueWidth) * this.scale, n = (h ? this.trueWidth : this.trueHeight) * this.scale;
          i = a < i ? a : i, s = n < s ? n : s;
        }
        var r = t || parseFloat(this.autoCropWidth), o = e || parseFloat(this.autoCropHeight);
        (r === 0 || o === 0) && (r = i * 0.8, o = s * 0.8), r = r > i ? i : r, o = o > s ? s : o, this.fixed && (o = r / this.fixedNumber[0] * this.fixedNumber[1]), o > this.h && (o = this.h, r = o / this.fixedNumber[1] * this.fixedNumber[0]), this.changeCrop(r, o);
      },
      // 手动改变截图框大小函数
      changeCrop(t, e) {
        if (this.centerBox) {
          let i = this.getImgAxis();
          t > i.x2 - i.x1 && (t = i.x2 - i.x1, e = t / this.fixedNumber[0] * this.fixedNumber[1]), e > i.y2 - i.y1 && (e = i.y2 - i.y1, t = e / this.fixedNumber[1] * this.fixedNumber[0]);
        }
        this.cropW = t, this.cropH = e, this.checkCropLimitSize(), this.$nextTick(() => {
          this.cropOffsertX = (this.w - this.cropW) / 2, this.cropOffsertY = (this.h - this.cropH) / 2, this.centerBox && this.moveCrop(null, true);
        });
      },
      // 重置函数, 恢复组件置初始状态
      refresh() {
        this.img, this.imgs = "", this.scale = 1, this.crop = false, this.rotate = 0, this.w = 0, this.h = 0, this.trueWidth = 0, this.trueHeight = 0, this.imgIsQqualCrop = false, this.clearCrop(), this.$nextTick(() => {
          this.checkedImg();
        });
      },
      // 向左边旋转
      rotateLeft() {
        this.rotate = this.rotate <= -3 ? 0 : this.rotate - 1;
      },
      // 向右边旋转
      rotateRight() {
        this.rotate = this.rotate >= 3 ? 0 : this.rotate + 1;
      },
      // 清除旋转
      rotateClear() {
        this.rotate = 0;
      },
      // 图片坐标点校验
      checkoutImgAxis(t, e, i) {
        t = t || this.x, e = e || this.y, i = i || this.scale;
        let s = true;
        if (this.centerBox) {
          let r = this.getImgAxis(t, e, i), o = this.getCropAxis();
          r.x1 >= o.x1 && (s = false), r.x2 <= o.x2 && (s = false), r.y1 >= o.y1 && (s = false), r.y2 <= o.y2 && (s = false), s || this.changeImgScale(r, o, i);
        }
        return s;
      },
      // 缩放图片,将图片坐标适配截图框坐标
      changeImgScale(t, e, i) {
        let s = this.trueWidth, r = this.trueHeight, o = s * i, h = r * i;
        if (o >= this.cropW && h >= this.cropH)
          this.scale = i;
        else {
          const a = this.cropW / s, n = this.cropH / r, c = this.cropH <= r * a ? a : n;
          this.scale = c, o = s * c, h = r * c;
        }
        this.imgIsQqualCrop || (t.x1 >= e.x1 && (this.isRotateRightOrLeft ? this.x = e.x1 - (s - o) / 2 - (o - h) / 2 : this.x = e.x1 - (s - o) / 2), t.x2 <= e.x2 && (this.isRotateRightOrLeft ? this.x = e.x1 - (s - o) / 2 - (o - h) / 2 - h + this.cropW : this.x = e.x2 - (s - o) / 2 - o), t.y1 >= e.y1 && (this.isRotateRightOrLeft ? this.y = e.y1 - (r - h) / 2 - (h - o) / 2 : this.y = e.y1 - (r - h) / 2), t.y2 <= e.y2 && (this.isRotateRightOrLeft ? this.y = e.y2 - (r - h) / 2 - (h - o) / 2 - o : this.y = e.y2 - (r - h) / 2 - h)), (o < this.cropW || h < this.cropH) && (this.imgIsQqualCrop = true);
      }
    },
    mounted() {
      this.support = "onwheel" in document.createElement("div") ? "wheel" : document.onmousewheel !== void 0 ? "mousewheel" : "DOMMouseScroll";
      let t = this;
      var e = navigator.userAgent;
      this.isIOS = !!e.match(/\(i[^;]+;( U;)? CPU.+Mac OS X/), HTMLCanvasElement.prototype.toBlob || Object.defineProperty(HTMLCanvasElement.prototype, "toBlob", {
        value: function(i, s, r) {
          for (var o = atob(this.toDataURL(s, r).split(",")[1]), h = o.length, a = new Uint8Array(h), n = 0; n < h; n++)
            a[n] = o.charCodeAt(n);
          i(new Blob([a], { type: t.type || "image/png" }));
        }
      }), this.showPreview(), this.checkedImg();
    },
    unmounted() {
      window.removeEventListener("mousemove", this.moveCrop), window.removeEventListener("mouseup", this.leaveCrop), window.removeEventListener("touchmove", this.moveCrop), window.removeEventListener("touchend", this.leaveCrop), this.cancelScale();
    }
  }), A = {
    key: 0,
    class: "cropper-box"
  }, B = ["src"], P = { class: "cropper-view-box" }, R = ["src"], D = { key: 1 };
  function U(t, e, i, s, r, o) {
    return vue.openBlock(), vue.createElementBlock("div", {
      class: "vue-cropper",
      ref: "cropper",
      onMouseover: e[28] || (e[28] = (...h) => t.scaleImg && t.scaleImg(...h)),
      onMouseout: e[29] || (e[29] = (...h) => t.cancelScale && t.cancelScale(...h))
    }, [
      t.imgs ? (vue.openBlock(), vue.createElementBlock("div", A, [
        vue.withDirectives(vue.createElementVNode("div", {
          class: "cropper-box-canvas",
          style: vue.normalizeStyle({
            width: t.trueWidth + "px",
            height: t.trueHeight + "px",
            transform: "scale(" + t.scale + "," + t.scale + ") translate3d(" + t.x / t.scale + "px," + t.y / t.scale + "px,0)rotateZ(" + t.rotate * 90 + "deg)"
          })
        }, [
          vue.createElementVNode("img", {
            src: t.imgs,
            alt: "cropper-img",
            ref: "cropperImg"
          }, null, 8, B)
        ], 4), [
          [vue.vShow, !t.loading]
        ])
      ])) : vue.createCommentVNode("", true),
      vue.createElementVNode("div", {
        class: vue.normalizeClass(["cropper-drag-box", { "cropper-move": t.move && !t.crop, "cropper-crop": t.crop, "cropper-modal": t.cropping }]),
        onMousedown: e[0] || (e[0] = (...h) => t.startMove && t.startMove(...h)),
        onTouchstart: e[1] || (e[1] = (...h) => t.startMove && t.startMove(...h))
      }, null, 34),
      vue.withDirectives(vue.createElementVNode("div", {
        class: "cropper-crop-box",
        style: vue.normalizeStyle({
          width: t.cropW + "px",
          height: t.cropH + "px",
          transform: "translate3d(" + t.cropOffsertX + "px," + t.cropOffsertY + "px,0)"
        })
      }, [
        vue.createElementVNode("span", P, [
          vue.createElementVNode("img", {
            style: vue.normalizeStyle({
              width: t.trueWidth + "px",
              height: t.trueHeight + "px",
              transform: "scale(" + t.scale + "," + t.scale + ") translate3d(" + (t.x - t.cropOffsertX) / t.scale + "px," + (t.y - t.cropOffsertY) / t.scale + "px,0)rotateZ(" + t.rotate * 90 + "deg)"
            }),
            src: t.imgs,
            alt: "cropper-img"
          }, null, 12, R)
        ]),
        vue.createElementVNode("span", {
          class: "cropper-face cropper-move",
          onMousedown: e[2] || (e[2] = (...h) => t.cropMove && t.cropMove(...h)),
          onTouchstart: e[3] || (e[3] = (...h) => t.cropMove && t.cropMove(...h))
        }, null, 32),
        t.info ? (vue.openBlock(), vue.createElementBlock("span", {
          key: 0,
          class: "crop-info",
          style: vue.normalizeStyle({ top: t.cropInfo.top })
        }, vue.toDisplayString(t.cropInfo.width) + " × " + vue.toDisplayString(t.cropInfo.height), 5)) : vue.createCommentVNode("", true),
        t.fixedBox ? vue.createCommentVNode("", true) : (vue.openBlock(), vue.createElementBlock("span", D, [
          vue.createElementVNode("span", {
            class: "crop-line line-w",
            onMousedown: e[4] || (e[4] = (h) => t.changeCropSize(h, false, true, 0, 1)),
            onTouchstart: e[5] || (e[5] = (h) => t.changeCropSize(h, false, true, 0, 1))
          }, null, 32),
          vue.createElementVNode("span", {
            class: "crop-line line-a",
            onMousedown: e[6] || (e[6] = (h) => t.changeCropSize(h, true, false, 1, 0)),
            onTouchstart: e[7] || (e[7] = (h) => t.changeCropSize(h, true, false, 1, 0))
          }, null, 32),
          vue.createElementVNode("span", {
            class: "crop-line line-s",
            onMousedown: e[8] || (e[8] = (h) => t.changeCropSize(h, false, true, 0, 2)),
            onTouchstart: e[9] || (e[9] = (h) => t.changeCropSize(h, false, true, 0, 2))
          }, null, 32),
          vue.createElementVNode("span", {
            class: "crop-line line-d",
            onMousedown: e[10] || (e[10] = (h) => t.changeCropSize(h, true, false, 2, 0)),
            onTouchstart: e[11] || (e[11] = (h) => t.changeCropSize(h, true, false, 2, 0))
          }, null, 32),
          vue.createElementVNode("span", {
            class: "crop-point point1",
            onMousedown: e[12] || (e[12] = (h) => t.changeCropSize(h, true, true, 1, 1)),
            onTouchstart: e[13] || (e[13] = (h) => t.changeCropSize(h, true, true, 1, 1))
          }, null, 32),
          vue.createElementVNode("span", {
            class: "crop-point point2",
            onMousedown: e[14] || (e[14] = (h) => t.changeCropSize(h, false, true, 0, 1)),
            onTouchstart: e[15] || (e[15] = (h) => t.changeCropSize(h, false, true, 0, 1))
          }, null, 32),
          vue.createElementVNode("span", {
            class: "crop-point point3",
            onMousedown: e[16] || (e[16] = (h) => t.changeCropSize(h, true, true, 2, 1)),
            onTouchstart: e[17] || (e[17] = (h) => t.changeCropSize(h, true, true, 2, 1))
          }, null, 32),
          vue.createElementVNode("span", {
            class: "crop-point point4",
            onMousedown: e[18] || (e[18] = (h) => t.changeCropSize(h, true, false, 1, 0)),
            onTouchstart: e[19] || (e[19] = (h) => t.changeCropSize(h, true, false, 1, 0))
          }, null, 32),
          vue.createElementVNode("span", {
            class: "crop-point point5",
            onMousedown: e[20] || (e[20] = (h) => t.changeCropSize(h, true, false, 2, 0)),
            onTouchstart: e[21] || (e[21] = (h) => t.changeCropSize(h, true, false, 2, 0))
          }, null, 32),
          vue.createElementVNode("span", {
            class: "crop-point point6",
            onMousedown: e[22] || (e[22] = (h) => t.changeCropSize(h, true, true, 1, 2)),
            onTouchstart: e[23] || (e[23] = (h) => t.changeCropSize(h, true, true, 1, 2))
          }, null, 32),
          vue.createElementVNode("span", {
            class: "crop-point point7",
            onMousedown: e[24] || (e[24] = (h) => t.changeCropSize(h, false, true, 0, 2)),
            onTouchstart: e[25] || (e[25] = (h) => t.changeCropSize(h, false, true, 0, 2))
          }, null, 32),
          vue.createElementVNode("span", {
            class: "crop-point point8",
            onMousedown: e[26] || (e[26] = (h) => t.changeCropSize(h, true, true, 2, 2)),
            onTouchstart: e[27] || (e[27] = (h) => t.changeCropSize(h, true, true, 2, 2))
          }, null, 32)
        ]))
      ], 4), [
        [vue.vShow, t.cropping]
      ])
    ], 544);
  }
  const M = /* @__PURE__ */ $$3F(z, [["render", U], ["__scopeId", "data-v-a742df44"]]);
  const _hoisted_1$8 = {
    key: 0,
    class: "mt-image-copper__content"
  };
  const _hoisted_2$8 = {
    key: 0,
    class: "mt-image-copper__loading"
  };
  const _sfc_main$8 = /* @__PURE__ */ vue.defineComponent({
    ...{
      name: "MtUploadImageCopper"
    },
    __name: "upload-image-copper",
    setup(__props, { expose: __expose }) {
      const filePath = vue.ref();
      const fileName = vue.ref("");
      const fileType = vue.ref("");
      const outputType = vue.ref("jpg");
      const fileSuffixToOutputTypeMap = {
        jpg: "jpeg",
        jpeg: "jpeg",
        png: "png",
        webp: "webp",
        gif: "webp"
      };
      const cropperRef = vue.ref(null);
      const enlarge = vue.ref();
      function handleRealTime() {
        enlarge.value = 1 / cropperRef.value.scale;
      }
      const attrs = vue.useAttrs();
      const cropperProsps = vue.computed(() => {
        return {
          outputSize: 1,
          info: true,
          canScale: true,
          autoCrop: true,
          autoCropScale: true,
          fixed: true,
          fixedNumber: [1, 1],
          full: false,
          fixedBox: false,
          canMove: true,
          canMoveBox: true,
          centerBox: true,
          original: true,
          high: true,
          infoTrue: true,
          maxImgSize: 2e3,
          enlarge: enlarge.value,
          mode: "contain",
          contain: 10,
          fillColor: "",
          ...attrs
        };
      });
      const dialogVisible = vue.ref(false);
      const loading = vue.ref(false);
      let copperPromiseDeferred = null;
      function handleCancel() {
        copperPromiseDeferred == null ? void 0 : copperPromiseDeferred.reject();
      }
      function handleConfirm() {
        if (!cropperRef.value) {
          return;
        }
        loading.value = true;
        cropperRef.value.getCropBlob((blob) => {
          const newFile = new File([blob], fileName.value, {
            type: fileType.value,
            lastModified: Date.now()
          });
          copperPromiseDeferred == null ? void 0 : copperPromiseDeferred.resolve(newFile);
        });
      }
      const isApplyingScale = vue.ref(false);
      async function applyImageScale(url) {
        try {
          isApplyingScale.value = true;
          const image = new Image();
          await new Promise((resolve, reject) => {
            image.onload = () => resolve();
            image.onerror = (error) => reject(error);
            image.src = url;
          });
          await new Promise((resolve) => {
            const checkCropper = () => {
              var _a;
              if (cropperRef.value && cropperRef.value.cropW && cropperRef.value.cropH) {
                resolve();
                return;
              }
              const observer = new MutationObserver(() => {
                if (cropperRef.value && cropperRef.value.cropW && cropperRef.value.cropH) {
                  observer.disconnect();
                  resolve();
                }
              });
              if ((_a = cropperRef.value) == null ? void 0 : _a.$el) {
                observer.observe(cropperRef.value.$el, {
                  childList: true,
                  subtree: true,
                  attributes: true
                });
              }
              const intervalId = setInterval(() => {
                if (cropperRef.value && cropperRef.value.cropW && cropperRef.value.cropH) {
                  observer.disconnect();
                  clearInterval(intervalId);
                  resolve();
                }
              }, 50);
            };
            checkCropper();
          });
          if (cropperRef.value) {
            const imageNumber = [image.width, image.height];
            const cropNumber = [cropperRef.value.cropW, cropperRef.value.cropH];
            let scale = 1;
            if (imageNumber[0] / imageNumber[1] >= cropNumber[0] / cropNumber[1]) {
              scale = cropNumber[1] / imageNumber[1];
            } else {
              scale = cropNumber[0] / imageNumber[0];
            }
            cropperRef.value.scale = scale;
          }
        } finally {
          isApplyingScale.value = false;
        }
      }
      __expose({
        async open(source) {
          if (tools.isString(source)) {
            filePath.value = source;
            fileName.value = tools.getFileName(source);
            fileType.value = `image/${tools.getFileSuffix(source)}`;
            outputType.value = fileSuffixToOutputTypeMap[tools.getFileSuffix(source)];
          } else {
            filePath.value = URL.createObjectURL(source);
            fileName.value = source.name;
            fileType.value = source.type;
            outputType.value = fileSuffixToOutputTypeMap[tools.getFileSuffix(source.name)];
          }
          filePath.value = tools.updateFilePathQuery(filePath.value, {
            u: tools.getUuid()
          });
          dialogVisible.value = true;
          copperPromiseDeferred = new Deferred();
          if (cropperProsps.value.autoCropScale) {
            applyImageScale(tools.updateFilePathQuery(filePath.value, {
              u: tools.getUuid()
            }));
          }
          const newFile = await copperPromiseDeferred.promise;
          copperPromiseDeferred = null;
          URL.revokeObjectURL(filePath.value);
          return {
            file: newFile
          };
        },
        close() {
          dialogVisible.value = false;
          loading.value = false;
        }
      });
      return (_ctx, _cache) => {
        return vue.openBlock(), vue.createBlock(vue.unref(MtDialog), {
          modelValue: dialogVisible.value,
          "onUpdate:modelValue": _cache[0] || (_cache[0] = ($event) => dialogVisible.value = $event),
          "destroy-on-close": true,
          "align-center": ""
        }, {
          default: vue.withCtx(() => [
            vue.createVNode(vue.unref(MtDialogConfirmLayout), {
              loading: loading.value,
              disabled: isApplyingScale.value,
              onCancel: handleCancel,
              onConfirm: handleConfirm
            }, {
              default: vue.withCtx(() => [
                filePath.value ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_1$8, [
                  isApplyingScale.value ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_2$8, [
                    vue.createVNode(vue.unref(MtLoading), { size: 80 })
                  ])) : vue.createCommentVNode("", true),
                  vue.createVNode(vue.unref(M), vue.mergeProps({
                    ref_key: "cropperRef",
                    ref: cropperRef,
                    img: filePath.value,
                    "output-type": outputType.value
                  }, cropperProsps.value, {
                    enlarge: enlarge.value,
                    onRealTime: handleRealTime
                  }), null, 16, ["img", "output-type", "enlarge"])
                ])) : vue.createCommentVNode("", true)
              ]),
              _: 1
            }, 8, ["loading", "disabled"])
          ]),
          _: 1
        }, 8, ["modelValue"]);
      };
    }
  });
  const _export_sfc = (sfc, props) => {
    const target = sfc.__vccOpts || sfc;
    for (const [key, val] of props) {
      target[key] = val;
    }
    return target;
  };
  const UploadImageCopper = /* @__PURE__ */ _export_sfc(_sfc_main$8, [["__scopeId", "data-v-25d6b653"]]);
  const _hoisted_1$7 = {
    key: 0,
    class: "mt-upload-image-grid-layout__loading"
  };
  const _hoisted_2$7 = {
    key: 1,
    class: "mt-upload-image-grid-layout__actions"
  };
  const _sfc_main$7 = /* @__PURE__ */ vue.defineComponent({
    ...{
      name: "MtUploadImageGridLayout"
    },
    __name: "upload-image-grid-layout",
    props: {
      fileList: {
        type: Array,
        default: () => []
      },
      disabled: {
        type: Boolean,
        default: false
      },
      copperOptions: {
        type: Object,
        default: () => ({})
      }
    },
    emits: ["remove"],
    setup(__props, { emit: __emit }) {
      const props = __props;
      const emits = __emit;
      const uploadContext = vue.inject(uploadContextKey);
      const copperRef = vue.ref();
      function handleRemove(fileItem, fileIndex) {
        if (props.disabled) {
          return;
        }
        emits("remove", {
          fileItem,
          fileIndex
        });
      }
      async function handleCropper(fileItem) {
        if (props.disabled) {
          return;
        }
        try {
          const { file } = await copperRef.value.open(fileItem.url);
          if (uploadContext) {
            try {
              await uploadContext.reload({
                uid: fileItem.uid,
                file
              });
              MtMessage.success("裁剪成功");
              copperRef.value.close();
            } catch {
              MtMessage.error("裁剪失败");
            }
          }
        } catch {
          copperRef.value.close();
        }
      }
      function handlePreview(fileItem) {
        if (fileItem.url) {
          MtFilePreview({
            viewUrl: fileItem.url
          });
        }
      }
      return (_ctx, _cache) => {
        return vue.openBlock(), vue.createElementBlock(vue.Fragment, null, [
          vue.createElementVNode("div", {
            class: vue.normalizeClass(["mt-upload-image-grid-layout", { "mt-upload-image-grid-layout--disabled": props.disabled, "mt-upload-image-grid-layout--empty": props.fileList.length === 0 }])
          }, [
            (vue.openBlock(true), vue.createElementBlock(vue.Fragment, null, vue.renderList(props.fileList, (fileItem, fileIndex) => {
              return vue.openBlock(), vue.createElementBlock("div", {
                key: fileItem.uid,
                class: "mt-upload-image-grid-layout__item"
              }, [
                vue.createVNode(vue.unref(MtImage), {
                  src: fileItem.url,
                  width: "100%",
                  height: "100%"
                }, null, 8, ["src"]),
                fileItem.status === "uploading" ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_1$7, [
                  vue.createVNode(vue.unref(MtProgress), {
                    percentage: fileItem.percentage,
                    type: "circle",
                    width: 50,
                    "stroke-width": 2
                  }, null, 8, ["percentage"])
                ])) : vue.createCommentVNode("", true),
                fileItem.status === "success" ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_2$7, [
                  !props.disabled ? (vue.openBlock(), vue.createBlock(vue.unref(MtIcon), {
                    key: 0,
                    name: "icon-edit-05",
                    color: "#fff",
                    size: 18,
                    clickable: "",
                    onClick: ($event) => handleCropper(fileItem)
                  }, null, 8, ["onClick"])) : vue.createCommentVNode("", true),
                  vue.createVNode(vue.unref(MtIcon), {
                    name: "icon-general_gray_research",
                    color: "#fff",
                    size: 18,
                    clickable: "",
                    onClick: ($event) => handlePreview(fileItem)
                  }, null, 8, ["onClick"]),
                  !props.disabled ? (vue.openBlock(), vue.createBlock(vue.unref(MtIcon), {
                    key: 1,
                    name: "icon-icon_delete_gray-14",
                    color: "#fff",
                    size: 18,
                    clickable: "",
                    onClick: ($event) => handleRemove(fileItem, fileIndex)
                  }, null, 8, ["onClick"])) : vue.createCommentVNode("", true)
                ])) : vue.createCommentVNode("", true)
              ]);
            }), 128))
          ], 2),
          vue.createVNode(UploadImageCopper, vue.mergeProps({
            ref_key: "copperRef",
            ref: copperRef
          }, props.copperOptions), null, 16)
        ], 64);
      };
    }
  });
  const ChooseImage = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEEAAABDCAYAAADDP2hOAAAACXBIWXMAABYlAAAWJQFJUiTwAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAsoSURBVHgB7VpbbB1HGf5n9nLsYyexE8epg1NycQIJaVSRUGiKCCpVoZSWUkCoCoqoihAPCB5ABRUE4fIGLxVICCQekHhAQiCBKlEEQkJCQYE2KheFpEpILJq4jp34fm57Gf5/d2Z3ds+es+P6+InzWevdnes///zX2QPQRx999NFHH3300cf/JVjPG64TNl7+2Fue3RKIm/eyMPBBCAaMCdgsyPGF4NyyR5vzl3/wEpZyqpFXR2wGE2hMcfTpVz8/vOfg834tnUSoSvxH7EjeQX/oNmp6Z0y+inRsHZURWHv1189Ozf3tu7fwNYSSoXsNNvXR39+74+BDF2rzgc+YZQsiQe0JdFi4zhimLUrnlKRWtcusQmMM/RN+Kxg56Db//FU2BCXg0HsIi+0421gIgSMDiD5uxRNx/MejAvksy5h8BvnM5Lr0PlE7luufGycagsl2rmt5K1AdO/q5E2UE27AJ8L1Vl1k8VkYhN1DJXP4OaX2iNgXyKaBdbDPqBfHik3Fk48BbqUAJNoUJFmcB7ShpYqK7kIpwIn4sFX9dvosWq7SJQTE/Na2CkMk5LBo7KDXGm8KEBJoO6zsdoZOEFA2jbIluYXPzMFWuGIDP3NAXmTLByNUoXJ1prlawZRhAVo7zIsGkusgy0cnwQba/wHGrgwD7d+Mcut1n2WdhRaT3RBJoqOCv586dOnTk8PeajbURIlMgRRz/QhGi9DOkhfHYpvl+6OycbPgQoJHioYhJUwarjVaWfWZKQnjaVkDWgjtI9TV0fE98C5nhAgwOQDvXOBi7PhMmBNeuXXtqYnLvT/74r+BnjI/UkdiIx9HGkP0LwKo3oIILH6o1YHSpBiuNFow2fTHqtdhIKLqIUE468sLShojNAG/eBTD9U7x/CmAInWAQtKsLs8AIRuqwd+/eH/3ifPj82DDbgUQQ32Ftef4u3/Nsy+IhLpKHAXe4cCqWsIeHLHsrc6yhimXbnpxBlAll15XnmmLbxWWA778I8KuvATyM195dkFE9YSoGYMCE48ePj9HQA044AMwWgV/btXts8FFrdMxWtNNOe7g7dbyWMUJcXEVpxHutiXUN3Dk9CNKNnEiDG8jVt7XRQG0qqAbXZwBOn8R5W7KCx3VJzEB3BzbOhHq9TqYn5BwDP682sWe8+lirFQqMiJIFkCg2kQE1JAbVISKq5WG5r20OK1hozqer+gxYW8AIclpwcYFNT4sPcj7TVBpMI0ZBlm9yvPohzw8FqgBLKBFZQhUNeYJ1ZHRX5Bp2UAmmDySyFcxKx1QGmMno0wSmTAgbyzP7aErOOcvRkMYB0t0lG1K2Exza3FpXk67ttIoQQ5FdtJBjMm4wv4RpnCB8vxmHn7md0hMh2gXy280gGy5npCSv90R4mJYrwvM2JAquZFvVjy6aT19wImTCnAmlkmBZFpER6EFJZmxFKIsN4fg2gGN3A4xuAbi1hFy2IdFXptkFltfh3Hu3tkyLIUKtfyQFShIsMJZzY0nQB9R1X+0YeYeHjuGA0jefOADwnymAH6IbGx/NRXY5ZJjRsVGurUQQSh7ImDYxtAyMgyVjw1h0LKEstofif3QPSU22fj/67vsPxxa8YwxgGBsUIeGdpUkLk16Brl4bRuDtfNX1d8tgMeeP7wdYWANoC4aUJ9CzEpGrS2fPlmvtSBK4pk5Mnj8w6L1h7AglDURnUZTa8im1hs47I7SObbm2BMuVq0TK0vrzAqHqsST4vAtfifs3bqf0RXf58MIFgLGtWmO5kywXY8QDQXYQ+ZwEQ0J7B+ki5SIKr15JgvQO3fIZcHEnXrsT24Q3jcbl5L9/eR7DaIwgqw5kfDy0P7YzIveuu9voUYp/ZHBtyVt5kJMwrJfeQXQ5raW5aMEDuNBLNwBevhrnEP+djwneirbC86B9l1nBQGVttLokZAcpGTZkUnDIP3eBUZwgSiQh2gBKapAQ146JGh2KY3tFbOK2eGrNddHOxAlaJJmPJfSLEqRQBlGFzQzVwYhXJHWdGgpNXBMXJdIyFeklnkSkdwczwTuUddbigxK9XybszQdPHNrCZlWn2ieRrAGMmBCQOnTTZQaZjE3thJDlSYSnPVMkOY0qc/p+gKdOxs9kU5ieT2iuT/XP10WpsxVfCYOYLOuld+DRAW4xW6PSMD3JY1onJvOJImW6jWcO73lrHGTdg9cpDKrurBaIcJEiamWhbkt0XRBQfpCTklqOMAqWOtcLfceUqCr3x1Oi1EWEk8d48kT8TBb+I/g87MZnEx2DJ82tqrpQBkuMZz/UKOmwDUy/aZzQHVIvSa8dK764LcVbm4kIJaJmFgCe+3DMAK4ZuC8/jnWLcRuVJRZdBLVoX2aRRR7F0CSUM2EBlIvMDqm/0WLpNOncFYBXptFNXkdxxwyy5sV5RdQeB8HDKLj6OsBXHpeTa4OowxBiDrWx8+5Sn1szsolBtrQVqfqIOWEpL4y9Q5e6aEde/AfAFTwGr+Kpw9efBJhdjk+F6duDkG1mkTGn3w1w17Zi90Vl4xhdfhLbzCzlDGHBvFQfSYKVMoLpbjhiSPl3h1Im8CWbGB6yDuREaor/7juE4fEwwGcfjHOFb34MLf7tWEqovoXMmJrArHJKGrMOoLbvwjaHJuI+mQ+vLPfOtfME0DyVPp7DS62CkSREX1oKoDaKTpMncQe/8YTcdSysoOF77jE8U5iDJLz99KnUDnSCOk165lR8UEvBlyvtjG5z6NnmQQMX4CVfrTVGMREEgxjCi6U7r0BPmEAMF6KjjyRi37Yn1VGFye0AZx4AuPwawBc/WM6APCO+9GichlfxS8eAq11OrHYOD1okZBzLOJZZTnxnPIRtByxr/uLVL8xf/s1K2XxmuQPr7HLJ8O0fj3cnsxCIRfWdeMJ03wHIhsgGYFKankb78ALu5bahmDGKEBvr1la8+vhw4K1e/ctvlxacQUmr7VS31levvP7tl3/8gQtyjX63uQyYEOXIPisIv+ij905Ug63V4p6qB0v+rQ/UZXIHwDv2Y0J2WzJajkN5Sa3SavjN2uzcz9/38bni7pG2ls1jlEoXJVBUMIhiODGS5vSbAZr8+D6AlTokH2xpbpfUgnlNPOdodeoKhjDLHQS53Ky/JSM0tWtzGRDNI+3De4+QIYwZH10O2QTfcy3WgA3C/KBVAxm4I7vXN8BGoGzJ2/fF7pcM4wBFpPgZGBlUKu5lMD1jxMmy3mF2MQ6NqRA/yUdEheINqX4K0bmYpCBKuS0tU4w8r9h8JkQ2Icx6Pwp/51YhIZreF9bJgPx6O/46RWsfRaeWDNDiyfiGmC5hJAloeQLXrfg6QZEasPTdWgc1evabgJkzkclBnMpAIxQqO3njMFJpjAiD4ZGd14FSgaD812BlYB2ubnV6fYimIDKYdvXfqKUebBClTMBF03lKi5renK/9wUVzjPZhw4woAjOoD0UoXMdiM7NLL7lOtR4GGxYEA5tw7FizYkFdhOgirer1m3Nrv5sYG3p4PdFfL2HhZkzfmD9fqY793W947taR6h3YIIyWMre49pmLs5UHmzVYsR0rOuqvLc/d3Wo1K/TLtY4dtXQx80u76Nfo2RoVb0RvBXJGRY7thu7Q9mnbdvx6owmn7qk8cOniPz9x8sSxS7ABmDAhou3W7cVn3O3b3r8WYKAmoiMMWzsQZklD0E7ASZHkT/gsln5I4nHDRNXVGFp+lY3SsS0Oqk4O6bxTDDCoXbpy5TuHDx78E2QO3NaP9ZxAhVOPPFJxp6cNfgplhsjerKOt/BqGH3M8fubMmZWzZ89mBKiPPvroo48++uij1/gfhNPoXJmF9LAAAAAASUVORK5CYII=";
  const _hoisted_1$6 = { class: "mt-upload-image-only-trigger__region" };
  const _hoisted_2$6 = { class: "mt-upload-image-only-trigger__choose" };
  const _hoisted_3$5 = {
    key: 0,
    class: "mt-upload-image-only-trigger__tip"
  };
  const _hoisted_4$3 = {
    key: 1,
    class: "mt-upload-image-only-trigger__ratio"
  };
  const _hoisted_5$1 = ["disabled", "multiple", "accept"];
  const _sfc_main$6 = /* @__PURE__ */ vue.defineComponent({
    ...{
      name: "MtUploadImageGridTrigger"
    },
    __name: "upload-image-only-trigger",
    props: {
      fileList: {
        type: Array,
        default: () => []
      },
      disabled: {
        type: Boolean
      },
      limit: {
        type: Number
      },
      multiple: {
        type: Boolean
      },
      suffixes: {
        type: Array
      },
      onExceed: {
        type: Function,
        default: NOOP
      },
      showTrigger: {
        type: Boolean
      },
      autoCropper: {
        type: Boolean
      },
      copperOptions: {
        type: Object
      }
    },
    emits: ["remove"],
    setup(__props, { expose: __expose, emit: __emit }) {
      const props = __props;
      const emits = __emit;
      const solts = vue.useSlots();
      const inputRef = vue.shallowRef();
      const uploadContext = vue.inject(uploadContextKey);
      const copperRef = vue.ref();
      const accept = vue.computed(() => {
        if (!props.suffixes) {
          return "";
        }
        return props.suffixes.map((suffix) => `.${suffix}`).join(",");
      });
      const uploadTriggerCopperRatio = vue.computed(() => {
        var _a;
        if ((_a = props.copperOptions) == null ? void 0 : _a.fixedNumber) {
          return `推荐比例 ${props.copperOptions.fixedNumber.join(":")}`;
        }
        return "";
      });
      function handleChoose() {
        if (props.disabled) {
          return;
        }
        if (props.autoCropper) {
          inputRef.value.value = "";
          inputRef.value.click();
        } else {
          if (uploadContext) {
            uploadContext.choose();
          }
        }
      }
      async function handleChange(event) {
        var _a, _b, _c, _d;
        const files = event.target.files;
        if (!files) {
          return;
        }
        const fileList = Array.from(files);
        if (fileList.length === 0) {
          return;
        }
        if (props.fileList.length > 0) {
          emits("remove", {
            fileItem: props.fileList[0]
          });
          await vue.nextTick();
        }
        if (props.limit && props.fileList.length + files.length > props.limit) {
          props.onExceed(fileList);
          return;
        }
        try {
          const { file } = await copperRef.value.open(fileList[0]);
          if (uploadContext) {
            await uploadContext.upload([file]);
            (_b = (_a = copperRef == null ? void 0 : copperRef.value) == null ? void 0 : _a.close) == null ? void 0 : _b.call(_a);
          }
        } catch {
          (_d = (_c = copperRef == null ? void 0 : copperRef.value) == null ? void 0 : _c.close) == null ? void 0 : _d.call(_c);
        }
      }
      __expose({
        choose() {
          handleChoose();
        }
      });
      return (_ctx, _cache) => {
        return vue.openBlock(), vue.createElementBlock("div", {
          class: vue.normalizeClass(["mt-upload-image-only-trigger", { "mt-upload-image-only-trigger--disabled": props.disabled }])
        }, [
          props.fileList.length === 0 && __props.showTrigger ? (vue.openBlock(), vue.createElementBlock("div", {
            key: 0,
            class: "mt-upload-image-only-trigger__box",
            onClick: handleChoose
          }, [
            vue.renderSlot(_ctx.$slots, "trigger", {}, () => [
              vue.createElementVNode("div", _hoisted_1$6, [
                vue.createElementVNode("div", _hoisted_2$6, [
                  vue.createVNode(vue.unref(MtImage), {
                    src: vue.unref(ChooseImage),
                    width: 32,
                    height: 32
                  }, null, 8, ["src"]),
                  solts.tip ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_3$5, [
                    vue.renderSlot(_ctx.$slots, "tip")
                  ])) : vue.createCommentVNode("", true),
                  uploadTriggerCopperRatio.value ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_4$3, vue.toDisplayString(uploadTriggerCopperRatio.value), 1)) : vue.createCommentVNode("", true)
                ])
              ])
            ])
          ])) : vue.createCommentVNode("", true),
          vue.createVNode(UploadImageCopper, vue.mergeProps({
            ref_key: "copperRef",
            ref: copperRef
          }, props.copperOptions), null, 16),
          vue.createElementVNode("input", {
            ref_key: "inputRef",
            ref: inputRef,
            class: "mt-upload-image-only-trigger__input",
            name: "file",
            type: "file",
            disabled: props.disabled,
            multiple: props.multiple,
            accept: accept.value,
            onChange: handleChange
          }, null, 40, _hoisted_5$1)
        ], 2);
      };
    }
  });
  const _hoisted_1$5 = {
    key: 0,
    class: "mt-upload-image-only-layout__item"
  };
  const _hoisted_2$5 = {
    key: 0,
    class: "mt-upload-image-only-layout__loading"
  };
  const _hoisted_3$4 = {
    key: 1,
    class: "mt-upload-image-only-layout__actions"
  };
  const _sfc_main$5 = /* @__PURE__ */ vue.defineComponent({
    ...{
      name: "MtUploadImageOnlyLayout"
    },
    __name: "upload-image-only-layout",
    props: {
      fileList: {
        type: Array,
        default: () => []
      },
      disabled: {
        type: Boolean,
        default: false
      },
      copperOptions: {
        type: Object,
        default: () => ({})
      }
    },
    emits: ["remove"],
    setup(__props, { emit: __emit }) {
      const props = __props;
      const emits = __emit;
      const fileItem = vue.computed(() => {
        var _a;
        return (_a = props.fileList) == null ? void 0 : _a[0];
      });
      const uploadContext = vue.inject(uploadContextKey);
      const copperRef = vue.ref();
      function handleRemove(fileItem2, fileIndex) {
        if (props.disabled) {
          return;
        }
        emits("remove", {
          fileItem: fileItem2,
          fileIndex
        });
      }
      function handlePreview(fileItem2) {
        if (fileItem2.url) {
          MtFilePreview({
            viewUrl: fileItem2.url
          });
        }
      }
      async function handleCropper(fileItem2) {
        if (props.disabled) {
          return;
        }
        try {
          const { file } = await copperRef.value.open(fileItem2.url || fileItem2.raw);
          if (uploadContext) {
            try {
              await uploadContext.reload({
                uid: fileItem2.uid,
                file
              });
              MtMessage.success("裁剪成功");
              copperRef.value.close();
            } catch {
              MtMessage.error("裁剪失败");
            }
          }
        } catch {
          copperRef.value.close();
        }
      }
      return (_ctx, _cache) => {
        return vue.openBlock(), vue.createElementBlock("div", {
          class: vue.normalizeClass(["mt-upload-image-only-layout", { "mt-upload-image-only-layout--disabled": props.disabled }])
        }, [
          fileItem.value ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_1$5, [
            vue.createVNode(vue.unref(MtImage), {
              src: fileItem.value.url,
              width: "100%",
              height: "100%"
            }, null, 8, ["src"]),
            fileItem.value.status === "uploading" ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_2$5, [
              vue.createVNode(vue.unref(MtProgress), {
                percentage: fileItem.value.percentage,
                type: "circle",
                width: 50,
                "stroke-width": 2
              }, null, 8, ["percentage"])
            ])) : vue.createCommentVNode("", true),
            fileItem.value.status === "success" ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_3$4, [
              !props.disabled ? (vue.openBlock(), vue.createBlock(vue.unref(MtIcon), {
                key: 0,
                name: "icon-edit-05",
                color: "#fff",
                size: 18,
                clickable: "",
                onClick: _cache[0] || (_cache[0] = ($event) => handleCropper(fileItem.value))
              })) : vue.createCommentVNode("", true),
              vue.createVNode(vue.unref(MtIcon), {
                name: "icon-general_gray_research",
                color: "#fff",
                size: 18,
                clickable: "",
                onClick: _cache[1] || (_cache[1] = ($event) => handlePreview(fileItem.value))
              }),
              !props.disabled ? (vue.openBlock(), vue.createBlock(vue.unref(MtIcon), {
                key: 1,
                name: "icon-icon_delete_gray-14",
                color: "#fff",
                size: 18,
                clickable: "",
                onClick: _cache[2] || (_cache[2] = ($event) => handleRemove(fileItem.value, 0))
              })) : vue.createCommentVNode("", true)
            ])) : vue.createCommentVNode("", true)
          ])) : vue.createCommentVNode("", true),
          vue.createVNode(UploadImageCopper, vue.mergeProps({
            ref_key: "copperRef",
            ref: copperRef
          }, props.copperOptions), null, 16)
        ], 2);
      };
    }
  });
  const UploadImageOnlyLayout = /* @__PURE__ */ _export_sfc(_sfc_main$5, [["__scopeId", "data-v-9539e52f"]]);
  const ChooseIcon = "data:image/png;base64,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";
  const _hoisted_1$4 = { class: "mt-upload-file-list-trigger__region" };
  const _hoisted_2$4 = { class: "mt-upload-file-list-trigger__chooss" };
  const _hoisted_3$3 = { class: "mt-upload-file-list-trigger__image" };
  const _hoisted_4$2 = ["title"];
  const _sfc_main$4 = /* @__PURE__ */ vue.defineComponent({
    ...{
      name: "MtUploadDefaultTrigger"
    },
    __name: "upload-file-list-trigger",
    props: {
      fileList: {
        type: Array,
        default: () => []
      },
      disabled: {
        type: Boolean
      },
      description: {
        type: String,
        default: ""
      }
    },
    setup(__props) {
      const props = __props;
      const uploadContext = vue.inject(uploadContextKey);
      function handleChoose() {
        if (props.disabled) {
          return;
        }
        if (uploadContext) {
          uploadContext.choose();
        }
      }
      return (_ctx, _cache) => {
        return vue.openBlock(), vue.createElementBlock("div", {
          class: vue.normalizeClass(["mt-upload-file-list-trigger", { "mt-upload-file-list-trigger--disabled": props.disabled }]),
          onClick: handleChoose
        }, [
          vue.renderSlot(_ctx.$slots, "trigger", {}, () => [
            vue.createElementVNode("div", _hoisted_1$4, [
              vue.createElementVNode("div", _hoisted_2$4, [
                vue.createElementVNode("div", _hoisted_3$3, [
                  vue.createVNode(vue.unref(MtImage), {
                    src: vue.unref(ChooseIcon),
                    width: "32px",
                    height: "33.28px"
                  }, null, 8, ["src"])
                ]),
                _cache[0] || (_cache[0] = vue.createElementVNode("div", { class: "mt-upload-file-list-trigger__title" }, " 上传文件 ", -1)),
                vue.createElementVNode("div", {
                  class: "mt-upload-file-list-trigger__description",
                  title: props.description
                }, vue.toDisplayString(props.description), 9, _hoisted_4$2)
              ])
            ])
          ])
        ], 2);
      };
    }
  });
  const _hoisted_1$3 = { class: "mt-upload-image-grid-trigger__region" };
  const _hoisted_2$3 = { class: "mt-upload-image-grid-trigger__choose" };
  const _hoisted_3$2 = {
    key: 0,
    class: "mt-upload-image-only-trigger__tip"
  };
  const _hoisted_4$1 = {
    key: 1,
    class: "mt-upload-image-only-trigger__ratio"
  };
  const _sfc_main$3 = /* @__PURE__ */ vue.defineComponent({
    ...{
      name: "MtUploadImageGridTrigger"
    },
    __name: "upload-image-grid-trigger",
    props: {
      fileList: {
        type: Array,
        default: () => []
      },
      disabled: {
        type: Boolean
      },
      copperOptions: {
        type: Object,
        default: () => ({})
      }
    },
    setup(__props) {
      const props = __props;
      const solts = vue.useSlots();
      const uploadContext = vue.inject(uploadContextKey);
      const uploadTriggerCopperRatio = vue.computed(() => {
        var _a;
        if ((_a = props.copperOptions) == null ? void 0 : _a.fixedNumber) {
          return `推荐比例 ${props.copperOptions.fixedNumber.join(":")}`;
        }
        return "";
      });
      function handleChoose() {
        if (props.disabled) {
          return;
        }
        if (uploadContext) {
          uploadContext.choose();
        }
      }
      return (_ctx, _cache) => {
        return vue.openBlock(), vue.createElementBlock("div", {
          class: vue.normalizeClass(["mt-upload-image-grid-trigger", { "mt-upload-image-grid-trigger--disabled": props.disabled }]),
          onClick: handleChoose
        }, [
          vue.renderSlot(_ctx.$slots, "trigger", {}, () => [
            vue.createElementVNode("div", _hoisted_1$3, [
              vue.createElementVNode("div", _hoisted_2$3, [
                vue.createVNode(vue.unref(MtImage), {
                  src: vue.unref(ChooseImage),
                  width: 30,
                  height: 30
                }, null, 8, ["src"]),
                solts.tip ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_3$2, [
                  vue.renderSlot(_ctx.$slots, "tip")
                ])) : vue.createCommentVNode("", true),
                uploadTriggerCopperRatio.value ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_4$1, vue.toDisplayString(uploadTriggerCopperRatio.value), 1)) : vue.createCommentVNode("", true)
              ])
            ])
          ])
        ], 2);
      };
    }
  });
  function bind(fn, thisArg) {
    return function wrap2() {
      return fn.apply(thisArg, arguments);
    };
  }
  const { toString } = Object.prototype;
  const { getPrototypeOf } = Object;
  const { iterator, toStringTag } = Symbol;
  const kindOf = /* @__PURE__ */ ((cache) => (thing) => {
    const str = toString.call(thing);
    return cache[str] || (cache[str] = str.slice(8, -1).toLowerCase());
  })(/* @__PURE__ */ Object.create(null));
  const kindOfTest = (type) => {
    type = type.toLowerCase();
    return (thing) => kindOf(thing) === type;
  };
  const typeOfTest = (type) => (thing) => typeof thing === type;
  const { isArray } = Array;
  const isUndefined = typeOfTest("undefined");
  function isBuffer(val) {
    return val !== null && !isUndefined(val) && val.constructor !== null && !isUndefined(val.constructor) && isFunction(val.constructor.isBuffer) && val.constructor.isBuffer(val);
  }
  const isArrayBuffer$1 = kindOfTest("ArrayBuffer");
  function isArrayBufferView(val) {
    let result;
    if (typeof ArrayBuffer !== "undefined" && ArrayBuffer.isView) {
      result = ArrayBuffer.isView(val);
    } else {
      result = val && val.buffer && isArrayBuffer$1(val.buffer);
    }
    return result;
  }
  const isString = typeOfTest("string");
  const isFunction = typeOfTest("function");
  const isNumber = typeOfTest("number");
  const isObject = (thing) => thing !== null && typeof thing === "object";
  const isBoolean = (thing) => thing === true || thing === false;
  const isPlainObject = (val) => {
    if (kindOf(val) !== "object") {
      return false;
    }
    const prototype2 = getPrototypeOf(val);
    return (prototype2 === null || prototype2 === Object.prototype || Object.getPrototypeOf(prototype2) === null) && !(toStringTag in val) && !(iterator in val);
  };
  const isDate = kindOfTest("Date");
  const isFile = kindOfTest("File");
  const isBlob = kindOfTest("Blob");
  const isFileList = kindOfTest("FileList");
  const isStream = (val) => isObject(val) && isFunction(val.pipe);
  const isFormData = (thing) => {
    let kind;
    return thing && (typeof FormData === "function" && thing instanceof FormData || isFunction(thing.append) && ((kind = kindOf(thing)) === "formdata" || // detect form-data instance
    kind === "object" && isFunction(thing.toString) && thing.toString() === "[object FormData]"));
  };
  const isURLSearchParams = kindOfTest("URLSearchParams");
  const [isReadableStream, isRequest, isResponse, isHeaders] = ["ReadableStream", "Request", "Response", "Headers"].map(kindOfTest);
  const trim$3 = (str) => str.trim ? str.trim() : str.replace(/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g, "");
  function forEach(obj, fn, { allOwnKeys = false } = {}) {
    if (obj === null || typeof obj === "undefined") {
      return;
    }
    let i;
    let l;
    if (typeof obj !== "object") {
      obj = [obj];
    }
    if (isArray(obj)) {
      for (i = 0, l = obj.length; i < l; i++) {
        fn.call(null, obj[i], i, obj);
      }
    } else {
      const keys = allOwnKeys ? Object.getOwnPropertyNames(obj) : Object.keys(obj);
      const len = keys.length;
      let key;
      for (i = 0; i < len; i++) {
        key = keys[i];
        fn.call(null, obj[key], key, obj);
      }
    }
  }
  function findKey(obj, key) {
    key = key.toLowerCase();
    const keys = Object.keys(obj);
    let i = keys.length;
    let _key;
    while (i-- > 0) {
      _key = keys[i];
      if (key === _key.toLowerCase()) {
        return _key;
      }
    }
    return null;
  }
  const _global = (() => {
    if (typeof globalThis !== "undefined") return globalThis;
    return typeof self !== "undefined" ? self : typeof window !== "undefined" ? window : global;
  })();
  const isContextDefined = (context) => !isUndefined(context) && context !== _global;
  function merge() {
    const { caseless } = isContextDefined(this) && this || {};
    const result = {};
    const assignValue = (val, key) => {
      const targetKey = caseless && findKey(result, key) || key;
      if (isPlainObject(result[targetKey]) && isPlainObject(val)) {
        result[targetKey] = merge(result[targetKey], val);
      } else if (isPlainObject(val)) {
        result[targetKey] = merge({}, val);
      } else if (isArray(val)) {
        result[targetKey] = val.slice();
      } else {
        result[targetKey] = val;
      }
    };
    for (let i = 0, l = arguments.length; i < l; i++) {
      arguments[i] && forEach(arguments[i], assignValue);
    }
    return result;
  }
  const extend = (a, b, thisArg, { allOwnKeys } = {}) => {
    forEach(b, (val, key) => {
      if (thisArg && isFunction(val)) {
        a[key] = bind(val, thisArg);
      } else {
        a[key] = val;
      }
    }, { allOwnKeys });
    return a;
  };
  const stripBOM = (content) => {
    if (content.charCodeAt(0) === 65279) {
      content = content.slice(1);
    }
    return content;
  };
  const inherits = (constructor, superConstructor, props, descriptors2) => {
    constructor.prototype = Object.create(superConstructor.prototype, descriptors2);
    constructor.prototype.constructor = constructor;
    Object.defineProperty(constructor, "super", {
      value: superConstructor.prototype
    });
    props && Object.assign(constructor.prototype, props);
  };
  const toFlatObject = (sourceObj, destObj, filter, propFilter) => {
    let props;
    let i;
    let prop;
    const merged = {};
    destObj = destObj || {};
    if (sourceObj == null) return destObj;
    do {
      props = Object.getOwnPropertyNames(sourceObj);
      i = props.length;
      while (i-- > 0) {
        prop = props[i];
        if ((!propFilter || propFilter(prop, sourceObj, destObj)) && !merged[prop]) {
          destObj[prop] = sourceObj[prop];
          merged[prop] = true;
        }
      }
      sourceObj = filter !== false && getPrototypeOf(sourceObj);
    } while (sourceObj && (!filter || filter(sourceObj, destObj)) && sourceObj !== Object.prototype);
    return destObj;
  };
  const endsWith = (str, searchString, position) => {
    str = String(str);
    if (position === void 0 || position > str.length) {
      position = str.length;
    }
    position -= searchString.length;
    const lastIndex = str.indexOf(searchString, position);
    return lastIndex !== -1 && lastIndex === position;
  };
  const toArray = (thing) => {
    if (!thing) return null;
    if (isArray(thing)) return thing;
    let i = thing.length;
    if (!isNumber(i)) return null;
    const arr = new Array(i);
    while (i-- > 0) {
      arr[i] = thing[i];
    }
    return arr;
  };
  const isTypedArray = /* @__PURE__ */ ((TypedArray2) => {
    return (thing) => {
      return TypedArray2 && thing instanceof TypedArray2;
    };
  })(typeof Uint8Array !== "undefined" && getPrototypeOf(Uint8Array));
  const forEachEntry = (obj, fn) => {
    const generator = obj && obj[iterator];
    const _iterator = generator.call(obj);
    let result;
    while ((result = _iterator.next()) && !result.done) {
      const pair = result.value;
      fn.call(obj, pair[0], pair[1]);
    }
  };
  const matchAll = (regExp, str) => {
    let matches;
    const arr = [];
    while ((matches = regExp.exec(str)) !== null) {
      arr.push(matches);
    }
    return arr;
  };
  const isHTMLForm = kindOfTest("HTMLFormElement");
  const toCamelCase = (str) => {
    return str.toLowerCase().replace(
      /[-_\s]([a-z\d])(\w*)/g,
      function replacer2(m, p1, p2) {
        return p1.toUpperCase() + p2;
      }
    );
  };
  const hasOwnProperty$1 = (({ hasOwnProperty: hasOwnProperty2 }) => (obj, prop) => hasOwnProperty2.call(obj, prop))(Object.prototype);
  const isRegExp$4 = kindOfTest("RegExp");
  const reduceDescriptors = (obj, reducer) => {
    const descriptors2 = Object.getOwnPropertyDescriptors(obj);
    const reducedDescriptors = {};
    forEach(descriptors2, (descriptor2, name2) => {
      let ret;
      if ((ret = reducer(descriptor2, name2, obj)) !== false) {
        reducedDescriptors[name2] = ret || descriptor2;
      }
    });
    Object.defineProperties(obj, reducedDescriptors);
  };
  const freezeMethods = (obj) => {
    reduceDescriptors(obj, (descriptor2, name2) => {
      if (isFunction(obj) && ["arguments", "caller", "callee"].indexOf(name2) !== -1) {
        return false;
      }
      const value = obj[name2];
      if (!isFunction(value)) return;
      descriptor2.enumerable = false;
      if ("writable" in descriptor2) {
        descriptor2.writable = false;
        return;
      }
      if (!descriptor2.set) {
        descriptor2.set = () => {
          throw Error("Can not rewrite read-only method '" + name2 + "'");
        };
      }
    });
  };
  const toObjectSet = (arrayOrString, delimiter2) => {
    const obj = {};
    const define2 = (arr) => {
      arr.forEach((value) => {
        obj[value] = true;
      });
    };
    isArray(arrayOrString) ? define2(arrayOrString) : define2(String(arrayOrString).split(delimiter2));
    return obj;
  };
  const noop$1 = () => {
  };
  const toFiniteNumber = (value, defaultValue) => {
    return value != null && Number.isFinite(value = +value) ? value : defaultValue;
  };
  function isSpecCompliantForm(thing) {
    return !!(thing && isFunction(thing.append) && thing[toStringTag] === "FormData" && thing[iterator]);
  }
  const toJSONObject = (obj) => {
    const stack = new Array(10);
    const visit = (source, i) => {
      if (isObject(source)) {
        if (stack.indexOf(source) >= 0) {
          return;
        }
        if (!("toJSON" in source)) {
          stack[i] = source;
          const target = isArray(source) ? [] : {};
          forEach(source, (value, key) => {
            const reducedValue = visit(value, i + 1);
            !isUndefined(reducedValue) && (target[key] = reducedValue);
          });
          stack[i] = void 0;
          return target;
        }
      }
      return source;
    };
    return visit(obj, 0);
  };
  const isAsyncFn = kindOfTest("AsyncFunction");
  const isThenable$1 = (thing) => thing && (isObject(thing) || isFunction(thing)) && isFunction(thing.then) && isFunction(thing.catch);
  const _setImmediate = ((setImmediateSupported, postMessageSupported) => {
    if (setImmediateSupported) {
      return setImmediate;
    }
    return postMessageSupported ? ((token, callbacks) => {
      _global.addEventListener("message", ({ source, data: data2 }) => {
        if (source === _global && data2 === token) {
          callbacks.length && callbacks.shift()();
        }
      }, false);
      return (cb) => {
        callbacks.push(cb);
        _global.postMessage(token, "*");
      };
    })(`axios@${Math.random()}`, []) : (cb) => setTimeout(cb);
  })(
    typeof setImmediate === "function",
    isFunction(_global.postMessage)
  );
  const asap = typeof queueMicrotask !== "undefined" ? queueMicrotask.bind(_global) : typeof process !== "undefined" && process.nextTick || _setImmediate;
  const isIterable = (thing) => thing != null && isFunction(thing[iterator]);
  const utils$1 = {
    isArray,
    isArrayBuffer: isArrayBuffer$1,
    isBuffer,
    isFormData,
    isArrayBufferView,
    isString,
    isNumber,
    isBoolean,
    isObject,
    isPlainObject,
    isReadableStream,
    isRequest,
    isResponse,
    isHeaders,
    isUndefined,
    isDate,
    isFile,
    isBlob,
    isRegExp: isRegExp$4,
    isFunction,
    isStream,
    isURLSearchParams,
    isTypedArray,
    isFileList,
    forEach,
    merge,
    extend,
    trim: trim$3,
    stripBOM,
    inherits,
    toFlatObject,
    kindOf,
    kindOfTest,
    endsWith,
    toArray,
    forEachEntry,
    matchAll,
    isHTMLForm,
    hasOwnProperty: hasOwnProperty$1,
    hasOwnProp: hasOwnProperty$1,
    // an alias to avoid ESLint no-prototype-builtins detection
    reduceDescriptors,
    freezeMethods,
    toObjectSet,
    toCamelCase,
    noop: noop$1,
    toFiniteNumber,
    findKey,
    global: _global,
    isContextDefined,
    isSpecCompliantForm,
    toJSONObject,
    isAsyncFn,
    isThenable: isThenable$1,
    setImmediate: _setImmediate,
    asap,
    isIterable
  };
  function AxiosError$1(message, code, config, request, response) {
    Error.call(this);
    if (Error.captureStackTrace) {
      Error.captureStackTrace(this, this.constructor);
    } else {
      this.stack = new Error().stack;
    }
    this.message = message;
    this.name = "AxiosError";
    code && (this.code = code);
    config && (this.config = config);
    request && (this.request = request);
    if (response) {
      this.response = response;
      this.status = response.status ? response.status : null;
    }
  }
  utils$1.inherits(AxiosError$1, Error, {
    toJSON: function toJSON() {
      return {
        // Standard
        message: this.message,
        name: this.name,
        // Microsoft
        description: this.description,
        number: this.number,
        // Mozilla
        fileName: this.fileName,
        lineNumber: this.lineNumber,
        columnNumber: this.columnNumber,
        stack: this.stack,
        // Axios
        config: utils$1.toJSONObject(this.config),
        code: this.code,
        status: this.status
      };
    }
  });
  const prototype$1 = AxiosError$1.prototype;
  const descriptors$1 = {};
  [
    "ERR_BAD_OPTION_VALUE",
    "ERR_BAD_OPTION",
    "ECONNABORTED",
    "ETIMEDOUT",
    "ERR_NETWORK",
    "ERR_FR_TOO_MANY_REDIRECTS",
    "ERR_DEPRECATED",
    "ERR_BAD_RESPONSE",
    "ERR_BAD_REQUEST",
    "ERR_CANCELED",
    "ERR_NOT_SUPPORT",
    "ERR_INVALID_URL"
    // eslint-disable-next-line func-names
  ].forEach((code) => {
    descriptors$1[code] = { value: code };
  });
  Object.defineProperties(AxiosError$1, descriptors$1);
  Object.defineProperty(prototype$1, "isAxiosError", { value: true });
  AxiosError$1.from = (error, code, config, request, response, customProps) => {
    const axiosError = Object.create(prototype$1);
    utils$1.toFlatObject(error, axiosError, function filter(obj) {
      return obj !== Error.prototype;
    }, (prop) => {
      return prop !== "isAxiosError";
    });
    AxiosError$1.call(axiosError, error.message, code, config, request, response);
    axiosError.cause = error;
    axiosError.name = error.name;
    customProps && Object.assign(axiosError, customProps);
    return axiosError;
  };
  const httpAdapter = null;
  function isVisitable(thing) {
    return utils$1.isPlainObject(thing) || utils$1.isArray(thing);
  }
  function removeBrackets(key) {
    return utils$1.endsWith(key, "[]") ? key.slice(0, -2) : key;
  }
  function renderKey(path2, key, dots) {
    if (!path2) return key;
    return path2.concat(key).map(function each(token, i) {
      token = removeBrackets(token);
      return !dots && i ? "[" + token + "]" : token;
    }).join(dots ? "." : "");
  }
  function isFlatArray(arr) {
    return utils$1.isArray(arr) && !arr.some(isVisitable);
  }
  const predicates = utils$1.toFlatObject(utils$1, {}, null, function filter(prop) {
    return /^is[A-Z]/.test(prop);
  });
  function toFormData$1(obj, formData, options) {
    if (!utils$1.isObject(obj)) {
      throw new TypeError("target must be an object");
    }
    formData = formData || new FormData();
    options = utils$1.toFlatObject(options, {
      metaTokens: true,
      dots: false,
      indexes: false
    }, false, function defined(option, source) {
      return !utils$1.isUndefined(source[option]);
    });
    const metaTokens = options.metaTokens;
    const visitor = options.visitor || defaultVisitor;
    const dots = options.dots;
    const indexes = options.indexes;
    const _Blob = options.Blob || typeof Blob !== "undefined" && Blob;
    const useBlob = _Blob && utils$1.isSpecCompliantForm(formData);
    if (!utils$1.isFunction(visitor)) {
      throw new TypeError("visitor must be a function");
    }
    function convertValue(value) {
      if (value === null) return "";
      if (utils$1.isDate(value)) {
        return value.toISOString();
      }
      if (!useBlob && utils$1.isBlob(value)) {
        throw new AxiosError$1("Blob is not supported. Use a Buffer instead.");
      }
      if (utils$1.isArrayBuffer(value) || utils$1.isTypedArray(value)) {
        return useBlob && typeof Blob === "function" ? new Blob([value]) : Buffer.from(value);
      }
      return value;
    }
    function defaultVisitor(value, key, path2) {
      let arr = value;
      if (value && !path2 && typeof value === "object") {
        if (utils$1.endsWith(key, "{}")) {
          key = metaTokens ? key : key.slice(0, -2);
          value = JSON.stringify(value);
        } else if (utils$1.isArray(value) && isFlatArray(value) || (utils$1.isFileList(value) || utils$1.endsWith(key, "[]")) && (arr = utils$1.toArray(value))) {
          key = removeBrackets(key);
          arr.forEach(function each(el, index2) {
            !(utils$1.isUndefined(el) || el === null) && formData.append(
              // eslint-disable-next-line no-nested-ternary
              indexes === true ? renderKey([key], index2, dots) : indexes === null ? key : key + "[]",
              convertValue(el)
            );
          });
          return false;
        }
      }
      if (isVisitable(value)) {
        return true;
      }
      formData.append(renderKey(path2, key, dots), convertValue(value));
      return false;
    }
    const stack = [];
    const exposedHelpers = Object.assign(predicates, {
      defaultVisitor,
      convertValue,
      isVisitable
    });
    function build(value, path2) {
      if (utils$1.isUndefined(value)) return;
      if (stack.indexOf(value) !== -1) {
        throw Error("Circular reference detected in " + path2.join("."));
      }
      stack.push(value);
      utils$1.forEach(value, function each(el, key) {
        const result = !(utils$1.isUndefined(el) || el === null) && visitor.call(
          formData,
          el,
          utils$1.isString(key) ? key.trim() : key,
          path2,
          exposedHelpers
        );
        if (result === true) {
          build(el, path2 ? path2.concat(key) : [key]);
        }
      });
      stack.pop();
    }
    if (!utils$1.isObject(obj)) {
      throw new TypeError("data must be an object");
    }
    build(obj);
    return formData;
  }
  function encode$2(str) {
    const charMap = {
      "!": "%21",
      "'": "%27",
      "(": "%28",
      ")": "%29",
      "~": "%7E",
      "%20": "+",
      "%00": "\0"
    };
    return encodeURIComponent(str).replace(/[!'()~]|%20|%00/g, function replacer2(match2) {
      return charMap[match2];
    });
  }
  function AxiosURLSearchParams(params, options) {
    this._pairs = [];
    params && toFormData$1(params, this, options);
  }
  const prototype = AxiosURLSearchParams.prototype;
  prototype.append = function append(name2, value) {
    this._pairs.push([name2, value]);
  };
  prototype.toString = function toString2(encoder) {
    const _encode = encoder ? function(value) {
      return encoder.call(this, value, encode$2);
    } : encode$2;
    return this._pairs.map(function each(pair) {
      return _encode(pair[0]) + "=" + _encode(pair[1]);
    }, "").join("&");
  };
  function encode$1(val) {
    return encodeURIComponent(val).replace(/%3A/gi, ":").replace(/%24/g, "$").replace(/%2C/gi, ",").replace(/%20/g, "+").replace(/%5B/gi, "[").replace(/%5D/gi, "]");
  }
  function buildURL(url, params, options) {
    if (!params) {
      return url;
    }
    const _encode = options && options.encode || encode$1;
    if (utils$1.isFunction(options)) {
      options = {
        serialize: options
      };
    }
    const serializeFn = options && options.serialize;
    let serializedParams;
    if (serializeFn) {
      serializedParams = serializeFn(params, options);
    } else {
      serializedParams = utils$1.isURLSearchParams(params) ? params.toString() : new AxiosURLSearchParams(params, options).toString(_encode);
    }
    if (serializedParams) {
      const hashmarkIndex = url.indexOf("#");
      if (hashmarkIndex !== -1) {
        url = url.slice(0, hashmarkIndex);
      }
      url += (url.indexOf("?") === -1 ? "?" : "&") + serializedParams;
    }
    return url;
  }
  class InterceptorManager {
    constructor() {
      this.handlers = [];
    }
    /**
     * Add a new interceptor to the stack
     *
     * @param {Function} fulfilled The function to handle `then` for a `Promise`
     * @param {Function} rejected The function to handle `reject` for a `Promise`
     *
     * @return {Number} An ID used to remove interceptor later
     */
    use(fulfilled, rejected, options) {
      this.handlers.push({
        fulfilled,
        rejected,
        synchronous: options ? options.synchronous : false,
        runWhen: options ? options.runWhen : null
      });
      return this.handlers.length - 1;
    }
    /**
     * Remove an interceptor from the stack
     *
     * @param {Number} id The ID that was returned by `use`
     *
     * @returns {Boolean} `true` if the interceptor was removed, `false` otherwise
     */
    eject(id2) {
      if (this.handlers[id2]) {
        this.handlers[id2] = null;
      }
    }
    /**
     * Clear all interceptors from the stack
     *
     * @returns {void}
     */
    clear() {
      if (this.handlers) {
        this.handlers = [];
      }
    }
    /**
     * Iterate over all the registered interceptors
     *
     * This method is particularly useful for skipping over any
     * interceptors that may have become `null` calling `eject`.
     *
     * @param {Function} fn The function to call for each interceptor
     *
     * @returns {void}
     */
    forEach(fn) {
      utils$1.forEach(this.handlers, function forEachHandler(h) {
        if (h !== null) {
          fn(h);
        }
      });
    }
  }
  const transitionalDefaults = {
    silentJSONParsing: true,
    forcedJSONParsing: true,
    clarifyTimeoutError: false
  };
  const URLSearchParams$2 = typeof URLSearchParams !== "undefined" ? URLSearchParams : AxiosURLSearchParams;
  const FormData$1 = typeof FormData !== "undefined" ? FormData : null;
  const Blob$1 = typeof Blob !== "undefined" ? Blob : null;
  const platform$1 = {
    isBrowser: true,
    classes: {
      URLSearchParams: URLSearchParams$2,
      FormData: FormData$1,
      Blob: Blob$1
    },
    protocols: ["http", "https", "file", "blob", "url", "data"]
  };
  const hasBrowserEnv = typeof window !== "undefined" && typeof document !== "undefined";
  const _navigator = typeof navigator === "object" && navigator || void 0;
  const hasStandardBrowserEnv = hasBrowserEnv && (!_navigator || ["ReactNative", "NativeScript", "NS"].indexOf(_navigator.product) < 0);
  const hasStandardBrowserWebWorkerEnv = (() => {
    return typeof WorkerGlobalScope !== "undefined" && // eslint-disable-next-line no-undef
    self instanceof WorkerGlobalScope && typeof self.importScripts === "function";
  })();
  const origin = hasBrowserEnv && window.location.href || "http://localhost";
  const utils = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
    __proto__: null,
    hasBrowserEnv,
    hasStandardBrowserEnv,
    hasStandardBrowserWebWorkerEnv,
    navigator: _navigator,
    origin
  }, Symbol.toStringTag, { value: "Module" }));
  const platform = {
    ...utils,
    ...platform$1
  };
  function toURLEncodedForm(data2, options) {
    return toFormData$1(data2, new platform.classes.URLSearchParams(), Object.assign({
      visitor: function(value, key, path2, helpers) {
        if (platform.isNode && utils$1.isBuffer(value)) {
          this.append(key, value.toString("base64"));
          return false;
        }
        return helpers.defaultVisitor.apply(this, arguments);
      }
    }, options));
  }
  function parsePropPath(name2) {
    return utils$1.matchAll(/\w+|\[(\w*)]/g, name2).map((match2) => {
      return match2[0] === "[]" ? "" : match2[1] || match2[0];
    });
  }
  function arrayToObject(arr) {
    const obj = {};
    const keys = Object.keys(arr);
    let i;
    const len = keys.length;
    let key;
    for (i = 0; i < len; i++) {
      key = keys[i];
      obj[key] = arr[key];
    }
    return obj;
  }
  function formDataToJSON(formData) {
    function buildPath(path2, value, target, index2) {
      let name2 = path2[index2++];
      if (name2 === "__proto__") return true;
      const isNumericKey = Number.isFinite(+name2);
      const isLast = index2 >= path2.length;
      name2 = !name2 && utils$1.isArray(target) ? target.length : name2;
      if (isLast) {
        if (utils$1.hasOwnProp(target, name2)) {
          target[name2] = [target[name2], value];
        } else {
          target[name2] = value;
        }
        return !isNumericKey;
      }
      if (!target[name2] || !utils$1.isObject(target[name2])) {
        target[name2] = [];
      }
      const result = buildPath(path2, value, target[name2], index2);
      if (result && utils$1.isArray(target[name2])) {
        target[name2] = arrayToObject(target[name2]);
      }
      return !isNumericKey;
    }
    if (utils$1.isFormData(formData) && utils$1.isFunction(formData.entries)) {
      const obj = {};
      utils$1.forEachEntry(formData, (name2, value) => {
        buildPath(parsePropPath(name2), value, obj, 0);
      });
      return obj;
    }
    return null;
  }
  function stringifySafely(rawValue, parser, encoder) {
    if (utils$1.isString(rawValue)) {
      try {
        (parser || JSON.parse)(rawValue);
        return utils$1.trim(rawValue);
      } catch (e) {
        if (e.name !== "SyntaxError") {
          throw e;
        }
      }
    }
    return (encoder || JSON.stringify)(rawValue);
  }
  const defaults = {
    transitional: transitionalDefaults,
    adapter: ["xhr", "http", "fetch"],
    transformRequest: [function transformRequest(data2, headers) {
      const contentType = headers.getContentType() || "";
      const hasJSONContentType = contentType.indexOf("application/json") > -1;
      const isObjectPayload = utils$1.isObject(data2);
      if (isObjectPayload && utils$1.isHTMLForm(data2)) {
        data2 = new FormData(data2);
      }
      const isFormData2 = utils$1.isFormData(data2);
      if (isFormData2) {
        return hasJSONContentType ? JSON.stringify(formDataToJSON(data2)) : data2;
      }
      if (utils$1.isArrayBuffer(data2) || utils$1.isBuffer(data2) || utils$1.isStream(data2) || utils$1.isFile(data2) || utils$1.isBlob(data2) || utils$1.isReadableStream(data2)) {
        return data2;
      }
      if (utils$1.isArrayBufferView(data2)) {
        return data2.buffer;
      }
      if (utils$1.isURLSearchParams(data2)) {
        headers.setContentType("application/x-www-form-urlencoded;charset=utf-8", false);
        return data2.toString();
      }
      let isFileList2;
      if (isObjectPayload) {
        if (contentType.indexOf("application/x-www-form-urlencoded") > -1) {
          return toURLEncodedForm(data2, this.formSerializer).toString();
        }
        if ((isFileList2 = utils$1.isFileList(data2)) || contentType.indexOf("multipart/form-data") > -1) {
          const _FormData = this.env && this.env.FormData;
          return toFormData$1(
            isFileList2 ? { "files[]": data2 } : data2,
            _FormData && new _FormData(),
            this.formSerializer
          );
        }
      }
      if (isObjectPayload || hasJSONContentType) {
        headers.setContentType("application/json", false);
        return stringifySafely(data2);
      }
      return data2;
    }],
    transformResponse: [function transformResponse(data2) {
      const transitional = this.transitional || defaults.transitional;
      const forcedJSONParsing = transitional && transitional.forcedJSONParsing;
      const JSONRequested = this.responseType === "json";
      if (utils$1.isResponse(data2) || utils$1.isReadableStream(data2)) {
        return data2;
      }
      if (data2 && utils$1.isString(data2) && (forcedJSONParsing && !this.responseType || JSONRequested)) {
        const silentJSONParsing = transitional && transitional.silentJSONParsing;
        const strictJSONParsing = !silentJSONParsing && JSONRequested;
        try {
          return JSON.parse(data2);
        } catch (e) {
          if (strictJSONParsing) {
            if (e.name === "SyntaxError") {
              throw AxiosError$1.from(e, AxiosError$1.ERR_BAD_RESPONSE, this, null, this.response);
            }
            throw e;
          }
        }
      }
      return data2;
    }],
    /**
     * A timeout in milliseconds to abort a request. If set to 0 (default) a
     * timeout is not created.
     */
    timeout: 0,
    xsrfCookieName: "XSRF-TOKEN",
    xsrfHeaderName: "X-XSRF-TOKEN",
    maxContentLength: -1,
    maxBodyLength: -1,
    env: {
      FormData: platform.classes.FormData,
      Blob: platform.classes.Blob
    },
    validateStatus: function validateStatus(status) {
      return status >= 200 && status < 300;
    },
    headers: {
      common: {
        "Accept": "application/json, text/plain, */*",
        "Content-Type": void 0
      }
    }
  };
  utils$1.forEach(["delete", "get", "head", "post", "put", "patch"], (method2) => {
    defaults.headers[method2] = {};
  });
  const ignoreDuplicateOf = utils$1.toObjectSet([
    "age",
    "authorization",
    "content-length",
    "content-type",
    "etag",
    "expires",
    "from",
    "host",
    "if-modified-since",
    "if-unmodified-since",
    "last-modified",
    "location",
    "max-forwards",
    "proxy-authorization",
    "referer",
    "retry-after",
    "user-agent"
  ]);
  const parseHeaders = (rawHeaders) => {
    const parsed = {};
    let key;
    let val;
    let i;
    rawHeaders && rawHeaders.split("\n").forEach(function parser(line) {
      i = line.indexOf(":");
      key = line.substring(0, i).trim().toLowerCase();
      val = line.substring(i + 1).trim();
      if (!key || parsed[key] && ignoreDuplicateOf[key]) {
        return;
      }
      if (key === "set-cookie") {
        if (parsed[key]) {
          parsed[key].push(val);
        } else {
          parsed[key] = [val];
        }
      } else {
        parsed[key] = parsed[key] ? parsed[key] + ", " + val : val;
      }
    });
    return parsed;
  };
  const $internals = Symbol("internals");
  function normalizeHeader(header) {
    return header && String(header).trim().toLowerCase();
  }
  function normalizeValue(value) {
    if (value === false || value == null) {
      return value;
    }
    return utils$1.isArray(value) ? value.map(normalizeValue) : String(value);
  }
  function parseTokens(str) {
    const tokens = /* @__PURE__ */ Object.create(null);
    const tokensRE = /([^\s,;=]+)\s*(?:=\s*([^,;]+))?/g;
    let match2;
    while (match2 = tokensRE.exec(str)) {
      tokens[match2[1]] = match2[2];
    }
    return tokens;
  }
  const isValidHeaderName = (str) => /^[-_a-zA-Z0-9^`|~,!#$%&'*+.]+$/.test(str.trim());
  function matchHeaderValue(context, value, header, filter, isHeaderNameFilter) {
    if (utils$1.isFunction(filter)) {
      return filter.call(this, value, header);
    }
    if (isHeaderNameFilter) {
      value = header;
    }
    if (!utils$1.isString(value)) return;
    if (utils$1.isString(filter)) {
      return value.indexOf(filter) !== -1;
    }
    if (utils$1.isRegExp(filter)) {
      return filter.test(value);
    }
  }
  function formatHeader(header) {
    return header.trim().toLowerCase().replace(/([a-z\d])(\w*)/g, (w, char, str) => {
      return char.toUpperCase() + str;
    });
  }
  function buildAccessors(obj, header) {
    const accessorName = utils$1.toCamelCase(" " + header);
    ["get", "set", "has"].forEach((methodName) => {
      Object.defineProperty(obj, methodName + accessorName, {
        value: function(arg1, arg2, arg3) {
          return this[methodName].call(this, header, arg1, arg2, arg3);
        },
        configurable: true
      });
    });
  }
  let AxiosHeaders$1 = class AxiosHeaders {
    constructor(headers) {
      headers && this.set(headers);
    }
    set(header, valueOrRewrite, rewrite) {
      const self2 = this;
      function setHeader(_value, _header, _rewrite) {
        const lHeader = normalizeHeader(_header);
        if (!lHeader) {
          throw new Error("header name must be a non-empty string");
        }
        const key = utils$1.findKey(self2, lHeader);
        if (!key || self2[key] === void 0 || _rewrite === true || _rewrite === void 0 && self2[key] !== false) {
          self2[key || _header] = normalizeValue(_value);
        }
      }
      const setHeaders = (headers, _rewrite) => utils$1.forEach(headers, (_value, _header) => setHeader(_value, _header, _rewrite));
      if (utils$1.isPlainObject(header) || header instanceof this.constructor) {
        setHeaders(header, valueOrRewrite);
      } else if (utils$1.isString(header) && (header = header.trim()) && !isValidHeaderName(header)) {
        setHeaders(parseHeaders(header), valueOrRewrite);
      } else if (utils$1.isObject(header) && utils$1.isIterable(header)) {
        let obj = {}, dest, key;
        for (const entry of header) {
          if (!utils$1.isArray(entry)) {
            throw TypeError("Object iterator must return a key-value pair");
          }
          obj[key = entry[0]] = (dest = obj[key]) ? utils$1.isArray(dest) ? [...dest, entry[1]] : [dest, entry[1]] : entry[1];
        }
        setHeaders(obj, valueOrRewrite);
      } else {
        header != null && setHeader(valueOrRewrite, header, rewrite);
      }
      return this;
    }
    get(header, parser) {
      header = normalizeHeader(header);
      if (header) {
        const key = utils$1.findKey(this, header);
        if (key) {
          const value = this[key];
          if (!parser) {
            return value;
          }
          if (parser === true) {
            return parseTokens(value);
          }
          if (utils$1.isFunction(parser)) {
            return parser.call(this, value, key);
          }
          if (utils$1.isRegExp(parser)) {
            return parser.exec(value);
          }
          throw new TypeError("parser must be boolean|regexp|function");
        }
      }
    }
    has(header, matcher) {
      header = normalizeHeader(header);
      if (header) {
        const key = utils$1.findKey(this, header);
        return !!(key && this[key] !== void 0 && (!matcher || matchHeaderValue(this, this[key], key, matcher)));
      }
      return false;
    }
    delete(header, matcher) {
      const self2 = this;
      let deleted = false;
      function deleteHeader(_header) {
        _header = normalizeHeader(_header);
        if (_header) {
          const key = utils$1.findKey(self2, _header);
          if (key && (!matcher || matchHeaderValue(self2, self2[key], key, matcher))) {
            delete self2[key];
            deleted = true;
          }
        }
      }
      if (utils$1.isArray(header)) {
        header.forEach(deleteHeader);
      } else {
        deleteHeader(header);
      }
      return deleted;
    }
    clear(matcher) {
      const keys = Object.keys(this);
      let i = keys.length;
      let deleted = false;
      while (i--) {
        const key = keys[i];
        if (!matcher || matchHeaderValue(this, this[key], key, matcher, true)) {
          delete this[key];
          deleted = true;
        }
      }
      return deleted;
    }
    normalize(format) {
      const self2 = this;
      const headers = {};
      utils$1.forEach(this, (value, header) => {
        const key = utils$1.findKey(headers, header);
        if (key) {
          self2[key] = normalizeValue(value);
          delete self2[header];
          return;
        }
        const normalized = format ? formatHeader(header) : String(header).trim();
        if (normalized !== header) {
          delete self2[header];
        }
        self2[normalized] = normalizeValue(value);
        headers[normalized] = true;
      });
      return this;
    }
    concat(...targets) {
      return this.constructor.concat(this, ...targets);
    }
    toJSON(asStrings) {
      const obj = /* @__PURE__ */ Object.create(null);
      utils$1.forEach(this, (value, header) => {
        value != null && value !== false && (obj[header] = asStrings && utils$1.isArray(value) ? value.join(", ") : value);
      });
      return obj;
    }
    [Symbol.iterator]() {
      return Object.entries(this.toJSON())[Symbol.iterator]();
    }
    toString() {
      return Object.entries(this.toJSON()).map(([header, value]) => header + ": " + value).join("\n");
    }
    getSetCookie() {
      return this.get("set-cookie") || [];
    }
    get [Symbol.toStringTag]() {
      return "AxiosHeaders";
    }
    static from(thing) {
      return thing instanceof this ? thing : new this(thing);
    }
    static concat(first, ...targets) {
      const computed = new this(first);
      targets.forEach((target) => computed.set(target));
      return computed;
    }
    static accessor(header) {
      const internals = this[$internals] = this[$internals] = {
        accessors: {}
      };
      const accessors = internals.accessors;
      const prototype2 = this.prototype;
      function defineAccessor(_header) {
        const lHeader = normalizeHeader(_header);
        if (!accessors[lHeader]) {
          buildAccessors(prototype2, _header);
          accessors[lHeader] = true;
        }
      }
      utils$1.isArray(header) ? header.forEach(defineAccessor) : defineAccessor(header);
      return this;
    }
  };
  AxiosHeaders$1.accessor(["Content-Type", "Content-Length", "Accept", "Accept-Encoding", "User-Agent", "Authorization"]);
  utils$1.reduceDescriptors(AxiosHeaders$1.prototype, ({ value }, key) => {
    let mapped = key[0].toUpperCase() + key.slice(1);
    return {
      get: () => value,
      set(headerValue) {
        this[mapped] = headerValue;
      }
    };
  });
  utils$1.freezeMethods(AxiosHeaders$1);
  function transformData(fns, response) {
    const config = this || defaults;
    const context = response || config;
    const headers = AxiosHeaders$1.from(context.headers);
    let data2 = context.data;
    utils$1.forEach(fns, function transform(fn) {
      data2 = fn.call(config, data2, headers.normalize(), response ? response.status : void 0);
    });
    headers.normalize();
    return data2;
  }
  function isCancel$1(value) {
    return !!(value && value.__CANCEL__);
  }
  function CanceledError$1(message, config, request) {
    AxiosError$1.call(this, message == null ? "canceled" : message, AxiosError$1.ERR_CANCELED, config, request);
    this.name = "CanceledError";
  }
  utils$1.inherits(CanceledError$1, AxiosError$1, {
    __CANCEL__: true
  });
  function settle(resolve, reject, response) {
    const validateStatus = response.config.validateStatus;
    if (!response.status || !validateStatus || validateStatus(response.status)) {
      resolve(response);
    } else {
      reject(new AxiosError$1(
        "Request failed with status code " + response.status,
        [AxiosError$1.ERR_BAD_REQUEST, AxiosError$1.ERR_BAD_RESPONSE][Math.floor(response.status / 100) - 4],
        response.config,
        response.request,
        response
      ));
    }
  }
  function parseProtocol(url) {
    const match2 = /^([-+\w]{1,25})(:?\/\/|:)/.exec(url);
    return match2 && match2[1] || "";
  }
  function speedometer(samplesCount, min2) {
    samplesCount = samplesCount || 10;
    const bytes = new Array(samplesCount);
    const timestamps = new Array(samplesCount);
    let head = 0;
    let tail = 0;
    let firstSampleTS;
    min2 = min2 !== void 0 ? min2 : 1e3;
    return function push2(chunkLength) {
      const now = Date.now();
      const startedAt = timestamps[tail];
      if (!firstSampleTS) {
        firstSampleTS = now;
      }
      bytes[head] = chunkLength;
      timestamps[head] = now;
      let i = tail;
      let bytesCount = 0;
      while (i !== head) {
        bytesCount += bytes[i++];
        i = i % samplesCount;
      }
      head = (head + 1) % samplesCount;
      if (head === tail) {
        tail = (tail + 1) % samplesCount;
      }
      if (now - firstSampleTS < min2) {
        return;
      }
      const passed = startedAt && now - startedAt;
      return passed ? Math.round(bytesCount * 1e3 / passed) : void 0;
    };
  }
  function throttle(fn, freq) {
    let timestamp = 0;
    let threshold = 1e3 / freq;
    let lastArgs;
    let timer;
    const invoke = (args, now = Date.now()) => {
      timestamp = now;
      lastArgs = null;
      if (timer) {
        clearTimeout(timer);
        timer = null;
      }
      fn.apply(null, args);
    };
    const throttled = (...args) => {
      const now = Date.now();
      const passed = now - timestamp;
      if (passed >= threshold) {
        invoke(args, now);
      } else {
        lastArgs = args;
        if (!timer) {
          timer = setTimeout(() => {
            timer = null;
            invoke(lastArgs);
          }, threshold - passed);
        }
      }
    };
    const flush2 = () => lastArgs && invoke(lastArgs);
    return [throttled, flush2];
  }
  const progressEventReducer = (listener, isDownloadStream, freq = 3) => {
    let bytesNotified = 0;
    const _speedometer = speedometer(50, 250);
    return throttle((e) => {
      const loaded = e.loaded;
      const total = e.lengthComputable ? e.total : void 0;
      const progressBytes = loaded - bytesNotified;
      const rate = _speedometer(progressBytes);
      const inRange = loaded <= total;
      bytesNotified = loaded;
      const data2 = {
        loaded,
        total,
        progress: total ? loaded / total : void 0,
        bytes: progressBytes,
        rate: rate ? rate : void 0,
        estimated: rate && total && inRange ? (total - loaded) / rate : void 0,
        event: e,
        lengthComputable: total != null,
        [isDownloadStream ? "download" : "upload"]: true
      };
      listener(data2);
    }, freq);
  };
  const progressEventDecorator = (total, throttled) => {
    const lengthComputable = total != null;
    return [(loaded) => throttled[0]({
      lengthComputable,
      total,
      loaded
    }), throttled[1]];
  };
  const asyncDecorator = (fn) => (...args) => utils$1.asap(() => fn(...args));
  const isURLSameOrigin = platform.hasStandardBrowserEnv ? /* @__PURE__ */ ((origin2, isMSIE) => (url) => {
    url = new URL(url, platform.origin);
    return origin2.protocol === url.protocol && origin2.host === url.host && (isMSIE || origin2.port === url.port);
  })(
    new URL(platform.origin),
    platform.navigator && /(msie|trident)/i.test(platform.navigator.userAgent)
  ) : () => true;
  const cookies = platform.hasStandardBrowserEnv ? (
    // Standard browser envs support document.cookie
    {
      write(name2, value, expires, path2, domain, secure) {
        const cookie = [name2 + "=" + encodeURIComponent(value)];
        utils$1.isNumber(expires) && cookie.push("expires=" + new Date(expires).toGMTString());
        utils$1.isString(path2) && cookie.push("path=" + path2);
        utils$1.isString(domain) && cookie.push("domain=" + domain);
        secure === true && cookie.push("secure");
        document.cookie = cookie.join("; ");
      },
      read(name2) {
        const match2 = document.cookie.match(new RegExp("(^|;\\s*)(" + name2 + ")=([^;]*)"));
        return match2 ? decodeURIComponent(match2[3]) : null;
      },
      remove(name2) {
        this.write(name2, "", Date.now() - 864e5);
      }
    }
  ) : (
    // Non-standard browser env (web workers, react-native) lack needed support.
    {
      write() {
      },
      read() {
        return null;
      },
      remove() {
      }
    }
  );
  function isAbsoluteURL(url) {
    return /^([a-z][a-z\d+\-.]*:)?\/\//i.test(url);
  }
  function combineURLs(baseURL, relativeURL) {
    return relativeURL ? baseURL.replace(/\/?\/$/, "") + "/" + relativeURL.replace(/^\/+/, "") : baseURL;
  }
  function buildFullPath(baseURL, requestedURL, allowAbsoluteUrls) {
    let isRelativeUrl = !isAbsoluteURL(requestedURL);
    if (baseURL && (isRelativeUrl || allowAbsoluteUrls == false)) {
      return combineURLs(baseURL, requestedURL);
    }
    return requestedURL;
  }
  const headersToObject = (thing) => thing instanceof AxiosHeaders$1 ? { ...thing } : thing;
  function mergeConfig$1(config1, config2) {
    config2 = config2 || {};
    const config = {};
    function getMergedValue(target, source, prop, caseless) {
      if (utils$1.isPlainObject(target) && utils$1.isPlainObject(source)) {
        return utils$1.merge.call({ caseless }, target, source);
      } else if (utils$1.isPlainObject(source)) {
        return utils$1.merge({}, source);
      } else if (utils$1.isArray(source)) {
        return source.slice();
      }
      return source;
    }
    function mergeDeepProperties(a, b, prop, caseless) {
      if (!utils$1.isUndefined(b)) {
        return getMergedValue(a, b, prop, caseless);
      } else if (!utils$1.isUndefined(a)) {
        return getMergedValue(void 0, a, prop, caseless);
      }
    }
    function valueFromConfig2(a, b) {
      if (!utils$1.isUndefined(b)) {
        return getMergedValue(void 0, b);
      }
    }
    function defaultToConfig2(a, b) {
      if (!utils$1.isUndefined(b)) {
        return getMergedValue(void 0, b);
      } else if (!utils$1.isUndefined(a)) {
        return getMergedValue(void 0, a);
      }
    }
    function mergeDirectKeys(a, b, prop) {
      if (prop in config2) {
        return getMergedValue(a, b);
      } else if (prop in config1) {
        return getMergedValue(void 0, a);
      }
    }
    const mergeMap = {
      url: valueFromConfig2,
      method: valueFromConfig2,
      data: valueFromConfig2,
      baseURL: defaultToConfig2,
      transformRequest: defaultToConfig2,
      transformResponse: defaultToConfig2,
      paramsSerializer: defaultToConfig2,
      timeout: defaultToConfig2,
      timeoutMessage: defaultToConfig2,
      withCredentials: defaultToConfig2,
      withXSRFToken: defaultToConfig2,
      adapter: defaultToConfig2,
      responseType: defaultToConfig2,
      xsrfCookieName: defaultToConfig2,
      xsrfHeaderName: defaultToConfig2,
      onUploadProgress: defaultToConfig2,
      onDownloadProgress: defaultToConfig2,
      decompress: defaultToConfig2,
      maxContentLength: defaultToConfig2,
      maxBodyLength: defaultToConfig2,
      beforeRedirect: defaultToConfig2,
      transport: defaultToConfig2,
      httpAgent: defaultToConfig2,
      httpsAgent: defaultToConfig2,
      cancelToken: defaultToConfig2,
      socketPath: defaultToConfig2,
      responseEncoding: defaultToConfig2,
      validateStatus: mergeDirectKeys,
      headers: (a, b, prop) => mergeDeepProperties(headersToObject(a), headersToObject(b), prop, true)
    };
    utils$1.forEach(Object.keys(Object.assign({}, config1, config2)), function computeConfigValue(prop) {
      const merge2 = mergeMap[prop] || mergeDeepProperties;
      const configValue = merge2(config1[prop], config2[prop], prop);
      utils$1.isUndefined(configValue) && merge2 !== mergeDirectKeys || (config[prop] = configValue);
    });
    return config;
  }
  const resolveConfig = (config) => {
    const newConfig = mergeConfig$1({}, config);
    let { data: data2, withXSRFToken, xsrfHeaderName, xsrfCookieName, headers, auth } = newConfig;
    newConfig.headers = headers = AxiosHeaders$1.from(headers);
    newConfig.url = buildURL(buildFullPath(newConfig.baseURL, newConfig.url, newConfig.allowAbsoluteUrls), config.params, config.paramsSerializer);
    if (auth) {
      headers.set(
        "Authorization",
        "Basic " + btoa((auth.username || "") + ":" + (auth.password ? unescape(encodeURIComponent(auth.password)) : ""))
      );
    }
    let contentType;
    if (utils$1.isFormData(data2)) {
      if (platform.hasStandardBrowserEnv || platform.hasStandardBrowserWebWorkerEnv) {
        headers.setContentType(void 0);
      } else if ((contentType = headers.getContentType()) !== false) {
        const [type, ...tokens] = contentType ? contentType.split(";").map((token) => token.trim()).filter(Boolean) : [];
        headers.setContentType([type || "multipart/form-data", ...tokens].join("; "));
      }
    }
    if (platform.hasStandardBrowserEnv) {
      withXSRFToken && utils$1.isFunction(withXSRFToken) && (withXSRFToken = withXSRFToken(newConfig));
      if (withXSRFToken || withXSRFToken !== false && isURLSameOrigin(newConfig.url)) {
        const xsrfValue = xsrfHeaderName && xsrfCookieName && cookies.read(xsrfCookieName);
        if (xsrfValue) {
          headers.set(xsrfHeaderName, xsrfValue);
        }
      }
    }
    return newConfig;
  };
  const isXHRAdapterSupported = typeof XMLHttpRequest !== "undefined";
  const xhrAdapter = isXHRAdapterSupported && function(config) {
    return new Promise(function dispatchXhrRequest(resolve, reject) {
      const _config = resolveConfig(config);
      let requestData = _config.data;
      const requestHeaders = AxiosHeaders$1.from(_config.headers).normalize();
      let { responseType, onUploadProgress, onDownloadProgress } = _config;
      let onCanceled;
      let uploadThrottled, downloadThrottled;
      let flushUpload, flushDownload;
      function done() {
        flushUpload && flushUpload();
        flushDownload && flushDownload();
        _config.cancelToken && _config.cancelToken.unsubscribe(onCanceled);
        _config.signal && _config.signal.removeEventListener("abort", onCanceled);
      }
      let request = new XMLHttpRequest();
      request.open(_config.method.toUpperCase(), _config.url, true);
      request.timeout = _config.timeout;
      function onloadend() {
        if (!request) {
          return;
        }
        const responseHeaders = AxiosHeaders$1.from(
          "getAllResponseHeaders" in request && request.getAllResponseHeaders()
        );
        const responseData = !responseType || responseType === "text" || responseType === "json" ? request.responseText : request.response;
        const response = {
          data: responseData,
          status: request.status,
          statusText: request.statusText,
          headers: responseHeaders,
          config,
          request
        };
        settle(function _resolve(value) {
          resolve(value);
          done();
        }, function _reject(err) {
          reject(err);
          done();
        }, response);
        request = null;
      }
      if ("onloadend" in request) {
        request.onloadend = onloadend;
      } else {
        request.onreadystatechange = function handleLoad() {
          if (!request || request.readyState !== 4) {
            return;
          }
          if (request.status === 0 && !(request.responseURL && request.responseURL.indexOf("file:") === 0)) {
            return;
          }
          setTimeout(onloadend);
        };
      }
      request.onabort = function handleAbort() {
        if (!request) {
          return;
        }
        reject(new AxiosError$1("Request aborted", AxiosError$1.ECONNABORTED, config, request));
        request = null;
      };
      request.onerror = function handleError() {
        reject(new AxiosError$1("Network Error", AxiosError$1.ERR_NETWORK, config, request));
        request = null;
      };
      request.ontimeout = function handleTimeout() {
        let timeoutErrorMessage = _config.timeout ? "timeout of " + _config.timeout + "ms exceeded" : "timeout exceeded";
        const transitional = _config.transitional || transitionalDefaults;
        if (_config.timeoutErrorMessage) {
          timeoutErrorMessage = _config.timeoutErrorMessage;
        }
        reject(new AxiosError$1(
          timeoutErrorMessage,
          transitional.clarifyTimeoutError ? AxiosError$1.ETIMEDOUT : AxiosError$1.ECONNABORTED,
          config,
          request
        ));
        request = null;
      };
      requestData === void 0 && requestHeaders.setContentType(null);
      if ("setRequestHeader" in request) {
        utils$1.forEach(requestHeaders.toJSON(), function setRequestHeader(val, key) {
          request.setRequestHeader(key, val);
        });
      }
      if (!utils$1.isUndefined(_config.withCredentials)) {
        request.withCredentials = !!_config.withCredentials;
      }
      if (responseType && responseType !== "json") {
        request.responseType = _config.responseType;
      }
      if (onDownloadProgress) {
        [downloadThrottled, flushDownload] = progressEventReducer(onDownloadProgress, true);
        request.addEventListener("progress", downloadThrottled);
      }
      if (onUploadProgress && request.upload) {
        [uploadThrottled, flushUpload] = progressEventReducer(onUploadProgress);
        request.upload.addEventListener("progress", uploadThrottled);
        request.upload.addEventListener("loadend", flushUpload);
      }
      if (_config.cancelToken || _config.signal) {
        onCanceled = (cancel) => {
          if (!request) {
            return;
          }
          reject(!cancel || cancel.type ? new CanceledError$1(null, config, request) : cancel);
          request.abort();
          request = null;
        };
        _config.cancelToken && _config.cancelToken.subscribe(onCanceled);
        if (_config.signal) {
          _config.signal.aborted ? onCanceled() : _config.signal.addEventListener("abort", onCanceled);
        }
      }
      const protocol = parseProtocol(_config.url);
      if (protocol && platform.protocols.indexOf(protocol) === -1) {
        reject(new AxiosError$1("Unsupported protocol " + protocol + ":", AxiosError$1.ERR_BAD_REQUEST, config));
        return;
      }
      request.send(requestData || null);
    });
  };
  const composeSignals = (signals, timeout) => {
    const { length } = signals = signals ? signals.filter(Boolean) : [];
    if (timeout || length) {
      let controller = new AbortController();
      let aborted;
      const onabort = function(reason) {
        if (!aborted) {
          aborted = true;
          unsubscribe();
          const err = reason instanceof Error ? reason : this.reason;
          controller.abort(err instanceof AxiosError$1 ? err : new CanceledError$1(err instanceof Error ? err.message : err));
        }
      };
      let timer = timeout && setTimeout(() => {
        timer = null;
        onabort(new AxiosError$1(`timeout ${timeout} of ms exceeded`, AxiosError$1.ETIMEDOUT));
      }, timeout);
      const unsubscribe = () => {
        if (signals) {
          timer && clearTimeout(timer);
          timer = null;
          signals.forEach((signal2) => {
            signal2.unsubscribe ? signal2.unsubscribe(onabort) : signal2.removeEventListener("abort", onabort);
          });
          signals = null;
        }
      };
      signals.forEach((signal2) => signal2.addEventListener("abort", onabort));
      const { signal } = controller;
      signal.unsubscribe = () => utils$1.asap(unsubscribe);
      return signal;
    }
  };
  const streamChunk = function* (chunk, chunkSize) {
    let len = chunk.byteLength;
    if (len < chunkSize) {
      yield chunk;
      return;
    }
    let pos = 0;
    let end;
    while (pos < len) {
      end = pos + chunkSize;
      yield chunk.slice(pos, end);
      pos = end;
    }
  };
  const readBytes = async function* (iterable, chunkSize) {
    for await (const chunk of readStream(iterable)) {
      yield* streamChunk(chunk, chunkSize);
    }
  };
  const readStream = async function* (stream) {
    if (stream[Symbol.asyncIterator]) {
      yield* stream;
      return;
    }
    const reader = stream.getReader();
    try {
      for (; ; ) {
        const { done, value } = await reader.read();
        if (done) {
          break;
        }
        yield value;
      }
    } finally {
      await reader.cancel();
    }
  };
  const trackStream = (stream, chunkSize, onProgress, onFinish) => {
    const iterator2 = readBytes(stream, chunkSize);
    let bytes = 0;
    let done;
    let _onFinish = (e) => {
      if (!done) {
        done = true;
        onFinish && onFinish(e);
      }
    };
    return new ReadableStream({
      async pull(controller) {
        try {
          const { done: done2, value } = await iterator2.next();
          if (done2) {
            _onFinish();
            controller.close();
            return;
          }
          let len = value.byteLength;
          if (onProgress) {
            let loadedBytes = bytes += len;
            onProgress(loadedBytes);
          }
          controller.enqueue(new Uint8Array(value));
        } catch (err) {
          _onFinish(err);
          throw err;
        }
      },
      cancel(reason) {
        _onFinish(reason);
        return iterator2.return();
      }
    }, {
      highWaterMark: 2
    });
  };
  const isFetchSupported = typeof fetch === "function" && typeof Request === "function" && typeof Response === "function";
  const isReadableStreamSupported = isFetchSupported && typeof ReadableStream === "function";
  const encodeText = isFetchSupported && (typeof TextEncoder === "function" ? /* @__PURE__ */ ((encoder) => (str) => encoder.encode(str))(new TextEncoder()) : async (str) => new Uint8Array(await new Response(str).arrayBuffer()));
  const test$3 = (fn, ...args) => {
    try {
      return !!fn(...args);
    } catch (e) {
      return false;
    }
  };
  const supportsRequestStream = isReadableStreamSupported && test$3(() => {
    let duplexAccessed = false;
    const hasContentType = new Request(platform.origin, {
      body: new ReadableStream(),
      method: "POST",
      get duplex() {
        duplexAccessed = true;
        return "half";
      }
    }).headers.has("Content-Type");
    return duplexAccessed && !hasContentType;
  });
  const DEFAULT_CHUNK_SIZE = 64 * 1024;
  const supportsResponseStream = isReadableStreamSupported && test$3(() => utils$1.isReadableStream(new Response("").body));
  const resolvers = {
    stream: supportsResponseStream && ((res) => res.body)
  };
  isFetchSupported && ((res) => {
    ["text", "arrayBuffer", "blob", "formData", "stream"].forEach((type) => {
      !resolvers[type] && (resolvers[type] = utils$1.isFunction(res[type]) ? (res2) => res2[type]() : (_, config) => {
        throw new AxiosError$1(`Response type '${type}' is not supported`, AxiosError$1.ERR_NOT_SUPPORT, config);
      });
    });
  })(new Response());
  const getBodyLength = async (body) => {
    if (body == null) {
      return 0;
    }
    if (utils$1.isBlob(body)) {
      return body.size;
    }
    if (utils$1.isSpecCompliantForm(body)) {
      const _request = new Request(platform.origin, {
        method: "POST",
        body
      });
      return (await _request.arrayBuffer()).byteLength;
    }
    if (utils$1.isArrayBufferView(body) || utils$1.isArrayBuffer(body)) {
      return body.byteLength;
    }
    if (utils$1.isURLSearchParams(body)) {
      body = body + "";
    }
    if (utils$1.isString(body)) {
      return (await encodeText(body)).byteLength;
    }
  };
  const resolveBodyLength = async (headers, body) => {
    const length = utils$1.toFiniteNumber(headers.getContentLength());
    return length == null ? getBodyLength(body) : length;
  };
  const fetchAdapter = isFetchSupported && (async (config) => {
    let {
      url,
      method: method2,
      data: data2,
      signal,
      cancelToken,
      timeout,
      onDownloadProgress,
      onUploadProgress,
      responseType,
      headers,
      withCredentials = "same-origin",
      fetchOptions
    } = resolveConfig(config);
    responseType = responseType ? (responseType + "").toLowerCase() : "text";
    let composedSignal = composeSignals([signal, cancelToken && cancelToken.toAbortSignal()], timeout);
    let request;
    const unsubscribe = composedSignal && composedSignal.unsubscribe && (() => {
      composedSignal.unsubscribe();
    });
    let requestContentLength;
    try {
      if (onUploadProgress && supportsRequestStream && method2 !== "get" && method2 !== "head" && (requestContentLength = await resolveBodyLength(headers, data2)) !== 0) {
        let _request = new Request(url, {
          method: "POST",
          body: data2,
          duplex: "half"
        });
        let contentTypeHeader;
        if (utils$1.isFormData(data2) && (contentTypeHeader = _request.headers.get("content-type"))) {
          headers.setContentType(contentTypeHeader);
        }
        if (_request.body) {
          const [onProgress, flush2] = progressEventDecorator(
            requestContentLength,
            progressEventReducer(asyncDecorator(onUploadProgress))
          );
          data2 = trackStream(_request.body, DEFAULT_CHUNK_SIZE, onProgress, flush2);
        }
      }
      if (!utils$1.isString(withCredentials)) {
        withCredentials = withCredentials ? "include" : "omit";
      }
      const isCredentialsSupported = "credentials" in Request.prototype;
      request = new Request(url, {
        ...fetchOptions,
        signal: composedSignal,
        method: method2.toUpperCase(),
        headers: headers.normalize().toJSON(),
        body: data2,
        duplex: "half",
        credentials: isCredentialsSupported ? withCredentials : void 0
      });
      let response = await fetch(request);
      const isStreamResponse = supportsResponseStream && (responseType === "stream" || responseType === "response");
      if (supportsResponseStream && (onDownloadProgress || isStreamResponse && unsubscribe)) {
        const options = {};
        ["status", "statusText", "headers"].forEach((prop) => {
          options[prop] = response[prop];
        });
        const responseContentLength = utils$1.toFiniteNumber(response.headers.get("content-length"));
        const [onProgress, flush2] = onDownloadProgress && progressEventDecorator(
          responseContentLength,
          progressEventReducer(asyncDecorator(onDownloadProgress), true)
        ) || [];
        response = new Response(
          trackStream(response.body, DEFAULT_CHUNK_SIZE, onProgress, () => {
            flush2 && flush2();
            unsubscribe && unsubscribe();
          }),
          options
        );
      }
      responseType = responseType || "text";
      let responseData = await resolvers[utils$1.findKey(resolvers, responseType) || "text"](response, config);
      !isStreamResponse && unsubscribe && unsubscribe();
      return await new Promise((resolve, reject) => {
        settle(resolve, reject, {
          data: responseData,
          headers: AxiosHeaders$1.from(response.headers),
          status: response.status,
          statusText: response.statusText,
          config,
          request
        });
      });
    } catch (err) {
      unsubscribe && unsubscribe();
      if (err && err.name === "TypeError" && /Load failed|fetch/i.test(err.message)) {
        throw Object.assign(
          new AxiosError$1("Network Error", AxiosError$1.ERR_NETWORK, config, request),
          {
            cause: err.cause || err
          }
        );
      }
      throw AxiosError$1.from(err, err && err.code, config, request);
    }
  });
  const knownAdapters = {
    http: httpAdapter,
    xhr: xhrAdapter,
    fetch: fetchAdapter
  };
  utils$1.forEach(knownAdapters, (fn, value) => {
    if (fn) {
      try {
        Object.defineProperty(fn, "name", { value });
      } catch (e) {
      }
      Object.defineProperty(fn, "adapterName", { value });
    }
  });
  const renderReason = (reason) => `- ${reason}`;
  const isResolvedHandle = (adapter) => utils$1.isFunction(adapter) || adapter === null || adapter === false;
  const adapters = {
    getAdapter: (adapters2) => {
      adapters2 = utils$1.isArray(adapters2) ? adapters2 : [adapters2];
      const { length } = adapters2;
      let nameOrAdapter;
      let adapter;
      const rejectedReasons = {};
      for (let i = 0; i < length; i++) {
        nameOrAdapter = adapters2[i];
        let id2;
        adapter = nameOrAdapter;
        if (!isResolvedHandle(nameOrAdapter)) {
          adapter = knownAdapters[(id2 = String(nameOrAdapter)).toLowerCase()];
          if (adapter === void 0) {
            throw new AxiosError$1(`Unknown adapter '${id2}'`);
          }
        }
        if (adapter) {
          break;
        }
        rejectedReasons[id2 || "#" + i] = adapter;
      }
      if (!adapter) {
        const reasons = Object.entries(rejectedReasons).map(
          ([id2, state]) => `adapter ${id2} ` + (state === false ? "is not supported by the environment" : "is not available in the build")
        );
        let s = length ? reasons.length > 1 ? "since :\n" + reasons.map(renderReason).join("\n") : " " + renderReason(reasons[0]) : "as no adapter specified";
        throw new AxiosError$1(
          `There is no suitable adapter to dispatch the request ` + s,
          "ERR_NOT_SUPPORT"
        );
      }
      return adapter;
    },
    adapters: knownAdapters
  };
  function throwIfCancellationRequested(config) {
    if (config.cancelToken) {
      config.cancelToken.throwIfRequested();
    }
    if (config.signal && config.signal.aborted) {
      throw new CanceledError$1(null, config);
    }
  }
  function dispatchRequest(config) {
    throwIfCancellationRequested(config);
    config.headers = AxiosHeaders$1.from(config.headers);
    config.data = transformData.call(
      config,
      config.transformRequest
    );
    if (["post", "put", "patch"].indexOf(config.method) !== -1) {
      config.headers.setContentType("application/x-www-form-urlencoded", false);
    }
    const adapter = adapters.getAdapter(config.adapter || defaults.adapter);
    return adapter(config).then(function onAdapterResolution(response) {
      throwIfCancellationRequested(config);
      response.data = transformData.call(
        config,
        config.transformResponse,
        response
      );
      response.headers = AxiosHeaders$1.from(response.headers);
      return response;
    }, function onAdapterRejection(reason) {
      if (!isCancel$1(reason)) {
        throwIfCancellationRequested(config);
        if (reason && reason.response) {
          reason.response.data = transformData.call(
            config,
            config.transformResponse,
            reason.response
          );
          reason.response.headers = AxiosHeaders$1.from(reason.response.headers);
        }
      }
      return Promise.reject(reason);
    });
  }
  const VERSION$1 = "1.9.0";
  const validators$1 = {};
  ["object", "boolean", "number", "function", "string", "symbol"].forEach((type, i) => {
    validators$1[type] = function validator2(thing) {
      return typeof thing === type || "a" + (i < 1 ? "n " : " ") + type;
    };
  });
  const deprecatedWarnings = {};
  validators$1.transitional = function transitional(validator2, version2, message) {
    function formatMessage(opt, desc) {
      return "[Axios v" + VERSION$1 + "] Transitional option '" + opt + "'" + desc + (message ? ". " + message : "");
    }
    return (value, opt, opts) => {
      if (validator2 === false) {
        throw new AxiosError$1(
          formatMessage(opt, " has been removed" + (version2 ? " in " + version2 : "")),
          AxiosError$1.ERR_DEPRECATED
        );
      }
      if (version2 && !deprecatedWarnings[opt]) {
        deprecatedWarnings[opt] = true;
        console.warn(
          formatMessage(
            opt,
            " has been deprecated since v" + version2 + " and will be removed in the near future"
          )
        );
      }
      return validator2 ? validator2(value, opt, opts) : true;
    };
  };
  validators$1.spelling = function spelling(correctSpelling) {
    return (value, opt) => {
      console.warn(`${opt} is likely a misspelling of ${correctSpelling}`);
      return true;
    };
  };
  function assertOptions(options, schema, allowUnknown) {
    if (typeof options !== "object") {
      throw new AxiosError$1("options must be an object", AxiosError$1.ERR_BAD_OPTION_VALUE);
    }
    const keys = Object.keys(options);
    let i = keys.length;
    while (i-- > 0) {
      const opt = keys[i];
      const validator2 = schema[opt];
      if (validator2) {
        const value = options[opt];
        const result = value === void 0 || validator2(value, opt, options);
        if (result !== true) {
          throw new AxiosError$1("option " + opt + " must be " + result, AxiosError$1.ERR_BAD_OPTION_VALUE);
        }
        continue;
      }
      if (allowUnknown !== true) {
        throw new AxiosError$1("Unknown option " + opt, AxiosError$1.ERR_BAD_OPTION);
      }
    }
  }
  const validator = {
    assertOptions,
    validators: validators$1
  };
  const validators = validator.validators;
  let Axios$1 = class Axios {
    constructor(instanceConfig) {
      this.defaults = instanceConfig || {};
      this.interceptors = {
        request: new InterceptorManager(),
        response: new InterceptorManager()
      };
    }
    /**
     * Dispatch a request
     *
     * @param {String|Object} configOrUrl The config specific for this request (merged with this.defaults)
     * @param {?Object} config
     *
     * @returns {Promise} The Promise to be fulfilled
     */
    async request(configOrUrl, config) {
      try {
        return await this._request(configOrUrl, config);
      } catch (err) {
        if (err instanceof Error) {
          let dummy = {};
          Error.captureStackTrace ? Error.captureStackTrace(dummy) : dummy = new Error();
          const stack = dummy.stack ? dummy.stack.replace(/^.+\n/, "") : "";
          try {
            if (!err.stack) {
              err.stack = stack;
            } else if (stack && !String(err.stack).endsWith(stack.replace(/^.+\n.+\n/, ""))) {
              err.stack += "\n" + stack;
            }
          } catch (e) {
          }
        }
        throw err;
      }
    }
    _request(configOrUrl, config) {
      if (typeof configOrUrl === "string") {
        config = config || {};
        config.url = configOrUrl;
      } else {
        config = configOrUrl || {};
      }
      config = mergeConfig$1(this.defaults, config);
      const { transitional, paramsSerializer, headers } = config;
      if (transitional !== void 0) {
        validator.assertOptions(transitional, {
          silentJSONParsing: validators.transitional(validators.boolean),
          forcedJSONParsing: validators.transitional(validators.boolean),
          clarifyTimeoutError: validators.transitional(validators.boolean)
        }, false);
      }
      if (paramsSerializer != null) {
        if (utils$1.isFunction(paramsSerializer)) {
          config.paramsSerializer = {
            serialize: paramsSerializer
          };
        } else {
          validator.assertOptions(paramsSerializer, {
            encode: validators.function,
            serialize: validators.function
          }, true);
        }
      }
      if (config.allowAbsoluteUrls !== void 0) ;
      else if (this.defaults.allowAbsoluteUrls !== void 0) {
        config.allowAbsoluteUrls = this.defaults.allowAbsoluteUrls;
      } else {
        config.allowAbsoluteUrls = true;
      }
      validator.assertOptions(config, {
        baseUrl: validators.spelling("baseURL"),
        withXsrfToken: validators.spelling("withXSRFToken")
      }, true);
      config.method = (config.method || this.defaults.method || "get").toLowerCase();
      let contextHeaders = headers && utils$1.merge(
        headers.common,
        headers[config.method]
      );
      headers && utils$1.forEach(
        ["delete", "get", "head", "post", "put", "patch", "common"],
        (method2) => {
          delete headers[method2];
        }
      );
      config.headers = AxiosHeaders$1.concat(contextHeaders, headers);
      const requestInterceptorChain = [];
      let synchronousRequestInterceptors = true;
      this.interceptors.request.forEach(function unshiftRequestInterceptors(interceptor) {
        if (typeof interceptor.runWhen === "function" && interceptor.runWhen(config) === false) {
          return;
        }
        synchronousRequestInterceptors = synchronousRequestInterceptors && interceptor.synchronous;
        requestInterceptorChain.unshift(interceptor.fulfilled, interceptor.rejected);
      });
      const responseInterceptorChain = [];
      this.interceptors.response.forEach(function pushResponseInterceptors(interceptor) {
        responseInterceptorChain.push(interceptor.fulfilled, interceptor.rejected);
      });
      let promise2;
      let i = 0;
      let len;
      if (!synchronousRequestInterceptors) {
        const chain = [dispatchRequest.bind(this), void 0];
        chain.unshift.apply(chain, requestInterceptorChain);
        chain.push.apply(chain, responseInterceptorChain);
        len = chain.length;
        promise2 = Promise.resolve(config);
        while (i < len) {
          promise2 = promise2.then(chain[i++], chain[i++]);
        }
        return promise2;
      }
      len = requestInterceptorChain.length;
      let newConfig = config;
      i = 0;
      while (i < len) {
        const onFulfilled = requestInterceptorChain[i++];
        const onRejected = requestInterceptorChain[i++];
        try {
          newConfig = onFulfilled(newConfig);
        } catch (error) {
          onRejected.call(this, error);
          break;
        }
      }
      try {
        promise2 = dispatchRequest.call(this, newConfig);
      } catch (error) {
        return Promise.reject(error);
      }
      i = 0;
      len = responseInterceptorChain.length;
      while (i < len) {
        promise2 = promise2.then(responseInterceptorChain[i++], responseInterceptorChain[i++]);
      }
      return promise2;
    }
    getUri(config) {
      config = mergeConfig$1(this.defaults, config);
      const fullPath = buildFullPath(config.baseURL, config.url, config.allowAbsoluteUrls);
      return buildURL(fullPath, config.params, config.paramsSerializer);
    }
  };
  utils$1.forEach(["delete", "get", "head", "options"], function forEachMethodNoData(method2) {
    Axios$1.prototype[method2] = function(url, config) {
      return this.request(mergeConfig$1(config || {}, {
        method: method2,
        url,
        data: (config || {}).data
      }));
    };
  });
  utils$1.forEach(["post", "put", "patch"], function forEachMethodWithData(method2) {
    function generateHTTPMethod(isForm) {
      return function httpMethod(url, data2, config) {
        return this.request(mergeConfig$1(config || {}, {
          method: method2,
          headers: isForm ? {
            "Content-Type": "multipart/form-data"
          } : {},
          url,
          data: data2
        }));
      };
    }
    Axios$1.prototype[method2] = generateHTTPMethod();
    Axios$1.prototype[method2 + "Form"] = generateHTTPMethod(true);
  });
  let CancelToken$1 = class CancelToken2 {
    constructor(executor) {
      if (typeof executor !== "function") {
        throw new TypeError("executor must be a function.");
      }
      let resolvePromise;
      this.promise = new Promise(function promiseExecutor(resolve) {
        resolvePromise = resolve;
      });
      const token = this;
      this.promise.then((cancel) => {
        if (!token._listeners) return;
        let i = token._listeners.length;
        while (i-- > 0) {
          token._listeners[i](cancel);
        }
        token._listeners = null;
      });
      this.promise.then = (onfulfilled) => {
        let _resolve;
        const promise2 = new Promise((resolve) => {
          token.subscribe(resolve);
          _resolve = resolve;
        }).then(onfulfilled);
        promise2.cancel = function reject() {
          token.unsubscribe(_resolve);
        };
        return promise2;
      };
      executor(function cancel(message, config, request) {
        if (token.reason) {
          return;
        }
        token.reason = new CanceledError$1(message, config, request);
        resolvePromise(token.reason);
      });
    }
    /**
     * Throws a `CanceledError` if cancellation has been requested.
     */
    throwIfRequested() {
      if (this.reason) {
        throw this.reason;
      }
    }
    /**
     * Subscribe to the cancel signal
     */
    subscribe(listener) {
      if (this.reason) {
        listener(this.reason);
        return;
      }
      if (this._listeners) {
        this._listeners.push(listener);
      } else {
        this._listeners = [listener];
      }
    }
    /**
     * Unsubscribe from the cancel signal
     */
    unsubscribe(listener) {
      if (!this._listeners) {
        return;
      }
      const index2 = this._listeners.indexOf(listener);
      if (index2 !== -1) {
        this._listeners.splice(index2, 1);
      }
    }
    toAbortSignal() {
      const controller = new AbortController();
      const abort = (err) => {
        controller.abort(err);
      };
      this.subscribe(abort);
      controller.signal.unsubscribe = () => this.unsubscribe(abort);
      return controller.signal;
    }
    /**
     * Returns an object that contains a new `CancelToken` and a function that, when called,
     * cancels the `CancelToken`.
     */
    static source() {
      let cancel;
      const token = new CancelToken2(function executor(c) {
        cancel = c;
      });
      return {
        token,
        cancel
      };
    }
  };
  function spread$1(callback) {
    return function wrap2(arr) {
      return callback.apply(null, arr);
    };
  }
  function isAxiosError$1(payload) {
    return utils$1.isObject(payload) && payload.isAxiosError === true;
  }
  const HttpStatusCode$1 = {
    Continue: 100,
    SwitchingProtocols: 101,
    Processing: 102,
    EarlyHints: 103,
    Ok: 200,
    Created: 201,
    Accepted: 202,
    NonAuthoritativeInformation: 203,
    NoContent: 204,
    ResetContent: 205,
    PartialContent: 206,
    MultiStatus: 207,
    AlreadyReported: 208,
    ImUsed: 226,
    MultipleChoices: 300,
    MovedPermanently: 301,
    Found: 302,
    SeeOther: 303,
    NotModified: 304,
    UseProxy: 305,
    Unused: 306,
    TemporaryRedirect: 307,
    PermanentRedirect: 308,
    BadRequest: 400,
    Unauthorized: 401,
    PaymentRequired: 402,
    Forbidden: 403,
    NotFound: 404,
    MethodNotAllowed: 405,
    NotAcceptable: 406,
    ProxyAuthenticationRequired: 407,
    RequestTimeout: 408,
    Conflict: 409,
    Gone: 410,
    LengthRequired: 411,
    PreconditionFailed: 412,
    PayloadTooLarge: 413,
    UriTooLong: 414,
    UnsupportedMediaType: 415,
    RangeNotSatisfiable: 416,
    ExpectationFailed: 417,
    ImATeapot: 418,
    MisdirectedRequest: 421,
    UnprocessableEntity: 422,
    Locked: 423,
    FailedDependency: 424,
    TooEarly: 425,
    UpgradeRequired: 426,
    PreconditionRequired: 428,
    TooManyRequests: 429,
    RequestHeaderFieldsTooLarge: 431,
    UnavailableForLegalReasons: 451,
    InternalServerError: 500,
    NotImplemented: 501,
    BadGateway: 502,
    ServiceUnavailable: 503,
    GatewayTimeout: 504,
    HttpVersionNotSupported: 505,
    VariantAlsoNegotiates: 506,
    InsufficientStorage: 507,
    LoopDetected: 508,
    NotExtended: 510,
    NetworkAuthenticationRequired: 511
  };
  Object.entries(HttpStatusCode$1).forEach(([key, value]) => {
    HttpStatusCode$1[value] = key;
  });
  function createInstance(defaultConfig) {
    const context = new Axios$1(defaultConfig);
    const instance = bind(Axios$1.prototype.request, context);
    utils$1.extend(instance, Axios$1.prototype, context, { allOwnKeys: true });
    utils$1.extend(instance, context, null, { allOwnKeys: true });
    instance.create = function create(instanceConfig) {
      return createInstance(mergeConfig$1(defaultConfig, instanceConfig));
    };
    return instance;
  }
  const axios = createInstance(defaults);
  axios.Axios = Axios$1;
  axios.CanceledError = CanceledError$1;
  axios.CancelToken = CancelToken$1;
  axios.isCancel = isCancel$1;
  axios.VERSION = VERSION$1;
  axios.toFormData = toFormData$1;
  axios.AxiosError = AxiosError$1;
  axios.Cancel = axios.CanceledError;
  axios.all = function all2(promises) {
    return Promise.all(promises);
  };
  axios.spread = spread$1;
  axios.isAxiosError = isAxiosError$1;
  axios.mergeConfig = mergeConfig$1;
  axios.AxiosHeaders = AxiosHeaders$1;
  axios.formToJSON = (thing) => formDataToJSON(utils$1.isHTMLForm(thing) ? new FormData(thing) : thing);
  axios.getAdapter = adapters.getAdapter;
  axios.HttpStatusCode = HttpStatusCode$1;
  axios.default = axios;
  const {
    Axios,
    AxiosError,
    CanceledError,
    isCancel,
    CancelToken,
    VERSION,
    all,
    Cancel,
    isAxiosError,
    spread,
    toFormData,
    AxiosHeaders,
    HttpStatusCode,
    formToJSON,
    getAdapter,
    mergeConfig
  } = axios;
  function _assertThisInitialized(e) {
    if (void 0 === e) throw new ReferenceError("this hasn't been initialised - super() hasn't been called");
    return e;
  }
  function asyncGeneratorStep(n, t, e, r, o, a, c) {
    try {
      var i = n[a](c), u = i.value;
    } catch (n2) {
      return void e(n2);
    }
    i.done ? t(u) : Promise.resolve(u).then(r, o);
  }
  function _asyncToGenerator(n) {
    return function() {
      var t = this, e = arguments;
      return new Promise(function(r, o) {
        var a = n.apply(t, e);
        function _next(n2) {
          asyncGeneratorStep(a, r, o, _next, _throw, "next", n2);
        }
        function _throw(n2) {
          asyncGeneratorStep(a, r, o, _next, _throw, "throw", n2);
        }
        _next(void 0);
      });
    };
  }
  function _callSuper(t, o, e) {
    return o = _getPrototypeOf(o), _possibleConstructorReturn(t, _isNativeReflectConstruct() ? Reflect.construct(o, e || [], _getPrototypeOf(t).constructor) : o.apply(t, e));
  }
  function _classCallCheck(a, n) {
    if (!(a instanceof n)) throw new TypeError("Cannot call a class as a function");
  }
  function _construct(t, e, r) {
    if (_isNativeReflectConstruct()) return Reflect.construct.apply(null, arguments);
    var o = [null];
    o.push.apply(o, e);
    var p = new (t.bind.apply(t, o))();
    return r && _setPrototypeOf(p, r.prototype), p;
  }
  function _defineProperties(e, r) {
    for (var t = 0; t < r.length; t++) {
      var o = r[t];
      o.enumerable = o.enumerable || false, o.configurable = true, "value" in o && (o.writable = true), Object.defineProperty(e, _toPropertyKey(o.key), o);
    }
  }
  function _createClass(e, r, t) {
    return r && _defineProperties(e.prototype, r), t && _defineProperties(e, t), Object.defineProperty(e, "prototype", {
      writable: false
    }), e;
  }
  function _defineProperty(e, r, t) {
    return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, {
      value: t,
      enumerable: true,
      configurable: true,
      writable: true
    }) : e[r] = t, e;
  }
  function _getPrototypeOf(t) {
    return _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function(t2) {
      return t2.__proto__ || Object.getPrototypeOf(t2);
    }, _getPrototypeOf(t);
  }
  function _inherits(t, e) {
    if ("function" != typeof e && null !== e) throw new TypeError("Super expression must either be null or a function");
    t.prototype = Object.create(e && e.prototype, {
      constructor: {
        value: t,
        writable: true,
        configurable: true
      }
    }), Object.defineProperty(t, "prototype", {
      writable: false
    }), e && _setPrototypeOf(t, e);
  }
  function _isNativeFunction(t) {
    try {
      return -1 !== Function.toString.call(t).indexOf("[native code]");
    } catch (n) {
      return "function" == typeof t;
    }
  }
  function _isNativeReflectConstruct() {
    try {
      var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function() {
      }));
    } catch (t2) {
    }
    return (_isNativeReflectConstruct = function() {
      return !!t;
    })();
  }
  function ownKeys$4(e, r) {
    var t = Object.keys(e);
    if (Object.getOwnPropertySymbols) {
      var o = Object.getOwnPropertySymbols(e);
      r && (o = o.filter(function(r2) {
        return Object.getOwnPropertyDescriptor(e, r2).enumerable;
      })), t.push.apply(t, o);
    }
    return t;
  }
  function _objectSpread2(e) {
    for (var r = 1; r < arguments.length; r++) {
      var t = null != arguments[r] ? arguments[r] : {};
      r % 2 ? ownKeys$4(Object(t), true).forEach(function(r2) {
        _defineProperty(e, r2, t[r2]);
      }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$4(Object(t)).forEach(function(r2) {
        Object.defineProperty(e, r2, Object.getOwnPropertyDescriptor(t, r2));
      });
    }
    return e;
  }
  function _possibleConstructorReturn(t, e) {
    if (e && ("object" == typeof e || "function" == typeof e)) return e;
    if (void 0 !== e) throw new TypeError("Derived constructors may only return object or undefined");
    return _assertThisInitialized(t);
  }
  function _regeneratorRuntime() {
    _regeneratorRuntime = function() {
      return r;
    };
    var t, r = {}, e = Object.prototype, n = e.hasOwnProperty, o = "function" == typeof Symbol ? Symbol : {}, i = o.iterator || "@@iterator", a = o.asyncIterator || "@@asyncIterator", u = o.toStringTag || "@@toStringTag";
    function c(t2, r2, e2, n2) {
      return Object.defineProperty(t2, r2, {
        value: e2,
        enumerable: !n2,
        configurable: !n2,
        writable: !n2
      });
    }
    try {
      c({}, "");
    } catch (t2) {
      c = function(t3, r2, e2) {
        return t3[r2] = e2;
      };
    }
    function h(r2, e2, n2, o2) {
      var i2 = e2 && e2.prototype instanceof Generator ? e2 : Generator, a2 = Object.create(i2.prototype);
      return c(a2, "_invoke", /* @__PURE__ */ function(r3, e3, n3) {
        var o3 = 1;
        return function(i3, a3) {
          if (3 === o3) throw Error("Generator is already running");
          if (4 === o3) {
            if ("throw" === i3) throw a3;
            return {
              value: t,
              done: true
            };
          }
          for (n3.method = i3, n3.arg = a3; ; ) {
            var u2 = n3.delegate;
            if (u2) {
              var c2 = d(u2, n3);
              if (c2) {
                if (c2 === f) continue;
                return c2;
              }
            }
            if ("next" === n3.method) n3.sent = n3._sent = n3.arg;
            else if ("throw" === n3.method) {
              if (1 === o3) throw o3 = 4, n3.arg;
              n3.dispatchException(n3.arg);
            } else "return" === n3.method && n3.abrupt("return", n3.arg);
            o3 = 3;
            var h2 = s(r3, e3, n3);
            if ("normal" === h2.type) {
              if (o3 = n3.done ? 4 : 2, h2.arg === f) continue;
              return {
                value: h2.arg,
                done: n3.done
              };
            }
            "throw" === h2.type && (o3 = 4, n3.method = "throw", n3.arg = h2.arg);
          }
        };
      }(r2, n2, new Context(o2 || [])), true), a2;
    }
    function s(t2, r2, e2) {
      try {
        return {
          type: "normal",
          arg: t2.call(r2, e2)
        };
      } catch (t3) {
        return {
          type: "throw",
          arg: t3
        };
      }
    }
    r.wrap = h;
    var f = {};
    function Generator() {
    }
    function GeneratorFunction() {
    }
    function GeneratorFunctionPrototype() {
    }
    var l = {};
    c(l, i, function() {
      return this;
    });
    var p = Object.getPrototypeOf, y = p && p(p(x([])));
    y && y !== e && n.call(y, i) && (l = y);
    var v = GeneratorFunctionPrototype.prototype = Generator.prototype = Object.create(l);
    function g(t2) {
      ["next", "throw", "return"].forEach(function(r2) {
        c(t2, r2, function(t3) {
          return this._invoke(r2, t3);
        });
      });
    }
    function AsyncIterator(t2, r2) {
      function e2(o3, i2, a2, u2) {
        var c2 = s(t2[o3], t2, i2);
        if ("throw" !== c2.type) {
          var h2 = c2.arg, f2 = h2.value;
          return f2 && "object" == typeof f2 && n.call(f2, "__await") ? r2.resolve(f2.__await).then(function(t3) {
            e2("next", t3, a2, u2);
          }, function(t3) {
            e2("throw", t3, a2, u2);
          }) : r2.resolve(f2).then(function(t3) {
            h2.value = t3, a2(h2);
          }, function(t3) {
            return e2("throw", t3, a2, u2);
          });
        }
        u2(c2.arg);
      }
      var o2;
      c(this, "_invoke", function(t3, n2) {
        function i2() {
          return new r2(function(r3, o3) {
            e2(t3, n2, r3, o3);
          });
        }
        return o2 = o2 ? o2.then(i2, i2) : i2();
      }, true);
    }
    function d(r2, e2) {
      var n2 = e2.method, o2 = r2.i[n2];
      if (o2 === t) return e2.delegate = null, "throw" === n2 && r2.i.return && (e2.method = "return", e2.arg = t, d(r2, e2), "throw" === e2.method) || "return" !== n2 && (e2.method = "throw", e2.arg = new TypeError("The iterator does not provide a '" + n2 + "' method")), f;
      var i2 = s(o2, r2.i, e2.arg);
      if ("throw" === i2.type) return e2.method = "throw", e2.arg = i2.arg, e2.delegate = null, f;
      var a2 = i2.arg;
      return a2 ? a2.done ? (e2[r2.r] = a2.value, e2.next = r2.n, "return" !== e2.method && (e2.method = "next", e2.arg = t), e2.delegate = null, f) : a2 : (e2.method = "throw", e2.arg = new TypeError("iterator result is not an object"), e2.delegate = null, f);
    }
    function w(t2) {
      this.tryEntries.push(t2);
    }
    function m(r2) {
      var e2 = r2[4] || {};
      e2.type = "normal", e2.arg = t, r2[4] = e2;
    }
    function Context(t2) {
      this.tryEntries = [[-1]], t2.forEach(w, this), this.reset(true);
    }
    function x(r2) {
      if (null != r2) {
        var e2 = r2[i];
        if (e2) return e2.call(r2);
        if ("function" == typeof r2.next) return r2;
        if (!isNaN(r2.length)) {
          var o2 = -1, a2 = function e3() {
            for (; ++o2 < r2.length; ) if (n.call(r2, o2)) return e3.value = r2[o2], e3.done = false, e3;
            return e3.value = t, e3.done = true, e3;
          };
          return a2.next = a2;
        }
      }
      throw new TypeError(typeof r2 + " is not iterable");
    }
    return GeneratorFunction.prototype = GeneratorFunctionPrototype, c(v, "constructor", GeneratorFunctionPrototype), c(GeneratorFunctionPrototype, "constructor", GeneratorFunction), GeneratorFunction.displayName = c(GeneratorFunctionPrototype, u, "GeneratorFunction"), r.isGeneratorFunction = function(t2) {
      var r2 = "function" == typeof t2 && t2.constructor;
      return !!r2 && (r2 === GeneratorFunction || "GeneratorFunction" === (r2.displayName || r2.name));
    }, r.mark = function(t2) {
      return Object.setPrototypeOf ? Object.setPrototypeOf(t2, GeneratorFunctionPrototype) : (t2.__proto__ = GeneratorFunctionPrototype, c(t2, u, "GeneratorFunction")), t2.prototype = Object.create(v), t2;
    }, r.awrap = function(t2) {
      return {
        __await: t2
      };
    }, g(AsyncIterator.prototype), c(AsyncIterator.prototype, a, function() {
      return this;
    }), r.AsyncIterator = AsyncIterator, r.async = function(t2, e2, n2, o2, i2) {
      void 0 === i2 && (i2 = Promise);
      var a2 = new AsyncIterator(h(t2, e2, n2, o2), i2);
      return r.isGeneratorFunction(e2) ? a2 : a2.next().then(function(t3) {
        return t3.done ? t3.value : a2.next();
      });
    }, g(v), c(v, u, "Generator"), c(v, i, function() {
      return this;
    }), c(v, "toString", function() {
      return "[object Generator]";
    }), r.keys = function(t2) {
      var r2 = Object(t2), e2 = [];
      for (var n2 in r2) e2.unshift(n2);
      return function t3() {
        for (; e2.length; ) if ((n2 = e2.pop()) in r2) return t3.value = n2, t3.done = false, t3;
        return t3.done = true, t3;
      };
    }, r.values = x, Context.prototype = {
      constructor: Context,
      reset: function(r2) {
        if (this.prev = this.next = 0, this.sent = this._sent = t, this.done = false, this.delegate = null, this.method = "next", this.arg = t, this.tryEntries.forEach(m), !r2) for (var e2 in this) "t" === e2.charAt(0) && n.call(this, e2) && !isNaN(+e2.slice(1)) && (this[e2] = t);
      },
      stop: function() {
        this.done = true;
        var t2 = this.tryEntries[0][4];
        if ("throw" === t2.type) throw t2.arg;
        return this.rval;
      },
      dispatchException: function(r2) {
        if (this.done) throw r2;
        var e2 = this;
        function n2(t2) {
          a2.type = "throw", a2.arg = r2, e2.next = t2;
        }
        for (var o2 = e2.tryEntries.length - 1; o2 >= 0; --o2) {
          var i2 = this.tryEntries[o2], a2 = i2[4], u2 = this.prev, c2 = i2[1], h2 = i2[2];
          if (-1 === i2[0]) return n2("end"), false;
          if (!c2 && !h2) throw Error("try statement without catch or finally");
          if (null != i2[0] && i2[0] <= u2) {
            if (u2 < c2) return this.method = "next", this.arg = t, n2(c2), true;
            if (u2 < h2) return n2(h2), false;
          }
        }
      },
      abrupt: function(t2, r2) {
        for (var e2 = this.tryEntries.length - 1; e2 >= 0; --e2) {
          var n2 = this.tryEntries[e2];
          if (n2[0] > -1 && n2[0] <= this.prev && this.prev < n2[2]) {
            var o2 = n2;
            break;
          }
        }
        o2 && ("break" === t2 || "continue" === t2) && o2[0] <= r2 && r2 <= o2[2] && (o2 = null);
        var i2 = o2 ? o2[4] : {};
        return i2.type = t2, i2.arg = r2, o2 ? (this.method = "next", this.next = o2[2], f) : this.complete(i2);
      },
      complete: function(t2, r2) {
        if ("throw" === t2.type) throw t2.arg;
        return "break" === t2.type || "continue" === t2.type ? this.next = t2.arg : "return" === t2.type ? (this.rval = this.arg = t2.arg, this.method = "return", this.next = "end") : "normal" === t2.type && r2 && (this.next = r2), f;
      },
      finish: function(t2) {
        for (var r2 = this.tryEntries.length - 1; r2 >= 0; --r2) {
          var e2 = this.tryEntries[r2];
          if (e2[2] === t2) return this.complete(e2[4], e2[3]), m(e2), f;
        }
      },
      catch: function(t2) {
        for (var r2 = this.tryEntries.length - 1; r2 >= 0; --r2) {
          var e2 = this.tryEntries[r2];
          if (e2[0] === t2) {
            var n2 = e2[4];
            if ("throw" === n2.type) {
              var o2 = n2.arg;
              m(e2);
            }
            return o2;
          }
        }
        throw Error("illegal catch attempt");
      },
      delegateYield: function(r2, e2, n2) {
        return this.delegate = {
          i: x(r2),
          r: e2,
          n: n2
        }, "next" === this.method && (this.arg = t), f;
      }
    }, r;
  }
  function _setPrototypeOf(t, e) {
    return _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function(t2, e2) {
      return t2.__proto__ = e2, t2;
    }, _setPrototypeOf(t, e);
  }
  function _toPrimitive(t, r) {
    if ("object" != typeof t || !t) return t;
    var e = t[Symbol.toPrimitive];
    if (void 0 !== e) {
      var i = e.call(t, r);
      if ("object" != typeof i) return i;
      throw new TypeError("@@toPrimitive must return a primitive value.");
    }
    return ("string" === r ? String : Number)(t);
  }
  function _toPropertyKey(t) {
    var i = _toPrimitive(t, "string");
    return "symbol" == typeof i ? i : i + "";
  }
  function _typeof(o) {
    "@babel/helpers - typeof";
    return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function(o2) {
      return typeof o2;
    } : function(o2) {
      return o2 && "function" == typeof Symbol && o2.constructor === Symbol && o2 !== Symbol.prototype ? "symbol" : typeof o2;
    }, _typeof(o);
  }
  function _wrapNativeSuper(t) {
    var r = "function" == typeof Map ? /* @__PURE__ */ new Map() : void 0;
    return _wrapNativeSuper = function(t2) {
      if (null === t2 || !_isNativeFunction(t2)) return t2;
      if ("function" != typeof t2) throw new TypeError("Super expression must either be null or a function");
      if (void 0 !== r) {
        if (r.has(t2)) return r.get(t2);
        r.set(t2, Wrapper);
      }
      function Wrapper() {
        return _construct(t2, arguments, _getPrototypeOf(this).constructor);
      }
      return Wrapper.prototype = Object.create(t2.prototype, {
        constructor: {
          value: Wrapper,
          enumerable: false,
          writable: true,
          configurable: true
        }
      }), _setPrototypeOf(Wrapper, t2);
    }, _wrapNativeSuper(t);
  }
  var commonjsGlobal = typeof globalThis !== "undefined" ? globalThis : typeof window !== "undefined" ? window : typeof global !== "undefined" ? global : typeof self !== "undefined" ? self : {};
  var check = function check2(it) {
    return it && it.Math === Math && it;
  };
  var globalThis_1 = (
    // eslint-disable-next-line es/no-global-this -- safe
    check((typeof globalThis === "undefined" ? "undefined" : _typeof(globalThis)) == "object" && globalThis) || check((typeof window === "undefined" ? "undefined" : _typeof(window)) == "object" && window) || // eslint-disable-next-line no-restricted-globals -- safe
    check((typeof self === "undefined" ? "undefined" : _typeof(self)) == "object" && self) || check(_typeof(commonjsGlobal) == "object" && commonjsGlobal) || check(_typeof(commonjsGlobal) == "object" && commonjsGlobal) || // eslint-disable-next-line no-new-func -- fallback
    /* @__PURE__ */ function() {
      return this;
    }() || Function("return this")()
  );
  var objectGetOwnPropertyDescriptor = {};
  var fails$1e = function fails(exec2) {
    try {
      return !!exec2();
    } catch (error2) {
      return true;
    }
  };
  var fails$1d = fails$1e;
  var descriptors = !fails$1d(function() {
    return Object.defineProperty({}, 1, {
      get: function get6() {
        return 7;
      }
    })[1] !== 7;
  });
  var fails$1c = fails$1e;
  var functionBindNative = !fails$1c(function() {
    var test2 = (function() {
    }).bind();
    return typeof test2 != "function" || test2.hasOwnProperty("prototype");
  });
  var NATIVE_BIND$4 = functionBindNative;
  var call$N = Function.prototype.call;
  var functionCall = NATIVE_BIND$4 ? call$N.bind(call$N) : function() {
    return call$N.apply(call$N, arguments);
  };
  var objectPropertyIsEnumerable = {};
  var $propertyIsEnumerable$2 = {}.propertyIsEnumerable;
  var getOwnPropertyDescriptor$a = Object.getOwnPropertyDescriptor;
  var NASHORN_BUG = getOwnPropertyDescriptor$a && !$propertyIsEnumerable$2.call({
    1: 2
  }, 1);
  objectPropertyIsEnumerable.f = NASHORN_BUG ? function propertyIsEnumerable(V) {
    var descriptor2 = getOwnPropertyDescriptor$a(this, V);
    return !!descriptor2 && descriptor2.enumerable;
  } : $propertyIsEnumerable$2;
  var createPropertyDescriptor$a = function createPropertyDescriptor(bitmap, value) {
    return {
      enumerable: !(bitmap & 1),
      configurable: !(bitmap & 2),
      writable: !(bitmap & 4),
      value
    };
  };
  var NATIVE_BIND$3 = functionBindNative;
  var FunctionPrototype$4 = Function.prototype;
  var call$M = FunctionPrototype$4.call;
  var uncurryThisWithBind = NATIVE_BIND$3 && FunctionPrototype$4.bind.bind(call$M, call$M);
  var functionUncurryThis = NATIVE_BIND$3 ? uncurryThisWithBind : function(fn) {
    return function() {
      return call$M.apply(fn, arguments);
    };
  };
  var uncurryThis$1f = functionUncurryThis;
  var toString$v = uncurryThis$1f({}.toString);
  var stringSlice$g = uncurryThis$1f("".slice);
  var classofRaw$2 = function classofRaw(it) {
    return stringSlice$g(toString$v(it), 8, -1);
  };
  var uncurryThis$1e = functionUncurryThis;
  var fails$1b = fails$1e;
  var classof$k = classofRaw$2;
  var $Object$8 = Object;
  var split$4 = uncurryThis$1e("".split);
  var indexedObject = fails$1b(function() {
    return !$Object$8("z").propertyIsEnumerable(0);
  }) ? function(it) {
    return classof$k(it) === "String" ? split$4(it, "") : $Object$8(it);
  } : $Object$8;
  var isNullOrUndefined$a = function isNullOrUndefined(it) {
    return it === null || it === void 0;
  };
  var isNullOrUndefined$9 = isNullOrUndefined$a;
  var $TypeError$u = TypeError;
  var requireObjectCoercible$k = function requireObjectCoercible(it) {
    if (isNullOrUndefined$9(it)) throw new $TypeError$u("Can't call method on " + it);
    return it;
  };
  var IndexedObject$4 = indexedObject;
  var requireObjectCoercible$j = requireObjectCoercible$k;
  var toIndexedObject$f = function toIndexedObject(it) {
    return IndexedObject$4(requireObjectCoercible$j(it));
  };
  var documentAll = (typeof document === "undefined" ? "undefined" : _typeof(document)) == "object" && document.all;
  var isCallable$z = typeof documentAll == "undefined" && documentAll !== void 0 ? function(argument) {
    return typeof argument == "function" || argument === documentAll;
  } : function(argument) {
    return typeof argument == "function";
  };
  var isCallable$y = isCallable$z;
  var isObject$I = function isObject3(it) {
    return _typeof(it) == "object" ? it !== null : isCallable$y(it);
  };
  var globalThis$V = globalThis_1;
  var isCallable$x = isCallable$z;
  var aFunction = function aFunction2(argument) {
    return isCallable$x(argument) ? argument : void 0;
  };
  var getBuiltIn$n = function getBuiltIn(namespace, method2) {
    return arguments.length < 2 ? aFunction(globalThis$V[namespace]) : globalThis$V[namespace] && globalThis$V[namespace][method2];
  };
  var uncurryThis$1d = functionUncurryThis;
  var objectIsPrototypeOf = uncurryThis$1d({}.isPrototypeOf);
  var globalThis$U = globalThis_1;
  var navigator$1 = globalThis$U.navigator;
  var userAgent$8 = navigator$1 && navigator$1.userAgent;
  var environmentUserAgent = userAgent$8 ? String(userAgent$8) : "";
  var globalThis$T = globalThis_1;
  var userAgent$7 = environmentUserAgent;
  var process$3 = globalThis$T.process;
  var Deno$1 = globalThis$T.Deno;
  var versions = process$3 && process$3.versions || Deno$1 && Deno$1.version;
  var v8 = versions && versions.v8;
  var match, version;
  if (v8) {
    match = v8.split(".");
    version = match[0] > 0 && match[0] < 4 ? 1 : +(match[0] + match[1]);
  }
  if (!version && userAgent$7) {
    match = userAgent$7.match(/Edge\/(\d+)/);
    if (!match || match[1] >= 74) {
      match = userAgent$7.match(/Chrome\/(\d+)/);
      if (match) version = +match[1];
    }
  }
  var environmentV8Version = version;
  var V8_VERSION$3 = environmentV8Version;
  var fails$1a = fails$1e;
  var globalThis$S = globalThis_1;
  var $String$7 = globalThis$S.String;
  var symbolConstructorDetection = !!Object.getOwnPropertySymbols && !fails$1a(function() {
    var symbol = Symbol("symbol detection");
    return !$String$7(symbol) || !(Object(symbol) instanceof Symbol) || // Chrome 38-40 symbols are not inherited from DOM collections prototypes to instances
    !Symbol.sham && V8_VERSION$3 && V8_VERSION$3 < 41;
  });
  var NATIVE_SYMBOL$6 = symbolConstructorDetection;
  var useSymbolAsUid = NATIVE_SYMBOL$6 && !Symbol.sham && _typeof(Symbol.iterator) == "symbol";
  var getBuiltIn$m = getBuiltIn$n;
  var isCallable$w = isCallable$z;
  var isPrototypeOf$b = objectIsPrototypeOf;
  var USE_SYMBOL_AS_UID$1 = useSymbolAsUid;
  var $Object$7 = Object;
  var isSymbol$6 = USE_SYMBOL_AS_UID$1 ? function(it) {
    return _typeof(it) == "symbol";
  } : function(it) {
    var $Symbol2 = getBuiltIn$m("Symbol");
    return isCallable$w($Symbol2) && isPrototypeOf$b($Symbol2.prototype, $Object$7(it));
  };
  var $String$6 = String;
  var tryToString$7 = function tryToString(argument) {
    try {
      return $String$6(argument);
    } catch (error2) {
      return "Object";
    }
  };
  var isCallable$v = isCallable$z;
  var tryToString$6 = tryToString$7;
  var $TypeError$t = TypeError;
  var aCallable$s = function aCallable(argument) {
    if (isCallable$v(argument)) return argument;
    throw new $TypeError$t(tryToString$6(argument) + " is not a function");
  };
  var aCallable$r = aCallable$s;
  var isNullOrUndefined$8 = isNullOrUndefined$a;
  var getMethod$b = function getMethod(V, P2) {
    var func = V[P2];
    return isNullOrUndefined$8(func) ? void 0 : aCallable$r(func);
  };
  var call$L = functionCall;
  var isCallable$u = isCallable$z;
  var isObject$H = isObject$I;
  var $TypeError$s = TypeError;
  var ordinaryToPrimitive$2 = function ordinaryToPrimitive(input, pref) {
    var fn, val;
    if (pref === "string" && isCallable$u(fn = input.toString) && !isObject$H(val = call$L(fn, input))) return val;
    if (isCallable$u(fn = input.valueOf) && !isObject$H(val = call$L(fn, input))) return val;
    if (pref !== "string" && isCallable$u(fn = input.toString) && !isObject$H(val = call$L(fn, input))) return val;
    throw new $TypeError$s("Can't convert object to primitive value");
  };
  var sharedStore = { exports: {} };
  var isPure = false;
  var globalThis$R = globalThis_1;
  var defineProperty$c = Object.defineProperty;
  var defineGlobalProperty$3 = function defineGlobalProperty(key, value) {
    try {
      defineProperty$c(globalThis$R, key, {
        value,
        configurable: true,
        writable: true
      });
    } catch (error2) {
      globalThis$R[key] = value;
    }
    return value;
  };
  var globalThis$Q = globalThis_1;
  var defineGlobalProperty$2 = defineGlobalProperty$3;
  var SHARED = "__core-js_shared__";
  var store$5 = sharedStore.exports = globalThis$Q[SHARED] || defineGlobalProperty$2(SHARED, {});
  (store$5.versions || (store$5.versions = [])).push({
    version: "3.42.0",
    mode: "global",
    copyright: "© 2014-2025 Denis Pushkarev (zloirock.ru)",
    license: "https://github.com/zloirock/core-js/blob/v3.42.0/LICENSE",
    source: "https://github.com/zloirock/core-js"
  });
  var sharedStoreExports = sharedStore.exports;
  var store$4 = sharedStoreExports;
  var shared$8 = function shared(key, value) {
    return store$4[key] || (store$4[key] = value || {});
  };
  var requireObjectCoercible$i = requireObjectCoercible$k;
  var $Object$6 = Object;
  var toObject$s = function toObject(argument) {
    return $Object$6(requireObjectCoercible$i(argument));
  };
  var uncurryThis$1c = functionUncurryThis;
  var toObject$r = toObject$s;
  var hasOwnProperty = uncurryThis$1c({}.hasOwnProperty);
  var hasOwnProperty_1 = Object.hasOwn || function hasOwn(it, key) {
    return hasOwnProperty(toObject$r(it), key);
  };
  var uncurryThis$1b = functionUncurryThis;
  var id$2 = 0;
  var postfix = Math.random();
  var toString$u = uncurryThis$1b(1 .toString);
  var uid$5 = function uid(key) {
    return "Symbol(" + (key === void 0 ? "" : key) + ")_" + toString$u(++id$2 + postfix, 36);
  };
  var globalThis$P = globalThis_1;
  var shared$7 = shared$8;
  var hasOwn$r = hasOwnProperty_1;
  var uid$4 = uid$5;
  var NATIVE_SYMBOL$5 = symbolConstructorDetection;
  var USE_SYMBOL_AS_UID = useSymbolAsUid;
  var _Symbol$3 = globalThis$P.Symbol;
  var WellKnownSymbolsStore$1 = shared$7("wks");
  var createWellKnownSymbol = USE_SYMBOL_AS_UID ? _Symbol$3["for"] || _Symbol$3 : _Symbol$3 && _Symbol$3.withoutSetter || uid$4;
  var wellKnownSymbol$C = function wellKnownSymbol(name2) {
    if (!hasOwn$r(WellKnownSymbolsStore$1, name2)) {
      WellKnownSymbolsStore$1[name2] = NATIVE_SYMBOL$5 && hasOwn$r(_Symbol$3, name2) ? _Symbol$3[name2] : createWellKnownSymbol("Symbol." + name2);
    }
    return WellKnownSymbolsStore$1[name2];
  };
  var call$K = functionCall;
  var isObject$G = isObject$I;
  var isSymbol$5 = isSymbol$6;
  var getMethod$a = getMethod$b;
  var ordinaryToPrimitive$1 = ordinaryToPrimitive$2;
  var wellKnownSymbol$B = wellKnownSymbol$C;
  var $TypeError$r = TypeError;
  var TO_PRIMITIVE$1 = wellKnownSymbol$B("toPrimitive");
  var toPrimitive$4 = function toPrimitive(input, pref) {
    if (!isObject$G(input) || isSymbol$5(input)) return input;
    var exoticToPrim = getMethod$a(input, TO_PRIMITIVE$1);
    var result;
    if (exoticToPrim) {
      if (pref === void 0) pref = "default";
      result = call$K(exoticToPrim, input, pref);
      if (!isObject$G(result) || isSymbol$5(result)) return result;
      throw new $TypeError$r("Can't convert object to primitive value");
    }
    if (pref === void 0) pref = "number";
    return ordinaryToPrimitive$1(input, pref);
  };
  var toPrimitive$3 = toPrimitive$4;
  var isSymbol$4 = isSymbol$6;
  var toPropertyKey$7 = function toPropertyKey(argument) {
    var key = toPrimitive$3(argument, "string");
    return isSymbol$4(key) ? key : key + "";
  };
  var globalThis$O = globalThis_1;
  var isObject$F = isObject$I;
  var document$3 = globalThis$O.document;
  var EXISTS$1 = isObject$F(document$3) && isObject$F(document$3.createElement);
  var documentCreateElement$2 = function documentCreateElement(it) {
    return EXISTS$1 ? document$3.createElement(it) : {};
  };
  var DESCRIPTORS$G = descriptors;
  var fails$19 = fails$1e;
  var createElement$1 = documentCreateElement$2;
  var ie8DomDefine = !DESCRIPTORS$G && !fails$19(function() {
    return Object.defineProperty(createElement$1("div"), "a", {
      get: function get6() {
        return 7;
      }
    }).a !== 7;
  });
  var DESCRIPTORS$F = descriptors;
  var call$J = functionCall;
  var propertyIsEnumerableModule$2 = objectPropertyIsEnumerable;
  var createPropertyDescriptor$9 = createPropertyDescriptor$a;
  var toIndexedObject$e = toIndexedObject$f;
  var toPropertyKey$6 = toPropertyKey$7;
  var hasOwn$q = hasOwnProperty_1;
  var IE8_DOM_DEFINE$1 = ie8DomDefine;
  var $getOwnPropertyDescriptor$2 = Object.getOwnPropertyDescriptor;
  objectGetOwnPropertyDescriptor.f = DESCRIPTORS$F ? $getOwnPropertyDescriptor$2 : function getOwnPropertyDescriptor(O, P2) {
    O = toIndexedObject$e(O);
    P2 = toPropertyKey$6(P2);
    if (IE8_DOM_DEFINE$1) try {
      return $getOwnPropertyDescriptor$2(O, P2);
    } catch (error2) {
    }
    if (hasOwn$q(O, P2)) return createPropertyDescriptor$9(!call$J(propertyIsEnumerableModule$2.f, O, P2), O[P2]);
  };
  var objectDefineProperty = {};
  var DESCRIPTORS$E = descriptors;
  var fails$18 = fails$1e;
  var v8PrototypeDefineBug = DESCRIPTORS$E && fails$18(function() {
    return Object.defineProperty(function() {
    }, "prototype", {
      value: 42,
      writable: false
    }).prototype !== 42;
  });
  var isObject$E = isObject$I;
  var $String$5 = String;
  var $TypeError$q = TypeError;
  var anObject$N = function anObject(argument) {
    if (isObject$E(argument)) return argument;
    throw new $TypeError$q($String$5(argument) + " is not an object");
  };
  var DESCRIPTORS$D = descriptors;
  var IE8_DOM_DEFINE = ie8DomDefine;
  var V8_PROTOTYPE_DEFINE_BUG$1 = v8PrototypeDefineBug;
  var anObject$M = anObject$N;
  var toPropertyKey$5 = toPropertyKey$7;
  var $TypeError$p = TypeError;
  var $defineProperty$1 = Object.defineProperty;
  var $getOwnPropertyDescriptor$1 = Object.getOwnPropertyDescriptor;
  var ENUMERABLE = "enumerable";
  var CONFIGURABLE$1 = "configurable";
  var WRITABLE = "writable";
  objectDefineProperty.f = DESCRIPTORS$D ? V8_PROTOTYPE_DEFINE_BUG$1 ? function defineProperty(O, P2, Attributes) {
    anObject$M(O);
    P2 = toPropertyKey$5(P2);
    anObject$M(Attributes);
    if (typeof O === "function" && P2 === "prototype" && "value" in Attributes && WRITABLE in Attributes && !Attributes[WRITABLE]) {
      var current = $getOwnPropertyDescriptor$1(O, P2);
      if (current && current[WRITABLE]) {
        O[P2] = Attributes.value;
        Attributes = {
          configurable: CONFIGURABLE$1 in Attributes ? Attributes[CONFIGURABLE$1] : current[CONFIGURABLE$1],
          enumerable: ENUMERABLE in Attributes ? Attributes[ENUMERABLE] : current[ENUMERABLE],
          writable: false
        };
      }
    }
    return $defineProperty$1(O, P2, Attributes);
  } : $defineProperty$1 : function defineProperty2(O, P2, Attributes) {
    anObject$M(O);
    P2 = toPropertyKey$5(P2);
    anObject$M(Attributes);
    if (IE8_DOM_DEFINE) try {
      return $defineProperty$1(O, P2, Attributes);
    } catch (error2) {
    }
    if ("get" in Attributes || "set" in Attributes) throw new $TypeError$p("Accessors not supported");
    if ("value" in Attributes) O[P2] = Attributes.value;
    return O;
  };
  var DESCRIPTORS$C = descriptors;
  var definePropertyModule$b = objectDefineProperty;
  var createPropertyDescriptor$8 = createPropertyDescriptor$a;
  var createNonEnumerableProperty$d = DESCRIPTORS$C ? function(object, key, value) {
    return definePropertyModule$b.f(object, key, createPropertyDescriptor$8(1, value));
  } : function(object, key, value) {
    object[key] = value;
    return object;
  };
  var makeBuiltIn$4 = { exports: {} };
  var DESCRIPTORS$B = descriptors;
  var hasOwn$p = hasOwnProperty_1;
  var FunctionPrototype$3 = Function.prototype;
  var getDescriptor = DESCRIPTORS$B && Object.getOwnPropertyDescriptor;
  var EXISTS = hasOwn$p(FunctionPrototype$3, "name");
  var PROPER = EXISTS && (function something() {
  }).name === "something";
  var CONFIGURABLE = EXISTS && (!DESCRIPTORS$B || DESCRIPTORS$B && getDescriptor(FunctionPrototype$3, "name").configurable);
  var functionName = {
    EXISTS,
    PROPER,
    CONFIGURABLE
  };
  var uncurryThis$1a = functionUncurryThis;
  var isCallable$t = isCallable$z;
  var store$3 = sharedStoreExports;
  var functionToString$1 = uncurryThis$1a(Function.toString);
  if (!isCallable$t(store$3.inspectSource)) {
    store$3.inspectSource = function(it) {
      return functionToString$1(it);
    };
  }
  var inspectSource$3 = store$3.inspectSource;
  var globalThis$N = globalThis_1;
  var isCallable$s = isCallable$z;
  var WeakMap$4 = globalThis$N.WeakMap;
  var weakMapBasicDetection = isCallable$s(WeakMap$4) && /native code/.test(String(WeakMap$4));
  var shared$6 = shared$8;
  var uid$3 = uid$5;
  var keys$2 = shared$6("keys");
  var sharedKey$4 = function sharedKey(key) {
    return keys$2[key] || (keys$2[key] = uid$3(key));
  };
  var hiddenKeys$6 = {};
  var NATIVE_WEAK_MAP$1 = weakMapBasicDetection;
  var globalThis$M = globalThis_1;
  var isObject$D = isObject$I;
  var createNonEnumerableProperty$c = createNonEnumerableProperty$d;
  var hasOwn$o = hasOwnProperty_1;
  var shared$5 = sharedStoreExports;
  var sharedKey$3 = sharedKey$4;
  var hiddenKeys$5 = hiddenKeys$6;
  var OBJECT_ALREADY_INITIALIZED = "Object already initialized";
  var TypeError$7 = globalThis$M.TypeError;
  var WeakMap$3 = globalThis$M.WeakMap;
  var set$9, get$4, has$b;
  var enforce = function enforce2(it) {
    return has$b(it) ? get$4(it) : set$9(it, {});
  };
  var getterFor$1 = function getterFor(TYPE) {
    return function(it) {
      var state;
      if (!isObject$D(it) || (state = get$4(it)).type !== TYPE) {
        throw new TypeError$7("Incompatible receiver, " + TYPE + " required");
      }
      return state;
    };
  };
  if (NATIVE_WEAK_MAP$1 || shared$5.state) {
    var store$2 = shared$5.state || (shared$5.state = new WeakMap$3());
    store$2.get = store$2.get;
    store$2.has = store$2.has;
    store$2.set = store$2.set;
    set$9 = function set6(it, metadata3) {
      if (store$2.has(it)) throw new TypeError$7(OBJECT_ALREADY_INITIALIZED);
      metadata3.facade = it;
      store$2.set(it, metadata3);
      return metadata3;
    };
    get$4 = function get6(it) {
      return store$2.get(it) || {};
    };
    has$b = function has5(it) {
      return store$2.has(it);
    };
  } else {
    var STATE = sharedKey$3("state");
    hiddenKeys$5[STATE] = true;
    set$9 = function set6(it, metadata3) {
      if (hasOwn$o(it, STATE)) throw new TypeError$7(OBJECT_ALREADY_INITIALIZED);
      metadata3.facade = it;
      createNonEnumerableProperty$c(it, STATE, metadata3);
      return metadata3;
    };
    get$4 = function get6(it) {
      return hasOwn$o(it, STATE) ? it[STATE] : {};
    };
    has$b = function has5(it) {
      return hasOwn$o(it, STATE);
    };
  }
  var internalState = {
    set: set$9,
    get: get$4,
    has: has$b,
    enforce,
    getterFor: getterFor$1
  };
  var uncurryThis$19 = functionUncurryThis;
  var fails$17 = fails$1e;
  var isCallable$r = isCallable$z;
  var hasOwn$n = hasOwnProperty_1;
  var DESCRIPTORS$A = descriptors;
  var CONFIGURABLE_FUNCTION_NAME$2 = functionName.CONFIGURABLE;
  var inspectSource$2 = inspectSource$3;
  var InternalStateModule$f = internalState;
  var enforceInternalState$4 = InternalStateModule$f.enforce;
  var getInternalState$9 = InternalStateModule$f.get;
  var $String$4 = String;
  var defineProperty$b = Object.defineProperty;
  var stringSlice$f = uncurryThis$19("".slice);
  var replace$b = uncurryThis$19("".replace);
  var join$7 = uncurryThis$19([].join);
  var CONFIGURABLE_LENGTH = DESCRIPTORS$A && !fails$17(function() {
    return defineProperty$b(function() {
    }, "length", {
      value: 8
    }).length !== 8;
  });
  var TEMPLATE = String(String).split("String");
  var makeBuiltIn$3 = makeBuiltIn$4.exports = function(value, name2, options) {
    if (stringSlice$f($String$4(name2), 0, 7) === "Symbol(") {
      name2 = "[" + replace$b($String$4(name2), /^Symbol\(([^)]*)\).*$/, "$1") + "]";
    }
    if (options && options.getter) name2 = "get " + name2;
    if (options && options.setter) name2 = "set " + name2;
    if (!hasOwn$n(value, "name") || CONFIGURABLE_FUNCTION_NAME$2 && value.name !== name2) {
      if (DESCRIPTORS$A) defineProperty$b(value, "name", {
        value: name2,
        configurable: true
      });
      else value.name = name2;
    }
    if (CONFIGURABLE_LENGTH && options && hasOwn$n(options, "arity") && value.length !== options.arity) {
      defineProperty$b(value, "length", {
        value: options.arity
      });
    }
    try {
      if (options && hasOwn$n(options, "constructor") && options.constructor) {
        if (DESCRIPTORS$A) defineProperty$b(value, "prototype", {
          writable: false
        });
      } else if (value.prototype) value.prototype = void 0;
    } catch (error2) {
    }
    var state = enforceInternalState$4(value);
    if (!hasOwn$n(state, "source")) {
      state.source = join$7(TEMPLATE, typeof name2 == "string" ? name2 : "");
    }
    return value;
  };
  Function.prototype.toString = makeBuiltIn$3(function toString2() {
    return isCallable$r(this) && getInternalState$9(this).source || inspectSource$2(this);
  }, "toString");
  var makeBuiltInExports = makeBuiltIn$4.exports;
  var isCallable$q = isCallable$z;
  var definePropertyModule$a = objectDefineProperty;
  var makeBuiltIn$2 = makeBuiltInExports;
  var defineGlobalProperty$1 = defineGlobalProperty$3;
  var defineBuiltIn$l = function defineBuiltIn(O, key, value, options) {
    if (!options) options = {};
    var simple = options.enumerable;
    var name2 = options.name !== void 0 ? options.name : key;
    if (isCallable$q(value)) makeBuiltIn$2(value, name2, options);
    if (options.global) {
      if (simple) O[key] = value;
      else defineGlobalProperty$1(key, value);
    } else {
      try {
        if (!options.unsafe) delete O[key];
        else if (O[key]) simple = true;
      } catch (error2) {
      }
      if (simple) O[key] = value;
      else definePropertyModule$a.f(O, key, {
        value,
        enumerable: false,
        configurable: !options.nonConfigurable,
        writable: !options.nonWritable
      });
    }
    return O;
  };
  var objectGetOwnPropertyNames = {};
  var ceil$1 = Math.ceil;
  var floor$9 = Math.floor;
  var mathTrunc = Math.trunc || function trunc(x) {
    var n = +x;
    return (n > 0 ? floor$9 : ceil$1)(n);
  };
  var trunc$1 = mathTrunc;
  var toIntegerOrInfinity$f = function toIntegerOrInfinity(argument) {
    var number = +argument;
    return number !== number || number === 0 ? 0 : trunc$1(number);
  };
  var toIntegerOrInfinity$e = toIntegerOrInfinity$f;
  var max$5 = Math.max;
  var min$8 = Math.min;
  var toAbsoluteIndex$8 = function toAbsoluteIndex(index2, length) {
    var integer = toIntegerOrInfinity$e(index2);
    return integer < 0 ? max$5(integer + length, 0) : min$8(integer, length);
  };
  var toIntegerOrInfinity$d = toIntegerOrInfinity$f;
  var min$7 = Math.min;
  var toLength$d = function toLength(argument) {
    var len = toIntegerOrInfinity$d(argument);
    return len > 0 ? min$7(len, 9007199254740991) : 0;
  };
  var toLength$c = toLength$d;
  var lengthOfArrayLike$m = function lengthOfArrayLike(obj) {
    return toLength$c(obj.length);
  };
  var toIndexedObject$d = toIndexedObject$f;
  var toAbsoluteIndex$7 = toAbsoluteIndex$8;
  var lengthOfArrayLike$l = lengthOfArrayLike$m;
  var createMethod$6 = function createMethod(IS_INCLUDES) {
    return function($this, el, fromIndex) {
      var O = toIndexedObject$d($this);
      var length = lengthOfArrayLike$l(O);
      if (length === 0) return !IS_INCLUDES && -1;
      var index2 = toAbsoluteIndex$7(fromIndex, length);
      var value;
      if (IS_INCLUDES && el !== el) while (length > index2) {
        value = O[index2++];
        if (value !== value) return true;
      }
      else for (; length > index2; index2++) {
        if ((IS_INCLUDES || index2 in O) && O[index2] === el) return IS_INCLUDES || index2 || 0;
      }
      return !IS_INCLUDES && -1;
    };
  };
  var arrayIncludes = {
    // `Array.prototype.includes` method
    // https://tc39.es/ecma262/#sec-array.prototype.includes
    includes: createMethod$6(true),
    // `Array.prototype.indexOf` method
    // https://tc39.es/ecma262/#sec-array.prototype.indexof
    indexOf: createMethod$6(false)
  };
  var uncurryThis$18 = functionUncurryThis;
  var hasOwn$m = hasOwnProperty_1;
  var toIndexedObject$c = toIndexedObject$f;
  var indexOf$2 = arrayIncludes.indexOf;
  var hiddenKeys$4 = hiddenKeys$6;
  var push$h = uncurryThis$18([].push);
  var objectKeysInternal = function objectKeysInternal2(object, names) {
    var O = toIndexedObject$c(object);
    var i = 0;
    var result = [];
    var key;
    for (key in O) !hasOwn$m(hiddenKeys$4, key) && hasOwn$m(O, key) && push$h(result, key);
    while (names.length > i) if (hasOwn$m(O, key = names[i++])) {
      ~indexOf$2(result, key) || push$h(result, key);
    }
    return result;
  };
  var enumBugKeys$3 = ["constructor", "hasOwnProperty", "isPrototypeOf", "propertyIsEnumerable", "toLocaleString", "toString", "valueOf"];
  var internalObjectKeys$1 = objectKeysInternal;
  var enumBugKeys$2 = enumBugKeys$3;
  var hiddenKeys$3 = enumBugKeys$2.concat("length", "prototype");
  objectGetOwnPropertyNames.f = Object.getOwnPropertyNames || function getOwnPropertyNames(O) {
    return internalObjectKeys$1(O, hiddenKeys$3);
  };
  var objectGetOwnPropertySymbols = {};
  objectGetOwnPropertySymbols.f = Object.getOwnPropertySymbols;
  var getBuiltIn$l = getBuiltIn$n;
  var uncurryThis$17 = functionUncurryThis;
  var getOwnPropertyNamesModule$2 = objectGetOwnPropertyNames;
  var getOwnPropertySymbolsModule$3 = objectGetOwnPropertySymbols;
  var anObject$L = anObject$N;
  var concat$4 = uncurryThis$17([].concat);
  var ownKeys$3 = getBuiltIn$l("Reflect", "ownKeys") || function ownKeys(it) {
    var keys6 = getOwnPropertyNamesModule$2.f(anObject$L(it));
    var getOwnPropertySymbols2 = getOwnPropertySymbolsModule$3.f;
    return getOwnPropertySymbols2 ? concat$4(keys6, getOwnPropertySymbols2(it)) : keys6;
  };
  var hasOwn$l = hasOwnProperty_1;
  var ownKeys$2 = ownKeys$3;
  var getOwnPropertyDescriptorModule$6 = objectGetOwnPropertyDescriptor;
  var definePropertyModule$9 = objectDefineProperty;
  var copyConstructorProperties$5 = function copyConstructorProperties(target, source, exceptions) {
    var keys6 = ownKeys$2(source);
    var defineProperty7 = definePropertyModule$9.f;
    var getOwnPropertyDescriptor7 = getOwnPropertyDescriptorModule$6.f;
    for (var i = 0; i < keys6.length; i++) {
      var key = keys6[i];
      if (!hasOwn$l(target, key) && !(exceptions && hasOwn$l(exceptions, key))) {
        defineProperty7(target, key, getOwnPropertyDescriptor7(source, key));
      }
    }
  };
  var fails$16 = fails$1e;
  var isCallable$p = isCallable$z;
  var replacement = /#|\.prototype\./;
  var isForced$5 = function isForced(feature, detection) {
    var value = data[normalize(feature)];
    return value === POLYFILL ? true : value === NATIVE ? false : isCallable$p(detection) ? fails$16(detection) : !!detection;
  };
  var normalize = isForced$5.normalize = function(string) {
    return String(string).replace(replacement, ".").toLowerCase();
  };
  var data = isForced$5.data = {};
  var NATIVE = isForced$5.NATIVE = "N";
  var POLYFILL = isForced$5.POLYFILL = "P";
  var isForced_1 = isForced$5;
  var globalThis$L = globalThis_1;
  var getOwnPropertyDescriptor$9 = objectGetOwnPropertyDescriptor.f;
  var createNonEnumerableProperty$b = createNonEnumerableProperty$d;
  var defineBuiltIn$k = defineBuiltIn$l;
  var defineGlobalProperty2 = defineGlobalProperty$3;
  var copyConstructorProperties$4 = copyConstructorProperties$5;
  var isForced$4 = isForced_1;
  var _export = function _export2(options, source) {
    var TARGET = options.target;
    var GLOBAL = options.global;
    var STATIC = options.stat;
    var FORCED2, target, key, targetProperty, sourceProperty, descriptor2;
    if (GLOBAL) {
      target = globalThis$L;
    } else if (STATIC) {
      target = globalThis$L[TARGET] || defineGlobalProperty2(TARGET, {});
    } else {
      target = globalThis$L[TARGET] && globalThis$L[TARGET].prototype;
    }
    if (target) for (key in source) {
      sourceProperty = source[key];
      if (options.dontCallGetSet) {
        descriptor2 = getOwnPropertyDescriptor$9(target, key);
        targetProperty = descriptor2 && descriptor2.value;
      } else targetProperty = target[key];
      FORCED2 = isForced$4(GLOBAL ? key : TARGET + (STATIC ? "." : "#") + key, options.forced);
      if (!FORCED2 && targetProperty !== void 0) {
        if (_typeof(sourceProperty) == _typeof(targetProperty)) continue;
        copyConstructorProperties$4(sourceProperty, targetProperty);
      }
      if (options.sham || targetProperty && targetProperty.sham) {
        createNonEnumerableProperty$b(sourceProperty, "sham", true);
      }
      defineBuiltIn$k(target, key, sourceProperty, options);
    }
  };
  var wellKnownSymbol$A = wellKnownSymbol$C;
  var TO_STRING_TAG$4 = wellKnownSymbol$A("toStringTag");
  var test$2 = {};
  test$2[TO_STRING_TAG$4] = "z";
  var toStringTagSupport = String(test$2) === "[object z]";
  var TO_STRING_TAG_SUPPORT$2 = toStringTagSupport;
  var isCallable$o = isCallable$z;
  var classofRaw$1 = classofRaw$2;
  var wellKnownSymbol$z = wellKnownSymbol$C;
  var TO_STRING_TAG$3 = wellKnownSymbol$z("toStringTag");
  var $Object$5 = Object;
  var CORRECT_ARGUMENTS = classofRaw$1(/* @__PURE__ */ function() {
    return arguments;
  }()) === "Arguments";
  var tryGet = function tryGet2(it, key) {
    try {
      return it[key];
    } catch (error2) {
    }
  };
  var classof$j = TO_STRING_TAG_SUPPORT$2 ? classofRaw$1 : function(it) {
    var O, tag, result;
    return it === void 0 ? "Undefined" : it === null ? "Null" : typeof (tag = tryGet(O = $Object$5(it), TO_STRING_TAG$3)) == "string" ? tag : CORRECT_ARGUMENTS ? classofRaw$1(O) : (result = classofRaw$1(O)) === "Object" && isCallable$o(O.callee) ? "Arguments" : result;
  };
  var classof$i = classof$j;
  var $String$3 = String;
  var toString$t = function toString2(argument) {
    if (classof$i(argument) === "Symbol") throw new TypeError("Cannot convert a Symbol value to a string");
    return $String$3(argument);
  };
  var objectDefineProperties = {};
  var internalObjectKeys = objectKeysInternal;
  var enumBugKeys$1 = enumBugKeys$3;
  var objectKeys$4 = Object.keys || function keys(O) {
    return internalObjectKeys(O, enumBugKeys$1);
  };
  var DESCRIPTORS$z = descriptors;
  var V8_PROTOTYPE_DEFINE_BUG = v8PrototypeDefineBug;
  var definePropertyModule$8 = objectDefineProperty;
  var anObject$K = anObject$N;
  var toIndexedObject$b = toIndexedObject$f;
  var objectKeys$3 = objectKeys$4;
  objectDefineProperties.f = DESCRIPTORS$z && !V8_PROTOTYPE_DEFINE_BUG ? Object.defineProperties : function defineProperties(O, Properties) {
    anObject$K(O);
    var props = toIndexedObject$b(Properties);
    var keys6 = objectKeys$3(Properties);
    var length = keys6.length;
    var index2 = 0;
    var key;
    while (length > index2) definePropertyModule$8.f(O, key = keys6[index2++], props[key]);
    return O;
  };
  var getBuiltIn$k = getBuiltIn$n;
  var html$2 = getBuiltIn$k("document", "documentElement");
  var anObject$J = anObject$N;
  var definePropertiesModule$1 = objectDefineProperties;
  var enumBugKeys = enumBugKeys$3;
  var hiddenKeys$2 = hiddenKeys$6;
  var html$1 = html$2;
  var documentCreateElement$1 = documentCreateElement$2;
  var sharedKey$2 = sharedKey$4;
  var GT = ">";
  var LT = "<";
  var PROTOTYPE$2 = "prototype";
  var SCRIPT = "script";
  var IE_PROTO$1 = sharedKey$2("IE_PROTO");
  var EmptyConstructor = function EmptyConstructor2() {
  };
  var scriptTag = function scriptTag2(content) {
    return LT + SCRIPT + GT + content + LT + "/" + SCRIPT + GT;
  };
  var NullProtoObjectViaActiveX = function NullProtoObjectViaActiveX2(activeXDocument2) {
    activeXDocument2.write(scriptTag(""));
    activeXDocument2.close();
    var temp = activeXDocument2.parentWindow.Object;
    activeXDocument2 = null;
    return temp;
  };
  var NullProtoObjectViaIFrame = function NullProtoObjectViaIFrame2() {
    var iframe = documentCreateElement$1("iframe");
    var JS = "java" + SCRIPT + ":";
    var iframeDocument;
    iframe.style.display = "none";
    html$1.appendChild(iframe);
    iframe.src = String(JS);
    iframeDocument = iframe.contentWindow.document;
    iframeDocument.open();
    iframeDocument.write(scriptTag("document.F=Object"));
    iframeDocument.close();
    return iframeDocument.F;
  };
  var activeXDocument;
  var _NullProtoObject = function NullProtoObject() {
    try {
      activeXDocument = new ActiveXObject("htmlfile");
    } catch (error2) {
    }
    _NullProtoObject = typeof document != "undefined" ? document.domain && activeXDocument ? NullProtoObjectViaActiveX(activeXDocument) : NullProtoObjectViaIFrame() : NullProtoObjectViaActiveX(activeXDocument);
    var length = enumBugKeys.length;
    while (length--) delete _NullProtoObject[PROTOTYPE$2][enumBugKeys[length]];
    return _NullProtoObject();
  };
  hiddenKeys$2[IE_PROTO$1] = true;
  var objectCreate = Object.create || function create(O, Properties) {
    var result;
    if (O !== null) {
      EmptyConstructor[PROTOTYPE$2] = anObject$J(O);
      result = new EmptyConstructor();
      EmptyConstructor[PROTOTYPE$2] = null;
      result[IE_PROTO$1] = O;
    } else result = _NullProtoObject();
    return Properties === void 0 ? result : definePropertiesModule$1.f(result, Properties);
  };
  var objectGetOwnPropertyNamesExternal = {};
  var uncurryThis$16 = functionUncurryThis;
  var arraySlice$a = uncurryThis$16([].slice);
  var classof$h = classofRaw$2;
  var toIndexedObject$a = toIndexedObject$f;
  var $getOwnPropertyNames$1 = objectGetOwnPropertyNames.f;
  var arraySlice$9 = arraySlice$a;
  var windowNames = (typeof window === "undefined" ? "undefined" : _typeof(window)) == "object" && window && Object.getOwnPropertyNames ? Object.getOwnPropertyNames(window) : [];
  var getWindowNames = function getWindowNames2(it) {
    try {
      return $getOwnPropertyNames$1(it);
    } catch (error2) {
      return arraySlice$9(windowNames);
    }
  };
  objectGetOwnPropertyNamesExternal.f = function getOwnPropertyNames2(it) {
    return windowNames && classof$h(it) === "Window" ? getWindowNames(it) : $getOwnPropertyNames$1(toIndexedObject$a(it));
  };
  var makeBuiltIn$1 = makeBuiltInExports;
  var defineProperty$a = objectDefineProperty;
  var defineBuiltInAccessor$e = function defineBuiltInAccessor(target, name2, descriptor2) {
    if (descriptor2.get) makeBuiltIn$1(descriptor2.get, name2, {
      getter: true
    });
    if (descriptor2.set) makeBuiltIn$1(descriptor2.set, name2, {
      setter: true
    });
    return defineProperty$a.f(target, name2, descriptor2);
  };
  var wellKnownSymbolWrapped = {};
  var wellKnownSymbol$y = wellKnownSymbol$C;
  wellKnownSymbolWrapped.f = wellKnownSymbol$y;
  var globalThis$K = globalThis_1;
  var path$2 = globalThis$K;
  var path$1 = path$2;
  var hasOwn$k = hasOwnProperty_1;
  var wrappedWellKnownSymbolModule$1 = wellKnownSymbolWrapped;
  var defineProperty$9 = objectDefineProperty.f;
  var wellKnownSymbolDefine = function wellKnownSymbolDefine2(NAME2) {
    var _Symbol2 = path$1.Symbol || (path$1.Symbol = {});
    if (!hasOwn$k(_Symbol2, NAME2)) defineProperty$9(_Symbol2, NAME2, {
      value: wrappedWellKnownSymbolModule$1.f(NAME2)
    });
  };
  var call$I = functionCall;
  var getBuiltIn$j = getBuiltIn$n;
  var wellKnownSymbol$x = wellKnownSymbol$C;
  var defineBuiltIn$j = defineBuiltIn$l;
  var symbolDefineToPrimitive = function symbolDefineToPrimitive2() {
    var _Symbol2 = getBuiltIn$j("Symbol");
    var SymbolPrototype2 = _Symbol2 && _Symbol2.prototype;
    var valueOf = SymbolPrototype2 && SymbolPrototype2.valueOf;
    var TO_PRIMITIVE2 = wellKnownSymbol$x("toPrimitive");
    if (SymbolPrototype2 && !SymbolPrototype2[TO_PRIMITIVE2]) {
      defineBuiltIn$j(SymbolPrototype2, TO_PRIMITIVE2, function(hint) {
        return call$I(valueOf, this);
      }, {
        arity: 1
      });
    }
  };
  var defineProperty$8 = objectDefineProperty.f;
  var hasOwn$j = hasOwnProperty_1;
  var wellKnownSymbol$w = wellKnownSymbol$C;
  var TO_STRING_TAG$2 = wellKnownSymbol$w("toStringTag");
  var setToStringTag$c = function setToStringTag(target, TAG, STATIC) {
    if (target && !STATIC) target = target.prototype;
    if (target && !hasOwn$j(target, TO_STRING_TAG$2)) {
      defineProperty$8(target, TO_STRING_TAG$2, {
        configurable: true,
        value: TAG
      });
    }
  };
  var classofRaw2 = classofRaw$2;
  var uncurryThis$15 = functionUncurryThis;
  var functionUncurryThisClause = function functionUncurryThisClause2(fn) {
    if (classofRaw2(fn) === "Function") return uncurryThis$15(fn);
  };
  var uncurryThis$14 = functionUncurryThisClause;
  var aCallable$q = aCallable$s;
  var NATIVE_BIND$2 = functionBindNative;
  var bind$q = uncurryThis$14(uncurryThis$14.bind);
  var functionBindContext = function functionBindContext2(fn, that) {
    aCallable$q(fn);
    return that === void 0 ? fn : NATIVE_BIND$2 ? bind$q(fn, that) : function() {
      return fn.apply(that, arguments);
    };
  };
  var classof$g = classofRaw$2;
  var isArray$9 = Array.isArray || function isArray3(argument) {
    return classof$g(argument) === "Array";
  };
  var uncurryThis$13 = functionUncurryThis;
  var fails$15 = fails$1e;
  var isCallable$n = isCallable$z;
  var classof$f = classof$j;
  var getBuiltIn$i = getBuiltIn$n;
  var inspectSource$1 = inspectSource$3;
  var noop = function noop2() {
  };
  var construct$1 = getBuiltIn$i("Reflect", "construct");
  var constructorRegExp = /^\s*(?:class|function)\b/;
  var exec$8 = uncurryThis$13(constructorRegExp.exec);
  var INCORRECT_TO_STRING = !constructorRegExp.test(noop);
  var isConstructorModern = function isConstructor(argument) {
    if (!isCallable$n(argument)) return false;
    try {
      construct$1(noop, [], argument);
      return true;
    } catch (error2) {
      return false;
    }
  };
  var isConstructorLegacy = function isConstructor2(argument) {
    if (!isCallable$n(argument)) return false;
    switch (classof$f(argument)) {
      case "AsyncFunction":
      case "GeneratorFunction":
      case "AsyncGeneratorFunction":
        return false;
    }
    try {
      return INCORRECT_TO_STRING || !!exec$8(constructorRegExp, inspectSource$1(argument));
    } catch (error2) {
      return true;
    }
  };
  isConstructorLegacy.sham = true;
  var isConstructor$7 = !construct$1 || fails$15(function() {
    var called2;
    return isConstructorModern(isConstructorModern.call) || !isConstructorModern(Object) || !isConstructorModern(function() {
      called2 = true;
    }) || called2;
  }) ? isConstructorLegacy : isConstructorModern;
  var isArray$8 = isArray$9;
  var isConstructor$6 = isConstructor$7;
  var isObject$C = isObject$I;
  var wellKnownSymbol$v = wellKnownSymbol$C;
  var SPECIES$6 = wellKnownSymbol$v("species");
  var $Array$4 = Array;
  var arraySpeciesConstructor$1 = function arraySpeciesConstructor(originalArray) {
    var C;
    if (isArray$8(originalArray)) {
      C = originalArray.constructor;
      if (isConstructor$6(C) && (C === $Array$4 || isArray$8(C.prototype))) C = void 0;
      else if (isObject$C(C)) {
        C = C[SPECIES$6];
        if (C === null) C = void 0;
      }
    }
    return C === void 0 ? $Array$4 : C;
  };
  var arraySpeciesConstructor2 = arraySpeciesConstructor$1;
  var arraySpeciesCreate$5 = function arraySpeciesCreate(originalArray, length) {
    return new (arraySpeciesConstructor2(originalArray))(length === 0 ? 0 : length);
  };
  var bind$p = functionBindContext;
  var uncurryThis$12 = functionUncurryThis;
  var IndexedObject$3 = indexedObject;
  var toObject$q = toObject$s;
  var lengthOfArrayLike$k = lengthOfArrayLike$m;
  var arraySpeciesCreate$4 = arraySpeciesCreate$5;
  var push$g = uncurryThis$12([].push);
  var createMethod$5 = function createMethod2(TYPE) {
    var IS_MAP = TYPE === 1;
    var IS_FILTER = TYPE === 2;
    var IS_SOME = TYPE === 3;
    var IS_EVERY = TYPE === 4;
    var IS_FIND_INDEX = TYPE === 6;
    var IS_FILTER_REJECT = TYPE === 7;
    var NO_HOLES = TYPE === 5 || IS_FIND_INDEX;
    return function($this, callbackfn, that, specificCreate) {
      var O = toObject$q($this);
      var self2 = IndexedObject$3(O);
      var length = lengthOfArrayLike$k(self2);
      var boundFunction = bind$p(callbackfn, that);
      var index2 = 0;
      var create5 = specificCreate || arraySpeciesCreate$4;
      var target = IS_MAP ? create5($this, length) : IS_FILTER || IS_FILTER_REJECT ? create5($this, 0) : void 0;
      var value, result;
      for (; length > index2; index2++) if (NO_HOLES || index2 in self2) {
        value = self2[index2];
        result = boundFunction(value, index2, O);
        if (TYPE) {
          if (IS_MAP) target[index2] = result;
          else if (result) switch (TYPE) {
            case 3:
              return true;
            case 5:
              return value;
            case 6:
              return index2;
            case 2:
              push$g(target, value);
          }
          else switch (TYPE) {
            case 4:
              return false;
            case 7:
              push$g(target, value);
          }
        }
      }
      return IS_FIND_INDEX ? -1 : IS_SOME || IS_EVERY ? IS_EVERY : target;
    };
  };
  var arrayIteration = {
    // `Array.prototype.forEach` method
    // https://tc39.es/ecma262/#sec-array.prototype.foreach
    forEach: createMethod$5(0),
    // `Array.prototype.map` method
    // https://tc39.es/ecma262/#sec-array.prototype.map
    map: createMethod$5(1),
    // `Array.prototype.filter` method
    // https://tc39.es/ecma262/#sec-array.prototype.filter
    filter: createMethod$5(2),
    // `Array.prototype.some` method
    // https://tc39.es/ecma262/#sec-array.prototype.some
    some: createMethod$5(3),
    // `Array.prototype.every` method
    // https://tc39.es/ecma262/#sec-array.prototype.every
    every: createMethod$5(4),
    // `Array.prototype.find` method
    // https://tc39.es/ecma262/#sec-array.prototype.find
    find: createMethod$5(5),
    // `Array.prototype.findIndex` method
    // https://tc39.es/ecma262/#sec-array.prototype.findIndex
    findIndex: createMethod$5(6)
  };
  var $$3E = _export;
  var globalThis$J = globalThis_1;
  var call$H = functionCall;
  var uncurryThis$11 = functionUncurryThis;
  var DESCRIPTORS$y = descriptors;
  var NATIVE_SYMBOL$4 = symbolConstructorDetection;
  var fails$14 = fails$1e;
  var hasOwn$i = hasOwnProperty_1;
  var isPrototypeOf$a = objectIsPrototypeOf;
  var anObject$I = anObject$N;
  var toIndexedObject$9 = toIndexedObject$f;
  var toPropertyKey$4 = toPropertyKey$7;
  var $toString$3 = toString$t;
  var createPropertyDescriptor$7 = createPropertyDescriptor$a;
  var nativeObjectCreate = objectCreate;
  var objectKeys$2 = objectKeys$4;
  var getOwnPropertyNamesModule$1 = objectGetOwnPropertyNames;
  var getOwnPropertyNamesExternal = objectGetOwnPropertyNamesExternal;
  var getOwnPropertySymbolsModule$2 = objectGetOwnPropertySymbols;
  var getOwnPropertyDescriptorModule$5 = objectGetOwnPropertyDescriptor;
  var definePropertyModule$7 = objectDefineProperty;
  var definePropertiesModule = objectDefineProperties;
  var propertyIsEnumerableModule$1 = objectPropertyIsEnumerable;
  var defineBuiltIn$i = defineBuiltIn$l;
  var defineBuiltInAccessor$d = defineBuiltInAccessor$e;
  var shared$4 = shared$8;
  var sharedKey$1 = sharedKey$4;
  var hiddenKeys$1 = hiddenKeys$6;
  var uid$2 = uid$5;
  var wellKnownSymbol$u = wellKnownSymbol$C;
  var wrappedWellKnownSymbolModule = wellKnownSymbolWrapped;
  var defineWellKnownSymbol$f = wellKnownSymbolDefine;
  var defineSymbolToPrimitive$1 = symbolDefineToPrimitive;
  var setToStringTag$b = setToStringTag$c;
  var InternalStateModule$e = internalState;
  var $forEach$2 = arrayIteration.forEach;
  var HIDDEN = sharedKey$1("hidden");
  var SYMBOL = "Symbol";
  var PROTOTYPE$1 = "prototype";
  var setInternalState$d = InternalStateModule$e.set;
  var getInternalState$8 = InternalStateModule$e.getterFor(SYMBOL);
  var ObjectPrototype$4 = Object[PROTOTYPE$1];
  var $Symbol = globalThis$J.Symbol;
  var SymbolPrototype$1 = $Symbol && $Symbol[PROTOTYPE$1];
  var RangeError$4 = globalThis$J.RangeError;
  var TypeError$6 = globalThis$J.TypeError;
  var QObject = globalThis$J.QObject;
  var nativeGetOwnPropertyDescriptor$2 = getOwnPropertyDescriptorModule$5.f;
  var nativeDefineProperty$1 = definePropertyModule$7.f;
  var nativeGetOwnPropertyNames = getOwnPropertyNamesExternal.f;
  var nativePropertyIsEnumerable = propertyIsEnumerableModule$1.f;
  var push$f = uncurryThis$11([].push);
  var AllSymbols = shared$4("symbols");
  var ObjectPrototypeSymbols = shared$4("op-symbols");
  var WellKnownSymbolsStore = shared$4("wks");
  var USE_SETTER = !QObject || !QObject[PROTOTYPE$1] || !QObject[PROTOTYPE$1].findChild;
  var fallbackDefineProperty = function fallbackDefineProperty2(O, P2, Attributes) {
    var ObjectPrototypeDescriptor = nativeGetOwnPropertyDescriptor$2(ObjectPrototype$4, P2);
    if (ObjectPrototypeDescriptor) delete ObjectPrototype$4[P2];
    nativeDefineProperty$1(O, P2, Attributes);
    if (ObjectPrototypeDescriptor && O !== ObjectPrototype$4) {
      nativeDefineProperty$1(ObjectPrototype$4, P2, ObjectPrototypeDescriptor);
    }
  };
  var setSymbolDescriptor = DESCRIPTORS$y && fails$14(function() {
    return nativeObjectCreate(nativeDefineProperty$1({}, "a", {
      get: function get6() {
        return nativeDefineProperty$1(this, "a", {
          value: 7
        }).a;
      }
    })).a !== 7;
  }) ? fallbackDefineProperty : nativeDefineProperty$1;
  var wrap = function wrap2(tag, description) {
    var symbol = AllSymbols[tag] = nativeObjectCreate(SymbolPrototype$1);
    setInternalState$d(symbol, {
      type: SYMBOL,
      tag,
      description
    });
    if (!DESCRIPTORS$y) symbol.description = description;
    return symbol;
  };
  var $defineProperty = function defineProperty3(O, P2, Attributes) {
    if (O === ObjectPrototype$4) $defineProperty(ObjectPrototypeSymbols, P2, Attributes);
    anObject$I(O);
    var key = toPropertyKey$4(P2);
    anObject$I(Attributes);
    if (hasOwn$i(AllSymbols, key)) {
      if (!Attributes.enumerable) {
        if (!hasOwn$i(O, HIDDEN)) nativeDefineProperty$1(O, HIDDEN, createPropertyDescriptor$7(1, nativeObjectCreate(null)));
        O[HIDDEN][key] = true;
      } else {
        if (hasOwn$i(O, HIDDEN) && O[HIDDEN][key]) O[HIDDEN][key] = false;
        Attributes = nativeObjectCreate(Attributes, {
          enumerable: createPropertyDescriptor$7(0, false)
        });
      }
      return setSymbolDescriptor(O, key, Attributes);
    }
    return nativeDefineProperty$1(O, key, Attributes);
  };
  var $defineProperties = function defineProperties2(O, Properties) {
    anObject$I(O);
    var properties = toIndexedObject$9(Properties);
    var keys6 = objectKeys$2(properties).concat($getOwnPropertySymbols(properties));
    $forEach$2(keys6, function(key) {
      if (!DESCRIPTORS$y || call$H($propertyIsEnumerable$1, properties, key)) $defineProperty(O, key, properties[key]);
    });
    return O;
  };
  var $create = function create2(O, Properties) {
    return Properties === void 0 ? nativeObjectCreate(O) : $defineProperties(nativeObjectCreate(O), Properties);
  };
  var $propertyIsEnumerable$1 = function propertyIsEnumerable2(V) {
    var P2 = toPropertyKey$4(V);
    var enumerable = call$H(nativePropertyIsEnumerable, this, P2);
    if (this === ObjectPrototype$4 && hasOwn$i(AllSymbols, P2) && !hasOwn$i(ObjectPrototypeSymbols, P2)) return false;
    return enumerable || !hasOwn$i(this, P2) || !hasOwn$i(AllSymbols, P2) || hasOwn$i(this, HIDDEN) && this[HIDDEN][P2] ? enumerable : true;
  };
  var $getOwnPropertyDescriptor = function getOwnPropertyDescriptor2(O, P2) {
    var it = toIndexedObject$9(O);
    var key = toPropertyKey$4(P2);
    if (it === ObjectPrototype$4 && hasOwn$i(AllSymbols, key) && !hasOwn$i(ObjectPrototypeSymbols, key)) return;
    var descriptor2 = nativeGetOwnPropertyDescriptor$2(it, key);
    if (descriptor2 && hasOwn$i(AllSymbols, key) && !(hasOwn$i(it, HIDDEN) && it[HIDDEN][key])) {
      descriptor2.enumerable = true;
    }
    return descriptor2;
  };
  var $getOwnPropertyNames = function getOwnPropertyNames3(O) {
    var names = nativeGetOwnPropertyNames(toIndexedObject$9(O));
    var result = [];
    $forEach$2(names, function(key) {
      if (!hasOwn$i(AllSymbols, key) && !hasOwn$i(hiddenKeys$1, key)) push$f(result, key);
    });
    return result;
  };
  var $getOwnPropertySymbols = function $getOwnPropertySymbols2(O) {
    var IS_OBJECT_PROTOTYPE = O === ObjectPrototype$4;
    var names = nativeGetOwnPropertyNames(IS_OBJECT_PROTOTYPE ? ObjectPrototypeSymbols : toIndexedObject$9(O));
    var result = [];
    $forEach$2(names, function(key) {
      if (hasOwn$i(AllSymbols, key) && (!IS_OBJECT_PROTOTYPE || hasOwn$i(ObjectPrototype$4, key))) {
        push$f(result, AllSymbols[key]);
      }
    });
    return result;
  };
  if (!NATIVE_SYMBOL$4) {
    $Symbol = function _Symbol2() {
      if (isPrototypeOf$a(SymbolPrototype$1, this)) throw new TypeError$6("Symbol is not a constructor");
      var description = !arguments.length || arguments[0] === void 0 ? void 0 : $toString$3(arguments[0]);
      var tag = uid$2(description);
      var _setter = function setter(value) {
        var $this = this === void 0 ? globalThis$J : this;
        if ($this === ObjectPrototype$4) call$H(_setter, ObjectPrototypeSymbols, value);
        if (hasOwn$i($this, HIDDEN) && hasOwn$i($this[HIDDEN], tag)) $this[HIDDEN][tag] = false;
        var descriptor2 = createPropertyDescriptor$7(1, value);
        try {
          setSymbolDescriptor($this, tag, descriptor2);
        } catch (error2) {
          if (!(error2 instanceof RangeError$4)) throw error2;
          fallbackDefineProperty($this, tag, descriptor2);
        }
      };
      if (DESCRIPTORS$y && USE_SETTER) setSymbolDescriptor(ObjectPrototype$4, tag, {
        configurable: true,
        set: _setter
      });
      return wrap(tag, description);
    };
    SymbolPrototype$1 = $Symbol[PROTOTYPE$1];
    defineBuiltIn$i(SymbolPrototype$1, "toString", function toString7() {
      return getInternalState$8(this).tag;
    });
    defineBuiltIn$i($Symbol, "withoutSetter", function(description) {
      return wrap(uid$2(description), description);
    });
    propertyIsEnumerableModule$1.f = $propertyIsEnumerable$1;
    definePropertyModule$7.f = $defineProperty;
    definePropertiesModule.f = $defineProperties;
    getOwnPropertyDescriptorModule$5.f = $getOwnPropertyDescriptor;
    getOwnPropertyNamesModule$1.f = getOwnPropertyNamesExternal.f = $getOwnPropertyNames;
    getOwnPropertySymbolsModule$2.f = $getOwnPropertySymbols;
    wrappedWellKnownSymbolModule.f = function(name2) {
      return wrap(wellKnownSymbol$u(name2), name2);
    };
    if (DESCRIPTORS$y) {
      defineBuiltInAccessor$d(SymbolPrototype$1, "description", {
        configurable: true,
        get: function description() {
          return getInternalState$8(this).description;
        }
      });
      {
        defineBuiltIn$i(ObjectPrototype$4, "propertyIsEnumerable", $propertyIsEnumerable$1, {
          unsafe: true
        });
      }
    }
  }
  $$3E({
    global: true,
    constructor: true,
    wrap: true,
    forced: !NATIVE_SYMBOL$4,
    sham: !NATIVE_SYMBOL$4
  }, {
    Symbol: $Symbol
  });
  $forEach$2(objectKeys$2(WellKnownSymbolsStore), function(name2) {
    defineWellKnownSymbol$f(name2);
  });
  $$3E({
    target: SYMBOL,
    stat: true,
    forced: !NATIVE_SYMBOL$4
  }, {
    useSetter: function useSetter() {
      USE_SETTER = true;
    },
    useSimple: function useSimple() {
      USE_SETTER = false;
    }
  });
  $$3E({
    target: "Object",
    stat: true,
    forced: !NATIVE_SYMBOL$4,
    sham: !DESCRIPTORS$y
  }, {
    // `Object.create` method
    // https://tc39.es/ecma262/#sec-object.create
    create: $create,
    // `Object.defineProperty` method
    // https://tc39.es/ecma262/#sec-object.defineproperty
    defineProperty: $defineProperty,
    // `Object.defineProperties` method
    // https://tc39.es/ecma262/#sec-object.defineproperties
    defineProperties: $defineProperties,
    // `Object.getOwnPropertyDescriptor` method
    // https://tc39.es/ecma262/#sec-object.getownpropertydescriptors
    getOwnPropertyDescriptor: $getOwnPropertyDescriptor
  });
  $$3E({
    target: "Object",
    stat: true,
    forced: !NATIVE_SYMBOL$4
  }, {
    // `Object.getOwnPropertyNames` method
    // https://tc39.es/ecma262/#sec-object.getownpropertynames
    getOwnPropertyNames: $getOwnPropertyNames
  });
  defineSymbolToPrimitive$1();
  setToStringTag$b($Symbol, SYMBOL);
  hiddenKeys$1[HIDDEN] = true;
  var NATIVE_SYMBOL$3 = symbolConstructorDetection;
  var symbolRegistryDetection = NATIVE_SYMBOL$3 && !!Symbol["for"] && !!Symbol.keyFor;
  var $$3D = _export;
  var getBuiltIn$h = getBuiltIn$n;
  var hasOwn$h = hasOwnProperty_1;
  var toString$s = toString$t;
  var shared$3 = shared$8;
  var NATIVE_SYMBOL_REGISTRY$1 = symbolRegistryDetection;
  var StringToSymbolRegistry = shared$3("string-to-symbol-registry");
  var SymbolToStringRegistry$1 = shared$3("symbol-to-string-registry");
  $$3D({
    target: "Symbol",
    stat: true,
    forced: !NATIVE_SYMBOL_REGISTRY$1
  }, {
    "for": function _for(key) {
      var string = toString$s(key);
      if (hasOwn$h(StringToSymbolRegistry, string)) return StringToSymbolRegistry[string];
      var symbol = getBuiltIn$h("Symbol")(string);
      StringToSymbolRegistry[string] = symbol;
      SymbolToStringRegistry$1[symbol] = string;
      return symbol;
    }
  });
  var $$3C = _export;
  var hasOwn$g = hasOwnProperty_1;
  var isSymbol$3 = isSymbol$6;
  var tryToString$5 = tryToString$7;
  var shared$2 = shared$8;
  var NATIVE_SYMBOL_REGISTRY = symbolRegistryDetection;
  var SymbolToStringRegistry = shared$2("symbol-to-string-registry");
  $$3C({
    target: "Symbol",
    stat: true,
    forced: !NATIVE_SYMBOL_REGISTRY
  }, {
    keyFor: function keyFor(sym) {
      if (!isSymbol$3(sym)) throw new TypeError(tryToString$5(sym) + " is not a symbol");
      if (hasOwn$g(SymbolToStringRegistry, sym)) return SymbolToStringRegistry[sym];
    }
  });
  var NATIVE_BIND$1 = functionBindNative;
  var FunctionPrototype$2 = Function.prototype;
  var apply$b = FunctionPrototype$2.apply;
  var call$G = FunctionPrototype$2.call;
  var functionApply$1 = (typeof Reflect === "undefined" ? "undefined" : _typeof(Reflect)) == "object" && Reflect.apply || (NATIVE_BIND$1 ? call$G.bind(apply$b) : function() {
    return call$G.apply(apply$b, arguments);
  });
  var uncurryThis$10 = functionUncurryThis;
  var isArray$7 = isArray$9;
  var isCallable$m = isCallable$z;
  var classof$e = classofRaw$2;
  var toString$r = toString$t;
  var push$e = uncurryThis$10([].push);
  var getJsonReplacerFunction = function getJsonReplacerFunction2(replacer3) {
    if (isCallable$m(replacer3)) return replacer3;
    if (!isArray$7(replacer3)) return;
    var rawLength = replacer3.length;
    var keys6 = [];
    for (var i = 0; i < rawLength; i++) {
      var element = replacer3[i];
      if (typeof element == "string") push$e(keys6, element);
      else if (typeof element == "number" || classof$e(element) === "Number" || classof$e(element) === "String") push$e(keys6, toString$r(element));
    }
    var keysLength = keys6.length;
    var root2 = true;
    return function(key, value) {
      if (root2) {
        root2 = false;
        return value;
      }
      if (isArray$7(this)) return value;
      for (var j = 0; j < keysLength; j++) if (keys6[j] === key) return value;
    };
  };
  var $$3B = _export;
  var getBuiltIn$g = getBuiltIn$n;
  var apply$a = functionApply$1;
  var call$F = functionCall;
  var uncurryThis$$ = functionUncurryThis;
  var fails$13 = fails$1e;
  var isCallable$l = isCallable$z;
  var isSymbol$2 = isSymbol$6;
  var arraySlice$8 = arraySlice$a;
  var getReplacerFunction = getJsonReplacerFunction;
  var NATIVE_SYMBOL$2 = symbolConstructorDetection;
  var $String$2 = String;
  var $stringify = getBuiltIn$g("JSON", "stringify");
  var exec$7 = uncurryThis$$(/./.exec);
  var charAt$c = uncurryThis$$("".charAt);
  var charCodeAt$3 = uncurryThis$$("".charCodeAt);
  var replace$a = uncurryThis$$("".replace);
  var numberToString$2 = uncurryThis$$(1 .toString);
  var tester = /[\uD800-\uDFFF]/g;
  var low = /^[\uD800-\uDBFF]$/;
  var hi = /^[\uDC00-\uDFFF]$/;
  var WRONG_SYMBOLS_CONVERSION = !NATIVE_SYMBOL$2 || fails$13(function() {
    var symbol = getBuiltIn$g("Symbol")("stringify detection");
    return $stringify([symbol]) !== "[null]" || $stringify({
      a: symbol
    }) !== "{}" || $stringify(Object(symbol)) !== "{}";
  });
  var ILL_FORMED_UNICODE = fails$13(function() {
    return $stringify("\uDF06\uD834") !== '"\\udf06\\ud834"' || $stringify("\uDEAD") !== '"\\udead"';
  });
  var stringifyWithSymbolsFix = function stringifyWithSymbolsFix2(it, replacer3) {
    var args = arraySlice$8(arguments);
    var $replacer = getReplacerFunction(replacer3);
    if (!isCallable$l($replacer) && (it === void 0 || isSymbol$2(it))) return;
    args[1] = function(key, value) {
      if (isCallable$l($replacer)) value = call$F($replacer, this, $String$2(key), value);
      if (!isSymbol$2(value)) return value;
    };
    return apply$a($stringify, null, args);
  };
  var fixIllFormed = function fixIllFormed2(match2, offset, string) {
    var prev = charAt$c(string, offset - 1);
    var next8 = charAt$c(string, offset + 1);
    if (exec$7(low, match2) && !exec$7(hi, next8) || exec$7(hi, match2) && !exec$7(low, prev)) {
      return "\\u" + numberToString$2(charCodeAt$3(match2, 0), 16);
    }
    return match2;
  };
  if ($stringify) {
    $$3B({
      target: "JSON",
      stat: true,
      arity: 3,
      forced: WRONG_SYMBOLS_CONVERSION || ILL_FORMED_UNICODE
    }, {
      // eslint-disable-next-line no-unused-vars -- required for `.length`
      stringify: function stringify(it, replacer3, space) {
        var args = arraySlice$8(arguments);
        var result = apply$a(WRONG_SYMBOLS_CONVERSION ? stringifyWithSymbolsFix : $stringify, null, args);
        return ILL_FORMED_UNICODE && typeof result == "string" ? replace$a(result, tester, fixIllFormed) : result;
      }
    });
  }
  var $$3A = _export;
  var NATIVE_SYMBOL$1 = symbolConstructorDetection;
  var fails$12 = fails$1e;
  var getOwnPropertySymbolsModule$1 = objectGetOwnPropertySymbols;
  var toObject$p = toObject$s;
  var FORCED$w = !NATIVE_SYMBOL$1 || fails$12(function() {
    getOwnPropertySymbolsModule$1.f(1);
  });
  $$3A({
    target: "Object",
    stat: true,
    forced: FORCED$w
  }, {
    getOwnPropertySymbols: function getOwnPropertySymbols(it) {
      var $getOwnPropertySymbols3 = getOwnPropertySymbolsModule$1.f;
      return $getOwnPropertySymbols3 ? $getOwnPropertySymbols3(toObject$p(it)) : [];
    }
  });
  var $$3z = _export;
  var DESCRIPTORS$x = descriptors;
  var globalThis$I = globalThis_1;
  var uncurryThis$_ = functionUncurryThis;
  var hasOwn$f = hasOwnProperty_1;
  var isCallable$k = isCallable$z;
  var isPrototypeOf$9 = objectIsPrototypeOf;
  var toString$q = toString$t;
  var defineBuiltInAccessor$c = defineBuiltInAccessor$e;
  var copyConstructorProperties$3 = copyConstructorProperties$5;
  var NativeSymbol = globalThis$I.Symbol;
  var SymbolPrototype = NativeSymbol && NativeSymbol.prototype;
  if (DESCRIPTORS$x && isCallable$k(NativeSymbol) && (!("description" in SymbolPrototype) || // Safari 12 bug
  NativeSymbol().description !== void 0)) {
    var EmptyStringDescriptionStore = {};
    var SymbolWrapper = function _Symbol2() {
      var description = arguments.length < 1 || arguments[0] === void 0 ? void 0 : toString$q(arguments[0]);
      var result = isPrototypeOf$9(SymbolPrototype, this) ? new NativeSymbol(description) : description === void 0 ? NativeSymbol() : NativeSymbol(description);
      if (description === "") EmptyStringDescriptionStore[result] = true;
      return result;
    };
    copyConstructorProperties$3(SymbolWrapper, NativeSymbol);
    SymbolWrapper.prototype = SymbolPrototype;
    SymbolPrototype.constructor = SymbolWrapper;
    var NATIVE_SYMBOL = String(NativeSymbol("description detection")) === "Symbol(description detection)";
    var thisSymbolValue = uncurryThis$_(SymbolPrototype.valueOf);
    var symbolDescriptiveString = uncurryThis$_(SymbolPrototype.toString);
    var regexp = /^Symbol\((.*)\)[^)]+$/;
    var replace$9 = uncurryThis$_("".replace);
    var stringSlice$e = uncurryThis$_("".slice);
    defineBuiltInAccessor$c(SymbolPrototype, "description", {
      configurable: true,
      get: function description() {
        var symbol = thisSymbolValue(this);
        if (hasOwn$f(EmptyStringDescriptionStore, symbol)) return "";
        var string = symbolDescriptiveString(symbol);
        var desc = NATIVE_SYMBOL ? stringSlice$e(string, 7, -1) : replace$9(string, regexp, "$1");
        return desc === "" ? void 0 : desc;
      }
    });
    $$3z({
      global: true,
      constructor: true,
      forced: true
    }, {
      Symbol: SymbolWrapper
    });
  }
  var defineWellKnownSymbol$e = wellKnownSymbolDefine;
  defineWellKnownSymbol$e("asyncIterator");
  var defineWellKnownSymbol$d = wellKnownSymbolDefine;
  defineWellKnownSymbol$d("hasInstance");
  var defineWellKnownSymbol$c = wellKnownSymbolDefine;
  defineWellKnownSymbol$c("isConcatSpreadable");
  var defineWellKnownSymbol$b = wellKnownSymbolDefine;
  defineWellKnownSymbol$b("iterator");
  var defineWellKnownSymbol$a = wellKnownSymbolDefine;
  defineWellKnownSymbol$a("match");
  var defineWellKnownSymbol$9 = wellKnownSymbolDefine;
  defineWellKnownSymbol$9("replace");
  var defineWellKnownSymbol$8 = wellKnownSymbolDefine;
  defineWellKnownSymbol$8("search");
  var defineWellKnownSymbol$7 = wellKnownSymbolDefine;
  defineWellKnownSymbol$7("species");
  var defineWellKnownSymbol$6 = wellKnownSymbolDefine;
  defineWellKnownSymbol$6("split");
  var defineWellKnownSymbol$5 = wellKnownSymbolDefine;
  var defineSymbolToPrimitive = symbolDefineToPrimitive;
  defineWellKnownSymbol$5("toPrimitive");
  defineSymbolToPrimitive();
  var getBuiltIn$f = getBuiltIn$n;
  var defineWellKnownSymbol$4 = wellKnownSymbolDefine;
  var setToStringTag$a = setToStringTag$c;
  defineWellKnownSymbol$4("toStringTag");
  setToStringTag$a(getBuiltIn$f("Symbol"), "Symbol");
  var defineWellKnownSymbol$3 = wellKnownSymbolDefine;
  defineWellKnownSymbol$3("unscopables");
  var $TypeError$o = TypeError;
  var MAX_SAFE_INTEGER = 9007199254740991;
  var doesNotExceedSafeInteger$3 = function doesNotExceedSafeInteger(it) {
    if (it > MAX_SAFE_INTEGER) throw $TypeError$o("Maximum allowed index exceeded");
    return it;
  };
  var DESCRIPTORS$w = descriptors;
  var definePropertyModule$6 = objectDefineProperty;
  var createPropertyDescriptor$6 = createPropertyDescriptor$a;
  var createProperty$7 = function createProperty(object, key, value) {
    if (DESCRIPTORS$w) definePropertyModule$6.f(object, key, createPropertyDescriptor$6(0, value));
    else object[key] = value;
  };
  var fails$11 = fails$1e;
  var wellKnownSymbol$t = wellKnownSymbol$C;
  var V8_VERSION$2 = environmentV8Version;
  var SPECIES$5 = wellKnownSymbol$t("species");
  var arrayMethodHasSpeciesSupport$5 = function arrayMethodHasSpeciesSupport(METHOD_NAME) {
    return V8_VERSION$2 >= 51 || !fails$11(function() {
      var array = [];
      var constructor = array.constructor = {};
      constructor[SPECIES$5] = function() {
        return {
          foo: 1
        };
      };
      return array[METHOD_NAME](Boolean).foo !== 1;
    });
  };
  var $$3y = _export;
  var fails$10 = fails$1e;
  var isArray$6 = isArray$9;
  var isObject$B = isObject$I;
  var toObject$o = toObject$s;
  var lengthOfArrayLike$j = lengthOfArrayLike$m;
  var doesNotExceedSafeInteger$2 = doesNotExceedSafeInteger$3;
  var createProperty$6 = createProperty$7;
  var arraySpeciesCreate$3 = arraySpeciesCreate$5;
  var arrayMethodHasSpeciesSupport$4 = arrayMethodHasSpeciesSupport$5;
  var wellKnownSymbol$s = wellKnownSymbol$C;
  var V8_VERSION$1 = environmentV8Version;
  var IS_CONCAT_SPREADABLE = wellKnownSymbol$s("isConcatSpreadable");
  var IS_CONCAT_SPREADABLE_SUPPORT = V8_VERSION$1 >= 51 || !fails$10(function() {
    var array = [];
    array[IS_CONCAT_SPREADABLE] = false;
    return array.concat()[0] !== array;
  });
  var isConcatSpreadable = function isConcatSpreadable2(O) {
    if (!isObject$B(O)) return false;
    var spreadable = O[IS_CONCAT_SPREADABLE];
    return spreadable !== void 0 ? !!spreadable : isArray$6(O);
  };
  var FORCED$v = !IS_CONCAT_SPREADABLE_SUPPORT || !arrayMethodHasSpeciesSupport$4("concat");
  $$3y({
    target: "Array",
    proto: true,
    arity: 1,
    forced: FORCED$v
  }, {
    // eslint-disable-next-line no-unused-vars -- required for `.length`
    concat: function concat(arg) {
      var O = toObject$o(this);
      var A2 = arraySpeciesCreate$3(O, 0);
      var n = 0;
      var i, k2, length, len, E2;
      for (i = -1, length = arguments.length; i < length; i++) {
        E2 = i === -1 ? O : arguments[i];
        if (isConcatSpreadable(E2)) {
          len = lengthOfArrayLike$j(E2);
          doesNotExceedSafeInteger$2(n + len);
          for (k2 = 0; k2 < len; k2++, n++) if (k2 in E2) createProperty$6(A2, n, E2[k2]);
        } else {
          doesNotExceedSafeInteger$2(n + 1);
          createProperty$6(A2, n++, E2);
        }
      }
      A2.length = n;
      return A2;
    }
  });
  var tryToString$4 = tryToString$7;
  var $TypeError$n = TypeError;
  var deletePropertyOrThrow$3 = function deletePropertyOrThrow(O, P2) {
    if (!delete O[P2]) throw new $TypeError$n("Cannot delete property " + tryToString$4(P2) + " of " + tryToString$4(O));
  };
  var toObject$n = toObject$s;
  var toAbsoluteIndex$6 = toAbsoluteIndex$8;
  var lengthOfArrayLike$i = lengthOfArrayLike$m;
  var deletePropertyOrThrow$2 = deletePropertyOrThrow$3;
  var min$6 = Math.min;
  var arrayCopyWithin = [].copyWithin || function copyWithin(target, start) {
    var O = toObject$n(this);
    var len = lengthOfArrayLike$i(O);
    var to = toAbsoluteIndex$6(target, len);
    var from5 = toAbsoluteIndex$6(start, len);
    var end = arguments.length > 2 ? arguments[2] : void 0;
    var count = min$6((end === void 0 ? len : toAbsoluteIndex$6(end, len)) - from5, len - to);
    var inc = 1;
    if (from5 < to && to < from5 + count) {
      inc = -1;
      from5 += count - 1;
      to += count - 1;
    }
    while (count-- > 0) {
      if (from5 in O) O[to] = O[from5];
      else deletePropertyOrThrow$2(O, to);
      to += inc;
      from5 += inc;
    }
    return O;
  };
  var wellKnownSymbol$r = wellKnownSymbol$C;
  var create$b = objectCreate;
  var defineProperty$7 = objectDefineProperty.f;
  var UNSCOPABLES = wellKnownSymbol$r("unscopables");
  var ArrayPrototype$1 = Array.prototype;
  if (ArrayPrototype$1[UNSCOPABLES] === void 0) {
    defineProperty$7(ArrayPrototype$1, UNSCOPABLES, {
      configurable: true,
      value: create$b(null)
    });
  }
  var addToUnscopables$a = function addToUnscopables(key) {
    ArrayPrototype$1[UNSCOPABLES][key] = true;
  };
  var $$3x = _export;
  var copyWithin2 = arrayCopyWithin;
  var addToUnscopables$9 = addToUnscopables$a;
  $$3x({
    target: "Array",
    proto: true
  }, {
    copyWithin: copyWithin2
  });
  addToUnscopables$9("copyWithin");
  var fails$$ = fails$1e;
  var arrayMethodIsStrict$9 = function arrayMethodIsStrict(METHOD_NAME, argument) {
    var method2 = [][METHOD_NAME];
    return !!method2 && fails$$(function() {
      method2.call(null, argument || function() {
        return 1;
      }, 1);
    });
  };
  var $$3w = _export;
  var $every$1 = arrayIteration.every;
  var arrayMethodIsStrict$8 = arrayMethodIsStrict$9;
  var STRICT_METHOD$4 = arrayMethodIsStrict$8("every");
  $$3w({
    target: "Array",
    proto: true,
    forced: !STRICT_METHOD$4
  }, {
    every: function every(callbackfn) {
      return $every$1(this, callbackfn, arguments.length > 1 ? arguments[1] : void 0);
    }
  });
  var toObject$m = toObject$s;
  var toAbsoluteIndex$5 = toAbsoluteIndex$8;
  var lengthOfArrayLike$h = lengthOfArrayLike$m;
  var arrayFill$1 = function fill(value) {
    var O = toObject$m(this);
    var length = lengthOfArrayLike$h(O);
    var argumentsLength = arguments.length;
    var index2 = toAbsoluteIndex$5(argumentsLength > 1 ? arguments[1] : void 0, length);
    var end = argumentsLength > 2 ? arguments[2] : void 0;
    var endPos = end === void 0 ? length : toAbsoluteIndex$5(end, length);
    while (endPos > index2) O[index2++] = value;
    return O;
  };
  var $$3v = _export;
  var fill$1 = arrayFill$1;
  var addToUnscopables$8 = addToUnscopables$a;
  $$3v({
    target: "Array",
    proto: true
  }, {
    fill: fill$1
  });
  addToUnscopables$8("fill");
  var $$3u = _export;
  var $filter$1 = arrayIteration.filter;
  var arrayMethodHasSpeciesSupport$3 = arrayMethodHasSpeciesSupport$5;
  var HAS_SPECIES_SUPPORT$3 = arrayMethodHasSpeciesSupport$3("filter");
  $$3u({
    target: "Array",
    proto: true,
    forced: !HAS_SPECIES_SUPPORT$3
  }, {
    filter: function filter(callbackfn) {
      return $filter$1(this, callbackfn, arguments.length > 1 ? arguments[1] : void 0);
    }
  });
  var $$3t = _export;
  var $find$1 = arrayIteration.find;
  var addToUnscopables$7 = addToUnscopables$a;
  var FIND = "find";
  var SKIPS_HOLES$1 = true;
  if (FIND in []) Array(1)[FIND](function() {
    SKIPS_HOLES$1 = false;
  });
  $$3t({
    target: "Array",
    proto: true,
    forced: SKIPS_HOLES$1
  }, {
    find: function find(callbackfn) {
      return $find$1(this, callbackfn, arguments.length > 1 ? arguments[1] : void 0);
    }
  });
  addToUnscopables$7(FIND);
  var $$3s = _export;
  var $findIndex$1 = arrayIteration.findIndex;
  var addToUnscopables$6 = addToUnscopables$a;
  var FIND_INDEX = "findIndex";
  var SKIPS_HOLES = true;
  if (FIND_INDEX in []) Array(1)[FIND_INDEX](function() {
    SKIPS_HOLES = false;
  });
  $$3s({
    target: "Array",
    proto: true,
    forced: SKIPS_HOLES
  }, {
    findIndex: function findIndex(callbackfn) {
      return $findIndex$1(this, callbackfn, arguments.length > 1 ? arguments[1] : void 0);
    }
  });
  addToUnscopables$6(FIND_INDEX);
  var isArray$5 = isArray$9;
  var lengthOfArrayLike$g = lengthOfArrayLike$m;
  var doesNotExceedSafeInteger$1 = doesNotExceedSafeInteger$3;
  var bind$o = functionBindContext;
  var _flattenIntoArray = function flattenIntoArray(target, original, source, sourceLen, start, depth, mapper, thisArg) {
    var targetIndex = start;
    var sourceIndex = 0;
    var mapFn = mapper ? bind$o(mapper, thisArg) : false;
    var element, elementLen;
    while (sourceIndex < sourceLen) {
      if (sourceIndex in source) {
        element = mapFn ? mapFn(source[sourceIndex], sourceIndex, original) : source[sourceIndex];
        if (depth > 0 && isArray$5(element)) {
          elementLen = lengthOfArrayLike$g(element);
          targetIndex = _flattenIntoArray(target, original, element, elementLen, targetIndex, depth - 1) - 1;
        } else {
          doesNotExceedSafeInteger$1(targetIndex + 1);
          target[targetIndex] = element;
        }
        targetIndex++;
      }
      sourceIndex++;
    }
    return targetIndex;
  };
  var flattenIntoArray_1 = _flattenIntoArray;
  var $$3r = _export;
  var flattenIntoArray$1 = flattenIntoArray_1;
  var toObject$l = toObject$s;
  var lengthOfArrayLike$f = lengthOfArrayLike$m;
  var toIntegerOrInfinity$c = toIntegerOrInfinity$f;
  var arraySpeciesCreate$2 = arraySpeciesCreate$5;
  $$3r({
    target: "Array",
    proto: true
  }, {
    flat: function flat() {
      var depthArg = arguments.length ? arguments[0] : void 0;
      var O = toObject$l(this);
      var sourceLen = lengthOfArrayLike$f(O);
      var A2 = arraySpeciesCreate$2(O, 0);
      A2.length = flattenIntoArray$1(A2, O, O, sourceLen, 0, depthArg === void 0 ? 1 : toIntegerOrInfinity$c(depthArg));
      return A2;
    }
  });
  var $$3q = _export;
  var flattenIntoArray2 = flattenIntoArray_1;
  var aCallable$p = aCallable$s;
  var toObject$k = toObject$s;
  var lengthOfArrayLike$e = lengthOfArrayLike$m;
  var arraySpeciesCreate$1 = arraySpeciesCreate$5;
  $$3q({
    target: "Array",
    proto: true
  }, {
    flatMap: function flatMap(callbackfn) {
      var O = toObject$k(this);
      var sourceLen = lengthOfArrayLike$e(O);
      var A2;
      aCallable$p(callbackfn);
      A2 = arraySpeciesCreate$1(O, 0);
      A2.length = flattenIntoArray2(A2, O, O, sourceLen, 0, 1, callbackfn, arguments.length > 1 ? arguments[1] : void 0);
      return A2;
    }
  });
  var $forEach$1 = arrayIteration.forEach;
  var arrayMethodIsStrict$7 = arrayMethodIsStrict$9;
  var STRICT_METHOD$3 = arrayMethodIsStrict$7("forEach");
  var arrayForEach = !STRICT_METHOD$3 ? function forEach2(callbackfn) {
    return $forEach$1(this, callbackfn, arguments.length > 1 ? arguments[1] : void 0);
  } : [].forEach;
  var $$3p = _export;
  var forEach$4 = arrayForEach;
  $$3p({
    target: "Array",
    proto: true,
    forced: [].forEach !== forEach$4
  }, {
    forEach: forEach$4
  });
  var call$E = functionCall;
  var anObject$H = anObject$N;
  var getMethod$9 = getMethod$b;
  var iteratorClose$4 = function iteratorClose(iterator2, kind, value) {
    var innerResult, innerError;
    anObject$H(iterator2);
    try {
      innerResult = getMethod$9(iterator2, "return");
      if (!innerResult) {
        if (kind === "throw") throw value;
        return value;
      }
      innerResult = call$E(innerResult, iterator2);
    } catch (error2) {
      innerError = true;
      innerResult = error2;
    }
    if (kind === "throw") throw value;
    if (innerError) throw innerResult;
    anObject$H(innerResult);
    return value;
  };
  var anObject$G = anObject$N;
  var iteratorClose$3 = iteratorClose$4;
  var callWithSafeIterationClosing$1 = function callWithSafeIterationClosing(iterator2, fn, value, ENTRIES2) {
    try {
      return ENTRIES2 ? fn(anObject$G(value)[0], value[1]) : fn(value);
    } catch (error2) {
      iteratorClose$3(iterator2, "throw", error2);
    }
  };
  var iterators = {};
  var wellKnownSymbol$q = wellKnownSymbol$C;
  var Iterators$5 = iterators;
  var ITERATOR$b = wellKnownSymbol$q("iterator");
  var ArrayPrototype = Array.prototype;
  var isArrayIteratorMethod$3 = function isArrayIteratorMethod(it) {
    return it !== void 0 && (Iterators$5.Array === it || ArrayPrototype[ITERATOR$b] === it);
  };
  var classof$d = classof$j;
  var getMethod$8 = getMethod$b;
  var isNullOrUndefined$7 = isNullOrUndefined$a;
  var Iterators$4 = iterators;
  var wellKnownSymbol$p = wellKnownSymbol$C;
  var ITERATOR$a = wellKnownSymbol$p("iterator");
  var getIteratorMethod$5 = function getIteratorMethod(it) {
    if (!isNullOrUndefined$7(it)) return getMethod$8(it, ITERATOR$a) || getMethod$8(it, "@@iterator") || Iterators$4[classof$d(it)];
  };
  var call$D = functionCall;
  var aCallable$o = aCallable$s;
  var anObject$F = anObject$N;
  var tryToString$3 = tryToString$7;
  var getIteratorMethod$4 = getIteratorMethod$5;
  var $TypeError$m = TypeError;
  var getIterator$5 = function getIterator(argument, usingIterator) {
    var iteratorMethod = arguments.length < 2 ? getIteratorMethod$4(argument) : usingIterator;
    if (aCallable$o(iteratorMethod)) return anObject$F(call$D(iteratorMethod, argument));
    throw new $TypeError$m(tryToString$3(argument) + " is not iterable");
  };
  var bind$n = functionBindContext;
  var call$C = functionCall;
  var toObject$j = toObject$s;
  var callWithSafeIterationClosing2 = callWithSafeIterationClosing$1;
  var isArrayIteratorMethod$2 = isArrayIteratorMethod$3;
  var isConstructor$5 = isConstructor$7;
  var lengthOfArrayLike$d = lengthOfArrayLike$m;
  var createProperty$5 = createProperty$7;
  var getIterator$4 = getIterator$5;
  var getIteratorMethod$3 = getIteratorMethod$5;
  var $Array$3 = Array;
  var arrayFrom$1 = function from(arrayLike) {
    var O = toObject$j(arrayLike);
    var IS_CONSTRUCTOR = isConstructor$5(this);
    var argumentsLength = arguments.length;
    var mapfn = argumentsLength > 1 ? arguments[1] : void 0;
    var mapping = mapfn !== void 0;
    if (mapping) mapfn = bind$n(mapfn, argumentsLength > 2 ? arguments[2] : void 0);
    var iteratorMethod = getIteratorMethod$3(O);
    var index2 = 0;
    var length, result, step, iterator2, next8, value;
    if (iteratorMethod && !(this === $Array$3 && isArrayIteratorMethod$2(iteratorMethod))) {
      result = IS_CONSTRUCTOR ? new this() : [];
      iterator2 = getIterator$4(O, iteratorMethod);
      next8 = iterator2.next;
      for (; !(step = call$C(next8, iterator2)).done; index2++) {
        value = mapping ? callWithSafeIterationClosing2(iterator2, mapfn, [step.value, index2], true) : step.value;
        createProperty$5(result, index2, value);
      }
    } else {
      length = lengthOfArrayLike$d(O);
      result = IS_CONSTRUCTOR ? new this(length) : $Array$3(length);
      for (; length > index2; index2++) {
        value = mapping ? mapfn(O[index2], index2) : O[index2];
        createProperty$5(result, index2, value);
      }
    }
    result.length = index2;
    return result;
  };
  var wellKnownSymbol$o = wellKnownSymbol$C;
  var ITERATOR$9 = wellKnownSymbol$o("iterator");
  var SAFE_CLOSING = false;
  try {
    var called = 0;
    var iteratorWithReturn = {
      next: function next8() {
        return {
          done: !!called++
        };
      },
      "return": function _return() {
        SAFE_CLOSING = true;
      }
    };
    iteratorWithReturn[ITERATOR$9] = function() {
      return this;
    };
    Array.from(iteratorWithReturn, function() {
      throw 2;
    });
  } catch (error2) {
  }
  var checkCorrectnessOfIteration$4 = function checkCorrectnessOfIteration(exec2, SKIP_CLOSING) {
    try {
      if (!SKIP_CLOSING && !SAFE_CLOSING) return false;
    } catch (error2) {
      return false;
    }
    var ITERATION_SUPPORT = false;
    try {
      var object = {};
      object[ITERATOR$9] = function() {
        return {
          next: function next8() {
            return {
              done: ITERATION_SUPPORT = true
            };
          }
        };
      };
      exec2(object);
    } catch (error2) {
    }
    return ITERATION_SUPPORT;
  };
  var $$3o = _export;
  var from2 = arrayFrom$1;
  var checkCorrectnessOfIteration$3 = checkCorrectnessOfIteration$4;
  var INCORRECT_ITERATION = !checkCorrectnessOfIteration$3(function(iterable) {
    Array.from(iterable);
  });
  $$3o({
    target: "Array",
    stat: true,
    forced: INCORRECT_ITERATION
  }, {
    from: from2
  });
  var $$3n = _export;
  var $includes$1 = arrayIncludes.includes;
  var fails$_ = fails$1e;
  var addToUnscopables$5 = addToUnscopables$a;
  var BROKEN_ON_SPARSE = fails$_(function() {
    return !Array(1).includes();
  });
  $$3n({
    target: "Array",
    proto: true,
    forced: BROKEN_ON_SPARSE
  }, {
    includes: function includes(el) {
      return $includes$1(this, el, arguments.length > 1 ? arguments[1] : void 0);
    }
  });
  addToUnscopables$5("includes");
  var $$3m = _export;
  var uncurryThis$Z = functionUncurryThisClause;
  var $indexOf$1 = arrayIncludes.indexOf;
  var arrayMethodIsStrict$6 = arrayMethodIsStrict$9;
  var nativeIndexOf = uncurryThis$Z([].indexOf);
  var NEGATIVE_ZERO$1 = !!nativeIndexOf && 1 / nativeIndexOf([1], 1, -0) < 0;
  var FORCED$u = NEGATIVE_ZERO$1 || !arrayMethodIsStrict$6("indexOf");
  $$3m({
    target: "Array",
    proto: true,
    forced: FORCED$u
  }, {
    indexOf: function indexOf(searchElement) {
      var fromIndex = arguments.length > 1 ? arguments[1] : void 0;
      return NEGATIVE_ZERO$1 ? nativeIndexOf(this, searchElement, fromIndex) || 0 : $indexOf$1(this, searchElement, fromIndex);
    }
  });
  var $$3l = _export;
  var isArray$4 = isArray$9;
  $$3l({
    target: "Array",
    stat: true
  }, {
    isArray: isArray$4
  });
  var fails$Z = fails$1e;
  var correctPrototypeGetter = !fails$Z(function() {
    function F() {
    }
    F.prototype.constructor = null;
    return Object.getPrototypeOf(new F()) !== F.prototype;
  });
  var hasOwn$e = hasOwnProperty_1;
  var isCallable$j = isCallable$z;
  var toObject$i = toObject$s;
  var sharedKey2 = sharedKey$4;
  var CORRECT_PROTOTYPE_GETTER$2 = correctPrototypeGetter;
  var IE_PROTO = sharedKey2("IE_PROTO");
  var $Object$4 = Object;
  var ObjectPrototype$3 = $Object$4.prototype;
  var objectGetPrototypeOf$2 = CORRECT_PROTOTYPE_GETTER$2 ? $Object$4.getPrototypeOf : function(O) {
    var object = toObject$i(O);
    if (hasOwn$e(object, IE_PROTO)) return object[IE_PROTO];
    var constructor = object.constructor;
    if (isCallable$j(constructor) && object instanceof constructor) {
      return constructor.prototype;
    }
    return object instanceof $Object$4 ? ObjectPrototype$3 : null;
  };
  var fails$Y = fails$1e;
  var isCallable$i = isCallable$z;
  var isObject$A = isObject$I;
  var getPrototypeOf$b = objectGetPrototypeOf$2;
  var defineBuiltIn$h = defineBuiltIn$l;
  var wellKnownSymbol$n = wellKnownSymbol$C;
  var ITERATOR$8 = wellKnownSymbol$n("iterator");
  var BUGGY_SAFARI_ITERATORS$1 = false;
  var IteratorPrototype$2, PrototypeOfArrayIteratorPrototype, arrayIterator;
  if ([].keys) {
    arrayIterator = [].keys();
    if (!("next" in arrayIterator)) BUGGY_SAFARI_ITERATORS$1 = true;
    else {
      PrototypeOfArrayIteratorPrototype = getPrototypeOf$b(getPrototypeOf$b(arrayIterator));
      if (PrototypeOfArrayIteratorPrototype !== Object.prototype) IteratorPrototype$2 = PrototypeOfArrayIteratorPrototype;
    }
  }
  var NEW_ITERATOR_PROTOTYPE = !isObject$A(IteratorPrototype$2) || fails$Y(function() {
    var test2 = {};
    return IteratorPrototype$2[ITERATOR$8].call(test2) !== test2;
  });
  if (NEW_ITERATOR_PROTOTYPE) IteratorPrototype$2 = {};
  if (!isCallable$i(IteratorPrototype$2[ITERATOR$8])) {
    defineBuiltIn$h(IteratorPrototype$2, ITERATOR$8, function() {
      return this;
    });
  }
  var iteratorsCore = {
    IteratorPrototype: IteratorPrototype$2,
    BUGGY_SAFARI_ITERATORS: BUGGY_SAFARI_ITERATORS$1
  };
  var IteratorPrototype$1 = iteratorsCore.IteratorPrototype;
  var create$a = objectCreate;
  var createPropertyDescriptor$5 = createPropertyDescriptor$a;
  var setToStringTag$9 = setToStringTag$c;
  var Iterators$3 = iterators;
  var returnThis$1 = function returnThis() {
    return this;
  };
  var iteratorCreateConstructor = function iteratorCreateConstructor2(IteratorConstructor, NAME2, next8, ENUMERABLE_NEXT) {
    var TO_STRING_TAG2 = NAME2 + " Iterator";
    IteratorConstructor.prototype = create$a(IteratorPrototype$1, {
      next: createPropertyDescriptor$5(+!ENUMERABLE_NEXT, next8)
    });
    setToStringTag$9(IteratorConstructor, TO_STRING_TAG2, false);
    Iterators$3[TO_STRING_TAG2] = returnThis$1;
    return IteratorConstructor;
  };
  var uncurryThis$Y = functionUncurryThis;
  var aCallable$n = aCallable$s;
  var functionUncurryThisAccessor = function functionUncurryThisAccessor2(object, key, method2) {
    try {
      return uncurryThis$Y(aCallable$n(Object.getOwnPropertyDescriptor(object, key)[method2]));
    } catch (error2) {
    }
  };
  var isObject$z = isObject$I;
  var isPossiblePrototype$1 = function isPossiblePrototype(argument) {
    return isObject$z(argument) || argument === null;
  };
  var isPossiblePrototype2 = isPossiblePrototype$1;
  var $String$1 = String;
  var $TypeError$l = TypeError;
  var aPossiblePrototype$2 = function aPossiblePrototype(argument) {
    if (isPossiblePrototype2(argument)) return argument;
    throw new $TypeError$l("Can't set " + $String$1(argument) + " as a prototype");
  };
  var uncurryThisAccessor$1 = functionUncurryThisAccessor;
  var isObject$y = isObject$I;
  var requireObjectCoercible$h = requireObjectCoercible$k;
  var aPossiblePrototype$1 = aPossiblePrototype$2;
  var objectSetPrototypeOf$1 = Object.setPrototypeOf || ("__proto__" in {} ? function() {
    var CORRECT_SETTER = false;
    var test2 = {};
    var setter;
    try {
      setter = uncurryThisAccessor$1(Object.prototype, "__proto__", "set");
      setter(test2, []);
      CORRECT_SETTER = test2 instanceof Array;
    } catch (error2) {
    }
    return function setPrototypeOf3(O, proto) {
      requireObjectCoercible$h(O);
      aPossiblePrototype$1(proto);
      if (!isObject$y(O)) return O;
      if (CORRECT_SETTER) setter(O, proto);
      else O.__proto__ = proto;
      return O;
    };
  }() : void 0);
  var $$3k = _export;
  var call$B = functionCall;
  var FunctionName$1 = functionName;
  var isCallable$h = isCallable$z;
  var createIteratorConstructor$4 = iteratorCreateConstructor;
  var getPrototypeOf$a = objectGetPrototypeOf$2;
  var setPrototypeOf$7 = objectSetPrototypeOf$1;
  var setToStringTag$8 = setToStringTag$c;
  var createNonEnumerableProperty$a = createNonEnumerableProperty$d;
  var defineBuiltIn$g = defineBuiltIn$l;
  var wellKnownSymbol$m = wellKnownSymbol$C;
  var Iterators$2 = iterators;
  var IteratorsCore = iteratorsCore;
  var PROPER_FUNCTION_NAME$3 = FunctionName$1.PROPER;
  var CONFIGURABLE_FUNCTION_NAME$1 = FunctionName$1.CONFIGURABLE;
  var IteratorPrototype = IteratorsCore.IteratorPrototype;
  var BUGGY_SAFARI_ITERATORS = IteratorsCore.BUGGY_SAFARI_ITERATORS;
  var ITERATOR$7 = wellKnownSymbol$m("iterator");
  var KEYS = "keys";
  var VALUES = "values";
  var ENTRIES = "entries";
  var returnThis2 = function returnThis3() {
    return this;
  };
  var iteratorDefine = function iteratorDefine2(Iterable, NAME2, IteratorConstructor, next8, DEFAULT, IS_SET, FORCED2) {
    createIteratorConstructor$4(IteratorConstructor, NAME2, next8);
    var getIterationMethod = function getIterationMethod2(KIND) {
      if (KIND === DEFAULT && defaultIterator) return defaultIterator;
      if (!BUGGY_SAFARI_ITERATORS && KIND && KIND in IterablePrototype) return IterablePrototype[KIND];
      switch (KIND) {
        case KEYS:
          return function keys6() {
            return new IteratorConstructor(this, KIND);
          };
        case VALUES:
          return function values5() {
            return new IteratorConstructor(this, KIND);
          };
        case ENTRIES:
          return function entries5() {
            return new IteratorConstructor(this, KIND);
          };
      }
      return function() {
        return new IteratorConstructor(this);
      };
    };
    var TO_STRING_TAG2 = NAME2 + " Iterator";
    var INCORRECT_VALUES_NAME = false;
    var IterablePrototype = Iterable.prototype;
    var nativeIterator = IterablePrototype[ITERATOR$7] || IterablePrototype["@@iterator"] || DEFAULT && IterablePrototype[DEFAULT];
    var defaultIterator = !BUGGY_SAFARI_ITERATORS && nativeIterator || getIterationMethod(DEFAULT);
    var anyNativeIterator = NAME2 === "Array" ? IterablePrototype.entries || nativeIterator : nativeIterator;
    var CurrentIteratorPrototype, methods, KEY;
    if (anyNativeIterator) {
      CurrentIteratorPrototype = getPrototypeOf$a(anyNativeIterator.call(new Iterable()));
      if (CurrentIteratorPrototype !== Object.prototype && CurrentIteratorPrototype.next) {
        if (getPrototypeOf$a(CurrentIteratorPrototype) !== IteratorPrototype) {
          if (setPrototypeOf$7) {
            setPrototypeOf$7(CurrentIteratorPrototype, IteratorPrototype);
          } else if (!isCallable$h(CurrentIteratorPrototype[ITERATOR$7])) {
            defineBuiltIn$g(CurrentIteratorPrototype, ITERATOR$7, returnThis2);
          }
        }
        setToStringTag$8(CurrentIteratorPrototype, TO_STRING_TAG2, true);
      }
    }
    if (PROPER_FUNCTION_NAME$3 && DEFAULT === VALUES && nativeIterator && nativeIterator.name !== VALUES) {
      if (CONFIGURABLE_FUNCTION_NAME$1) {
        createNonEnumerableProperty$a(IterablePrototype, "name", VALUES);
      } else {
        INCORRECT_VALUES_NAME = true;
        defaultIterator = function values5() {
          return call$B(nativeIterator, this);
        };
      }
    }
    if (DEFAULT) {
      methods = {
        values: getIterationMethod(VALUES),
        keys: IS_SET ? defaultIterator : getIterationMethod(KEYS),
        entries: getIterationMethod(ENTRIES)
      };
      if (FORCED2) for (KEY in methods) {
        if (BUGGY_SAFARI_ITERATORS || INCORRECT_VALUES_NAME || !(KEY in IterablePrototype)) {
          defineBuiltIn$g(IterablePrototype, KEY, methods[KEY]);
        }
      }
      else $$3k({
        target: NAME2,
        proto: true,
        forced: BUGGY_SAFARI_ITERATORS || INCORRECT_VALUES_NAME
      }, methods);
    }
    if (IterablePrototype[ITERATOR$7] !== defaultIterator) {
      defineBuiltIn$g(IterablePrototype, ITERATOR$7, defaultIterator, {
        name: DEFAULT
      });
    }
    Iterators$2[NAME2] = defaultIterator;
    return methods;
  };
  var createIterResultObject$7 = function createIterResultObject(value, done) {
    return {
      value,
      done
    };
  };
  var toIndexedObject$8 = toIndexedObject$f;
  var addToUnscopables$4 = addToUnscopables$a;
  var Iterators$1 = iterators;
  var InternalStateModule$d = internalState;
  var defineProperty$6 = objectDefineProperty.f;
  var defineIterator$2 = iteratorDefine;
  var createIterResultObject$6 = createIterResultObject$7;
  var DESCRIPTORS$v = descriptors;
  var ARRAY_ITERATOR = "Array Iterator";
  var setInternalState$c = InternalStateModule$d.set;
  var getInternalState$7 = InternalStateModule$d.getterFor(ARRAY_ITERATOR);
  var es_array_iterator = defineIterator$2(Array, "Array", function(iterated, kind) {
    setInternalState$c(this, {
      type: ARRAY_ITERATOR,
      target: toIndexedObject$8(iterated),
      // target
      index: 0,
      // next index
      kind
      // kind
    });
  }, function() {
    var state = getInternalState$7(this);
    var target = state.target;
    var index2 = state.index++;
    if (!target || index2 >= target.length) {
      state.target = null;
      return createIterResultObject$6(void 0, true);
    }
    switch (state.kind) {
      case "keys":
        return createIterResultObject$6(index2, false);
      case "values":
        return createIterResultObject$6(target[index2], false);
    }
    return createIterResultObject$6([index2, target[index2]], false);
  }, "values");
  var values = Iterators$1.Arguments = Iterators$1.Array;
  addToUnscopables$4("keys");
  addToUnscopables$4("values");
  addToUnscopables$4("entries");
  if (DESCRIPTORS$v && values.name !== "values") try {
    defineProperty$6(values, "name", {
      value: "values"
    });
  } catch (error2) {
  }
  var $$3j = _export;
  var uncurryThis$X = functionUncurryThis;
  var IndexedObject$2 = indexedObject;
  var toIndexedObject$7 = toIndexedObject$f;
  var arrayMethodIsStrict$5 = arrayMethodIsStrict$9;
  var nativeJoin = uncurryThis$X([].join);
  var ES3_STRINGS = IndexedObject$2 !== Object;
  var FORCED$t = ES3_STRINGS || !arrayMethodIsStrict$5("join", ",");
  $$3j({
    target: "Array",
    proto: true,
    forced: FORCED$t
  }, {
    join: function join(separator) {
      return nativeJoin(toIndexedObject$7(this), separator === void 0 ? "," : separator);
    }
  });
  var apply$9 = functionApply$1;
  var toIndexedObject$6 = toIndexedObject$f;
  var toIntegerOrInfinity$b = toIntegerOrInfinity$f;
  var lengthOfArrayLike$c = lengthOfArrayLike$m;
  var arrayMethodIsStrict$4 = arrayMethodIsStrict$9;
  var min$5 = Math.min;
  var $lastIndexOf$1 = [].lastIndexOf;
  var NEGATIVE_ZERO = !!$lastIndexOf$1 && 1 / [1].lastIndexOf(1, -0) < 0;
  var STRICT_METHOD$2 = arrayMethodIsStrict$4("lastIndexOf");
  var FORCED$s = NEGATIVE_ZERO || !STRICT_METHOD$2;
  var arrayLastIndexOf = FORCED$s ? function lastIndexOf(searchElement) {
    if (NEGATIVE_ZERO) return apply$9($lastIndexOf$1, this, arguments) || 0;
    var O = toIndexedObject$6(this);
    var length = lengthOfArrayLike$c(O);
    if (length === 0) return -1;
    var index2 = length - 1;
    if (arguments.length > 1) index2 = min$5(index2, toIntegerOrInfinity$b(arguments[1]));
    if (index2 < 0) index2 = length + index2;
    for (; index2 >= 0; index2--) if (index2 in O && O[index2] === searchElement) return index2 || 0;
    return -1;
  } : $lastIndexOf$1;
  var $$3i = _export;
  var lastIndexOf2 = arrayLastIndexOf;
  $$3i({
    target: "Array",
    proto: true,
    forced: lastIndexOf2 !== [].lastIndexOf
  }, {
    lastIndexOf: lastIndexOf2
  });
  var $$3h = _export;
  var $map$1 = arrayIteration.map;
  var arrayMethodHasSpeciesSupport$2 = arrayMethodHasSpeciesSupport$5;
  var HAS_SPECIES_SUPPORT$2 = arrayMethodHasSpeciesSupport$2("map");
  $$3h({
    target: "Array",
    proto: true,
    forced: !HAS_SPECIES_SUPPORT$2
  }, {
    map: function map(callbackfn) {
      return $map$1(this, callbackfn, arguments.length > 1 ? arguments[1] : void 0);
    }
  });
  var $$3g = _export;
  var fails$X = fails$1e;
  var isConstructor$4 = isConstructor$7;
  var createProperty$4 = createProperty$7;
  var $Array$2 = Array;
  var ISNT_GENERIC = fails$X(function() {
    function F() {
    }
    return !($Array$2.of.call(F) instanceof F);
  });
  $$3g({
    target: "Array",
    stat: true,
    forced: ISNT_GENERIC
  }, {
    of: function of() {
      var index2 = 0;
      var argumentsLength = arguments.length;
      var result = new (isConstructor$4(this) ? this : $Array$2)(argumentsLength);
      while (argumentsLength > index2) createProperty$4(result, index2, arguments[index2++]);
      result.length = argumentsLength;
      return result;
    }
  });
  var aCallable$m = aCallable$s;
  var toObject$h = toObject$s;
  var IndexedObject$1 = indexedObject;
  var lengthOfArrayLike$b = lengthOfArrayLike$m;
  var $TypeError$k = TypeError;
  var REDUCE_EMPTY = "Reduce of empty array with no initial value";
  var createMethod$4 = function createMethod3(IS_RIGHT) {
    return function(that, callbackfn, argumentsLength, memo) {
      var O = toObject$h(that);
      var self2 = IndexedObject$1(O);
      var length = lengthOfArrayLike$b(O);
      aCallable$m(callbackfn);
      if (length === 0 && argumentsLength < 2) throw new $TypeError$k(REDUCE_EMPTY);
      var index2 = IS_RIGHT ? length - 1 : 0;
      var i = IS_RIGHT ? -1 : 1;
      if (argumentsLength < 2) while (true) {
        if (index2 in self2) {
          memo = self2[index2];
          index2 += i;
          break;
        }
        index2 += i;
        if (IS_RIGHT ? index2 < 0 : length <= index2) {
          throw new $TypeError$k(REDUCE_EMPTY);
        }
      }
      for (; IS_RIGHT ? index2 >= 0 : length > index2; index2 += i) if (index2 in self2) {
        memo = callbackfn(memo, self2[index2], index2, O);
      }
      return memo;
    };
  };
  var arrayReduce = {
    // `Array.prototype.reduce` method
    // https://tc39.es/ecma262/#sec-array.prototype.reduce
    left: createMethod$4(false),
    // `Array.prototype.reduceRight` method
    // https://tc39.es/ecma262/#sec-array.prototype.reduceright
    right: createMethod$4(true)
  };
  var globalThis$H = globalThis_1;
  var userAgent$6 = environmentUserAgent;
  var classof$c = classofRaw$2;
  var userAgentStartsWith = function userAgentStartsWith2(string) {
    return userAgent$6.slice(0, string.length) === string;
  };
  var environment = function() {
    if (userAgentStartsWith("Bun/")) return "BUN";
    if (userAgentStartsWith("Cloudflare-Workers")) return "CLOUDFLARE";
    if (userAgentStartsWith("Deno/")) return "DENO";
    if (userAgentStartsWith("Node.js/")) return "NODE";
    if (globalThis$H.Bun && typeof Bun.version == "string") return "BUN";
    if (globalThis$H.Deno && _typeof(Deno.version) == "object") return "DENO";
    if (classof$c(globalThis$H.process) === "process") return "NODE";
    if (globalThis$H.window && globalThis$H.document) return "BROWSER";
    return "REST";
  }();
  var ENVIRONMENT$2 = environment;
  var environmentIsNode = ENVIRONMENT$2 === "NODE";
  var $$3f = _export;
  var $reduce$1 = arrayReduce.left;
  var arrayMethodIsStrict$3 = arrayMethodIsStrict$9;
  var CHROME_VERSION$1 = environmentV8Version;
  var IS_NODE$4 = environmentIsNode;
  var CHROME_BUG$1 = !IS_NODE$4 && CHROME_VERSION$1 > 79 && CHROME_VERSION$1 < 83;
  var FORCED$r = CHROME_BUG$1 || !arrayMethodIsStrict$3("reduce");
  $$3f({
    target: "Array",
    proto: true,
    forced: FORCED$r
  }, {
    reduce: function reduce(callbackfn) {
      var length = arguments.length;
      return $reduce$1(this, callbackfn, length, length > 1 ? arguments[1] : void 0);
    }
  });
  var $$3e = _export;
  var $reduceRight$1 = arrayReduce.right;
  var arrayMethodIsStrict$2 = arrayMethodIsStrict$9;
  var CHROME_VERSION = environmentV8Version;
  var IS_NODE$3 = environmentIsNode;
  var CHROME_BUG = !IS_NODE$3 && CHROME_VERSION > 79 && CHROME_VERSION < 83;
  var FORCED$q = CHROME_BUG || !arrayMethodIsStrict$2("reduceRight");
  $$3e({
    target: "Array",
    proto: true,
    forced: FORCED$q
  }, {
    reduceRight: function reduceRight(callbackfn) {
      return $reduceRight$1(this, callbackfn, arguments.length, arguments.length > 1 ? arguments[1] : void 0);
    }
  });
  var $$3d = _export;
  var uncurryThis$W = functionUncurryThis;
  var isArray$3 = isArray$9;
  var nativeReverse = uncurryThis$W([].reverse);
  var test$1 = [1, 2];
  $$3d({
    target: "Array",
    proto: true,
    forced: String(test$1) === String(test$1.reverse())
  }, {
    reverse: function reverse() {
      if (isArray$3(this)) this.length = this.length;
      return nativeReverse(this);
    }
  });
  var $$3c = _export;
  var isArray$2 = isArray$9;
  var isConstructor$3 = isConstructor$7;
  var isObject$x = isObject$I;
  var toAbsoluteIndex$4 = toAbsoluteIndex$8;
  var lengthOfArrayLike$a = lengthOfArrayLike$m;
  var toIndexedObject$5 = toIndexedObject$f;
  var createProperty$3 = createProperty$7;
  var wellKnownSymbol$l = wellKnownSymbol$C;
  var arrayMethodHasSpeciesSupport$1 = arrayMethodHasSpeciesSupport$5;
  var nativeSlice = arraySlice$a;
  var HAS_SPECIES_SUPPORT$1 = arrayMethodHasSpeciesSupport$1("slice");
  var SPECIES$4 = wellKnownSymbol$l("species");
  var $Array$1 = Array;
  var max$4 = Math.max;
  $$3c({
    target: "Array",
    proto: true,
    forced: !HAS_SPECIES_SUPPORT$1
  }, {
    slice: function slice(start, end) {
      var O = toIndexedObject$5(this);
      var length = lengthOfArrayLike$a(O);
      var k2 = toAbsoluteIndex$4(start, length);
      var fin = toAbsoluteIndex$4(end === void 0 ? length : end, length);
      var Constructor2, result, n;
      if (isArray$2(O)) {
        Constructor2 = O.constructor;
        if (isConstructor$3(Constructor2) && (Constructor2 === $Array$1 || isArray$2(Constructor2.prototype))) {
          Constructor2 = void 0;
        } else if (isObject$x(Constructor2)) {
          Constructor2 = Constructor2[SPECIES$4];
          if (Constructor2 === null) Constructor2 = void 0;
        }
        if (Constructor2 === $Array$1 || Constructor2 === void 0) {
          return nativeSlice(O, k2, fin);
        }
      }
      result = new (Constructor2 === void 0 ? $Array$1 : Constructor2)(max$4(fin - k2, 0));
      for (n = 0; k2 < fin; k2++, n++) if (k2 in O) createProperty$3(result, n, O[k2]);
      result.length = n;
      return result;
    }
  });
  var $$3b = _export;
  var $some$1 = arrayIteration.some;
  var arrayMethodIsStrict$1 = arrayMethodIsStrict$9;
  var STRICT_METHOD$1 = arrayMethodIsStrict$1("some");
  $$3b({
    target: "Array",
    proto: true,
    forced: !STRICT_METHOD$1
  }, {
    some: function some(callbackfn) {
      return $some$1(this, callbackfn, arguments.length > 1 ? arguments[1] : void 0);
    }
  });
  var arraySlice$7 = arraySlice$a;
  var floor$8 = Math.floor;
  var _sort = function sort(array, comparefn) {
    var length = array.length;
    if (length < 8) {
      var i = 1;
      var element, j;
      while (i < length) {
        j = i;
        element = array[i];
        while (j && comparefn(array[j - 1], element) > 0) {
          array[j] = array[--j];
        }
        if (j !== i++) array[j] = element;
      }
    } else {
      var middle = floor$8(length / 2);
      var left = _sort(arraySlice$7(array, 0, middle), comparefn);
      var right = _sort(arraySlice$7(array, middle), comparefn);
      var llength = left.length;
      var rlength = right.length;
      var lindex = 0;
      var rindex = 0;
      while (lindex < llength || rindex < rlength) {
        array[lindex + rindex] = lindex < llength && rindex < rlength ? comparefn(left[lindex], right[rindex]) <= 0 ? left[lindex++] : right[rindex++] : lindex < llength ? left[lindex++] : right[rindex++];
      }
    }
    return array;
  };
  var arraySort$1 = _sort;
  var userAgent$5 = environmentUserAgent;
  var firefox = userAgent$5.match(/firefox\/(\d+)/i);
  var environmentFfVersion = !!firefox && +firefox[1];
  var UA = environmentUserAgent;
  var environmentIsIeOrEdge = /MSIE|Trident/.test(UA);
  var userAgent$4 = environmentUserAgent;
  var webkit = userAgent$4.match(/AppleWebKit\/(\d+)\./);
  var environmentWebkitVersion = !!webkit && +webkit[1];
  var $$3a = _export;
  var uncurryThis$V = functionUncurryThis;
  var aCallable$l = aCallable$s;
  var toObject$g = toObject$s;
  var lengthOfArrayLike$9 = lengthOfArrayLike$m;
  var deletePropertyOrThrow$1 = deletePropertyOrThrow$3;
  var toString$p = toString$t;
  var fails$W = fails$1e;
  var internalSort$1 = arraySort$1;
  var arrayMethodIsStrict2 = arrayMethodIsStrict$9;
  var FF$1 = environmentFfVersion;
  var IE_OR_EDGE$1 = environmentIsIeOrEdge;
  var V8$1 = environmentV8Version;
  var WEBKIT$2 = environmentWebkitVersion;
  var test = [];
  var nativeSort$1 = uncurryThis$V(test.sort);
  var push$d = uncurryThis$V(test.push);
  var FAILS_ON_UNDEFINED = fails$W(function() {
    test.sort(void 0);
  });
  var FAILS_ON_NULL = fails$W(function() {
    test.sort(null);
  });
  var STRICT_METHOD = arrayMethodIsStrict2("sort");
  var STABLE_SORT$1 = !fails$W(function() {
    if (V8$1) return V8$1 < 70;
    if (FF$1 && FF$1 > 3) return;
    if (IE_OR_EDGE$1) return true;
    if (WEBKIT$2) return WEBKIT$2 < 603;
    var result = "";
    var code, chr, value, index2;
    for (code = 65; code < 76; code++) {
      chr = String.fromCharCode(code);
      switch (code) {
        case 66:
        case 69:
        case 70:
        case 72:
          value = 3;
          break;
        case 68:
        case 71:
          value = 4;
          break;
        default:
          value = 2;
      }
      for (index2 = 0; index2 < 47; index2++) {
        test.push({
          k: chr + index2,
          v: value
        });
      }
    }
    test.sort(function(a, b) {
      return b.v - a.v;
    });
    for (index2 = 0; index2 < test.length; index2++) {
      chr = test[index2].k.charAt(0);
      if (result.charAt(result.length - 1) !== chr) result += chr;
    }
    return result !== "DGBEFHACIJK";
  });
  var FORCED$p = FAILS_ON_UNDEFINED || !FAILS_ON_NULL || !STRICT_METHOD || !STABLE_SORT$1;
  var getSortCompare$1 = function getSortCompare(comparefn) {
    return function(x, y) {
      if (y === void 0) return -1;
      if (x === void 0) return 1;
      if (comparefn !== void 0) return +comparefn(x, y) || 0;
      return toString$p(x) > toString$p(y) ? 1 : -1;
    };
  };
  $$3a({
    target: "Array",
    proto: true,
    forced: FORCED$p
  }, {
    sort: function sort2(comparefn) {
      if (comparefn !== void 0) aCallable$l(comparefn);
      var array = toObject$g(this);
      if (STABLE_SORT$1) return comparefn === void 0 ? nativeSort$1(array) : nativeSort$1(array, comparefn);
      var items = [];
      var arrayLength = lengthOfArrayLike$9(array);
      var itemsLength, index2;
      for (index2 = 0; index2 < arrayLength; index2++) {
        if (index2 in array) push$d(items, array[index2]);
      }
      internalSort$1(items, getSortCompare$1(comparefn));
      itemsLength = lengthOfArrayLike$9(items);
      index2 = 0;
      while (index2 < itemsLength) array[index2] = items[index2++];
      while (index2 < arrayLength) deletePropertyOrThrow$1(array, index2++);
      return array;
    }
  });
  var getBuiltIn$e = getBuiltIn$n;
  var defineBuiltInAccessor$b = defineBuiltInAccessor$e;
  var wellKnownSymbol$k = wellKnownSymbol$C;
  var DESCRIPTORS$u = descriptors;
  var SPECIES$3 = wellKnownSymbol$k("species");
  var setSpecies$7 = function setSpecies(CONSTRUCTOR_NAME) {
    var Constructor2 = getBuiltIn$e(CONSTRUCTOR_NAME);
    if (DESCRIPTORS$u && Constructor2 && !Constructor2[SPECIES$3]) {
      defineBuiltInAccessor$b(Constructor2, SPECIES$3, {
        configurable: true,
        get: function get6() {
          return this;
        }
      });
    }
  };
  var setSpecies$6 = setSpecies$7;
  setSpecies$6("Array");
  var DESCRIPTORS$t = descriptors;
  var isArray$1 = isArray$9;
  var $TypeError$j = TypeError;
  var getOwnPropertyDescriptor$8 = Object.getOwnPropertyDescriptor;
  var SILENT_ON_NON_WRITABLE_LENGTH_SET = DESCRIPTORS$t && !function() {
    if (this !== void 0) return true;
    try {
      Object.defineProperty([], "length", {
        writable: false
      }).length = 1;
    } catch (error2) {
      return error2 instanceof TypeError;
    }
  }();
  var arraySetLength = SILENT_ON_NON_WRITABLE_LENGTH_SET ? function(O, length) {
    if (isArray$1(O) && !getOwnPropertyDescriptor$8(O, "length").writable) {
      throw new $TypeError$j("Cannot set read only .length");
    }
    return O.length = length;
  } : function(O, length) {
    return O.length = length;
  };
  var $$39 = _export;
  var toObject$f = toObject$s;
  var toAbsoluteIndex$3 = toAbsoluteIndex$8;
  var toIntegerOrInfinity$a = toIntegerOrInfinity$f;
  var lengthOfArrayLike$8 = lengthOfArrayLike$m;
  var setArrayLength = arraySetLength;
  var doesNotExceedSafeInteger2 = doesNotExceedSafeInteger$3;
  var arraySpeciesCreate2 = arraySpeciesCreate$5;
  var createProperty$2 = createProperty$7;
  var deletePropertyOrThrow2 = deletePropertyOrThrow$3;
  var arrayMethodHasSpeciesSupport2 = arrayMethodHasSpeciesSupport$5;
  var HAS_SPECIES_SUPPORT = arrayMethodHasSpeciesSupport2("splice");
  var max$3 = Math.max;
  var min$4 = Math.min;
  $$39({
    target: "Array",
    proto: true,
    forced: !HAS_SPECIES_SUPPORT
  }, {
    splice: function splice(start, deleteCount) {
      var O = toObject$f(this);
      var len = lengthOfArrayLike$8(O);
      var actualStart = toAbsoluteIndex$3(start, len);
      var argumentsLength = arguments.length;
      var insertCount, actualDeleteCount, A2, k2, from5, to;
      if (argumentsLength === 0) {
        insertCount = actualDeleteCount = 0;
      } else if (argumentsLength === 1) {
        insertCount = 0;
        actualDeleteCount = len - actualStart;
      } else {
        insertCount = argumentsLength - 2;
        actualDeleteCount = min$4(max$3(toIntegerOrInfinity$a(deleteCount), 0), len - actualStart);
      }
      doesNotExceedSafeInteger2(len + insertCount - actualDeleteCount);
      A2 = arraySpeciesCreate2(O, actualDeleteCount);
      for (k2 = 0; k2 < actualDeleteCount; k2++) {
        from5 = actualStart + k2;
        if (from5 in O) createProperty$2(A2, k2, O[from5]);
      }
      A2.length = actualDeleteCount;
      if (insertCount < actualDeleteCount) {
        for (k2 = actualStart; k2 < len - actualDeleteCount; k2++) {
          from5 = k2 + actualDeleteCount;
          to = k2 + insertCount;
          if (from5 in O) O[to] = O[from5];
          else deletePropertyOrThrow2(O, to);
        }
        for (k2 = len; k2 > len - actualDeleteCount + insertCount; k2--) deletePropertyOrThrow2(O, k2 - 1);
      } else if (insertCount > actualDeleteCount) {
        for (k2 = len - actualDeleteCount; k2 > actualStart; k2--) {
          from5 = k2 + actualDeleteCount - 1;
          to = k2 + insertCount - 1;
          if (from5 in O) O[to] = O[from5];
          else deletePropertyOrThrow2(O, to);
        }
      }
      for (k2 = 0; k2 < insertCount; k2++) {
        O[k2 + actualStart] = arguments[k2 + 2];
      }
      setArrayLength(O, len - actualDeleteCount + insertCount);
      return A2;
    }
  });
  var addToUnscopables$3 = addToUnscopables$a;
  addToUnscopables$3("flat");
  var addToUnscopables$2 = addToUnscopables$a;
  addToUnscopables$2("flatMap");
  var arrayBufferBasicDetection = typeof ArrayBuffer != "undefined" && typeof DataView != "undefined";
  var defineBuiltIn$f = defineBuiltIn$l;
  var defineBuiltIns$6 = function defineBuiltIns(target, src, options) {
    for (var key in src) defineBuiltIn$f(target, key, src[key], options);
    return target;
  };
  var isPrototypeOf$8 = objectIsPrototypeOf;
  var $TypeError$i = TypeError;
  var anInstance$9 = function anInstance(it, Prototype2) {
    if (isPrototypeOf$8(Prototype2, it)) return it;
    throw new $TypeError$i("Incorrect invocation");
  };
  var toIntegerOrInfinity$9 = toIntegerOrInfinity$f;
  var toLength$b = toLength$d;
  var $RangeError$b = RangeError;
  var toIndex$2 = function toIndex(it) {
    if (it === void 0) return 0;
    var number = toIntegerOrInfinity$9(it);
    var length = toLength$b(number);
    if (number !== length) throw new $RangeError$b("Wrong length or index");
    return length;
  };
  var mathSign = Math.sign || function sign(x) {
    var n = +x;
    return n === 0 || n !== n ? n : n < 0 ? -1 : 1;
  };
  var EPSILON$1 = 2220446049250313e-31;
  var INVERSE_EPSILON = 1 / EPSILON$1;
  var mathRoundTiesToEven = function mathRoundTiesToEven2(n) {
    return n + INVERSE_EPSILON - INVERSE_EPSILON;
  };
  var sign$2 = mathSign;
  var roundTiesToEven = mathRoundTiesToEven;
  var abs$7 = Math.abs;
  var EPSILON = 2220446049250313e-31;
  var mathFloatRound = function mathFloatRound2(x, FLOAT_EPSILON, FLOAT_MAX_VALUE, FLOAT_MIN_VALUE) {
    var n = +x;
    var absolute = abs$7(n);
    var s = sign$2(n);
    if (absolute < FLOAT_MIN_VALUE) return s * roundTiesToEven(absolute / FLOAT_MIN_VALUE / FLOAT_EPSILON) * FLOAT_MIN_VALUE * FLOAT_EPSILON;
    var a = (1 + FLOAT_EPSILON / EPSILON) * absolute;
    var result = a - (a - absolute);
    if (result > FLOAT_MAX_VALUE || result !== result) return s * Infinity;
    return s * result;
  };
  var floatRound = mathFloatRound;
  var FLOAT32_EPSILON = 11920928955078125e-23;
  var FLOAT32_MAX_VALUE = 34028234663852886e22;
  var FLOAT32_MIN_VALUE = 11754943508222875e-54;
  var mathFround = Math.fround || function fround(x) {
    return floatRound(x, FLOAT32_EPSILON, FLOAT32_MAX_VALUE, FLOAT32_MIN_VALUE);
  };
  var $Array = Array;
  var abs$6 = Math.abs;
  var pow$3 = Math.pow;
  var floor$7 = Math.floor;
  var log$8 = Math.log;
  var LN2$2 = Math.LN2;
  var pack = function pack2(number, mantissaLength, bytes) {
    var buffer = $Array(bytes);
    var exponentLength = bytes * 8 - mantissaLength - 1;
    var eMax = (1 << exponentLength) - 1;
    var eBias = eMax >> 1;
    var rt = mantissaLength === 23 ? pow$3(2, -24) - pow$3(2, -77) : 0;
    var sign3 = number < 0 || number === 0 && 1 / number < 0 ? 1 : 0;
    var index2 = 0;
    var exponent, mantissa, c;
    number = abs$6(number);
    if (number !== number || number === Infinity) {
      mantissa = number !== number ? 1 : 0;
      exponent = eMax;
    } else {
      exponent = floor$7(log$8(number) / LN2$2);
      c = pow$3(2, -exponent);
      if (number * c < 1) {
        exponent--;
        c *= 2;
      }
      if (exponent + eBias >= 1) {
        number += rt / c;
      } else {
        number += rt * pow$3(2, 1 - eBias);
      }
      if (number * c >= 2) {
        exponent++;
        c /= 2;
      }
      if (exponent + eBias >= eMax) {
        mantissa = 0;
        exponent = eMax;
      } else if (exponent + eBias >= 1) {
        mantissa = (number * c - 1) * pow$3(2, mantissaLength);
        exponent += eBias;
      } else {
        mantissa = number * pow$3(2, eBias - 1) * pow$3(2, mantissaLength);
        exponent = 0;
      }
    }
    while (mantissaLength >= 8) {
      buffer[index2++] = mantissa & 255;
      mantissa /= 256;
      mantissaLength -= 8;
    }
    exponent = exponent << mantissaLength | mantissa;
    exponentLength += mantissaLength;
    while (exponentLength > 0) {
      buffer[index2++] = exponent & 255;
      exponent /= 256;
      exponentLength -= 8;
    }
    buffer[index2 - 1] |= sign3 * 128;
    return buffer;
  };
  var unpack = function unpack2(buffer, mantissaLength) {
    var bytes = buffer.length;
    var exponentLength = bytes * 8 - mantissaLength - 1;
    var eMax = (1 << exponentLength) - 1;
    var eBias = eMax >> 1;
    var nBits = exponentLength - 7;
    var index2 = bytes - 1;
    var sign3 = buffer[index2--];
    var exponent = sign3 & 127;
    var mantissa;
    sign3 >>= 7;
    while (nBits > 0) {
      exponent = exponent * 256 + buffer[index2--];
      nBits -= 8;
    }
    mantissa = exponent & (1 << -nBits) - 1;
    exponent >>= -nBits;
    nBits += mantissaLength;
    while (nBits > 0) {
      mantissa = mantissa * 256 + buffer[index2--];
      nBits -= 8;
    }
    if (exponent === 0) {
      exponent = 1 - eBias;
    } else if (exponent === eMax) {
      return mantissa ? NaN : sign3 ? -Infinity : Infinity;
    } else {
      mantissa += pow$3(2, mantissaLength);
      exponent -= eBias;
    }
    return (sign3 ? -1 : 1) * mantissa * pow$3(2, exponent - mantissaLength);
  };
  var ieee754 = {
    pack,
    unpack
  };
  var isCallable$g = isCallable$z;
  var isObject$w = isObject$I;
  var setPrototypeOf$6 = objectSetPrototypeOf$1;
  var inheritIfRequired$5 = function inheritIfRequired($this, dummy, Wrapper) {
    var NewTarget, NewTargetPrototype;
    if (
      // it can work only with native `setPrototypeOf`
      setPrototypeOf$6 && // we haven't completely correct pre-ES6 way for getting `new.target`, so use this
      isCallable$g(NewTarget = dummy.constructor) && NewTarget !== Wrapper && isObject$w(NewTargetPrototype = NewTarget.prototype) && NewTargetPrototype !== Wrapper.prototype
    ) setPrototypeOf$6($this, NewTargetPrototype);
    return $this;
  };
  var globalThis$G = globalThis_1;
  var uncurryThis$U = functionUncurryThis;
  var DESCRIPTORS$s = descriptors;
  var NATIVE_ARRAY_BUFFER$2 = arrayBufferBasicDetection;
  var FunctionName = functionName;
  var createNonEnumerableProperty$9 = createNonEnumerableProperty$d;
  var defineBuiltInAccessor$a = defineBuiltInAccessor$e;
  var defineBuiltIns$5 = defineBuiltIns$6;
  var fails$V = fails$1e;
  var anInstance$8 = anInstance$9;
  var toIntegerOrInfinity$8 = toIntegerOrInfinity$f;
  var toLength$a = toLength$d;
  var toIndex$1 = toIndex$2;
  var fround$2 = mathFround;
  var IEEE754 = ieee754;
  var getPrototypeOf$9 = objectGetPrototypeOf$2;
  var setPrototypeOf$5 = objectSetPrototypeOf$1;
  var arrayFill = arrayFill$1;
  var arraySlice$6 = arraySlice$a;
  var inheritIfRequired$4 = inheritIfRequired$5;
  var copyConstructorProperties$2 = copyConstructorProperties$5;
  var setToStringTag$7 = setToStringTag$c;
  var InternalStateModule$c = internalState;
  var PROPER_FUNCTION_NAME$2 = FunctionName.PROPER;
  var CONFIGURABLE_FUNCTION_NAME = FunctionName.CONFIGURABLE;
  var ARRAY_BUFFER$1 = "ArrayBuffer";
  var DATA_VIEW = "DataView";
  var PROTOTYPE = "prototype";
  var WRONG_LENGTH$1 = "Wrong length";
  var WRONG_INDEX = "Wrong index";
  var getInternalArrayBufferState = InternalStateModule$c.getterFor(ARRAY_BUFFER$1);
  var getInternalDataViewState = InternalStateModule$c.getterFor(DATA_VIEW);
  var setInternalState$b = InternalStateModule$c.set;
  var NativeArrayBuffer$1 = globalThis$G[ARRAY_BUFFER$1];
  var $ArrayBuffer = NativeArrayBuffer$1;
  var ArrayBufferPrototype$1 = $ArrayBuffer && $ArrayBuffer[PROTOTYPE];
  var $DataView = globalThis$G[DATA_VIEW];
  var DataViewPrototype$1 = $DataView && $DataView[PROTOTYPE];
  var ObjectPrototype$2 = Object.prototype;
  var Array$2 = globalThis$G.Array;
  var RangeError$3 = globalThis$G.RangeError;
  var fill2 = uncurryThis$U(arrayFill);
  var reverse2 = uncurryThis$U([].reverse);
  var packIEEE754 = IEEE754.pack;
  var unpackIEEE754 = IEEE754.unpack;
  var packInt8 = function packInt82(number) {
    return [number & 255];
  };
  var packInt16 = function packInt162(number) {
    return [number & 255, number >> 8 & 255];
  };
  var packInt32 = function packInt322(number) {
    return [number & 255, number >> 8 & 255, number >> 16 & 255, number >> 24 & 255];
  };
  var unpackInt32 = function unpackInt322(buffer) {
    return buffer[3] << 24 | buffer[2] << 16 | buffer[1] << 8 | buffer[0];
  };
  var packFloat32 = function packFloat322(number) {
    return packIEEE754(fround$2(number), 23, 4);
  };
  var packFloat64 = function packFloat642(number) {
    return packIEEE754(number, 52, 8);
  };
  var addGetter$1 = function addGetter(Constructor2, key, getInternalState2) {
    defineBuiltInAccessor$a(Constructor2[PROTOTYPE], key, {
      configurable: true,
      get: function get6() {
        return getInternalState2(this)[key];
      }
    });
  };
  var get$3 = function get(view, count, index2, isLittleEndian) {
    var store2 = getInternalDataViewState(view);
    var intIndex = toIndex$1(index2);
    var boolIsLittleEndian = !!isLittleEndian;
    if (intIndex + count > store2.byteLength) throw new RangeError$3(WRONG_INDEX);
    var bytes = store2.bytes;
    var start = intIndex + store2.byteOffset;
    var pack3 = arraySlice$6(bytes, start, start + count);
    return boolIsLittleEndian ? pack3 : reverse2(pack3);
  };
  var set$8 = function set(view, count, index2, conversion, value, isLittleEndian) {
    var store2 = getInternalDataViewState(view);
    var intIndex = toIndex$1(index2);
    var pack3 = conversion(+value);
    var boolIsLittleEndian = !!isLittleEndian;
    if (intIndex + count > store2.byteLength) throw new RangeError$3(WRONG_INDEX);
    var bytes = store2.bytes;
    var start = intIndex + store2.byteOffset;
    for (var i = 0; i < count; i++) bytes[start + i] = pack3[boolIsLittleEndian ? i : count - i - 1];
  };
  if (!NATIVE_ARRAY_BUFFER$2) {
    $ArrayBuffer = function ArrayBuffer2(length) {
      anInstance$8(this, ArrayBufferPrototype$1);
      var byteLength = toIndex$1(length);
      setInternalState$b(this, {
        type: ARRAY_BUFFER$1,
        bytes: fill2(Array$2(byteLength), 0),
        byteLength
      });
      if (!DESCRIPTORS$s) {
        this.byteLength = byteLength;
        this.detached = false;
      }
    };
    ArrayBufferPrototype$1 = $ArrayBuffer[PROTOTYPE];
    $DataView = function DataView2(buffer, byteOffset, byteLength) {
      anInstance$8(this, DataViewPrototype$1);
      anInstance$8(buffer, ArrayBufferPrototype$1);
      var bufferState = getInternalArrayBufferState(buffer);
      var bufferLength = bufferState.byteLength;
      var offset = toIntegerOrInfinity$8(byteOffset);
      if (offset < 0 || offset > bufferLength) throw new RangeError$3("Wrong offset");
      byteLength = byteLength === void 0 ? bufferLength - offset : toLength$a(byteLength);
      if (offset + byteLength > bufferLength) throw new RangeError$3(WRONG_LENGTH$1);
      setInternalState$b(this, {
        type: DATA_VIEW,
        buffer,
        byteLength,
        byteOffset: offset,
        bytes: bufferState.bytes
      });
      if (!DESCRIPTORS$s) {
        this.buffer = buffer;
        this.byteLength = byteLength;
        this.byteOffset = offset;
      }
    };
    DataViewPrototype$1 = $DataView[PROTOTYPE];
    if (DESCRIPTORS$s) {
      addGetter$1($ArrayBuffer, "byteLength", getInternalArrayBufferState);
      addGetter$1($DataView, "buffer", getInternalDataViewState);
      addGetter$1($DataView, "byteLength", getInternalDataViewState);
      addGetter$1($DataView, "byteOffset", getInternalDataViewState);
    }
    defineBuiltIns$5(DataViewPrototype$1, {
      getInt8: function getInt8(byteOffset) {
        return get$3(this, 1, byteOffset)[0] << 24 >> 24;
      },
      getUint8: function getUint82(byteOffset) {
        return get$3(this, 1, byteOffset)[0];
      },
      getInt16: function getInt16(byteOffset) {
        var bytes = get$3(this, 2, byteOffset, arguments.length > 1 ? arguments[1] : false);
        return (bytes[1] << 8 | bytes[0]) << 16 >> 16;
      },
      getUint16: function getUint16(byteOffset) {
        var bytes = get$3(this, 2, byteOffset, arguments.length > 1 ? arguments[1] : false);
        return bytes[1] << 8 | bytes[0];
      },
      getInt32: function getInt32(byteOffset) {
        return unpackInt32(get$3(this, 4, byteOffset, arguments.length > 1 ? arguments[1] : false));
      },
      getUint32: function getUint32(byteOffset) {
        return unpackInt32(get$3(this, 4, byteOffset, arguments.length > 1 ? arguments[1] : false)) >>> 0;
      },
      getFloat32: function getFloat32(byteOffset) {
        return unpackIEEE754(get$3(this, 4, byteOffset, arguments.length > 1 ? arguments[1] : false), 23);
      },
      getFloat64: function getFloat64(byteOffset) {
        return unpackIEEE754(get$3(this, 8, byteOffset, arguments.length > 1 ? arguments[1] : false), 52);
      },
      setInt8: function setInt8(byteOffset, value) {
        set$8(this, 1, byteOffset, packInt8, value);
      },
      setUint8: function setUint82(byteOffset, value) {
        set$8(this, 1, byteOffset, packInt8, value);
      },
      setInt16: function setInt16(byteOffset, value) {
        set$8(this, 2, byteOffset, packInt16, value, arguments.length > 2 ? arguments[2] : false);
      },
      setUint16: function setUint16(byteOffset, value) {
        set$8(this, 2, byteOffset, packInt16, value, arguments.length > 2 ? arguments[2] : false);
      },
      setInt32: function setInt32(byteOffset, value) {
        set$8(this, 4, byteOffset, packInt32, value, arguments.length > 2 ? arguments[2] : false);
      },
      setUint32: function setUint32(byteOffset, value) {
        set$8(this, 4, byteOffset, packInt32, value, arguments.length > 2 ? arguments[2] : false);
      },
      setFloat32: function setFloat32(byteOffset, value) {
        set$8(this, 4, byteOffset, packFloat32, value, arguments.length > 2 ? arguments[2] : false);
      },
      setFloat64: function setFloat64(byteOffset, value) {
        set$8(this, 8, byteOffset, packFloat64, value, arguments.length > 2 ? arguments[2] : false);
      }
    });
  } else {
    var INCORRECT_ARRAY_BUFFER_NAME = PROPER_FUNCTION_NAME$2 && NativeArrayBuffer$1.name !== ARRAY_BUFFER$1;
    if (!fails$V(function() {
      NativeArrayBuffer$1(1);
    }) || !fails$V(function() {
      new NativeArrayBuffer$1(-1);
    }) || fails$V(function() {
      new NativeArrayBuffer$1();
      new NativeArrayBuffer$1(1.5);
      new NativeArrayBuffer$1(NaN);
      return NativeArrayBuffer$1.length !== 1 || INCORRECT_ARRAY_BUFFER_NAME && !CONFIGURABLE_FUNCTION_NAME;
    })) {
      $ArrayBuffer = function ArrayBuffer2(length) {
        anInstance$8(this, ArrayBufferPrototype$1);
        return inheritIfRequired$4(new NativeArrayBuffer$1(toIndex$1(length)), this, $ArrayBuffer);
      };
      $ArrayBuffer[PROTOTYPE] = ArrayBufferPrototype$1;
      ArrayBufferPrototype$1.constructor = $ArrayBuffer;
      copyConstructorProperties$2($ArrayBuffer, NativeArrayBuffer$1);
    } else if (INCORRECT_ARRAY_BUFFER_NAME && CONFIGURABLE_FUNCTION_NAME) {
      createNonEnumerableProperty$9(NativeArrayBuffer$1, "name", ARRAY_BUFFER$1);
    }
    if (setPrototypeOf$5 && getPrototypeOf$9(DataViewPrototype$1) !== ObjectPrototype$2) {
      setPrototypeOf$5(DataViewPrototype$1, ObjectPrototype$2);
    }
    var testView = new $DataView(new $ArrayBuffer(2));
    var $setInt8 = uncurryThis$U(DataViewPrototype$1.setInt8);
    testView.setInt8(0, 2147483648);
    testView.setInt8(1, 2147483649);
    if (testView.getInt8(0) || !testView.getInt8(1)) defineBuiltIns$5(DataViewPrototype$1, {
      setInt8: function setInt8(byteOffset, value) {
        $setInt8(this, byteOffset, value << 24 >> 24);
      },
      setUint8: function setUint82(byteOffset, value) {
        $setInt8(this, byteOffset, value << 24 >> 24);
      }
    }, {
      unsafe: true
    });
  }
  setToStringTag$7($ArrayBuffer, ARRAY_BUFFER$1);
  setToStringTag$7($DataView, DATA_VIEW);
  var arrayBuffer = {
    ArrayBuffer: $ArrayBuffer,
    DataView: $DataView
  };
  var $$38 = _export;
  var globalThis$F = globalThis_1;
  var arrayBufferModule = arrayBuffer;
  var setSpecies$5 = setSpecies$7;
  var ARRAY_BUFFER = "ArrayBuffer";
  var ArrayBuffer$4 = arrayBufferModule[ARRAY_BUFFER];
  var NativeArrayBuffer = globalThis$F[ARRAY_BUFFER];
  $$38({
    global: true,
    constructor: true,
    forced: NativeArrayBuffer !== ArrayBuffer$4
  }, {
    ArrayBuffer: ArrayBuffer$4
  });
  setSpecies$5(ARRAY_BUFFER);
  var NATIVE_ARRAY_BUFFER$1 = arrayBufferBasicDetection;
  var DESCRIPTORS$r = descriptors;
  var globalThis$E = globalThis_1;
  var isCallable$f = isCallable$z;
  var isObject$v = isObject$I;
  var hasOwn$d = hasOwnProperty_1;
  var classof$b = classof$j;
  var tryToString$2 = tryToString$7;
  var createNonEnumerableProperty$8 = createNonEnumerableProperty$d;
  var defineBuiltIn$e = defineBuiltIn$l;
  var defineBuiltInAccessor$9 = defineBuiltInAccessor$e;
  var isPrototypeOf$7 = objectIsPrototypeOf;
  var getPrototypeOf$8 = objectGetPrototypeOf$2;
  var setPrototypeOf$4 = objectSetPrototypeOf$1;
  var wellKnownSymbol$j = wellKnownSymbol$C;
  var uid$1 = uid$5;
  var InternalStateModule$b = internalState;
  var enforceInternalState$3 = InternalStateModule$b.enforce;
  var getInternalState$6 = InternalStateModule$b.get;
  var Int8Array$4 = globalThis$E.Int8Array;
  var Int8ArrayPrototype$1 = Int8Array$4 && Int8Array$4.prototype;
  var Uint8ClampedArray$1 = globalThis$E.Uint8ClampedArray;
  var Uint8ClampedArrayPrototype = Uint8ClampedArray$1 && Uint8ClampedArray$1.prototype;
  var TypedArray$1 = Int8Array$4 && getPrototypeOf$8(Int8Array$4);
  var TypedArrayPrototype$2 = Int8ArrayPrototype$1 && getPrototypeOf$8(Int8ArrayPrototype$1);
  var ObjectPrototype$1 = Object.prototype;
  var TypeError$5 = globalThis$E.TypeError;
  var TO_STRING_TAG$1 = wellKnownSymbol$j("toStringTag");
  var TYPED_ARRAY_TAG$1 = uid$1("TYPED_ARRAY_TAG");
  var TYPED_ARRAY_CONSTRUCTOR = "TypedArrayConstructor";
  var NATIVE_ARRAY_BUFFER_VIEWS$3 = NATIVE_ARRAY_BUFFER$1 && !!setPrototypeOf$4 && classof$b(globalThis$E.opera) !== "Opera";
  var TYPED_ARRAY_TAG_REQUIRED = false;
  var NAME$1, Constructor, Prototype;
  var TypedArrayConstructorsList = {
    Int8Array: 1,
    Uint8Array: 1,
    Uint8ClampedArray: 1,
    Int16Array: 2,
    Uint16Array: 2,
    Int32Array: 4,
    Uint32Array: 4,
    Float32Array: 4,
    Float64Array: 8
  };
  var BigIntArrayConstructorsList = {
    BigInt64Array: 8,
    BigUint64Array: 8
  };
  var isView = function isView2(it) {
    if (!isObject$v(it)) return false;
    var klass = classof$b(it);
    return klass === "DataView" || hasOwn$d(TypedArrayConstructorsList, klass) || hasOwn$d(BigIntArrayConstructorsList, klass);
  };
  var _getTypedArrayConstructor = function getTypedArrayConstructor(it) {
    var proto = getPrototypeOf$8(it);
    if (!isObject$v(proto)) return;
    var state = getInternalState$6(proto);
    return state && hasOwn$d(state, TYPED_ARRAY_CONSTRUCTOR) ? state[TYPED_ARRAY_CONSTRUCTOR] : _getTypedArrayConstructor(proto);
  };
  var isTypedArray$1 = function isTypedArray3(it) {
    if (!isObject$v(it)) return false;
    var klass = classof$b(it);
    return hasOwn$d(TypedArrayConstructorsList, klass) || hasOwn$d(BigIntArrayConstructorsList, klass);
  };
  var aTypedArray$m = function aTypedArray(it) {
    if (isTypedArray$1(it)) return it;
    throw new TypeError$5("Target is not a typed array");
  };
  var aTypedArrayConstructor$2 = function aTypedArrayConstructor(C) {
    if (isCallable$f(C) && (!setPrototypeOf$4 || isPrototypeOf$7(TypedArray$1, C))) return C;
    throw new TypeError$5(tryToString$2(C) + " is not a typed array constructor");
  };
  var exportTypedArrayMethod$n = function exportTypedArrayMethod(KEY, property, forced, options) {
    if (!DESCRIPTORS$r) return;
    if (forced) for (var ARRAY in TypedArrayConstructorsList) {
      var TypedArrayConstructor = globalThis$E[ARRAY];
      if (TypedArrayConstructor && hasOwn$d(TypedArrayConstructor.prototype, KEY)) try {
        delete TypedArrayConstructor.prototype[KEY];
      } catch (error2) {
        try {
          TypedArrayConstructor.prototype[KEY] = property;
        } catch (error22) {
        }
      }
    }
    if (!TypedArrayPrototype$2[KEY] || forced) {
      defineBuiltIn$e(TypedArrayPrototype$2, KEY, forced ? property : NATIVE_ARRAY_BUFFER_VIEWS$3 && Int8ArrayPrototype$1[KEY] || property, options);
    }
  };
  var exportTypedArrayStaticMethod$2 = function exportTypedArrayStaticMethod(KEY, property, forced) {
    var ARRAY, TypedArrayConstructor;
    if (!DESCRIPTORS$r) return;
    if (setPrototypeOf$4) {
      if (forced) for (ARRAY in TypedArrayConstructorsList) {
        TypedArrayConstructor = globalThis$E[ARRAY];
        if (TypedArrayConstructor && hasOwn$d(TypedArrayConstructor, KEY)) try {
          delete TypedArrayConstructor[KEY];
        } catch (error2) {
        }
      }
      if (!TypedArray$1[KEY] || forced) {
        try {
          return defineBuiltIn$e(TypedArray$1, KEY, forced ? property : NATIVE_ARRAY_BUFFER_VIEWS$3 && TypedArray$1[KEY] || property);
        } catch (error2) {
        }
      } else return;
    }
    for (ARRAY in TypedArrayConstructorsList) {
      TypedArrayConstructor = globalThis$E[ARRAY];
      if (TypedArrayConstructor && (!TypedArrayConstructor[KEY] || forced)) {
        defineBuiltIn$e(TypedArrayConstructor, KEY, property);
      }
    }
  };
  for (NAME$1 in TypedArrayConstructorsList) {
    Constructor = globalThis$E[NAME$1];
    Prototype = Constructor && Constructor.prototype;
    if (Prototype) enforceInternalState$3(Prototype)[TYPED_ARRAY_CONSTRUCTOR] = Constructor;
    else NATIVE_ARRAY_BUFFER_VIEWS$3 = false;
  }
  for (NAME$1 in BigIntArrayConstructorsList) {
    Constructor = globalThis$E[NAME$1];
    Prototype = Constructor && Constructor.prototype;
    if (Prototype) enforceInternalState$3(Prototype)[TYPED_ARRAY_CONSTRUCTOR] = Constructor;
  }
  if (!NATIVE_ARRAY_BUFFER_VIEWS$3 || !isCallable$f(TypedArray$1) || TypedArray$1 === Function.prototype) {
    TypedArray$1 = function TypedArray2() {
      throw new TypeError$5("Incorrect invocation");
    };
    if (NATIVE_ARRAY_BUFFER_VIEWS$3) for (NAME$1 in TypedArrayConstructorsList) {
      if (globalThis$E[NAME$1]) setPrototypeOf$4(globalThis$E[NAME$1], TypedArray$1);
    }
  }
  if (!NATIVE_ARRAY_BUFFER_VIEWS$3 || !TypedArrayPrototype$2 || TypedArrayPrototype$2 === ObjectPrototype$1) {
    TypedArrayPrototype$2 = TypedArray$1.prototype;
    if (NATIVE_ARRAY_BUFFER_VIEWS$3) for (NAME$1 in TypedArrayConstructorsList) {
      if (globalThis$E[NAME$1]) setPrototypeOf$4(globalThis$E[NAME$1].prototype, TypedArrayPrototype$2);
    }
  }
  if (NATIVE_ARRAY_BUFFER_VIEWS$3 && getPrototypeOf$8(Uint8ClampedArrayPrototype) !== TypedArrayPrototype$2) {
    setPrototypeOf$4(Uint8ClampedArrayPrototype, TypedArrayPrototype$2);
  }
  if (DESCRIPTORS$r && !hasOwn$d(TypedArrayPrototype$2, TO_STRING_TAG$1)) {
    TYPED_ARRAY_TAG_REQUIRED = true;
    defineBuiltInAccessor$9(TypedArrayPrototype$2, TO_STRING_TAG$1, {
      configurable: true,
      get: function get6() {
        return isObject$v(this) ? this[TYPED_ARRAY_TAG$1] : void 0;
      }
    });
    for (NAME$1 in TypedArrayConstructorsList) if (globalThis$E[NAME$1]) {
      createNonEnumerableProperty$8(globalThis$E[NAME$1], TYPED_ARRAY_TAG$1, NAME$1);
    }
  }
  var arrayBufferViewCore = {
    NATIVE_ARRAY_BUFFER_VIEWS: NATIVE_ARRAY_BUFFER_VIEWS$3,
    TYPED_ARRAY_TAG: TYPED_ARRAY_TAG_REQUIRED && TYPED_ARRAY_TAG$1,
    aTypedArray: aTypedArray$m,
    aTypedArrayConstructor: aTypedArrayConstructor$2,
    exportTypedArrayMethod: exportTypedArrayMethod$n,
    exportTypedArrayStaticMethod: exportTypedArrayStaticMethod$2,
    getTypedArrayConstructor: _getTypedArrayConstructor,
    isView,
    isTypedArray: isTypedArray$1,
    TypedArray: TypedArray$1,
    TypedArrayPrototype: TypedArrayPrototype$2
  };
  var $$37 = _export;
  var ArrayBufferViewCore$o = arrayBufferViewCore;
  var NATIVE_ARRAY_BUFFER_VIEWS$2 = ArrayBufferViewCore$o.NATIVE_ARRAY_BUFFER_VIEWS;
  $$37({
    target: "ArrayBuffer",
    stat: true,
    forced: !NATIVE_ARRAY_BUFFER_VIEWS$2
  }, {
    isView: ArrayBufferViewCore$o.isView
  });
  var $$36 = _export;
  var uncurryThis$T = functionUncurryThisClause;
  var fails$U = fails$1e;
  var ArrayBufferModule$2 = arrayBuffer;
  var anObject$E = anObject$N;
  var toAbsoluteIndex$2 = toAbsoluteIndex$8;
  var toLength$9 = toLength$d;
  var ArrayBuffer$3 = ArrayBufferModule$2.ArrayBuffer;
  var DataView$2 = ArrayBufferModule$2.DataView;
  var DataViewPrototype = DataView$2.prototype;
  var nativeArrayBufferSlice = uncurryThis$T(ArrayBuffer$3.prototype.slice);
  var getUint8 = uncurryThis$T(DataViewPrototype.getUint8);
  var setUint8 = uncurryThis$T(DataViewPrototype.setUint8);
  var INCORRECT_SLICE = fails$U(function() {
    return !new ArrayBuffer$3(2).slice(1, void 0).byteLength;
  });
  $$36({
    target: "ArrayBuffer",
    proto: true,
    unsafe: true,
    forced: INCORRECT_SLICE
  }, {
    slice: function slice2(start, end) {
      if (nativeArrayBufferSlice && end === void 0) {
        return nativeArrayBufferSlice(anObject$E(this), start);
      }
      var length = anObject$E(this).byteLength;
      var first = toAbsoluteIndex$2(start, length);
      var fin = toAbsoluteIndex$2(end === void 0 ? length : end, length);
      var result = new ArrayBuffer$3(toLength$9(fin - first));
      var viewSource = new DataView$2(this);
      var viewTarget = new DataView$2(result);
      var index2 = 0;
      while (first < fin) {
        setUint8(viewTarget, index2++, getUint8(viewSource, first++));
      }
      return result;
    }
  });
  var $$35 = _export;
  var ArrayBufferModule$1 = arrayBuffer;
  var NATIVE_ARRAY_BUFFER = arrayBufferBasicDetection;
  $$35({
    global: true,
    constructor: true,
    forced: !NATIVE_ARRAY_BUFFER
  }, {
    DataView: ArrayBufferModule$1.DataView
  });
  var $$34 = _export;
  var uncurryThis$S = functionUncurryThis;
  var $Date = Date;
  var thisTimeValue$2 = uncurryThis$S($Date.prototype.getTime);
  $$34({
    target: "Date",
    stat: true
  }, {
    now: function now() {
      return thisTimeValue$2(new $Date());
    }
  });
  var toIntegerOrInfinity$7 = toIntegerOrInfinity$f;
  var toString$o = toString$t;
  var requireObjectCoercible$g = requireObjectCoercible$k;
  var $RangeError$a = RangeError;
  var stringRepeat = function repeat(count) {
    var str = toString$o(requireObjectCoercible$g(this));
    var result = "";
    var n = toIntegerOrInfinity$7(count);
    if (n < 0 || n === Infinity) throw new $RangeError$a("Wrong number of repetitions");
    for (; n > 0; (n >>>= 1) && (str += str)) if (n & 1) result += str;
    return result;
  };
  var uncurryThis$R = functionUncurryThis;
  var toLength$8 = toLength$d;
  var toString$n = toString$t;
  var $repeat$1 = stringRepeat;
  var requireObjectCoercible$f = requireObjectCoercible$k;
  var repeat$2 = uncurryThis$R($repeat$1);
  var stringSlice$d = uncurryThis$R("".slice);
  var ceil = Math.ceil;
  var createMethod$3 = function createMethod4(IS_END) {
    return function($this, maxLength, fillString) {
      var S = toString$n(requireObjectCoercible$f($this));
      var intMaxLength = toLength$8(maxLength);
      var stringLength = S.length;
      var fillStr = fillString === void 0 ? " " : toString$n(fillString);
      var fillLen, stringFiller;
      if (intMaxLength <= stringLength || fillStr === "") return S;
      fillLen = intMaxLength - stringLength;
      stringFiller = repeat$2(fillStr, ceil(fillLen / fillStr.length));
      if (stringFiller.length > fillLen) stringFiller = stringSlice$d(stringFiller, 0, fillLen);
      return IS_END ? S + stringFiller : stringFiller + S;
    };
  };
  var stringPad = {
    // `String.prototype.padStart` method
    // https://tc39.es/ecma262/#sec-string.prototype.padstart
    start: createMethod$3(false),
    // `String.prototype.padEnd` method
    // https://tc39.es/ecma262/#sec-string.prototype.padend
    end: createMethod$3(true)
  };
  var uncurryThis$Q = functionUncurryThis;
  var fails$T = fails$1e;
  var padStart = stringPad.start;
  var $RangeError$9 = RangeError;
  var $isFinite = isFinite;
  var abs$5 = Math.abs;
  var DatePrototype$2 = Date.prototype;
  var nativeDateToISOString = DatePrototype$2.toISOString;
  var thisTimeValue$1 = uncurryThis$Q(DatePrototype$2.getTime);
  var getUTCDate = uncurryThis$Q(DatePrototype$2.getUTCDate);
  var getUTCFullYear = uncurryThis$Q(DatePrototype$2.getUTCFullYear);
  var getUTCHours = uncurryThis$Q(DatePrototype$2.getUTCHours);
  var getUTCMilliseconds = uncurryThis$Q(DatePrototype$2.getUTCMilliseconds);
  var getUTCMinutes = uncurryThis$Q(DatePrototype$2.getUTCMinutes);
  var getUTCMonth = uncurryThis$Q(DatePrototype$2.getUTCMonth);
  var getUTCSeconds = uncurryThis$Q(DatePrototype$2.getUTCSeconds);
  var dateToIsoString = fails$T(function() {
    return nativeDateToISOString.call(new Date(-5e13 - 1)) !== "0385-07-25T07:06:39.999Z";
  }) || !fails$T(function() {
    nativeDateToISOString.call(/* @__PURE__ */ new Date(NaN));
  }) ? function toISOString() {
    if (!$isFinite(thisTimeValue$1(this))) throw new $RangeError$9("Invalid time value");
    var date = this;
    var year = getUTCFullYear(date);
    var milliseconds = getUTCMilliseconds(date);
    var sign3 = year < 0 ? "-" : year > 9999 ? "+" : "";
    return sign3 + padStart(abs$5(year), sign3 ? 6 : 4, 0) + "-" + padStart(getUTCMonth(date) + 1, 2, 0) + "-" + padStart(getUTCDate(date), 2, 0) + "T" + padStart(getUTCHours(date), 2, 0) + ":" + padStart(getUTCMinutes(date), 2, 0) + ":" + padStart(getUTCSeconds(date), 2, 0) + "." + padStart(milliseconds, 3, 0) + "Z";
  } : nativeDateToISOString;
  var $$33 = _export;
  var toISOString2 = dateToIsoString;
  $$33({
    target: "Date",
    proto: true,
    forced: Date.prototype.toISOString !== toISOString2
  }, {
    toISOString: toISOString2
  });
  var $$32 = _export;
  var fails$S = fails$1e;
  var toObject$e = toObject$s;
  var toPrimitive$2 = toPrimitive$4;
  var FORCED$o = fails$S(function() {
    return (/* @__PURE__ */ new Date(NaN)).toJSON() !== null || Date.prototype.toJSON.call({
      toISOString: function toISOString3() {
        return 1;
      }
    }) !== 1;
  });
  $$32({
    target: "Date",
    proto: true,
    arity: 1,
    forced: FORCED$o
  }, {
    // eslint-disable-next-line no-unused-vars -- required for `.length`
    toJSON: function toJSON(key) {
      var O = toObject$e(this);
      var pv = toPrimitive$2(O, "number");
      return typeof pv == "number" && !isFinite(pv) ? null : O.toISOString();
    }
  });
  var anObject$D = anObject$N;
  var ordinaryToPrimitive2 = ordinaryToPrimitive$2;
  var $TypeError$h = TypeError;
  var dateToPrimitive$1 = function dateToPrimitive(hint) {
    anObject$D(this);
    if (hint === "string" || hint === "default") hint = "string";
    else if (hint !== "number") throw new $TypeError$h("Incorrect hint");
    return ordinaryToPrimitive2(this, hint);
  };
  var hasOwn$c = hasOwnProperty_1;
  var defineBuiltIn$d = defineBuiltIn$l;
  var dateToPrimitive2 = dateToPrimitive$1;
  var wellKnownSymbol$i = wellKnownSymbol$C;
  var TO_PRIMITIVE = wellKnownSymbol$i("toPrimitive");
  var DatePrototype$1 = Date.prototype;
  if (!hasOwn$c(DatePrototype$1, TO_PRIMITIVE)) {
    defineBuiltIn$d(DatePrototype$1, TO_PRIMITIVE, dateToPrimitive2);
  }
  var uncurryThis$P = functionUncurryThis;
  var defineBuiltIn$c = defineBuiltIn$l;
  var DatePrototype = Date.prototype;
  var INVALID_DATE = "Invalid Date";
  var TO_STRING$1 = "toString";
  var nativeDateToString = uncurryThis$P(DatePrototype[TO_STRING$1]);
  var thisTimeValue = uncurryThis$P(DatePrototype.getTime);
  if (String(/* @__PURE__ */ new Date(NaN)) !== INVALID_DATE) {
    defineBuiltIn$c(DatePrototype, TO_STRING$1, function toString7() {
      var value = thisTimeValue(this);
      return value === value ? nativeDateToString(this) : INVALID_DATE;
    });
  }
  var uncurryThis$O = functionUncurryThis;
  var aCallable$k = aCallable$s;
  var isObject$u = isObject$I;
  var hasOwn$b = hasOwnProperty_1;
  var arraySlice$5 = arraySlice$a;
  var NATIVE_BIND = functionBindNative;
  var $Function = Function;
  var concat$3 = uncurryThis$O([].concat);
  var join$6 = uncurryThis$O([].join);
  var factories = {};
  var construct = function construct2(C, argsLength, args) {
    if (!hasOwn$b(factories, argsLength)) {
      var list = [];
      var i = 0;
      for (; i < argsLength; i++) list[i] = "a[" + i + "]";
      factories[argsLength] = $Function("C,a", "return new C(" + join$6(list, ",") + ")");
    }
    return factories[argsLength](C, args);
  };
  var functionBind = NATIVE_BIND ? $Function.bind : function bind2(that) {
    var F = aCallable$k(this);
    var Prototype2 = F.prototype;
    var partArgs = arraySlice$5(arguments, 1);
    var boundFunction = function bound() {
      var args = concat$3(partArgs, arraySlice$5(arguments));
      return this instanceof boundFunction ? construct(F, args.length, args) : F.apply(that, args);
    };
    if (isObject$u(Prototype2)) boundFunction.prototype = Prototype2;
    return boundFunction;
  };
  var $$31 = _export;
  var bind$m = functionBind;
  $$31({
    target: "Function",
    proto: true,
    forced: Function.bind !== bind$m
  }, {
    bind: bind$m
  });
  var isCallable$e = isCallable$z;
  var isObject$t = isObject$I;
  var definePropertyModule$5 = objectDefineProperty;
  var isPrototypeOf$6 = objectIsPrototypeOf;
  var wellKnownSymbol$h = wellKnownSymbol$C;
  var makeBuiltIn = makeBuiltInExports;
  var HAS_INSTANCE = wellKnownSymbol$h("hasInstance");
  var FunctionPrototype$1 = Function.prototype;
  if (!(HAS_INSTANCE in FunctionPrototype$1)) {
    definePropertyModule$5.f(FunctionPrototype$1, HAS_INSTANCE, {
      value: makeBuiltIn(function(O) {
        if (!isCallable$e(this) || !isObject$t(O)) return false;
        var P2 = this.prototype;
        return isObject$t(P2) ? isPrototypeOf$6(P2, O) : O instanceof this;
      }, HAS_INSTANCE)
    });
  }
  var DESCRIPTORS$q = descriptors;
  var FUNCTION_NAME_EXISTS = functionName.EXISTS;
  var uncurryThis$N = functionUncurryThis;
  var defineBuiltInAccessor$8 = defineBuiltInAccessor$e;
  var FunctionPrototype = Function.prototype;
  var functionToString = uncurryThis$N(FunctionPrototype.toString);
  var nameRE = /function\b(?:\s|\/\*[\S\s]*?\*\/|\/\/[^\n\r]*[\n\r]+)*([^\s(/]*)/;
  var regExpExec$5 = uncurryThis$N(nameRE.exec);
  var NAME = "name";
  if (DESCRIPTORS$q && !FUNCTION_NAME_EXISTS) {
    defineBuiltInAccessor$8(FunctionPrototype, NAME, {
      configurable: true,
      get: function get6() {
        try {
          return regExpExec$5(nameRE, functionToString(this))[1];
        } catch (error2) {
          return "";
        }
      }
    });
  }
  var globalThis$D = globalThis_1;
  var setToStringTag$6 = setToStringTag$c;
  setToStringTag$6(globalThis$D.JSON, "JSON", true);
  var internalMetadata = { exports: {} };
  var fails$R = fails$1e;
  var arrayBufferNonExtensible = fails$R(function() {
    if (typeof ArrayBuffer == "function") {
      var buffer = new ArrayBuffer(8);
      if (Object.isExtensible(buffer)) Object.defineProperty(buffer, "a", {
        value: 8
      });
    }
  });
  var fails$Q = fails$1e;
  var isObject$s = isObject$I;
  var classof$a = classofRaw$2;
  var ARRAY_BUFFER_NON_EXTENSIBLE$2 = arrayBufferNonExtensible;
  var $isExtensible$2 = Object.isExtensible;
  var FAILS_ON_PRIMITIVES$6 = fails$Q(function() {
    $isExtensible$2(1);
  });
  var objectIsExtensible = FAILS_ON_PRIMITIVES$6 || ARRAY_BUFFER_NON_EXTENSIBLE$2 ? function isExtensible(it) {
    if (!isObject$s(it)) return false;
    if (ARRAY_BUFFER_NON_EXTENSIBLE$2 && classof$a(it) === "ArrayBuffer") return false;
    return $isExtensible$2 ? $isExtensible$2(it) : true;
  } : $isExtensible$2;
  var fails$P = fails$1e;
  var freezing = !fails$P(function() {
    return Object.isExtensible(Object.preventExtensions({}));
  });
  var $$30 = _export;
  var uncurryThis$M = functionUncurryThis;
  var hiddenKeys = hiddenKeys$6;
  var isObject$r = isObject$I;
  var hasOwn$a = hasOwnProperty_1;
  var defineProperty$5 = objectDefineProperty.f;
  var getOwnPropertyNamesModule = objectGetOwnPropertyNames;
  var getOwnPropertyNamesExternalModule = objectGetOwnPropertyNamesExternal;
  var isExtensible$1 = objectIsExtensible;
  var uid2 = uid$5;
  var FREEZING$5 = freezing;
  var REQUIRED = false;
  var METADATA = uid2("meta");
  var id$1 = 0;
  var setMetadata = function setMetadata2(it) {
    defineProperty$5(it, METADATA, {
      value: {
        objectID: "O" + id$1++,
        // object ID
        weakData: {}
        // weak collections IDs
      }
    });
  };
  var fastKey$1 = function fastKey(it, create5) {
    if (!isObject$r(it)) return _typeof(it) == "symbol" ? it : (typeof it == "string" ? "S" : "P") + it;
    if (!hasOwn$a(it, METADATA)) {
      if (!isExtensible$1(it)) return "F";
      if (!create5) return "E";
      setMetadata(it);
    }
    return it[METADATA].objectID;
  };
  var getWeakData$1 = function getWeakData(it, create5) {
    if (!hasOwn$a(it, METADATA)) {
      if (!isExtensible$1(it)) return true;
      if (!create5) return false;
      setMetadata(it);
    }
    return it[METADATA].weakData;
  };
  var onFreeze$3 = function onFreeze(it) {
    if (FREEZING$5 && REQUIRED && isExtensible$1(it) && !hasOwn$a(it, METADATA)) setMetadata(it);
    return it;
  };
  var enable = function enable2() {
    meta.enable = function() {
    };
    REQUIRED = true;
    var getOwnPropertyNames5 = getOwnPropertyNamesModule.f;
    var splice3 = uncurryThis$M([].splice);
    var test2 = {};
    test2[METADATA] = 1;
    if (getOwnPropertyNames5(test2).length) {
      getOwnPropertyNamesModule.f = function(it) {
        var result = getOwnPropertyNames5(it);
        for (var i = 0, length = result.length; i < length; i++) {
          if (result[i] === METADATA) {
            splice3(result, i, 1);
            break;
          }
        }
        return result;
      };
      $$30({
        target: "Object",
        stat: true,
        forced: true
      }, {
        getOwnPropertyNames: getOwnPropertyNamesExternalModule.f
      });
    }
  };
  var meta = internalMetadata.exports = {
    enable,
    fastKey: fastKey$1,
    getWeakData: getWeakData$1,
    onFreeze: onFreeze$3
  };
  hiddenKeys[METADATA] = true;
  var internalMetadataExports = internalMetadata.exports;
  var bind$l = functionBindContext;
  var call$A = functionCall;
  var anObject$C = anObject$N;
  var tryToString$1 = tryToString$7;
  var isArrayIteratorMethod$1 = isArrayIteratorMethod$3;
  var lengthOfArrayLike$7 = lengthOfArrayLike$m;
  var isPrototypeOf$5 = objectIsPrototypeOf;
  var getIterator$3 = getIterator$5;
  var getIteratorMethod$2 = getIteratorMethod$5;
  var iteratorClose$2 = iteratorClose$4;
  var $TypeError$g = TypeError;
  var Result = function Result2(stopped, result) {
    this.stopped = stopped;
    this.result = result;
  };
  var ResultPrototype = Result.prototype;
  var iterate$y = function iterate(iterable, unboundFunction, options) {
    var that = options && options.that;
    var AS_ENTRIES = !!(options && options.AS_ENTRIES);
    var IS_RECORD = !!(options && options.IS_RECORD);
    var IS_ITERATOR = !!(options && options.IS_ITERATOR);
    var INTERRUPTED = !!(options && options.INTERRUPTED);
    var fn = bind$l(unboundFunction, that);
    var iterator2, iterFn, index2, length, result, next8, step;
    var stop = function stop2(condition) {
      if (iterator2) iteratorClose$2(iterator2, "normal", condition);
      return new Result(true, condition);
    };
    var callFn = function callFn2(value) {
      if (AS_ENTRIES) {
        anObject$C(value);
        return INTERRUPTED ? fn(value[0], value[1], stop) : fn(value[0], value[1]);
      }
      return INTERRUPTED ? fn(value, stop) : fn(value);
    };
    if (IS_RECORD) {
      iterator2 = iterable.iterator;
    } else if (IS_ITERATOR) {
      iterator2 = iterable;
    } else {
      iterFn = getIteratorMethod$2(iterable);
      if (!iterFn) throw new $TypeError$g(tryToString$1(iterable) + " is not iterable");
      if (isArrayIteratorMethod$1(iterFn)) {
        for (index2 = 0, length = lengthOfArrayLike$7(iterable); length > index2; index2++) {
          result = callFn(iterable[index2]);
          if (result && isPrototypeOf$5(ResultPrototype, result)) return result;
        }
        return new Result(false);
      }
      iterator2 = getIterator$3(iterable, iterFn);
    }
    next8 = IS_RECORD ? iterable.next : iterator2.next;
    while (!(step = call$A(next8, iterator2)).done) {
      try {
        result = callFn(step.value);
      } catch (error2) {
        iteratorClose$2(iterator2, "throw", error2);
      }
      if (_typeof(result) == "object" && result && isPrototypeOf$5(ResultPrototype, result)) return result;
    }
    return new Result(false);
  };
  var $$2$ = _export;
  var globalThis$C = globalThis_1;
  var uncurryThis$L = functionUncurryThis;
  var isForced$3 = isForced_1;
  var defineBuiltIn$b = defineBuiltIn$l;
  var InternalMetadataModule$1 = internalMetadataExports;
  var iterate$x = iterate$y;
  var anInstance$7 = anInstance$9;
  var isCallable$d = isCallable$z;
  var isNullOrUndefined$6 = isNullOrUndefined$a;
  var isObject$q = isObject$I;
  var fails$O = fails$1e;
  var checkCorrectnessOfIteration$2 = checkCorrectnessOfIteration$4;
  var setToStringTag$5 = setToStringTag$c;
  var inheritIfRequired$3 = inheritIfRequired$5;
  var collection$4 = function collection(CONSTRUCTOR_NAME, wrapper3, common) {
    var IS_MAP = CONSTRUCTOR_NAME.indexOf("Map") !== -1;
    var IS_WEAK = CONSTRUCTOR_NAME.indexOf("Weak") !== -1;
    var ADDER = IS_MAP ? "set" : "add";
    var NativeConstructor = globalThis$C[CONSTRUCTOR_NAME];
    var NativePrototype = NativeConstructor && NativeConstructor.prototype;
    var Constructor2 = NativeConstructor;
    var exported = {};
    var fixMethod = function fixMethod2(KEY) {
      var uncurriedNativeMethod = uncurryThis$L(NativePrototype[KEY]);
      defineBuiltIn$b(NativePrototype, KEY, KEY === "add" ? function add3(value) {
        uncurriedNativeMethod(this, value === 0 ? 0 : value);
        return this;
      } : KEY === "delete" ? function(key) {
        return IS_WEAK && !isObject$q(key) ? false : uncurriedNativeMethod(this, key === 0 ? 0 : key);
      } : KEY === "get" ? function get6(key) {
        return IS_WEAK && !isObject$q(key) ? void 0 : uncurriedNativeMethod(this, key === 0 ? 0 : key);
      } : KEY === "has" ? function has5(key) {
        return IS_WEAK && !isObject$q(key) ? false : uncurriedNativeMethod(this, key === 0 ? 0 : key);
      } : function set6(key, value) {
        uncurriedNativeMethod(this, key === 0 ? 0 : key, value);
        return this;
      });
    };
    var REPLACE2 = isForced$3(CONSTRUCTOR_NAME, !isCallable$d(NativeConstructor) || !(IS_WEAK || NativePrototype.forEach && !fails$O(function() {
      new NativeConstructor().entries().next();
    })));
    if (REPLACE2) {
      Constructor2 = common.getConstructor(wrapper3, CONSTRUCTOR_NAME, IS_MAP, ADDER);
      InternalMetadataModule$1.enable();
    } else if (isForced$3(CONSTRUCTOR_NAME, true)) {
      var instance = new Constructor2();
      var HASNT_CHAINING = instance[ADDER](IS_WEAK ? {} : -0, 1) !== instance;
      var THROWS_ON_PRIMITIVES = fails$O(function() {
        instance.has(1);
      });
      var ACCEPT_ITERABLES = checkCorrectnessOfIteration$2(function(iterable) {
        new NativeConstructor(iterable);
      });
      var BUGGY_ZERO = !IS_WEAK && fails$O(function() {
        var $instance = new NativeConstructor();
        var index2 = 5;
        while (index2--) $instance[ADDER](index2, index2);
        return !$instance.has(-0);
      });
      if (!ACCEPT_ITERABLES) {
        Constructor2 = wrapper3(function(dummy, iterable) {
          anInstance$7(dummy, NativePrototype);
          var that = inheritIfRequired$3(new NativeConstructor(), dummy, Constructor2);
          if (!isNullOrUndefined$6(iterable)) iterate$x(iterable, that[ADDER], {
            that,
            AS_ENTRIES: IS_MAP
          });
          return that;
        });
        Constructor2.prototype = NativePrototype;
        NativePrototype.constructor = Constructor2;
      }
      if (THROWS_ON_PRIMITIVES || BUGGY_ZERO) {
        fixMethod("delete");
        fixMethod("has");
        IS_MAP && fixMethod("get");
      }
      if (BUGGY_ZERO || HASNT_CHAINING) fixMethod(ADDER);
      if (IS_WEAK && NativePrototype.clear) delete NativePrototype.clear;
    }
    exported[CONSTRUCTOR_NAME] = Constructor2;
    $$2$({
      global: true,
      constructor: true,
      forced: Constructor2 !== NativeConstructor
    }, exported);
    setToStringTag$5(Constructor2, CONSTRUCTOR_NAME);
    if (!IS_WEAK) common.setStrong(Constructor2, CONSTRUCTOR_NAME, IS_MAP);
    return Constructor2;
  };
  var create$9 = objectCreate;
  var defineBuiltInAccessor$7 = defineBuiltInAccessor$e;
  var defineBuiltIns$4 = defineBuiltIns$6;
  var bind$k = functionBindContext;
  var anInstance$6 = anInstance$9;
  var isNullOrUndefined$5 = isNullOrUndefined$a;
  var iterate$w = iterate$y;
  var defineIterator$1 = iteratorDefine;
  var createIterResultObject$5 = createIterResultObject$7;
  var setSpecies$4 = setSpecies$7;
  var DESCRIPTORS$p = descriptors;
  var fastKey2 = internalMetadataExports.fastKey;
  var InternalStateModule$a = internalState;
  var setInternalState$a = InternalStateModule$a.set;
  var internalStateGetterFor$1 = InternalStateModule$a.getterFor;
  var collectionStrong$2 = {
    getConstructor: function getConstructor(wrapper3, CONSTRUCTOR_NAME, IS_MAP, ADDER) {
      var Constructor2 = wrapper3(function(that, iterable) {
        anInstance$6(that, Prototype2);
        setInternalState$a(that, {
          type: CONSTRUCTOR_NAME,
          index: create$9(null),
          first: null,
          last: null,
          size: 0
        });
        if (!DESCRIPTORS$p) that.size = 0;
        if (!isNullOrUndefined$5(iterable)) iterate$w(iterable, that[ADDER], {
          that,
          AS_ENTRIES: IS_MAP
        });
      });
      var Prototype2 = Constructor2.prototype;
      var getInternalState2 = internalStateGetterFor$1(CONSTRUCTOR_NAME);
      var define2 = function define22(that, key, value) {
        var state = getInternalState2(that);
        var entry = getEntry(that, key);
        var previous, index2;
        if (entry) {
          entry.value = value;
        } else {
          state.last = entry = {
            index: index2 = fastKey2(key, true),
            key,
            value,
            previous: previous = state.last,
            next: null,
            removed: false
          };
          if (!state.first) state.first = entry;
          if (previous) previous.next = entry;
          if (DESCRIPTORS$p) state.size++;
          else that.size++;
          if (index2 !== "F") state.index[index2] = entry;
        }
        return that;
      };
      var getEntry = function getEntry2(that, key) {
        var state = getInternalState2(that);
        var index2 = fastKey2(key);
        var entry;
        if (index2 !== "F") return state.index[index2];
        for (entry = state.first; entry; entry = entry.next) {
          if (entry.key === key) return entry;
        }
      };
      defineBuiltIns$4(Prototype2, {
        // `{ Map, Set }.prototype.clear()` methods
        // https://tc39.es/ecma262/#sec-map.prototype.clear
        // https://tc39.es/ecma262/#sec-set.prototype.clear
        clear: function clear2() {
          var that = this;
          var state = getInternalState2(that);
          var entry = state.first;
          while (entry) {
            entry.removed = true;
            if (entry.previous) entry.previous = entry.previous.next = null;
            entry = entry.next;
          }
          state.first = state.last = null;
          state.index = create$9(null);
          if (DESCRIPTORS$p) state.size = 0;
          else that.size = 0;
        },
        // `{ Map, Set }.prototype.delete(key)` methods
        // https://tc39.es/ecma262/#sec-map.prototype.delete
        // https://tc39.es/ecma262/#sec-set.prototype.delete
        "delete": function _delete3(key) {
          var that = this;
          var state = getInternalState2(that);
          var entry = getEntry(that, key);
          if (entry) {
            var next8 = entry.next;
            var prev = entry.previous;
            delete state.index[entry.index];
            entry.removed = true;
            if (prev) prev.next = next8;
            if (next8) next8.previous = prev;
            if (state.first === entry) state.first = next8;
            if (state.last === entry) state.last = prev;
            if (DESCRIPTORS$p) state.size--;
            else that.size--;
          }
          return !!entry;
        },
        // `{ Map, Set }.prototype.forEach(callbackfn, thisArg = undefined)` methods
        // https://tc39.es/ecma262/#sec-map.prototype.foreach
        // https://tc39.es/ecma262/#sec-set.prototype.foreach
        forEach: function forEach5(callbackfn) {
          var state = getInternalState2(this);
          var boundFunction = bind$k(callbackfn, arguments.length > 1 ? arguments[1] : void 0);
          var entry;
          while (entry = entry ? entry.next : state.first) {
            boundFunction(entry.value, entry.key, this);
            while (entry && entry.removed) entry = entry.previous;
          }
        },
        // `{ Map, Set}.prototype.has(key)` methods
        // https://tc39.es/ecma262/#sec-map.prototype.has
        // https://tc39.es/ecma262/#sec-set.prototype.has
        has: function has5(key) {
          return !!getEntry(this, key);
        }
      });
      defineBuiltIns$4(Prototype2, IS_MAP ? {
        // `Map.prototype.get(key)` method
        // https://tc39.es/ecma262/#sec-map.prototype.get
        get: function get6(key) {
          var entry = getEntry(this, key);
          return entry && entry.value;
        },
        // `Map.prototype.set(key, value)` method
        // https://tc39.es/ecma262/#sec-map.prototype.set
        set: function set6(key, value) {
          return define2(this, key === 0 ? 0 : key, value);
        }
      } : {
        // `Set.prototype.add(value)` method
        // https://tc39.es/ecma262/#sec-set.prototype.add
        add: function add3(value) {
          return define2(this, value = value === 0 ? 0 : value, value);
        }
      });
      if (DESCRIPTORS$p) defineBuiltInAccessor$7(Prototype2, "size", {
        configurable: true,
        get: function get6() {
          return getInternalState2(this).size;
        }
      });
      return Constructor2;
    },
    setStrong: function setStrong(Constructor2, CONSTRUCTOR_NAME, IS_MAP) {
      var ITERATOR_NAME = CONSTRUCTOR_NAME + " Iterator";
      var getInternalCollectionState = internalStateGetterFor$1(CONSTRUCTOR_NAME);
      var getInternalIteratorState2 = internalStateGetterFor$1(ITERATOR_NAME);
      defineIterator$1(Constructor2, CONSTRUCTOR_NAME, function(iterated, kind) {
        setInternalState$a(this, {
          type: ITERATOR_NAME,
          target: iterated,
          state: getInternalCollectionState(iterated),
          kind,
          last: null
        });
      }, function() {
        var state = getInternalIteratorState2(this);
        var kind = state.kind;
        var entry = state.last;
        while (entry && entry.removed) entry = entry.previous;
        if (!state.target || !(state.last = entry = entry ? entry.next : state.state.first)) {
          state.target = null;
          return createIterResultObject$5(void 0, true);
        }
        if (kind === "keys") return createIterResultObject$5(entry.key, false);
        if (kind === "values") return createIterResultObject$5(entry.value, false);
        return createIterResultObject$5([entry.key, entry.value], false);
      }, IS_MAP ? "entries" : "values", !IS_MAP, true);
      setSpecies$4(CONSTRUCTOR_NAME);
    }
  };
  var collection$3 = collection$4;
  var collectionStrong$1 = collectionStrong$2;
  collection$3("Map", function(init) {
    return function Map2() {
      return init(this, arguments.length ? arguments[0] : void 0);
    };
  }, collectionStrong$1);
  var log$7 = Math.log;
  var mathLog1p = Math.log1p || function log1p(x) {
    var n = +x;
    return n > -1e-8 && n < 1e-8 ? n - n * n / 2 : log$7(1 + n);
  };
  var $$2_ = _export;
  var log1p$1 = mathLog1p;
  var $acosh = Math.acosh;
  var log$6 = Math.log;
  var sqrt$2 = Math.sqrt;
  var LN2$1 = Math.LN2;
  var FORCED$n = !$acosh || Math.floor($acosh(Number.MAX_VALUE)) !== 710 || $acosh(Infinity) !== Infinity;
  $$2_({
    target: "Math",
    stat: true,
    forced: FORCED$n
  }, {
    acosh: function acosh(x) {
      var n = +x;
      return n < 1 ? NaN : n > 9490626562425156e-8 ? log$6(n) + LN2$1 : log1p$1(n - 1 + sqrt$2(n - 1) * sqrt$2(n + 1));
    }
  });
  var $$2Z = _export;
  var $asinh = Math.asinh;
  var log$5 = Math.log;
  var sqrt$1 = Math.sqrt;
  function asinh(x) {
    var n = +x;
    return !isFinite(n) || n === 0 ? n : n < 0 ? -asinh(-n) : log$5(n + sqrt$1(n * n + 1));
  }
  var FORCED$m = !($asinh && 1 / $asinh(0) > 0);
  $$2Z({
    target: "Math",
    stat: true,
    forced: FORCED$m
  }, {
    asinh
  });
  var $$2Y = _export;
  var $atanh = Math.atanh;
  var log$4 = Math.log;
  var FORCED$l = !($atanh && 1 / $atanh(-0) < 0);
  $$2Y({
    target: "Math",
    stat: true,
    forced: FORCED$l
  }, {
    atanh: function atanh(x) {
      var n = +x;
      return n === 0 ? n : log$4((1 + n) / (1 - n)) / 2;
    }
  });
  var $$2X = _export;
  var sign$1 = mathSign;
  var abs$4 = Math.abs;
  var pow$2 = Math.pow;
  $$2X({
    target: "Math",
    stat: true
  }, {
    cbrt: function cbrt(x) {
      var n = +x;
      return sign$1(n) * pow$2(abs$4(n), 1 / 3);
    }
  });
  var $$2W = _export;
  var floor$6 = Math.floor;
  var log$3 = Math.log;
  var LOG2E = Math.LOG2E;
  $$2W({
    target: "Math",
    stat: true
  }, {
    clz32: function clz32(x) {
      var n = x >>> 0;
      return n ? 31 - floor$6(log$3(n + 0.5) * LOG2E) : 32;
    }
  });
  var $expm1 = Math.expm1;
  var exp$2 = Math.exp;
  var mathExpm1 = !$expm1 || $expm1(10) > 22025.465794806718 || $expm1(10) < 22025.465794806718 || $expm1(-2e-17) !== -2e-17 ? function expm1(x) {
    var n = +x;
    return n === 0 ? n : n > -1e-6 && n < 1e-6 ? n + n * n / 2 : exp$2(n) - 1;
  } : $expm1;
  var $$2V = _export;
  var expm1$3 = mathExpm1;
  var $cosh = Math.cosh;
  var abs$3 = Math.abs;
  var E$1 = Math.E;
  var FORCED$k = !$cosh || $cosh(710) === Infinity;
  $$2V({
    target: "Math",
    stat: true,
    forced: FORCED$k
  }, {
    cosh: function cosh(x) {
      var t = expm1$3(abs$3(x) - 1) + 1;
      return (t + 1 / (t * E$1 * E$1)) * (E$1 / 2);
    }
  });
  var $$2U = _export;
  var expm1$2 = mathExpm1;
  $$2U({
    target: "Math",
    stat: true,
    forced: expm1$2 !== Math.expm1
  }, {
    expm1: expm1$2
  });
  var $$2T = _export;
  var fround$1 = mathFround;
  $$2T({
    target: "Math",
    stat: true
  }, {
    fround: fround$1
  });
  var $$2S = _export;
  var $hypot = Math.hypot;
  var abs$2 = Math.abs;
  var sqrt = Math.sqrt;
  var FORCED$j = !!$hypot && $hypot(Infinity, NaN) !== Infinity;
  $$2S({
    target: "Math",
    stat: true,
    arity: 2,
    forced: FORCED$j
  }, {
    // eslint-disable-next-line no-unused-vars -- required for `.length`
    hypot: function hypot(value1, value2) {
      var sum = 0;
      var i = 0;
      var aLen = arguments.length;
      var larg = 0;
      var arg, div;
      while (i < aLen) {
        arg = abs$2(arguments[i++]);
        if (larg < arg) {
          div = larg / arg;
          sum = sum * div * div + 1;
          larg = arg;
        } else if (arg > 0) {
          div = arg / larg;
          sum += div * div;
        } else sum += arg;
      }
      return larg === Infinity ? Infinity : larg * sqrt(sum);
    }
  });
  var $$2R = _export;
  var fails$N = fails$1e;
  var $imul = Math.imul;
  var FORCED$i = fails$N(function() {
    return $imul(4294967295, 5) !== -5 || $imul.length !== 2;
  });
  $$2R({
    target: "Math",
    stat: true,
    forced: FORCED$i
  }, {
    imul: function imul(x, y) {
      var UINT16 = 65535;
      var xn = +x;
      var yn = +y;
      var xl = UINT16 & xn;
      var yl = UINT16 & yn;
      return 0 | xl * yl + ((UINT16 & xn >>> 16) * yl + xl * (UINT16 & yn >>> 16) << 16 >>> 0);
    }
  });
  var log$2 = Math.log;
  var LOG10E = Math.LOG10E;
  var mathLog10 = Math.log10 || function log10(x) {
    return log$2(x) * LOG10E;
  };
  var $$2Q = _export;
  var log102 = mathLog10;
  $$2Q({
    target: "Math",
    stat: true
  }, {
    log10: log102
  });
  var $$2P = _export;
  var log1p2 = mathLog1p;
  $$2P({
    target: "Math",
    stat: true
  }, {
    log1p: log1p2
  });
  var log$1 = Math.log;
  var LN2 = Math.LN2;
  var mathLog2 = Math.log2 || function log2(x) {
    return log$1(x) / LN2;
  };
  var $$2O = _export;
  var log22 = mathLog2;
  $$2O({
    target: "Math",
    stat: true
  }, {
    log2: log22
  });
  var $$2N = _export;
  var sign2 = mathSign;
  $$2N({
    target: "Math",
    stat: true
  }, {
    sign: sign2
  });
  var $$2M = _export;
  var fails$M = fails$1e;
  var expm1$1 = mathExpm1;
  var abs$1 = Math.abs;
  var exp$1 = Math.exp;
  var E = Math.E;
  var FORCED$h = fails$M(function() {
    return Math.sinh(-2e-17) !== -2e-17;
  });
  $$2M({
    target: "Math",
    stat: true,
    forced: FORCED$h
  }, {
    sinh: function sinh(x) {
      var n = +x;
      return abs$1(n) < 1 ? (expm1$1(n) - expm1$1(-n)) / 2 : (exp$1(n - 1) - exp$1(-n - 1)) * (E / 2);
    }
  });
  var $$2L = _export;
  var expm12 = mathExpm1;
  var exp = Math.exp;
  $$2L({
    target: "Math",
    stat: true
  }, {
    tanh: function tanh(x) {
      var n = +x;
      var a = expm12(n);
      var b = expm12(-n);
      return a === Infinity ? 1 : b === Infinity ? -1 : (a - b) / (exp(n) + exp(-n));
    }
  });
  var setToStringTag$4 = setToStringTag$c;
  setToStringTag$4(Math, "Math", true);
  var $$2K = _export;
  var trunc2 = mathTrunc;
  $$2K({
    target: "Math",
    stat: true
  }, {
    trunc: trunc2
  });
  var uncurryThis$K = functionUncurryThis;
  var thisNumberValue$3 = uncurryThis$K(1 .valueOf);
  var whitespaces$4 = "	\n\v\f\r                 \u2028\u2029\uFEFF";
  var uncurryThis$J = functionUncurryThis;
  var requireObjectCoercible$e = requireObjectCoercible$k;
  var toString$m = toString$t;
  var whitespaces$3 = whitespaces$4;
  var replace$8 = uncurryThis$J("".replace);
  var ltrim = RegExp("^[" + whitespaces$3 + "]+");
  var rtrim = RegExp("(^|[^" + whitespaces$3 + "])[" + whitespaces$3 + "]+$");
  var createMethod$2 = function createMethod5(TYPE) {
    return function($this) {
      var string = toString$m(requireObjectCoercible$e($this));
      if (TYPE & 1) string = replace$8(string, ltrim, "");
      if (TYPE & 2) string = replace$8(string, rtrim, "$1");
      return string;
    };
  };
  var stringTrim = {
    // `String.prototype.{ trimLeft, trimStart }` methods
    // https://tc39.es/ecma262/#sec-string.prototype.trimstart
    start: createMethod$2(1),
    // `String.prototype.{ trimRight, trimEnd }` methods
    // https://tc39.es/ecma262/#sec-string.prototype.trimend
    end: createMethod$2(2),
    // `String.prototype.trim` method
    // https://tc39.es/ecma262/#sec-string.prototype.trim
    trim: createMethod$2(3)
  };
  var $$2J = _export;
  var IS_PURE$1 = isPure;
  var DESCRIPTORS$o = descriptors;
  var globalThis$B = globalThis_1;
  var path = path$2;
  var uncurryThis$I = functionUncurryThis;
  var isForced$2 = isForced_1;
  var hasOwn$9 = hasOwnProperty_1;
  var inheritIfRequired$2 = inheritIfRequired$5;
  var isPrototypeOf$4 = objectIsPrototypeOf;
  var isSymbol$1 = isSymbol$6;
  var toPrimitive$1 = toPrimitive$4;
  var fails$L = fails$1e;
  var getOwnPropertyNames$3 = objectGetOwnPropertyNames.f;
  var getOwnPropertyDescriptor$7 = objectGetOwnPropertyDescriptor.f;
  var defineProperty$4 = objectDefineProperty.f;
  var thisNumberValue$2 = thisNumberValue$3;
  var trim$2 = stringTrim.trim;
  var NUMBER = "Number";
  var NativeNumber = globalThis$B[NUMBER];
  path[NUMBER];
  var NumberPrototype = NativeNumber.prototype;
  var TypeError$4 = globalThis$B.TypeError;
  var stringSlice$c = uncurryThis$I("".slice);
  var charCodeAt$2 = uncurryThis$I("".charCodeAt);
  var toNumeric = function toNumeric2(value) {
    var primValue = toPrimitive$1(value, "number");
    return typeof primValue == "bigint" ? primValue : toNumber(primValue);
  };
  var toNumber = function toNumber2(argument) {
    var it = toPrimitive$1(argument, "number");
    var first, third, radix, maxCode, digits, length, index2, code;
    if (isSymbol$1(it)) throw new TypeError$4("Cannot convert a Symbol value to a number");
    if (typeof it == "string" && it.length > 2) {
      it = trim$2(it);
      first = charCodeAt$2(it, 0);
      if (first === 43 || first === 45) {
        third = charCodeAt$2(it, 2);
        if (third === 88 || third === 120) return NaN;
      } else if (first === 48) {
        switch (charCodeAt$2(it, 1)) {
          case 66:
          case 98:
            radix = 2;
            maxCode = 49;
            break;
          case 79:
          case 111:
            radix = 8;
            maxCode = 55;
            break;
          default:
            return +it;
        }
        digits = stringSlice$c(it, 2);
        length = digits.length;
        for (index2 = 0; index2 < length; index2++) {
          code = charCodeAt$2(digits, index2);
          if (code < 48 || code > maxCode) return NaN;
        }
        return parseInt(digits, radix);
      }
    }
    return +it;
  };
  var FORCED$g = isForced$2(NUMBER, !NativeNumber(" 0o1") || !NativeNumber("0b1") || NativeNumber("+0x1"));
  var calledWithNew = function calledWithNew2(dummy) {
    return isPrototypeOf$4(NumberPrototype, dummy) && fails$L(function() {
      thisNumberValue$2(dummy);
    });
  };
  var NumberWrapper = function Number2(value) {
    var n = arguments.length < 1 ? 0 : NativeNumber(toNumeric(value));
    return calledWithNew(this) ? inheritIfRequired$2(Object(n), this, NumberWrapper) : n;
  };
  NumberWrapper.prototype = NumberPrototype;
  if (FORCED$g && true) NumberPrototype.constructor = NumberWrapper;
  $$2J({
    global: true,
    constructor: true,
    wrap: true,
    forced: FORCED$g
  }, {
    Number: NumberWrapper
  });
  var copyConstructorProperties$1 = function copyConstructorProperties2(target, source) {
    for (var keys6 = DESCRIPTORS$o ? getOwnPropertyNames$3(source) : (
      // ES3:
      "MAX_VALUE,MIN_VALUE,NaN,NEGATIVE_INFINITY,POSITIVE_INFINITY,EPSILON,MAX_SAFE_INTEGER,MIN_SAFE_INTEGER,isFinite,isInteger,isNaN,isSafeInteger,parseFloat,parseInt,fromString,range".split(",")
    ), j = 0, key; keys6.length > j; j++) {
      if (hasOwn$9(source, key = keys6[j]) && !hasOwn$9(target, key)) {
        defineProperty$4(target, key, getOwnPropertyDescriptor$7(source, key));
      }
    }
  };
  if (FORCED$g || IS_PURE$1) copyConstructorProperties$1(path[NUMBER], NativeNumber);
  var $$2I = _export;
  $$2I({
    target: "Number",
    stat: true,
    nonConfigurable: true,
    nonWritable: true
  }, {
    EPSILON: Math.pow(2, -52)
  });
  var globalThis$A = globalThis_1;
  var globalIsFinite = globalThis$A.isFinite;
  var numberIsFinite$2 = Number.isFinite || function isFinite2(it) {
    return typeof it == "number" && globalIsFinite(it);
  };
  var $$2H = _export;
  var numberIsFinite$1 = numberIsFinite$2;
  $$2H({
    target: "Number",
    stat: true
  }, {
    isFinite: numberIsFinite$1
  });
  var isObject$p = isObject$I;
  var floor$5 = Math.floor;
  var isIntegralNumber$3 = Number.isInteger || function isInteger(it) {
    return !isObject$p(it) && isFinite(it) && floor$5(it) === it;
  };
  var $$2G = _export;
  var isIntegralNumber$2 = isIntegralNumber$3;
  $$2G({
    target: "Number",
    stat: true
  }, {
    isInteger: isIntegralNumber$2
  });
  var $$2F = _export;
  $$2F({
    target: "Number",
    stat: true
  }, {
    isNaN: function isNaN2(number) {
      return number !== number;
    }
  });
  var $$2E = _export;
  var isIntegralNumber$1 = isIntegralNumber$3;
  var abs = Math.abs;
  $$2E({
    target: "Number",
    stat: true
  }, {
    isSafeInteger: function isSafeInteger(number) {
      return isIntegralNumber$1(number) && abs(number) <= 9007199254740991;
    }
  });
  var $$2D = _export;
  $$2D({
    target: "Number",
    stat: true,
    nonConfigurable: true,
    nonWritable: true
  }, {
    MAX_SAFE_INTEGER: 9007199254740991
  });
  var $$2C = _export;
  $$2C({
    target: "Number",
    stat: true,
    nonConfigurable: true,
    nonWritable: true
  }, {
    MIN_SAFE_INTEGER: -9007199254740991
  });
  var globalThis$z = globalThis_1;
  var fails$K = fails$1e;
  var uncurryThis$H = functionUncurryThis;
  var toString$l = toString$t;
  var trim$1 = stringTrim.trim;
  var whitespaces$2 = whitespaces$4;
  var charAt$b = uncurryThis$H("".charAt);
  var $parseFloat$1 = globalThis$z.parseFloat;
  var _Symbol$2 = globalThis$z.Symbol;
  var ITERATOR$6 = _Symbol$2 && _Symbol$2.iterator;
  var FORCED$f = 1 / $parseFloat$1(whitespaces$2 + "-0") !== -Infinity || ITERATOR$6 && !fails$K(function() {
    $parseFloat$1(Object(ITERATOR$6));
  });
  var numberParseFloat = FORCED$f ? function parseFloat2(string) {
    var trimmedString = trim$1(toString$l(string));
    var result = $parseFloat$1(trimmedString);
    return result === 0 && charAt$b(trimmedString, 0) === "-" ? -0 : result;
  } : $parseFloat$1;
  var $$2B = _export;
  var parseFloat$1 = numberParseFloat;
  $$2B({
    target: "Number",
    stat: true,
    forced: Number.parseFloat !== parseFloat$1
  }, {
    parseFloat: parseFloat$1
  });
  var globalThis$y = globalThis_1;
  var fails$J = fails$1e;
  var uncurryThis$G = functionUncurryThis;
  var toString$k = toString$t;
  var trim = stringTrim.trim;
  var whitespaces$1 = whitespaces$4;
  var $parseInt$3 = globalThis$y.parseInt;
  var _Symbol$1 = globalThis$y.Symbol;
  var ITERATOR$5 = _Symbol$1 && _Symbol$1.iterator;
  var hex = /^[+-]?0x/i;
  var exec$6 = uncurryThis$G(hex.exec);
  var FORCED$e = $parseInt$3(whitespaces$1 + "08") !== 8 || $parseInt$3(whitespaces$1 + "0x16") !== 22 || ITERATOR$5 && !fails$J(function() {
    $parseInt$3(Object(ITERATOR$5));
  });
  var numberParseInt = FORCED$e ? function parseInt2(string, radix) {
    var S = trim(toString$k(string));
    return $parseInt$3(S, radix >>> 0 || (exec$6(hex, S) ? 16 : 10));
  } : $parseInt$3;
  var $$2A = _export;
  var parseInt$2 = numberParseInt;
  $$2A({
    target: "Number",
    stat: true,
    forced: Number.parseInt !== parseInt$2
  }, {
    parseInt: parseInt$2
  });
  var $$2z = _export;
  var uncurryThis$F = functionUncurryThis;
  var toIntegerOrInfinity$6 = toIntegerOrInfinity$f;
  var thisNumberValue$1 = thisNumberValue$3;
  var $repeat = stringRepeat;
  var fails$I = fails$1e;
  var $RangeError$8 = RangeError;
  var $String = String;
  var floor$4 = Math.floor;
  var repeat$1 = uncurryThis$F($repeat);
  var stringSlice$b = uncurryThis$F("".slice);
  var nativeToFixed = uncurryThis$F(1 .toFixed);
  var _pow = function pow(x, n, acc) {
    return n === 0 ? acc : n % 2 === 1 ? _pow(x, n - 1, acc * x) : _pow(x * x, n / 2, acc);
  };
  var log = function log3(x) {
    var n = 0;
    var x2 = x;
    while (x2 >= 4096) {
      n += 12;
      x2 /= 4096;
    }
    while (x2 >= 2) {
      n += 1;
      x2 /= 2;
    }
    return n;
  };
  var multiply = function multiply2(data2, n, c) {
    var index2 = -1;
    var c2 = c;
    while (++index2 < 6) {
      c2 += n * data2[index2];
      data2[index2] = c2 % 1e7;
      c2 = floor$4(c2 / 1e7);
    }
  };
  var divide = function divide2(data2, n) {
    var index2 = 6;
    var c = 0;
    while (--index2 >= 0) {
      c += data2[index2];
      data2[index2] = floor$4(c / n);
      c = c % n * 1e7;
    }
  };
  var dataToString = function dataToString2(data2) {
    var index2 = 6;
    var s = "";
    while (--index2 >= 0) {
      if (s !== "" || index2 === 0 || data2[index2] !== 0) {
        var t = $String(data2[index2]);
        s = s === "" ? t : s + repeat$1("0", 7 - t.length) + t;
      }
    }
    return s;
  };
  var FORCED$d = fails$I(function() {
    return nativeToFixed(8e-5, 3) !== "0.000" || nativeToFixed(0.9, 0) !== "1" || nativeToFixed(1.255, 2) !== "1.25" || nativeToFixed(1000000000000000100, 0) !== "1000000000000000128";
  }) || !fails$I(function() {
    nativeToFixed({});
  });
  $$2z({
    target: "Number",
    proto: true,
    forced: FORCED$d
  }, {
    toFixed: function toFixed(fractionDigits) {
      var number = thisNumberValue$1(this);
      var fractDigits = toIntegerOrInfinity$6(fractionDigits);
      var data2 = [0, 0, 0, 0, 0, 0];
      var sign3 = "";
      var result = "0";
      var e, z2, j, k2;
      if (fractDigits < 0 || fractDigits > 20) throw new $RangeError$8("Incorrect fraction digits");
      if (number !== number) return "NaN";
      if (number <= -1e21 || number >= 1e21) return $String(number);
      if (number < 0) {
        sign3 = "-";
        number = -number;
      }
      if (number > 1e-21) {
        e = log(number * _pow(2, 69, 1)) - 69;
        z2 = e < 0 ? number * _pow(2, -e, 1) : number / _pow(2, e, 1);
        z2 *= 4503599627370496;
        e = 52 - e;
        if (e > 0) {
          multiply(data2, 0, z2);
          j = fractDigits;
          while (j >= 7) {
            multiply(data2, 1e7, 0);
            j -= 7;
          }
          multiply(data2, _pow(10, j, 1), 0);
          j = e - 1;
          while (j >= 23) {
            divide(data2, 1 << 23);
            j -= 23;
          }
          divide(data2, 1 << j);
          multiply(data2, 1, 1);
          divide(data2, 2);
          result = dataToString(data2);
        } else {
          multiply(data2, 0, z2);
          multiply(data2, 1 << -e, 0);
          result = dataToString(data2) + repeat$1("0", fractDigits);
        }
      }
      if (fractDigits > 0) {
        k2 = result.length;
        result = sign3 + (k2 <= fractDigits ? "0." + repeat$1("0", fractDigits - k2) + result : stringSlice$b(result, 0, k2 - fractDigits) + "." + stringSlice$b(result, k2 - fractDigits));
      } else {
        result = sign3 + result;
      }
      return result;
    }
  });
  var $$2y = _export;
  var uncurryThis$E = functionUncurryThis;
  var fails$H = fails$1e;
  var thisNumberValue = thisNumberValue$3;
  var nativeToPrecision = uncurryThis$E(1 .toPrecision);
  var FORCED$c = fails$H(function() {
    return nativeToPrecision(1, void 0) !== "1";
  }) || !fails$H(function() {
    nativeToPrecision({});
  });
  $$2y({
    target: "Number",
    proto: true,
    forced: FORCED$c
  }, {
    toPrecision: function toPrecision(precision) {
      return precision === void 0 ? nativeToPrecision(thisNumberValue(this)) : nativeToPrecision(thisNumberValue(this), precision);
    }
  });
  var DESCRIPTORS$n = descriptors;
  var uncurryThis$D = functionUncurryThis;
  var call$z = functionCall;
  var fails$G = fails$1e;
  var objectKeys$1 = objectKeys$4;
  var getOwnPropertySymbolsModule = objectGetOwnPropertySymbols;
  var propertyIsEnumerableModule = objectPropertyIsEnumerable;
  var toObject$d = toObject$s;
  var IndexedObject = indexedObject;
  var $assign = Object.assign;
  var defineProperty$3 = Object.defineProperty;
  var concat$2 = uncurryThis$D([].concat);
  var objectAssign = !$assign || fails$G(function() {
    if (DESCRIPTORS$n && $assign({
      b: 1
    }, $assign(defineProperty$3({}, "a", {
      enumerable: true,
      get: function get6() {
        defineProperty$3(this, "b", {
          value: 3,
          enumerable: false
        });
      }
    }), {
      b: 2
    })).b !== 1) return true;
    var A2 = {};
    var B2 = {};
    var symbol = Symbol("assign detection");
    var alphabet = "abcdefghijklmnopqrst";
    A2[symbol] = 7;
    alphabet.split("").forEach(function(chr) {
      B2[chr] = chr;
    });
    return $assign({}, A2)[symbol] !== 7 || objectKeys$1($assign({}, B2)).join("") !== alphabet;
  }) ? function assign(target, source) {
    var T2 = toObject$d(target);
    var argumentsLength = arguments.length;
    var index2 = 1;
    var getOwnPropertySymbols2 = getOwnPropertySymbolsModule.f;
    var propertyIsEnumerable4 = propertyIsEnumerableModule.f;
    while (argumentsLength > index2) {
      var S = IndexedObject(arguments[index2++]);
      var keys6 = getOwnPropertySymbols2 ? concat$2(objectKeys$1(S), getOwnPropertySymbols2(S)) : objectKeys$1(S);
      var length = keys6.length;
      var j = 0;
      var key;
      while (length > j) {
        key = keys6[j++];
        if (!DESCRIPTORS$n || call$z(propertyIsEnumerable4, S, key)) T2[key] = S[key];
      }
    }
    return T2;
  } : $assign;
  var $$2x = _export;
  var assign$1 = objectAssign;
  $$2x({
    target: "Object",
    stat: true,
    arity: 2,
    forced: Object.assign !== assign$1
  }, {
    assign: assign$1
  });
  var $$2w = _export;
  var DESCRIPTORS$m = descriptors;
  var create$8 = objectCreate;
  $$2w({
    target: "Object",
    stat: true,
    sham: !DESCRIPTORS$m
  }, {
    create: create$8
  });
  var globalThis$x = globalThis_1;
  var fails$F = fails$1e;
  var WEBKIT$1 = environmentWebkitVersion;
  var objectPrototypeAccessorsForced = !fails$F(function() {
    if (WEBKIT$1 && WEBKIT$1 < 535) return;
    var key = Math.random();
    __defineSetter__.call(null, key, function() {
    });
    delete globalThis$x[key];
  });
  var $$2v = _export;
  var DESCRIPTORS$l = descriptors;
  var FORCED$b = objectPrototypeAccessorsForced;
  var aCallable$j = aCallable$s;
  var toObject$c = toObject$s;
  var definePropertyModule$4 = objectDefineProperty;
  if (DESCRIPTORS$l) {
    $$2v({
      target: "Object",
      proto: true,
      forced: FORCED$b
    }, {
      __defineGetter__: function __defineGetter__(P2, getter) {
        definePropertyModule$4.f(toObject$c(this), P2, {
          get: aCallable$j(getter),
          enumerable: true,
          configurable: true
        });
      }
    });
  }
  var $$2u = _export;
  var DESCRIPTORS$k = descriptors;
  var defineProperties3 = objectDefineProperties.f;
  $$2u({
    target: "Object",
    stat: true,
    forced: Object.defineProperties !== defineProperties3,
    sham: !DESCRIPTORS$k
  }, {
    defineProperties: defineProperties3
  });
  var $$2t = _export;
  var DESCRIPTORS$j = descriptors;
  var defineProperty$2 = objectDefineProperty.f;
  $$2t({
    target: "Object",
    stat: true,
    forced: Object.defineProperty !== defineProperty$2,
    sham: !DESCRIPTORS$j
  }, {
    defineProperty: defineProperty$2
  });
  var $$2s = _export;
  var DESCRIPTORS$i = descriptors;
  var FORCED$a = objectPrototypeAccessorsForced;
  var aCallable$i = aCallable$s;
  var toObject$b = toObject$s;
  var definePropertyModule$3 = objectDefineProperty;
  if (DESCRIPTORS$i) {
    $$2s({
      target: "Object",
      proto: true,
      forced: FORCED$a
    }, {
      __defineSetter__: function __defineSetter__2(P2, setter) {
        definePropertyModule$3.f(toObject$b(this), P2, {
          set: aCallable$i(setter),
          enumerable: true,
          configurable: true
        });
      }
    });
  }
  var DESCRIPTORS$h = descriptors;
  var fails$E = fails$1e;
  var uncurryThis$C = functionUncurryThis;
  var objectGetPrototypeOf$1 = objectGetPrototypeOf$2;
  var objectKeys = objectKeys$4;
  var toIndexedObject$4 = toIndexedObject$f;
  var $propertyIsEnumerable = objectPropertyIsEnumerable.f;
  var propertyIsEnumerable3 = uncurryThis$C($propertyIsEnumerable);
  var push$c = uncurryThis$C([].push);
  var IE_BUG = DESCRIPTORS$h && fails$E(function() {
    var O = /* @__PURE__ */ Object.create(null);
    O[2] = 2;
    return !propertyIsEnumerable3(O, 2);
  });
  var createMethod$1 = function createMethod6(TO_ENTRIES) {
    return function(it) {
      var O = toIndexedObject$4(it);
      var keys6 = objectKeys(O);
      var IE_WORKAROUND = IE_BUG && objectGetPrototypeOf$1(O) === null;
      var length = keys6.length;
      var i = 0;
      var result = [];
      var key;
      while (length > i) {
        key = keys6[i++];
        if (!DESCRIPTORS$h || (IE_WORKAROUND ? key in O : propertyIsEnumerable3(O, key))) {
          push$c(result, TO_ENTRIES ? [key, O[key]] : O[key]);
        }
      }
      return result;
    };
  };
  var objectToArray = {
    // `Object.entries` method
    // https://tc39.es/ecma262/#sec-object.entries
    entries: createMethod$1(true),
    // `Object.values` method
    // https://tc39.es/ecma262/#sec-object.values
    values: createMethod$1(false)
  };
  var $$2r = _export;
  var $entries = objectToArray.entries;
  $$2r({
    target: "Object",
    stat: true
  }, {
    entries: function entries(O) {
      return $entries(O);
    }
  });
  var $$2q = _export;
  var FREEZING$4 = freezing;
  var fails$D = fails$1e;
  var isObject$o = isObject$I;
  var onFreeze$2 = internalMetadataExports.onFreeze;
  var $freeze = Object.freeze;
  var FAILS_ON_PRIMITIVES$5 = fails$D(function() {
    $freeze(1);
  });
  $$2q({
    target: "Object",
    stat: true,
    forced: FAILS_ON_PRIMITIVES$5,
    sham: !FREEZING$4
  }, {
    freeze: function freeze(it) {
      return $freeze && isObject$o(it) ? $freeze(onFreeze$2(it)) : it;
    }
  });
  var $$2p = _export;
  var iterate$v = iterate$y;
  var createProperty$1 = createProperty$7;
  $$2p({
    target: "Object",
    stat: true
  }, {
    fromEntries: function fromEntries(iterable) {
      var obj = {};
      iterate$v(iterable, function(k2, v) {
        createProperty$1(obj, k2, v);
      }, {
        AS_ENTRIES: true
      });
      return obj;
    }
  });
  var $$2o = _export;
  var fails$C = fails$1e;
  var toIndexedObject$3 = toIndexedObject$f;
  var nativeGetOwnPropertyDescriptor$1 = objectGetOwnPropertyDescriptor.f;
  var DESCRIPTORS$g = descriptors;
  var FORCED$9 = !DESCRIPTORS$g || fails$C(function() {
    nativeGetOwnPropertyDescriptor$1(1);
  });
  $$2o({
    target: "Object",
    stat: true,
    forced: FORCED$9,
    sham: !DESCRIPTORS$g
  }, {
    getOwnPropertyDescriptor: function getOwnPropertyDescriptor3(it, key) {
      return nativeGetOwnPropertyDescriptor$1(toIndexedObject$3(it), key);
    }
  });
  var $$2n = _export;
  var DESCRIPTORS$f = descriptors;
  var ownKeys$1 = ownKeys$3;
  var toIndexedObject$2 = toIndexedObject$f;
  var getOwnPropertyDescriptorModule$4 = objectGetOwnPropertyDescriptor;
  var createProperty2 = createProperty$7;
  $$2n({
    target: "Object",
    stat: true,
    sham: !DESCRIPTORS$f
  }, {
    getOwnPropertyDescriptors: function getOwnPropertyDescriptors(object) {
      var O = toIndexedObject$2(object);
      var getOwnPropertyDescriptor7 = getOwnPropertyDescriptorModule$4.f;
      var keys6 = ownKeys$1(O);
      var result = {};
      var index2 = 0;
      var key, descriptor2;
      while (keys6.length > index2) {
        descriptor2 = getOwnPropertyDescriptor7(O, key = keys6[index2++]);
        if (descriptor2 !== void 0) createProperty2(result, key, descriptor2);
      }
      return result;
    }
  });
  var $$2m = _export;
  var fails$B = fails$1e;
  var getOwnPropertyNames$2 = objectGetOwnPropertyNamesExternal.f;
  var FAILS_ON_PRIMITIVES$4 = fails$B(function() {
    return !Object.getOwnPropertyNames(1);
  });
  $$2m({
    target: "Object",
    stat: true,
    forced: FAILS_ON_PRIMITIVES$4
  }, {
    getOwnPropertyNames: getOwnPropertyNames$2
  });
  var $$2l = _export;
  var fails$A = fails$1e;
  var toObject$a = toObject$s;
  var nativeGetPrototypeOf = objectGetPrototypeOf$2;
  var CORRECT_PROTOTYPE_GETTER$1 = correctPrototypeGetter;
  var FAILS_ON_PRIMITIVES$3 = fails$A(function() {
    nativeGetPrototypeOf(1);
  });
  $$2l({
    target: "Object",
    stat: true,
    forced: FAILS_ON_PRIMITIVES$3,
    sham: !CORRECT_PROTOTYPE_GETTER$1
  }, {
    getPrototypeOf: function getPrototypeOf2(it) {
      return nativeGetPrototypeOf(toObject$a(it));
    }
  });
  var sameValue$2 = Object.is || function is(x, y) {
    return x === y ? x !== 0 || 1 / x === 1 / y : x !== x && y !== y;
  };
  var $$2k = _export;
  var is2 = sameValue$2;
  $$2k({
    target: "Object",
    stat: true
  }, {
    is: is2
  });
  var $$2j = _export;
  var $isExtensible$1 = objectIsExtensible;
  $$2j({
    target: "Object",
    stat: true,
    forced: Object.isExtensible !== $isExtensible$1
  }, {
    isExtensible: $isExtensible$1
  });
  var $$2i = _export;
  var fails$z = fails$1e;
  var isObject$n = isObject$I;
  var classof$9 = classofRaw$2;
  var ARRAY_BUFFER_NON_EXTENSIBLE$1 = arrayBufferNonExtensible;
  var $isFrozen = Object.isFrozen;
  var FORCED$8 = ARRAY_BUFFER_NON_EXTENSIBLE$1 || fails$z(function() {
    $isFrozen(1);
  });
  $$2i({
    target: "Object",
    stat: true,
    forced: FORCED$8
  }, {
    isFrozen: function isFrozen(it) {
      if (!isObject$n(it)) return true;
      if (ARRAY_BUFFER_NON_EXTENSIBLE$1 && classof$9(it) === "ArrayBuffer") return true;
      return $isFrozen ? $isFrozen(it) : false;
    }
  });
  var $$2h = _export;
  var fails$y = fails$1e;
  var isObject$m = isObject$I;
  var classof$8 = classofRaw$2;
  var ARRAY_BUFFER_NON_EXTENSIBLE = arrayBufferNonExtensible;
  var $isSealed = Object.isSealed;
  var FORCED$7 = ARRAY_BUFFER_NON_EXTENSIBLE || fails$y(function() {
    $isSealed(1);
  });
  $$2h({
    target: "Object",
    stat: true,
    forced: FORCED$7
  }, {
    isSealed: function isSealed(it) {
      if (!isObject$m(it)) return true;
      if (ARRAY_BUFFER_NON_EXTENSIBLE && classof$8(it) === "ArrayBuffer") return true;
      return $isSealed ? $isSealed(it) : false;
    }
  });
  var $$2g = _export;
  var toObject$9 = toObject$s;
  var nativeKeys = objectKeys$4;
  var fails$x = fails$1e;
  var FAILS_ON_PRIMITIVES$2 = fails$x(function() {
    nativeKeys(1);
  });
  $$2g({
    target: "Object",
    stat: true,
    forced: FAILS_ON_PRIMITIVES$2
  }, {
    keys: function keys2(it) {
      return nativeKeys(toObject$9(it));
    }
  });
  var $$2f = _export;
  var DESCRIPTORS$e = descriptors;
  var FORCED$6 = objectPrototypeAccessorsForced;
  var toObject$8 = toObject$s;
  var toPropertyKey$3 = toPropertyKey$7;
  var getPrototypeOf$7 = objectGetPrototypeOf$2;
  var getOwnPropertyDescriptor$6 = objectGetOwnPropertyDescriptor.f;
  if (DESCRIPTORS$e) {
    $$2f({
      target: "Object",
      proto: true,
      forced: FORCED$6
    }, {
      __lookupGetter__: function __lookupGetter__(P2) {
        var O = toObject$8(this);
        var key = toPropertyKey$3(P2);
        var desc;
        do {
          if (desc = getOwnPropertyDescriptor$6(O, key)) return desc.get;
        } while (O = getPrototypeOf$7(O));
      }
    });
  }
  var $$2e = _export;
  var DESCRIPTORS$d = descriptors;
  var FORCED$5 = objectPrototypeAccessorsForced;
  var toObject$7 = toObject$s;
  var toPropertyKey$2 = toPropertyKey$7;
  var getPrototypeOf$6 = objectGetPrototypeOf$2;
  var getOwnPropertyDescriptor$5 = objectGetOwnPropertyDescriptor.f;
  if (DESCRIPTORS$d) {
    $$2e({
      target: "Object",
      proto: true,
      forced: FORCED$5
    }, {
      __lookupSetter__: function __lookupSetter__(P2) {
        var O = toObject$7(this);
        var key = toPropertyKey$2(P2);
        var desc;
        do {
          if (desc = getOwnPropertyDescriptor$5(O, key)) return desc.set;
        } while (O = getPrototypeOf$6(O));
      }
    });
  }
  var $$2d = _export;
  var isObject$l = isObject$I;
  var onFreeze$1 = internalMetadataExports.onFreeze;
  var FREEZING$3 = freezing;
  var fails$w = fails$1e;
  var $preventExtensions = Object.preventExtensions;
  var FAILS_ON_PRIMITIVES$1 = fails$w(function() {
    $preventExtensions(1);
  });
  $$2d({
    target: "Object",
    stat: true,
    forced: FAILS_ON_PRIMITIVES$1,
    sham: !FREEZING$3
  }, {
    preventExtensions: function preventExtensions(it) {
      return $preventExtensions && isObject$l(it) ? $preventExtensions(onFreeze$1(it)) : it;
    }
  });
  var $$2c = _export;
  var isObject$k = isObject$I;
  var onFreeze2 = internalMetadataExports.onFreeze;
  var FREEZING$2 = freezing;
  var fails$v = fails$1e;
  var $seal = Object.seal;
  var FAILS_ON_PRIMITIVES = fails$v(function() {
    $seal(1);
  });
  $$2c({
    target: "Object",
    stat: true,
    forced: FAILS_ON_PRIMITIVES,
    sham: !FREEZING$2
  }, {
    seal: function seal(it) {
      return $seal && isObject$k(it) ? $seal(onFreeze2(it)) : it;
    }
  });
  var $$2b = _export;
  var setPrototypeOf$3 = objectSetPrototypeOf$1;
  $$2b({
    target: "Object",
    stat: true
  }, {
    setPrototypeOf: setPrototypeOf$3
  });
  var TO_STRING_TAG_SUPPORT$1 = toStringTagSupport;
  var classof$7 = classof$j;
  var objectToString = TO_STRING_TAG_SUPPORT$1 ? {}.toString : function toString3() {
    return "[object " + classof$7(this) + "]";
  };
  var TO_STRING_TAG_SUPPORT = toStringTagSupport;
  var defineBuiltIn$a = defineBuiltIn$l;
  var toString$j = objectToString;
  if (!TO_STRING_TAG_SUPPORT) {
    defineBuiltIn$a(Object.prototype, "toString", toString$j, {
      unsafe: true
    });
  }
  var $$2a = _export;
  var $values = objectToArray.values;
  $$2a({
    target: "Object",
    stat: true
  }, {
    values: function values2(O) {
      return $values(O);
    }
  });
  var $$29 = _export;
  var $parseFloat = numberParseFloat;
  $$29({
    global: true,
    forced: parseFloat !== $parseFloat
  }, {
    parseFloat: $parseFloat
  });
  var $$28 = _export;
  var $parseInt$2 = numberParseInt;
  $$28({
    global: true,
    forced: parseInt !== $parseInt$2
  }, {
    parseInt: $parseInt$2
  });
  var isConstructor$2 = isConstructor$7;
  var tryToString2 = tryToString$7;
  var $TypeError$f = TypeError;
  var aConstructor$3 = function aConstructor(argument) {
    if (isConstructor$2(argument)) return argument;
    throw new $TypeError$f(tryToString2(argument) + " is not a constructor");
  };
  var anObject$B = anObject$N;
  var aConstructor$2 = aConstructor$3;
  var isNullOrUndefined$4 = isNullOrUndefined$a;
  var wellKnownSymbol$g = wellKnownSymbol$C;
  var SPECIES$2 = wellKnownSymbol$g("species");
  var speciesConstructor$4 = function speciesConstructor(O, defaultConstructor) {
    var C = anObject$B(O).constructor;
    var S;
    return C === void 0 || isNullOrUndefined$4(S = anObject$B(C)[SPECIES$2]) ? defaultConstructor : aConstructor$2(S);
  };
  var $TypeError$e = TypeError;
  var validateArgumentsLength$5 = function validateArgumentsLength(passed, required) {
    if (passed < required) throw new $TypeError$e("Not enough arguments");
    return passed;
  };
  var userAgent$3 = environmentUserAgent;
  var environmentIsIos = /(?:ipad|iphone|ipod).*applewebkit/i.test(userAgent$3);
  var globalThis$w = globalThis_1;
  var apply$8 = functionApply$1;
  var bind$j = functionBindContext;
  var isCallable$c = isCallable$z;
  var hasOwn$8 = hasOwnProperty_1;
  var fails$u = fails$1e;
  var html = html$2;
  var arraySlice$4 = arraySlice$a;
  var createElement = documentCreateElement$2;
  var validateArgumentsLength$4 = validateArgumentsLength$5;
  var IS_IOS$1 = environmentIsIos;
  var IS_NODE$2 = environmentIsNode;
  var set$7 = globalThis$w.setImmediate;
  var clear = globalThis$w.clearImmediate;
  var process$2 = globalThis$w.process;
  var Dispatch = globalThis$w.Dispatch;
  var Function$2 = globalThis$w.Function;
  var MessageChannel = globalThis$w.MessageChannel;
  var String$1 = globalThis$w.String;
  var counter = 0;
  var queue$2 = {};
  var ONREADYSTATECHANGE = "onreadystatechange";
  var $location, defer, channel, port;
  fails$u(function() {
    $location = globalThis$w.location;
  });
  var run = function run2(id2) {
    if (hasOwn$8(queue$2, id2)) {
      var fn = queue$2[id2];
      delete queue$2[id2];
      fn();
    }
  };
  var runner = function runner2(id2) {
    return function() {
      run(id2);
    };
  };
  var eventListener = function eventListener2(event) {
    run(event.data);
  };
  var globalPostMessageDefer = function globalPostMessageDefer2(id2) {
    globalThis$w.postMessage(String$1(id2), $location.protocol + "//" + $location.host);
  };
  if (!set$7 || !clear) {
    set$7 = function setImmediate2(handler) {
      validateArgumentsLength$4(arguments.length, 1);
      var fn = isCallable$c(handler) ? handler : Function$2(handler);
      var args = arraySlice$4(arguments, 1);
      queue$2[++counter] = function() {
        apply$8(fn, void 0, args);
      };
      defer(counter);
      return counter;
    };
    clear = function clearImmediate2(id2) {
      delete queue$2[id2];
    };
    if (IS_NODE$2) {
      defer = function defer2(id2) {
        process$2.nextTick(runner(id2));
      };
    } else if (Dispatch && Dispatch.now) {
      defer = function defer2(id2) {
        Dispatch.now(runner(id2));
      };
    } else if (MessageChannel && !IS_IOS$1) {
      channel = new MessageChannel();
      port = channel.port2;
      channel.port1.onmessage = eventListener;
      defer = bind$j(port.postMessage, port);
    } else if (globalThis$w.addEventListener && isCallable$c(globalThis$w.postMessage) && !globalThis$w.importScripts && $location && $location.protocol !== "file:" && !fails$u(globalPostMessageDefer)) {
      defer = globalPostMessageDefer;
      globalThis$w.addEventListener("message", eventListener, false);
    } else if (ONREADYSTATECHANGE in createElement("script")) {
      defer = function defer2(id2) {
        html.appendChild(createElement("script"))[ONREADYSTATECHANGE] = function() {
          html.removeChild(this);
          run(id2);
        };
      };
    } else {
      defer = function defer2(id2) {
        setTimeout(runner(id2), 0);
      };
    }
  }
  var task$1 = {
    set: set$7,
    clear
  };
  var globalThis$v = globalThis_1;
  var DESCRIPTORS$c = descriptors;
  var getOwnPropertyDescriptor$4 = Object.getOwnPropertyDescriptor;
  var safeGetBuiltIn$2 = function safeGetBuiltIn(name2) {
    if (!DESCRIPTORS$c) return globalThis$v[name2];
    var descriptor2 = getOwnPropertyDescriptor$4(globalThis$v, name2);
    return descriptor2 && descriptor2.value;
  };
  var Queue$2 = function Queue() {
    this.head = null;
    this.tail = null;
  };
  Queue$2.prototype = {
    add: function add(item) {
      var entry = {
        item,
        next: null
      };
      var tail = this.tail;
      if (tail) tail.next = entry;
      else this.head = entry;
      this.tail = entry;
    },
    get: function get2() {
      var entry = this.head;
      if (entry) {
        var next8 = this.head = entry.next;
        if (next8 === null) this.tail = null;
        return entry.item;
      }
    }
  };
  var queue$1 = Queue$2;
  var userAgent$2 = environmentUserAgent;
  var environmentIsIosPebble = /ipad|iphone|ipod/i.test(userAgent$2) && typeof Pebble != "undefined";
  var userAgent$1 = environmentUserAgent;
  var environmentIsWebosWebkit = /web0s(?!.*chrome)/i.test(userAgent$1);
  var globalThis$u = globalThis_1;
  var safeGetBuiltIn$1 = safeGetBuiltIn$2;
  var bind$i = functionBindContext;
  var macrotask = task$1.set;
  var Queue$1 = queue$1;
  var IS_IOS = environmentIsIos;
  var IS_IOS_PEBBLE = environmentIsIosPebble;
  var IS_WEBOS_WEBKIT = environmentIsWebosWebkit;
  var IS_NODE$1 = environmentIsNode;
  var MutationObserver$1 = globalThis$u.MutationObserver || globalThis$u.WebKitMutationObserver;
  var document$2 = globalThis$u.document;
  var process$1 = globalThis$u.process;
  var Promise$2 = globalThis$u.Promise;
  var microtask$2 = safeGetBuiltIn$1("queueMicrotask");
  var notify$1, toggle, node, promise, then;
  if (!microtask$2) {
    var queue = new Queue$1();
    var flush = function flush2() {
      var parent, fn;
      if (IS_NODE$1 && (parent = process$1.domain)) parent.exit();
      while (fn = queue.get()) try {
        fn();
      } catch (error2) {
        if (queue.head) notify$1();
        throw error2;
      }
      if (parent) parent.enter();
    };
    if (!IS_IOS && !IS_NODE$1 && !IS_WEBOS_WEBKIT && MutationObserver$1 && document$2) {
      toggle = true;
      node = document$2.createTextNode("");
      new MutationObserver$1(flush).observe(node, {
        characterData: true
      });
      notify$1 = function notify3() {
        node.data = toggle = !toggle;
      };
    } else if (!IS_IOS_PEBBLE && Promise$2 && Promise$2.resolve) {
      promise = Promise$2.resolve(void 0);
      promise.constructor = Promise$2;
      then = bind$i(promise.then, promise);
      notify$1 = function notify3() {
        then(flush);
      };
    } else if (IS_NODE$1) {
      notify$1 = function notify3() {
        process$1.nextTick(flush);
      };
    } else {
      macrotask = bind$i(macrotask, globalThis$u);
      notify$1 = function notify3() {
        macrotask(flush);
      };
    }
    microtask$2 = function microtask2(fn) {
      if (!queue.head) notify$1();
      queue.add(fn);
    };
  }
  var microtask_1 = microtask$2;
  var hostReportErrors$2 = function hostReportErrors(a, b) {
    try {
      arguments.length === 1 ? console.error(a) : console.error(a, b);
    } catch (error2) {
    }
  };
  var perform$6 = function perform(exec2) {
    try {
      return {
        error: false,
        value: exec2()
      };
    } catch (error2) {
      return {
        error: true,
        value: error2
      };
    }
  };
  var globalThis$t = globalThis_1;
  var promiseNativeConstructor = globalThis$t.Promise;
  var globalThis$s = globalThis_1;
  var NativePromiseConstructor$4 = promiseNativeConstructor;
  var isCallable$b = isCallable$z;
  var isForced$1 = isForced_1;
  var inspectSource = inspectSource$3;
  var wellKnownSymbol$f = wellKnownSymbol$C;
  var ENVIRONMENT$1 = environment;
  var V8_VERSION = environmentV8Version;
  NativePromiseConstructor$4 && NativePromiseConstructor$4.prototype;
  var SPECIES$1 = wellKnownSymbol$f("species");
  var SUBCLASSING = false;
  var NATIVE_PROMISE_REJECTION_EVENT$1 = isCallable$b(globalThis$s.PromiseRejectionEvent);
  var FORCED_PROMISE_CONSTRUCTOR$5 = isForced$1("Promise", function() {
    var PROMISE_CONSTRUCTOR_SOURCE = inspectSource(NativePromiseConstructor$4);
    var GLOBAL_CORE_JS_PROMISE = PROMISE_CONSTRUCTOR_SOURCE !== String(NativePromiseConstructor$4);
    if (!GLOBAL_CORE_JS_PROMISE && V8_VERSION === 66) return true;
    if (!V8_VERSION || V8_VERSION < 51 || !/native code/.test(PROMISE_CONSTRUCTOR_SOURCE)) {
      var promise2 = new NativePromiseConstructor$4(function(resolve2) {
        resolve2(1);
      });
      var FakePromise = function FakePromise2(exec2) {
        exec2(function() {
        }, function() {
        });
      };
      var constructor = promise2.constructor = {};
      constructor[SPECIES$1] = FakePromise;
      SUBCLASSING = promise2.then(function() {
      }) instanceof FakePromise;
      if (!SUBCLASSING) return true;
    }
    return !GLOBAL_CORE_JS_PROMISE && (ENVIRONMENT$1 === "BROWSER" || ENVIRONMENT$1 === "DENO") && !NATIVE_PROMISE_REJECTION_EVENT$1;
  });
  var promiseConstructorDetection = {
    CONSTRUCTOR: FORCED_PROMISE_CONSTRUCTOR$5,
    REJECTION_EVENT: NATIVE_PROMISE_REJECTION_EVENT$1,
    SUBCLASSING
  };
  var newPromiseCapability$2 = {};
  var aCallable$h = aCallable$s;
  var $TypeError$d = TypeError;
  var PromiseCapability = function PromiseCapability2(C) {
    var resolve2, reject2;
    this.promise = new C(function($$resolve, $$reject) {
      if (resolve2 !== void 0 || reject2 !== void 0) throw new $TypeError$d("Bad Promise constructor");
      resolve2 = $$resolve;
      reject2 = $$reject;
    });
    this.resolve = aCallable$h(resolve2);
    this.reject = aCallable$h(reject2);
  };
  newPromiseCapability$2.f = function(C) {
    return new PromiseCapability(C);
  };
  var $$27 = _export;
  var IS_NODE = environmentIsNode;
  var globalThis$r = globalThis_1;
  var call$y = functionCall;
  var defineBuiltIn$9 = defineBuiltIn$l;
  var setPrototypeOf$2 = objectSetPrototypeOf$1;
  var setToStringTag$3 = setToStringTag$c;
  var setSpecies$3 = setSpecies$7;
  var aCallable$g = aCallable$s;
  var isCallable$a = isCallable$z;
  var isObject$j = isObject$I;
  var anInstance$5 = anInstance$9;
  var speciesConstructor$3 = speciesConstructor$4;
  var task = task$1.set;
  var microtask$1 = microtask_1;
  var hostReportErrors$1 = hostReportErrors$2;
  var perform$5 = perform$6;
  var Queue2 = queue$1;
  var InternalStateModule$9 = internalState;
  var NativePromiseConstructor$3 = promiseNativeConstructor;
  var PromiseConstructorDetection = promiseConstructorDetection;
  var newPromiseCapabilityModule$6 = newPromiseCapability$2;
  var PROMISE = "Promise";
  var FORCED_PROMISE_CONSTRUCTOR$4 = PromiseConstructorDetection.CONSTRUCTOR;
  var NATIVE_PROMISE_REJECTION_EVENT = PromiseConstructorDetection.REJECTION_EVENT;
  var NATIVE_PROMISE_SUBCLASSING = PromiseConstructorDetection.SUBCLASSING;
  var getInternalPromiseState = InternalStateModule$9.getterFor(PROMISE);
  var setInternalState$9 = InternalStateModule$9.set;
  var NativePromisePrototype$2 = NativePromiseConstructor$3 && NativePromiseConstructor$3.prototype;
  var PromiseConstructor = NativePromiseConstructor$3;
  var PromisePrototype = NativePromisePrototype$2;
  var TypeError$3 = globalThis$r.TypeError;
  var document$1 = globalThis$r.document;
  var process$4 = globalThis$r.process;
  var newPromiseCapability$1 = newPromiseCapabilityModule$6.f;
  var newGenericPromiseCapability = newPromiseCapability$1;
  var DISPATCH_EVENT = !!(document$1 && document$1.createEvent && globalThis$r.dispatchEvent);
  var UNHANDLED_REJECTION = "unhandledrejection";
  var REJECTION_HANDLED = "rejectionhandled";
  var PENDING = 0;
  var FULFILLED = 1;
  var REJECTED = 2;
  var HANDLED = 1;
  var UNHANDLED = 2;
  var Internal, OwnPromiseCapability, PromiseWrapper, nativeThen;
  var isThenable = function isThenable2(it) {
    var then2;
    return isObject$j(it) && isCallable$a(then2 = it.then) ? then2 : false;
  };
  var callReaction = function callReaction2(reaction, state) {
    var value = state.value;
    var ok = state.state === FULFILLED;
    var handler = ok ? reaction.ok : reaction.fail;
    var resolve2 = reaction.resolve;
    var reject2 = reaction.reject;
    var domain = reaction.domain;
    var result, then2, exited;
    try {
      if (handler) {
        if (!ok) {
          if (state.rejection === UNHANDLED) onHandleUnhandled(state);
          state.rejection = HANDLED;
        }
        if (handler === true) result = value;
        else {
          if (domain) domain.enter();
          result = handler(value);
          if (domain) {
            domain.exit();
            exited = true;
          }
        }
        if (result === reaction.promise) {
          reject2(new TypeError$3("Promise-chain cycle"));
        } else if (then2 = isThenable(result)) {
          call$y(then2, result, resolve2, reject2);
        } else resolve2(result);
      } else reject2(value);
    } catch (error2) {
      if (domain && !exited) domain.exit();
      reject2(error2);
    }
  };
  var notify = function notify2(state, isReject) {
    if (state.notified) return;
    state.notified = true;
    microtask$1(function() {
      var reactions = state.reactions;
      var reaction;
      while (reaction = reactions.get()) {
        callReaction(reaction, state);
      }
      state.notified = false;
      if (isReject && !state.rejection) onUnhandled(state);
    });
  };
  var dispatchEvent = function dispatchEvent2(name2, promise2, reason) {
    var event, handler;
    if (DISPATCH_EVENT) {
      event = document$1.createEvent("Event");
      event.promise = promise2;
      event.reason = reason;
      event.initEvent(name2, false, true);
      globalThis$r.dispatchEvent(event);
    } else event = {
      promise: promise2,
      reason
    };
    if (!NATIVE_PROMISE_REJECTION_EVENT && (handler = globalThis$r["on" + name2])) handler(event);
    else if (name2 === UNHANDLED_REJECTION) hostReportErrors$1("Unhandled promise rejection", reason);
  };
  var onUnhandled = function onUnhandled2(state) {
    call$y(task, globalThis$r, function() {
      var promise2 = state.facade;
      var value = state.value;
      var IS_UNHANDLED = isUnhandled(state);
      var result;
      if (IS_UNHANDLED) {
        result = perform$5(function() {
          if (IS_NODE) {
            process$4.emit("unhandledRejection", value, promise2);
          } else dispatchEvent(UNHANDLED_REJECTION, promise2, value);
        });
        state.rejection = IS_NODE || isUnhandled(state) ? UNHANDLED : HANDLED;
        if (result.error) throw result.value;
      }
    });
  };
  var isUnhandled = function isUnhandled2(state) {
    return state.rejection !== HANDLED && !state.parent;
  };
  var onHandleUnhandled = function onHandleUnhandled2(state) {
    call$y(task, globalThis$r, function() {
      var promise2 = state.facade;
      if (IS_NODE) {
        process$4.emit("rejectionHandled", promise2);
      } else dispatchEvent(REJECTION_HANDLED, promise2, state.value);
    });
  };
  var bind$h = function bind2(fn, state, unwrap) {
    return function(value) {
      fn(state, value, unwrap);
    };
  };
  var internalReject = function internalReject2(state, value, unwrap) {
    if (state.done) return;
    state.done = true;
    if (unwrap) state = unwrap;
    state.value = value;
    state.state = REJECTED;
    notify(state, true);
  };
  var _internalResolve = function internalResolve(state, value, unwrap) {
    if (state.done) return;
    state.done = true;
    if (unwrap) state = unwrap;
    try {
      if (state.facade === value) throw new TypeError$3("Promise can't be resolved itself");
      var then2 = isThenable(value);
      if (then2) {
        microtask$1(function() {
          var wrapper3 = {
            done: false
          };
          try {
            call$y(then2, value, bind$h(_internalResolve, wrapper3, state), bind$h(internalReject, wrapper3, state));
          } catch (error2) {
            internalReject(wrapper3, error2, state);
          }
        });
      } else {
        state.value = value;
        state.state = FULFILLED;
        notify(state, false);
      }
    } catch (error2) {
      internalReject({
        done: false
      }, error2, state);
    }
  };
  if (FORCED_PROMISE_CONSTRUCTOR$4) {
    PromiseConstructor = function Promise2(executor) {
      anInstance$5(this, PromisePrototype);
      aCallable$g(executor);
      call$y(Internal, this);
      var state = getInternalPromiseState(this);
      try {
        executor(bind$h(_internalResolve, state), bind$h(internalReject, state));
      } catch (error2) {
        internalReject(state, error2);
      }
    };
    PromisePrototype = PromiseConstructor.prototype;
    Internal = function Promise2(executor) {
      setInternalState$9(this, {
        type: PROMISE,
        done: false,
        notified: false,
        parent: false,
        reactions: new Queue2(),
        rejection: false,
        state: PENDING,
        value: null
      });
    };
    Internal.prototype = defineBuiltIn$9(PromisePrototype, "then", function then2(onFulfilled, onRejected) {
      var state = getInternalPromiseState(this);
      var reaction = newPromiseCapability$1(speciesConstructor$3(this, PromiseConstructor));
      state.parent = true;
      reaction.ok = isCallable$a(onFulfilled) ? onFulfilled : true;
      reaction.fail = isCallable$a(onRejected) && onRejected;
      reaction.domain = IS_NODE ? process$4.domain : void 0;
      if (state.state === PENDING) state.reactions.add(reaction);
      else microtask$1(function() {
        callReaction(reaction, state);
      });
      return reaction.promise;
    });
    OwnPromiseCapability = function OwnPromiseCapability2() {
      var promise2 = new Internal();
      var state = getInternalPromiseState(promise2);
      this.promise = promise2;
      this.resolve = bind$h(_internalResolve, state);
      this.reject = bind$h(internalReject, state);
    };
    newPromiseCapabilityModule$6.f = newPromiseCapability$1 = function newPromiseCapability2(C) {
      return C === PromiseConstructor || C === PromiseWrapper ? new OwnPromiseCapability(C) : newGenericPromiseCapability(C);
    };
    if (isCallable$a(NativePromiseConstructor$3) && NativePromisePrototype$2 !== Object.prototype) {
      nativeThen = NativePromisePrototype$2.then;
      if (!NATIVE_PROMISE_SUBCLASSING) {
        defineBuiltIn$9(NativePromisePrototype$2, "then", function then2(onFulfilled, onRejected) {
          var that = this;
          return new PromiseConstructor(function(resolve2, reject2) {
            call$y(nativeThen, that, resolve2, reject2);
          }).then(onFulfilled, onRejected);
        }, {
          unsafe: true
        });
      }
      try {
        delete NativePromisePrototype$2.constructor;
      } catch (error2) {
      }
      if (setPrototypeOf$2) {
        setPrototypeOf$2(NativePromisePrototype$2, PromisePrototype);
      }
    }
  }
  $$27({
    global: true,
    constructor: true,
    wrap: true,
    forced: FORCED_PROMISE_CONSTRUCTOR$4
  }, {
    Promise: PromiseConstructor
  });
  setToStringTag$3(PromiseConstructor, PROMISE, false);
  setSpecies$3(PROMISE);
  var NativePromiseConstructor$2 = promiseNativeConstructor;
  var checkCorrectnessOfIteration$1 = checkCorrectnessOfIteration$4;
  var FORCED_PROMISE_CONSTRUCTOR$3 = promiseConstructorDetection.CONSTRUCTOR;
  var promiseStaticsIncorrectIteration = FORCED_PROMISE_CONSTRUCTOR$3 || !checkCorrectnessOfIteration$1(function(iterable) {
    NativePromiseConstructor$2.all(iterable).then(void 0, function() {
    });
  });
  var $$26 = _export;
  var call$x = functionCall;
  var aCallable$f = aCallable$s;
  var newPromiseCapabilityModule$5 = newPromiseCapability$2;
  var perform$4 = perform$6;
  var iterate$u = iterate$y;
  var PROMISE_STATICS_INCORRECT_ITERATION$3 = promiseStaticsIncorrectIteration;
  $$26({
    target: "Promise",
    stat: true,
    forced: PROMISE_STATICS_INCORRECT_ITERATION$3
  }, {
    all: function all2(iterable) {
      var C = this;
      var capability = newPromiseCapabilityModule$5.f(C);
      var resolve2 = capability.resolve;
      var reject2 = capability.reject;
      var result = perform$4(function() {
        var $promiseResolve = aCallable$f(C.resolve);
        var values5 = [];
        var counter2 = 0;
        var remaining = 1;
        iterate$u(iterable, function(promise2) {
          var index2 = counter2++;
          var alreadyCalled = false;
          remaining++;
          call$x($promiseResolve, C, promise2).then(function(value) {
            if (alreadyCalled) return;
            alreadyCalled = true;
            values5[index2] = value;
            --remaining || resolve2(values5);
          }, reject2);
        });
        --remaining || resolve2(values5);
      });
      if (result.error) reject2(result.value);
      return capability.promise;
    }
  });
  var $$25 = _export;
  var FORCED_PROMISE_CONSTRUCTOR$2 = promiseConstructorDetection.CONSTRUCTOR;
  var NativePromiseConstructor$1 = promiseNativeConstructor;
  var getBuiltIn$d = getBuiltIn$n;
  var isCallable$9 = isCallable$z;
  var defineBuiltIn$8 = defineBuiltIn$l;
  var NativePromisePrototype$1 = NativePromiseConstructor$1 && NativePromiseConstructor$1.prototype;
  $$25({
    target: "Promise",
    proto: true,
    forced: FORCED_PROMISE_CONSTRUCTOR$2,
    real: true
  }, {
    "catch": function _catch(onRejected) {
      return this.then(void 0, onRejected);
    }
  });
  if (isCallable$9(NativePromiseConstructor$1)) {
    var method$1 = getBuiltIn$d("Promise").prototype["catch"];
    if (NativePromisePrototype$1["catch"] !== method$1) {
      defineBuiltIn$8(NativePromisePrototype$1, "catch", method$1, {
        unsafe: true
      });
    }
  }
  var $$24 = _export;
  var call$w = functionCall;
  var aCallable$e = aCallable$s;
  var newPromiseCapabilityModule$4 = newPromiseCapability$2;
  var perform$3 = perform$6;
  var iterate$t = iterate$y;
  var PROMISE_STATICS_INCORRECT_ITERATION$2 = promiseStaticsIncorrectIteration;
  $$24({
    target: "Promise",
    stat: true,
    forced: PROMISE_STATICS_INCORRECT_ITERATION$2
  }, {
    race: function race(iterable) {
      var C = this;
      var capability = newPromiseCapabilityModule$4.f(C);
      var reject2 = capability.reject;
      var result = perform$3(function() {
        var $promiseResolve = aCallable$e(C.resolve);
        iterate$t(iterable, function(promise2) {
          call$w($promiseResolve, C, promise2).then(capability.resolve, reject2);
        });
      });
      if (result.error) reject2(result.value);
      return capability.promise;
    }
  });
  var $$23 = _export;
  var newPromiseCapabilityModule$3 = newPromiseCapability$2;
  var FORCED_PROMISE_CONSTRUCTOR$1 = promiseConstructorDetection.CONSTRUCTOR;
  $$23({
    target: "Promise",
    stat: true,
    forced: FORCED_PROMISE_CONSTRUCTOR$1
  }, {
    reject: function reject(r) {
      var capability = newPromiseCapabilityModule$3.f(this);
      var capabilityReject = capability.reject;
      capabilityReject(r);
      return capability.promise;
    }
  });
  var anObject$A = anObject$N;
  var isObject$i = isObject$I;
  var newPromiseCapability = newPromiseCapability$2;
  var promiseResolve$2 = function promiseResolve(C, x) {
    anObject$A(C);
    if (isObject$i(x) && x.constructor === C) return x;
    var promiseCapability = newPromiseCapability.f(C);
    var resolve2 = promiseCapability.resolve;
    resolve2(x);
    return promiseCapability.promise;
  };
  var $$22 = _export;
  var getBuiltIn$c = getBuiltIn$n;
  var FORCED_PROMISE_CONSTRUCTOR = promiseConstructorDetection.CONSTRUCTOR;
  var promiseResolve$1 = promiseResolve$2;
  getBuiltIn$c("Promise");
  $$22({
    target: "Promise",
    stat: true,
    forced: FORCED_PROMISE_CONSTRUCTOR
  }, {
    resolve: function resolve(x) {
      return promiseResolve$1(this, x);
    }
  });
  var $$21 = _export;
  var NativePromiseConstructor = promiseNativeConstructor;
  var fails$t = fails$1e;
  var getBuiltIn$b = getBuiltIn$n;
  var isCallable$8 = isCallable$z;
  var speciesConstructor$2 = speciesConstructor$4;
  var promiseResolve2 = promiseResolve$2;
  var defineBuiltIn$7 = defineBuiltIn$l;
  var NativePromisePrototype = NativePromiseConstructor && NativePromiseConstructor.prototype;
  var NON_GENERIC = !!NativePromiseConstructor && fails$t(function() {
    NativePromisePrototype["finally"].call({
      then: function then2() {
      }
    }, function() {
    });
  });
  $$21({
    target: "Promise",
    proto: true,
    real: true,
    forced: NON_GENERIC
  }, {
    "finally": function _finally(onFinally2) {
      var C = speciesConstructor$2(this, getBuiltIn$b("Promise"));
      var isFunction2 = isCallable$8(onFinally2);
      return this.then(isFunction2 ? function(x) {
        return promiseResolve2(C, onFinally2()).then(function() {
          return x;
        });
      } : onFinally2, isFunction2 ? function(e) {
        return promiseResolve2(C, onFinally2()).then(function() {
          throw e;
        });
      } : onFinally2);
    }
  });
  if (isCallable$8(NativePromiseConstructor)) {
    var method = getBuiltIn$b("Promise").prototype["finally"];
    if (NativePromisePrototype["finally"] !== method) {
      defineBuiltIn$7(NativePromisePrototype, "finally", method, {
        unsafe: true
      });
    }
  }
  var $$20 = _export;
  var functionApply = functionApply$1;
  var aCallable$d = aCallable$s;
  var anObject$z = anObject$N;
  var fails$s = fails$1e;
  var OPTIONAL_ARGUMENTS_LIST = !fails$s(function() {
    Reflect.apply(function() {
    });
  });
  $$20({
    target: "Reflect",
    stat: true,
    forced: OPTIONAL_ARGUMENTS_LIST
  }, {
    apply: function apply(target, thisArgument, argumentsList) {
      return functionApply(aCallable$d(target), thisArgument, anObject$z(argumentsList));
    }
  });
  var $$1$ = _export;
  var getBuiltIn$a = getBuiltIn$n;
  var apply$7 = functionApply$1;
  var bind$g = functionBind;
  var aConstructor$1 = aConstructor$3;
  var anObject$y = anObject$N;
  var isObject$h = isObject$I;
  var create$7 = objectCreate;
  var fails$r = fails$1e;
  var nativeConstruct = getBuiltIn$a("Reflect", "construct");
  var ObjectPrototype = Object.prototype;
  var push$b = [].push;
  var NEW_TARGET_BUG = fails$r(function() {
    function F() {
    }
    return !(nativeConstruct(function() {
    }, [], F) instanceof F);
  });
  var ARGS_BUG = !fails$r(function() {
    nativeConstruct(function() {
    });
  });
  var FORCED$4 = NEW_TARGET_BUG || ARGS_BUG;
  $$1$({
    target: "Reflect",
    stat: true,
    forced: FORCED$4,
    sham: FORCED$4
  }, {
    construct: function construct3(Target, args) {
      aConstructor$1(Target);
      anObject$y(args);
      var newTarget = arguments.length < 3 ? Target : aConstructor$1(arguments[2]);
      if (ARGS_BUG && !NEW_TARGET_BUG) return nativeConstruct(Target, args, newTarget);
      if (Target === newTarget) {
        switch (args.length) {
          case 0:
            return new Target();
          case 1:
            return new Target(args[0]);
          case 2:
            return new Target(args[0], args[1]);
          case 3:
            return new Target(args[0], args[1], args[2]);
          case 4:
            return new Target(args[0], args[1], args[2], args[3]);
        }
        var $args = [null];
        apply$7(push$b, $args, args);
        return new (apply$7(bind$g, Target, $args))();
      }
      var proto = newTarget.prototype;
      var instance = create$7(isObject$h(proto) ? proto : ObjectPrototype);
      var result = apply$7(Target, instance, args);
      return isObject$h(result) ? result : instance;
    }
  });
  var $$1_ = _export;
  var DESCRIPTORS$b = descriptors;
  var anObject$x = anObject$N;
  var toPropertyKey$1 = toPropertyKey$7;
  var definePropertyModule$2 = objectDefineProperty;
  var fails$q = fails$1e;
  var ERROR_INSTEAD_OF_FALSE = fails$q(function() {
    Reflect.defineProperty(definePropertyModule$2.f({}, 1, {
      value: 1
    }), 1, {
      value: 2
    });
  });
  $$1_({
    target: "Reflect",
    stat: true,
    forced: ERROR_INSTEAD_OF_FALSE,
    sham: !DESCRIPTORS$b
  }, {
    defineProperty: function defineProperty4(target, propertyKey, attributes) {
      anObject$x(target);
      var key = toPropertyKey$1(propertyKey);
      anObject$x(attributes);
      try {
        definePropertyModule$2.f(target, key, attributes);
        return true;
      } catch (error2) {
        return false;
      }
    }
  });
  var $$1Z = _export;
  var anObject$w = anObject$N;
  var getOwnPropertyDescriptor$3 = objectGetOwnPropertyDescriptor.f;
  $$1Z({
    target: "Reflect",
    stat: true
  }, {
    deleteProperty: function deleteProperty(target, propertyKey) {
      var descriptor2 = getOwnPropertyDescriptor$3(anObject$w(target), propertyKey);
      return descriptor2 && !descriptor2.configurable ? false : delete target[propertyKey];
    }
  });
  var hasOwn$7 = hasOwnProperty_1;
  var isDataDescriptor$2 = function isDataDescriptor(descriptor2) {
    return descriptor2 !== void 0 && (hasOwn$7(descriptor2, "value") || hasOwn$7(descriptor2, "writable"));
  };
  var $$1Y = _export;
  var call$v = functionCall;
  var isObject$g = isObject$I;
  var anObject$v = anObject$N;
  var isDataDescriptor$1 = isDataDescriptor$2;
  var getOwnPropertyDescriptorModule$3 = objectGetOwnPropertyDescriptor;
  var getPrototypeOf$5 = objectGetPrototypeOf$2;
  function get$2(target, propertyKey) {
    var receiver = arguments.length < 3 ? target : arguments[2];
    var descriptor2, prototype2;
    if (anObject$v(target) === receiver) return target[propertyKey];
    descriptor2 = getOwnPropertyDescriptorModule$3.f(target, propertyKey);
    if (descriptor2) return isDataDescriptor$1(descriptor2) ? descriptor2.value : descriptor2.get === void 0 ? void 0 : call$v(descriptor2.get, receiver);
    if (isObject$g(prototype2 = getPrototypeOf$5(target))) return get$2(prototype2, propertyKey, receiver);
  }
  $$1Y({
    target: "Reflect",
    stat: true
  }, {
    get: get$2
  });
  var $$1X = _export;
  var DESCRIPTORS$a = descriptors;
  var anObject$u = anObject$N;
  var getOwnPropertyDescriptorModule$2 = objectGetOwnPropertyDescriptor;
  $$1X({
    target: "Reflect",
    stat: true,
    sham: !DESCRIPTORS$a
  }, {
    getOwnPropertyDescriptor: function getOwnPropertyDescriptor4(target, propertyKey) {
      return getOwnPropertyDescriptorModule$2.f(anObject$u(target), propertyKey);
    }
  });
  var $$1W = _export;
  var anObject$t = anObject$N;
  var objectGetPrototypeOf = objectGetPrototypeOf$2;
  var CORRECT_PROTOTYPE_GETTER = correctPrototypeGetter;
  $$1W({
    target: "Reflect",
    stat: true,
    sham: !CORRECT_PROTOTYPE_GETTER
  }, {
    getPrototypeOf: function getPrototypeOf2(target) {
      return objectGetPrototypeOf(anObject$t(target));
    }
  });
  var $$1V = _export;
  $$1V({
    target: "Reflect",
    stat: true
  }, {
    has: function has(target, propertyKey) {
      return propertyKey in target;
    }
  });
  var $$1U = _export;
  var anObject$s = anObject$N;
  var $isExtensible = objectIsExtensible;
  $$1U({
    target: "Reflect",
    stat: true
  }, {
    isExtensible: function isExtensible2(target) {
      anObject$s(target);
      return $isExtensible(target);
    }
  });
  var $$1T = _export;
  var ownKeys2 = ownKeys$3;
  $$1T({
    target: "Reflect",
    stat: true
  }, {
    ownKeys: ownKeys2
  });
  var $$1S = _export;
  var getBuiltIn$9 = getBuiltIn$n;
  var anObject$r = anObject$N;
  var FREEZING$1 = freezing;
  $$1S({
    target: "Reflect",
    stat: true,
    sham: !FREEZING$1
  }, {
    preventExtensions: function preventExtensions2(target) {
      anObject$r(target);
      try {
        var objectPreventExtensions = getBuiltIn$9("Object", "preventExtensions");
        if (objectPreventExtensions) objectPreventExtensions(target);
        return true;
      } catch (error2) {
        return false;
      }
    }
  });
  var $$1R = _export;
  var call$u = functionCall;
  var anObject$q = anObject$N;
  var isObject$f = isObject$I;
  var isDataDescriptor2 = isDataDescriptor$2;
  var fails$p = fails$1e;
  var definePropertyModule$1 = objectDefineProperty;
  var getOwnPropertyDescriptorModule$1 = objectGetOwnPropertyDescriptor;
  var getPrototypeOf$4 = objectGetPrototypeOf$2;
  var createPropertyDescriptor$4 = createPropertyDescriptor$a;
  function set$6(target, propertyKey, V) {
    var receiver = arguments.length < 4 ? target : arguments[3];
    var ownDescriptor = getOwnPropertyDescriptorModule$1.f(anObject$q(target), propertyKey);
    var existingDescriptor, prototype2, setter;
    if (!ownDescriptor) {
      if (isObject$f(prototype2 = getPrototypeOf$4(target))) {
        return set$6(prototype2, propertyKey, V, receiver);
      }
      ownDescriptor = createPropertyDescriptor$4(0);
    }
    if (isDataDescriptor2(ownDescriptor)) {
      if (ownDescriptor.writable === false || !isObject$f(receiver)) return false;
      if (existingDescriptor = getOwnPropertyDescriptorModule$1.f(receiver, propertyKey)) {
        if (existingDescriptor.get || existingDescriptor.set || existingDescriptor.writable === false) return false;
        existingDescriptor.value = V;
        definePropertyModule$1.f(receiver, propertyKey, existingDescriptor);
      } else definePropertyModule$1.f(receiver, propertyKey, createPropertyDescriptor$4(0, V));
    } else {
      setter = ownDescriptor.set;
      if (setter === void 0) return false;
      call$u(setter, receiver, V);
    }
    return true;
  }
  var MS_EDGE_BUG = fails$p(function() {
    var Constructor2 = function Constructor3() {
    };
    var object = definePropertyModule$1.f(new Constructor2(), "a", {
      configurable: true
    });
    return Reflect.set(Constructor2.prototype, "a", 1, object) !== false;
  });
  $$1R({
    target: "Reflect",
    stat: true,
    forced: MS_EDGE_BUG
  }, {
    set: set$6
  });
  var $$1Q = _export;
  var anObject$p = anObject$N;
  var aPossiblePrototype2 = aPossiblePrototype$2;
  var objectSetPrototypeOf = objectSetPrototypeOf$1;
  if (objectSetPrototypeOf) $$1Q({
    target: "Reflect",
    stat: true
  }, {
    setPrototypeOf: function setPrototypeOf(target, proto) {
      anObject$p(target);
      aPossiblePrototype2(proto);
      try {
        objectSetPrototypeOf(target, proto);
        return true;
      } catch (error2) {
        return false;
      }
    }
  });
  var isObject$e = isObject$I;
  var classof$6 = classofRaw$2;
  var wellKnownSymbol$e = wellKnownSymbol$C;
  var MATCH$2 = wellKnownSymbol$e("match");
  var isRegexp = function isRegexp2(it) {
    var isRegExp2;
    return isObject$e(it) && ((isRegExp2 = it[MATCH$2]) !== void 0 ? !!isRegExp2 : classof$6(it) === "RegExp");
  };
  var anObject$o = anObject$N;
  var regexpFlags$1 = function regexpFlags() {
    var that = anObject$o(this);
    var result = "";
    if (that.hasIndices) result += "d";
    if (that.global) result += "g";
    if (that.ignoreCase) result += "i";
    if (that.multiline) result += "m";
    if (that.dotAll) result += "s";
    if (that.unicode) result += "u";
    if (that.unicodeSets) result += "v";
    if (that.sticky) result += "y";
    return result;
  };
  var call$t = functionCall;
  var hasOwn$6 = hasOwnProperty_1;
  var isPrototypeOf$3 = objectIsPrototypeOf;
  var regExpFlags$1 = regexpFlags$1;
  var RegExpPrototype$5 = RegExp.prototype;
  var regexpGetFlags = function regexpGetFlags2(R2) {
    var flags = R2.flags;
    return flags === void 0 && !("flags" in RegExpPrototype$5) && !hasOwn$6(R2, "flags") && isPrototypeOf$3(RegExpPrototype$5, R2) ? call$t(regExpFlags$1, R2) : flags;
  };
  var fails$o = fails$1e;
  var globalThis$q = globalThis_1;
  var $RegExp$2 = globalThis$q.RegExp;
  var UNSUPPORTED_Y$3 = fails$o(function() {
    var re = $RegExp$2("a", "y");
    re.lastIndex = 2;
    return re.exec("abcd") !== null;
  });
  var MISSED_STICKY$1 = UNSUPPORTED_Y$3 || fails$o(function() {
    return !$RegExp$2("a", "y").sticky;
  });
  var BROKEN_CARET = UNSUPPORTED_Y$3 || fails$o(function() {
    var re = $RegExp$2("^r", "gy");
    re.lastIndex = 2;
    return re.exec("str") !== null;
  });
  var regexpStickyHelpers = {
    BROKEN_CARET,
    MISSED_STICKY: MISSED_STICKY$1,
    UNSUPPORTED_Y: UNSUPPORTED_Y$3
  };
  var defineProperty$1 = objectDefineProperty.f;
  var proxyAccessor$1 = function proxyAccessor(Target, Source, key) {
    key in Target || defineProperty$1(Target, key, {
      configurable: true,
      get: function get6() {
        return Source[key];
      },
      set: function set6(it) {
        Source[key] = it;
      }
    });
  };
  var fails$n = fails$1e;
  var globalThis$p = globalThis_1;
  var $RegExp$1 = globalThis$p.RegExp;
  var regexpUnsupportedDotAll = fails$n(function() {
    var re = $RegExp$1(".", "s");
    return !(re.dotAll && re.test("\n") && re.flags === "s");
  });
  var fails$m = fails$1e;
  var globalThis$o = globalThis_1;
  var $RegExp = globalThis$o.RegExp;
  var regexpUnsupportedNcg = fails$m(function() {
    var re = $RegExp("(?<a>b)", "g");
    return re.exec("b").groups.a !== "b" || "b".replace(re, "$<a>c") !== "bc";
  });
  var DESCRIPTORS$9 = descriptors;
  var globalThis$n = globalThis_1;
  var uncurryThis$B = functionUncurryThis;
  var isForced2 = isForced_1;
  var inheritIfRequired$1 = inheritIfRequired$5;
  var createNonEnumerableProperty$7 = createNonEnumerableProperty$d;
  var create$6 = objectCreate;
  var getOwnPropertyNames$1 = objectGetOwnPropertyNames.f;
  var isPrototypeOf$2 = objectIsPrototypeOf;
  var isRegExp$3 = isRegexp;
  var toString$i = toString$t;
  var getRegExpFlags$3 = regexpGetFlags;
  var stickyHelpers$2 = regexpStickyHelpers;
  var proxyAccessor2 = proxyAccessor$1;
  var defineBuiltIn$6 = defineBuiltIn$l;
  var fails$l = fails$1e;
  var hasOwn$5 = hasOwnProperty_1;
  var enforceInternalState$2 = internalState.enforce;
  var setSpecies$2 = setSpecies$7;
  var wellKnownSymbol$d = wellKnownSymbol$C;
  var UNSUPPORTED_DOT_ALL$1 = regexpUnsupportedDotAll;
  var UNSUPPORTED_NCG$1 = regexpUnsupportedNcg;
  var MATCH$1 = wellKnownSymbol$d("match");
  var NativeRegExp = globalThis$n.RegExp;
  var RegExpPrototype$4 = NativeRegExp.prototype;
  var SyntaxError$1 = globalThis$n.SyntaxError;
  var exec$5 = uncurryThis$B(RegExpPrototype$4.exec);
  var charAt$a = uncurryThis$B("".charAt);
  var replace$7 = uncurryThis$B("".replace);
  var stringIndexOf$3 = uncurryThis$B("".indexOf);
  var stringSlice$a = uncurryThis$B("".slice);
  var IS_NCG = /^\?<[^\s\d!#%&*+<=>@^][^\s!#%&*+<=>@^]*>/;
  var re1 = /a/g;
  var re2 = /a/g;
  var CORRECT_NEW = new NativeRegExp(re1) !== re1;
  var MISSED_STICKY = stickyHelpers$2.MISSED_STICKY;
  var UNSUPPORTED_Y$2 = stickyHelpers$2.UNSUPPORTED_Y;
  var BASE_FORCED = DESCRIPTORS$9 && (!CORRECT_NEW || MISSED_STICKY || UNSUPPORTED_DOT_ALL$1 || UNSUPPORTED_NCG$1 || fails$l(function() {
    re2[MATCH$1] = false;
    return NativeRegExp(re1) !== re1 || NativeRegExp(re2) === re2 || String(NativeRegExp(re1, "i")) !== "/a/i";
  }));
  var handleDotAll = function handleDotAll2(string) {
    var length = string.length;
    var index2 = 0;
    var result = "";
    var brackets = false;
    var chr;
    for (; index2 <= length; index2++) {
      chr = charAt$a(string, index2);
      if (chr === "\\") {
        result += chr + charAt$a(string, ++index2);
        continue;
      }
      if (!brackets && chr === ".") {
        result += "[\\s\\S]";
      } else {
        if (chr === "[") {
          brackets = true;
        } else if (chr === "]") {
          brackets = false;
        }
        result += chr;
      }
    }
    return result;
  };
  var handleNCG = function handleNCG2(string) {
    var length = string.length;
    var index2 = 0;
    var result = "";
    var named = [];
    var names = create$6(null);
    var brackets = false;
    var ncg = false;
    var groupid = 0;
    var groupname = "";
    var chr;
    for (; index2 <= length; index2++) {
      chr = charAt$a(string, index2);
      if (chr === "\\") {
        chr += charAt$a(string, ++index2);
      } else if (chr === "]") {
        brackets = false;
      } else if (!brackets) switch (true) {
        case chr === "[":
          brackets = true;
          break;
        case chr === "(":
          result += chr;
          if (stringSlice$a(string, index2 + 1, index2 + 3) === "?:") {
            continue;
          }
          if (exec$5(IS_NCG, stringSlice$a(string, index2 + 1))) {
            index2 += 2;
            ncg = true;
          }
          groupid++;
          continue;
        case (chr === ">" && ncg):
          if (groupname === "" || hasOwn$5(names, groupname)) {
            throw new SyntaxError$1("Invalid capture group name");
          }
          names[groupname] = true;
          named[named.length] = [groupname, groupid];
          ncg = false;
          groupname = "";
          continue;
      }
      if (ncg) groupname += chr;
      else result += chr;
    }
    return [result, named];
  };
  if (isForced2("RegExp", BASE_FORCED)) {
    var RegExpWrapper = function RegExp2(pattern, flags) {
      var thisIsRegExp = isPrototypeOf$2(RegExpPrototype$4, this);
      var patternIsRegExp = isRegExp$3(pattern);
      var flagsAreUndefined = flags === void 0;
      var groups = [];
      var rawPattern = pattern;
      var rawFlags, dotAll, sticky, handled, result, state;
      if (!thisIsRegExp && patternIsRegExp && flagsAreUndefined && pattern.constructor === RegExpWrapper) {
        return pattern;
      }
      if (patternIsRegExp || isPrototypeOf$2(RegExpPrototype$4, pattern)) {
        pattern = pattern.source;
        if (flagsAreUndefined) flags = getRegExpFlags$3(rawPattern);
      }
      pattern = pattern === void 0 ? "" : toString$i(pattern);
      flags = flags === void 0 ? "" : toString$i(flags);
      rawPattern = pattern;
      if (UNSUPPORTED_DOT_ALL$1 && "dotAll" in re1) {
        dotAll = !!flags && stringIndexOf$3(flags, "s") > -1;
        if (dotAll) flags = replace$7(flags, /s/g, "");
      }
      rawFlags = flags;
      if (MISSED_STICKY && "sticky" in re1) {
        sticky = !!flags && stringIndexOf$3(flags, "y") > -1;
        if (sticky && UNSUPPORTED_Y$2) flags = replace$7(flags, /y/g, "");
      }
      if (UNSUPPORTED_NCG$1) {
        handled = handleNCG(pattern);
        pattern = handled[0];
        groups = handled[1];
      }
      result = inheritIfRequired$1(NativeRegExp(pattern, flags), thisIsRegExp ? this : RegExpPrototype$4, RegExpWrapper);
      if (dotAll || sticky || groups.length) {
        state = enforceInternalState$2(result);
        if (dotAll) {
          state.dotAll = true;
          state.raw = RegExpWrapper(handleDotAll(pattern), rawFlags);
        }
        if (sticky) state.sticky = true;
        if (groups.length) state.groups = groups;
      }
      if (pattern !== rawPattern) try {
        createNonEnumerableProperty$7(result, "source", rawPattern === "" ? "(?:)" : rawPattern);
      } catch (error2) {
      }
      return result;
    };
    for (var keys$1 = getOwnPropertyNames$1(NativeRegExp), index$1 = 0; keys$1.length > index$1; ) {
      proxyAccessor2(RegExpWrapper, NativeRegExp, keys$1[index$1++]);
    }
    RegExpPrototype$4.constructor = RegExpWrapper;
    RegExpWrapper.prototype = RegExpPrototype$4;
    defineBuiltIn$6(globalThis$n, "RegExp", RegExpWrapper, {
      constructor: true
    });
  }
  setSpecies$2("RegExp");
  var call$s = functionCall;
  var uncurryThis$A = functionUncurryThis;
  var toString$h = toString$t;
  var regexpFlags2 = regexpFlags$1;
  var stickyHelpers$1 = regexpStickyHelpers;
  var shared$1 = shared$8;
  var create$5 = objectCreate;
  var getInternalState$5 = internalState.get;
  var UNSUPPORTED_DOT_ALL = regexpUnsupportedDotAll;
  var UNSUPPORTED_NCG = regexpUnsupportedNcg;
  var nativeReplace = shared$1("native-string-replace", String.prototype.replace);
  var nativeExec = RegExp.prototype.exec;
  var patchedExec = nativeExec;
  var charAt$9 = uncurryThis$A("".charAt);
  var indexOf$1 = uncurryThis$A("".indexOf);
  var replace$6 = uncurryThis$A("".replace);
  var stringSlice$9 = uncurryThis$A("".slice);
  var UPDATES_LAST_INDEX_WRONG = function() {
    var re12 = /a/;
    var re22 = /b*/g;
    call$s(nativeExec, re12, "a");
    call$s(nativeExec, re22, "a");
    return re12.lastIndex !== 0 || re22.lastIndex !== 0;
  }();
  var UNSUPPORTED_Y$1 = stickyHelpers$1.BROKEN_CARET;
  var NPCG_INCLUDED = /()??/.exec("")[1] !== void 0;
  var PATCH = UPDATES_LAST_INDEX_WRONG || NPCG_INCLUDED || UNSUPPORTED_Y$1 || UNSUPPORTED_DOT_ALL || UNSUPPORTED_NCG;
  if (PATCH) {
    patchedExec = function exec2(string) {
      var re = this;
      var state = getInternalState$5(re);
      var str = toString$h(string);
      var raw2 = state.raw;
      var result, reCopy, lastIndex, match2, i, object, group;
      if (raw2) {
        raw2.lastIndex = re.lastIndex;
        result = call$s(patchedExec, raw2, str);
        re.lastIndex = raw2.lastIndex;
        return result;
      }
      var groups = state.groups;
      var sticky = UNSUPPORTED_Y$1 && re.sticky;
      var flags = call$s(regexpFlags2, re);
      var source = re.source;
      var charsAdded = 0;
      var strCopy = str;
      if (sticky) {
        flags = replace$6(flags, "y", "");
        if (indexOf$1(flags, "g") === -1) {
          flags += "g";
        }
        strCopy = stringSlice$9(str, re.lastIndex);
        if (re.lastIndex > 0 && (!re.multiline || re.multiline && charAt$9(str, re.lastIndex - 1) !== "\n")) {
          source = "(?: " + source + ")";
          strCopy = " " + strCopy;
          charsAdded++;
        }
        reCopy = new RegExp("^(?:" + source + ")", flags);
      }
      if (NPCG_INCLUDED) {
        reCopy = new RegExp("^" + source + "$(?!\\s)", flags);
      }
      if (UPDATES_LAST_INDEX_WRONG) lastIndex = re.lastIndex;
      match2 = call$s(nativeExec, sticky ? reCopy : re, strCopy);
      if (sticky) {
        if (match2) {
          match2.input = stringSlice$9(match2.input, charsAdded);
          match2[0] = stringSlice$9(match2[0], charsAdded);
          match2.index = re.lastIndex;
          re.lastIndex += match2[0].length;
        } else re.lastIndex = 0;
      } else if (UPDATES_LAST_INDEX_WRONG && match2) {
        re.lastIndex = re.global ? match2.index + match2[0].length : lastIndex;
      }
      if (NPCG_INCLUDED && match2 && match2.length > 1) {
        call$s(nativeReplace, match2[0], reCopy, function() {
          for (i = 1; i < arguments.length - 2; i++) {
            if (arguments[i] === void 0) match2[i] = void 0;
          }
        });
      }
      if (match2 && groups) {
        match2.groups = object = create$5(null);
        for (i = 0; i < groups.length; i++) {
          group = groups[i];
          object[group[0]] = match2[group[1]];
        }
      }
      return match2;
    };
  }
  var regexpExec$2 = patchedExec;
  var $$1P = _export;
  var exec$4 = regexpExec$2;
  $$1P({
    target: "RegExp",
    proto: true,
    forced: /./.exec !== exec$4
  }, {
    exec: exec$4
  });
  var globalThis$m = globalThis_1;
  var DESCRIPTORS$8 = descriptors;
  var defineBuiltInAccessor$6 = defineBuiltInAccessor$e;
  var regExpFlags = regexpFlags$1;
  var fails$k = fails$1e;
  var RegExp$1 = globalThis$m.RegExp;
  var RegExpPrototype$3 = RegExp$1.prototype;
  var FORCED$3 = DESCRIPTORS$8 && fails$k(function() {
    var INDICES_SUPPORT = true;
    try {
      RegExp$1(".", "d");
    } catch (error2) {
      INDICES_SUPPORT = false;
    }
    var O = {};
    var calls = "";
    var expected = INDICES_SUPPORT ? "dgimsy" : "gimsy";
    var addGetter4 = function addGetter5(key2, chr) {
      Object.defineProperty(O, key2, {
        get: function get6() {
          calls += chr;
          return true;
        }
      });
    };
    var pairs = {
      dotAll: "s",
      global: "g",
      ignoreCase: "i",
      multiline: "m",
      sticky: "y"
    };
    if (INDICES_SUPPORT) pairs.hasIndices = "d";
    for (var key in pairs) addGetter4(key, pairs[key]);
    var result = Object.getOwnPropertyDescriptor(RegExpPrototype$3, "flags").get.call(O);
    return result !== expected || calls !== expected;
  });
  if (FORCED$3) defineBuiltInAccessor$6(RegExpPrototype$3, "flags", {
    configurable: true,
    get: regExpFlags
  });
  var PROPER_FUNCTION_NAME$1 = functionName.PROPER;
  var defineBuiltIn$5 = defineBuiltIn$l;
  var anObject$n = anObject$N;
  var $toString$2 = toString$t;
  var fails$j = fails$1e;
  var getRegExpFlags$2 = regexpGetFlags;
  var TO_STRING = "toString";
  var RegExpPrototype$2 = RegExp.prototype;
  var nativeToString = RegExpPrototype$2[TO_STRING];
  var NOT_GENERIC = fails$j(function() {
    return nativeToString.call({
      source: "a",
      flags: "b"
    }) !== "/a/b";
  });
  var INCORRECT_NAME = PROPER_FUNCTION_NAME$1 && nativeToString.name !== TO_STRING;
  if (NOT_GENERIC || INCORRECT_NAME) {
    defineBuiltIn$5(RegExpPrototype$2, TO_STRING, function toString7() {
      var R2 = anObject$n(this);
      var pattern = $toString$2(R2.source);
      var flags = $toString$2(getRegExpFlags$2(R2));
      return "/" + pattern + "/" + flags;
    }, {
      unsafe: true
    });
  }
  var collection$2 = collection$4;
  var collectionStrong = collectionStrong$2;
  collection$2("Set", function(init) {
    return function Set2() {
      return init(this, arguments.length ? arguments[0] : void 0);
    };
  }, collectionStrong);
  var uncurryThis$z = functionUncurryThis;
  var toIntegerOrInfinity$5 = toIntegerOrInfinity$f;
  var toString$g = toString$t;
  var requireObjectCoercible$d = requireObjectCoercible$k;
  var charAt$8 = uncurryThis$z("".charAt);
  var charCodeAt$1 = uncurryThis$z("".charCodeAt);
  var stringSlice$8 = uncurryThis$z("".slice);
  var createMethod7 = function createMethod8(CONVERT_TO_STRING) {
    return function($this, pos) {
      var S = toString$g(requireObjectCoercible$d($this));
      var position = toIntegerOrInfinity$5(pos);
      var size3 = S.length;
      var first, second;
      if (position < 0 || position >= size3) return CONVERT_TO_STRING ? "" : void 0;
      first = charCodeAt$1(S, position);
      return first < 55296 || first > 56319 || position + 1 === size3 || (second = charCodeAt$1(S, position + 1)) < 56320 || second > 57343 ? CONVERT_TO_STRING ? charAt$8(S, position) : first : CONVERT_TO_STRING ? stringSlice$8(S, position, position + 2) : (first - 55296 << 10) + (second - 56320) + 65536;
    };
  };
  var stringMultibyte = {
    // `String.prototype.codePointAt` method
    // https://tc39.es/ecma262/#sec-string.prototype.codepointat
    codeAt: createMethod7(false),
    // `String.prototype.at` method
    // https://github.com/mathiasbynens/String.prototype.at
    charAt: createMethod7(true)
  };
  var $$1O = _export;
  var codeAt$2 = stringMultibyte.codeAt;
  $$1O({
    target: "String",
    proto: true
  }, {
    codePointAt: function codePointAt(pos) {
      return codeAt$2(this, pos);
    }
  });
  var isRegExp$2 = isRegexp;
  var $TypeError$c = TypeError;
  var notARegexp = function notARegexp2(it) {
    if (isRegExp$2(it)) {
      throw new $TypeError$c("The method doesn't accept regular expressions");
    }
    return it;
  };
  var wellKnownSymbol$c = wellKnownSymbol$C;
  var MATCH = wellKnownSymbol$c("match");
  var correctIsRegexpLogic = function correctIsRegexpLogic2(METHOD_NAME) {
    var regexp2 = /./;
    try {
      "/./"[METHOD_NAME](regexp2);
    } catch (error1) {
      try {
        regexp2[MATCH] = false;
        return "/./"[METHOD_NAME](regexp2);
      } catch (error2) {
      }
    }
    return false;
  };
  var $$1N = _export;
  var uncurryThis$y = functionUncurryThisClause;
  var getOwnPropertyDescriptor$2 = objectGetOwnPropertyDescriptor.f;
  var toLength$7 = toLength$d;
  var toString$f = toString$t;
  var notARegExp$2 = notARegexp;
  var requireObjectCoercible$c = requireObjectCoercible$k;
  var correctIsRegExpLogic$2 = correctIsRegexpLogic;
  var slice$2 = uncurryThis$y("".slice);
  var min$3 = Math.min;
  var CORRECT_IS_REGEXP_LOGIC$1 = correctIsRegExpLogic$2("endsWith");
  var MDN_POLYFILL_BUG$1 = !CORRECT_IS_REGEXP_LOGIC$1 && !!function() {
    var descriptor2 = getOwnPropertyDescriptor$2(String.prototype, "endsWith");
    return descriptor2 && !descriptor2.writable;
  }();
  $$1N({
    target: "String",
    proto: true,
    forced: !MDN_POLYFILL_BUG$1 && !CORRECT_IS_REGEXP_LOGIC$1
  }, {
    endsWith: function endsWith2(searchString) {
      var that = toString$f(requireObjectCoercible$c(this));
      notARegExp$2(searchString);
      var endPosition = arguments.length > 1 ? arguments[1] : void 0;
      var len = that.length;
      var end = endPosition === void 0 ? len : min$3(toLength$7(endPosition), len);
      var search = toString$f(searchString);
      return slice$2(that, end - search.length, end) === search;
    }
  });
  var $$1M = _export;
  var uncurryThis$x = functionUncurryThis;
  var toAbsoluteIndex$1 = toAbsoluteIndex$8;
  var $RangeError$7 = RangeError;
  var fromCharCode$2 = String.fromCharCode;
  var $fromCodePoint = String.fromCodePoint;
  var join$5 = uncurryThis$x([].join);
  var INCORRECT_LENGTH = !!$fromCodePoint && $fromCodePoint.length !== 1;
  $$1M({
    target: "String",
    stat: true,
    arity: 1,
    forced: INCORRECT_LENGTH
  }, {
    // eslint-disable-next-line no-unused-vars -- required for `.length`
    fromCodePoint: function fromCodePoint(x) {
      var elements = [];
      var length = arguments.length;
      var i = 0;
      var code;
      while (length > i) {
        code = +arguments[i++];
        if (toAbsoluteIndex$1(code, 1114111) !== code) throw new $RangeError$7(code + " is not a valid code point");
        elements[i] = code < 65536 ? fromCharCode$2(code) : fromCharCode$2(((code -= 65536) >> 10) + 55296, code % 1024 + 56320);
      }
      return join$5(elements, "");
    }
  });
  var $$1L = _export;
  var uncurryThis$w = functionUncurryThis;
  var notARegExp$1 = notARegexp;
  var requireObjectCoercible$b = requireObjectCoercible$k;
  var toString$e = toString$t;
  var correctIsRegExpLogic$1 = correctIsRegexpLogic;
  var stringIndexOf$2 = uncurryThis$w("".indexOf);
  $$1L({
    target: "String",
    proto: true,
    forced: !correctIsRegExpLogic$1("includes")
  }, {
    includes: function includes2(searchString) {
      return !!~stringIndexOf$2(toString$e(requireObjectCoercible$b(this)), toString$e(notARegExp$1(searchString)), arguments.length > 1 ? arguments[1] : void 0);
    }
  });
  var charAt$7 = stringMultibyte.charAt;
  var toString$d = toString$t;
  var InternalStateModule$8 = internalState;
  var defineIterator = iteratorDefine;
  var createIterResultObject$4 = createIterResultObject$7;
  var STRING_ITERATOR$1 = "String Iterator";
  var setInternalState$8 = InternalStateModule$8.set;
  var getInternalState$4 = InternalStateModule$8.getterFor(STRING_ITERATOR$1);
  defineIterator(String, "String", function(iterated) {
    setInternalState$8(this, {
      type: STRING_ITERATOR$1,
      string: toString$d(iterated),
      index: 0
    });
  }, function next() {
    var state = getInternalState$4(this);
    var string = state.string;
    var index2 = state.index;
    var point;
    if (index2 >= string.length) return createIterResultObject$4(void 0, true);
    point = charAt$7(string, index2);
    state.index += point.length;
    return createIterResultObject$4(point, false);
  });
  var call$r = functionCall;
  var defineBuiltIn$4 = defineBuiltIn$l;
  var regexpExec$1 = regexpExec$2;
  var fails$i = fails$1e;
  var wellKnownSymbol$b = wellKnownSymbol$C;
  var createNonEnumerableProperty$6 = createNonEnumerableProperty$d;
  var SPECIES = wellKnownSymbol$b("species");
  var RegExpPrototype$1 = RegExp.prototype;
  var fixRegexpWellKnownSymbolLogic = function fixRegexpWellKnownSymbolLogic2(KEY, exec2, FORCED2, SHAM) {
    var SYMBOL2 = wellKnownSymbol$b(KEY);
    var DELEGATES_TO_SYMBOL = !fails$i(function() {
      var O = {};
      O[SYMBOL2] = function() {
        return 7;
      };
      return ""[KEY](O) !== 7;
    });
    var DELEGATES_TO_EXEC = DELEGATES_TO_SYMBOL && !fails$i(function() {
      var execCalled = false;
      var re = /a/;
      if (KEY === "split") {
        re = {};
        re.constructor = {};
        re.constructor[SPECIES] = function() {
          return re;
        };
        re.flags = "";
        re[SYMBOL2] = /./[SYMBOL2];
      }
      re.exec = function() {
        execCalled = true;
        return null;
      };
      re[SYMBOL2]("");
      return !execCalled;
    });
    if (!DELEGATES_TO_SYMBOL || !DELEGATES_TO_EXEC || FORCED2) {
      var nativeRegExpMethod = /./[SYMBOL2];
      var methods = exec2(SYMBOL2, ""[KEY], function(nativeMethod, regexp2, str, arg2, forceStringMethod) {
        var $exec = regexp2.exec;
        if ($exec === regexpExec$1 || $exec === RegExpPrototype$1.exec) {
          if (DELEGATES_TO_SYMBOL && !forceStringMethod) {
            return {
              done: true,
              value: call$r(nativeRegExpMethod, regexp2, str, arg2)
            };
          }
          return {
            done: true,
            value: call$r(nativeMethod, str, regexp2, arg2)
          };
        }
        return {
          done: false
        };
      });
      defineBuiltIn$4(String.prototype, KEY, methods[0]);
      defineBuiltIn$4(RegExpPrototype$1, SYMBOL2, methods[1]);
    }
    if (SHAM) createNonEnumerableProperty$6(RegExpPrototype$1[SYMBOL2], "sham", true);
  };
  var charAt$6 = stringMultibyte.charAt;
  var advanceStringIndex$4 = function advanceStringIndex(S, index2, unicode) {
    return index2 + (unicode ? charAt$6(S, index2).length : 1);
  };
  var call$q = functionCall;
  var anObject$m = anObject$N;
  var isCallable$7 = isCallable$z;
  var classof$5 = classofRaw$2;
  var regexpExec = regexpExec$2;
  var $TypeError$b = TypeError;
  var regexpExecAbstract = function regexpExecAbstract2(R2, S) {
    var exec2 = R2.exec;
    if (isCallable$7(exec2)) {
      var result = call$q(exec2, R2, S);
      if (result !== null) anObject$m(result);
      return result;
    }
    if (classof$5(R2) === "RegExp") return call$q(regexpExec, R2, S);
    throw new $TypeError$b("RegExp#exec called on incompatible receiver");
  };
  var call$p = functionCall;
  var fixRegExpWellKnownSymbolLogic$3 = fixRegexpWellKnownSymbolLogic;
  var anObject$l = anObject$N;
  var isObject$d = isObject$I;
  var toLength$6 = toLength$d;
  var toString$c = toString$t;
  var requireObjectCoercible$a = requireObjectCoercible$k;
  var getMethod$7 = getMethod$b;
  var advanceStringIndex$3 = advanceStringIndex$4;
  var regExpExec$4 = regexpExecAbstract;
  fixRegExpWellKnownSymbolLogic$3("match", function(MATCH2, nativeMatch, maybeCallNative) {
    return [
      // `String.prototype.match` method
      // https://tc39.es/ecma262/#sec-string.prototype.match
      function match2(regexp2) {
        var O = requireObjectCoercible$a(this);
        var matcher = isObject$d(regexp2) ? getMethod$7(regexp2, MATCH2) : void 0;
        return matcher ? call$p(matcher, regexp2, O) : new RegExp(regexp2)[MATCH2](toString$c(O));
      },
      // `RegExp.prototype[@@match]` method
      // https://tc39.es/ecma262/#sec-regexp.prototype-@@match
      function(string) {
        var rx = anObject$l(this);
        var S = toString$c(string);
        var res = maybeCallNative(nativeMatch, rx, S);
        if (res.done) return res.value;
        if (!rx.global) return regExpExec$4(rx, S);
        var fullUnicode = rx.unicode;
        rx.lastIndex = 0;
        var A2 = [];
        var n = 0;
        var result;
        while ((result = regExpExec$4(rx, S)) !== null) {
          var matchStr = toString$c(result[0]);
          A2[n] = matchStr;
          if (matchStr === "") rx.lastIndex = advanceStringIndex$3(S, toLength$6(rx.lastIndex), fullUnicode);
          n++;
        }
        return n === 0 ? null : A2;
      }
    ];
  });
  var userAgent = environmentUserAgent;
  var stringPadWebkitBug = /Version\/10(?:\.\d+){1,2}(?: [\w./]+)?(?: Mobile\/\w+)? Safari\//.test(userAgent);
  var $$1K = _export;
  var $padEnd = stringPad.end;
  var WEBKIT_BUG$1 = stringPadWebkitBug;
  $$1K({
    target: "String",
    proto: true,
    forced: WEBKIT_BUG$1
  }, {
    padEnd: function padEnd(maxLength) {
      return $padEnd(this, maxLength, arguments.length > 1 ? arguments[1] : void 0);
    }
  });
  var $$1J = _export;
  var $padStart = stringPad.start;
  var WEBKIT_BUG = stringPadWebkitBug;
  $$1J({
    target: "String",
    proto: true,
    forced: WEBKIT_BUG
  }, {
    padStart: function padStart2(maxLength) {
      return $padStart(this, maxLength, arguments.length > 1 ? arguments[1] : void 0);
    }
  });
  var $$1I = _export;
  var uncurryThis$v = functionUncurryThis;
  var toIndexedObject$1 = toIndexedObject$f;
  var toObject$6 = toObject$s;
  var toString$b = toString$t;
  var lengthOfArrayLike$6 = lengthOfArrayLike$m;
  var push$a = uncurryThis$v([].push);
  var join$4 = uncurryThis$v([].join);
  $$1I({
    target: "String",
    stat: true
  }, {
    raw: function raw(template) {
      var rawTemplate = toIndexedObject$1(toObject$6(template).raw);
      var literalSegments = lengthOfArrayLike$6(rawTemplate);
      if (!literalSegments) return "";
      var argumentsLength = arguments.length;
      var elements = [];
      var i = 0;
      while (true) {
        push$a(elements, toString$b(rawTemplate[i++]));
        if (i === literalSegments) return join$4(elements, "");
        if (i < argumentsLength) push$a(elements, toString$b(arguments[i]));
      }
    }
  });
  var $$1H = _export;
  var repeat2 = stringRepeat;
  $$1H({
    target: "String",
    proto: true
  }, {
    repeat: repeat2
  });
  var uncurryThis$u = functionUncurryThis;
  var toObject$5 = toObject$s;
  var floor$3 = Math.floor;
  var charAt$5 = uncurryThis$u("".charAt);
  var replace$5 = uncurryThis$u("".replace);
  var stringSlice$7 = uncurryThis$u("".slice);
  var SUBSTITUTION_SYMBOLS = /\$([$&'`]|\d{1,2}|<[^>]*>)/g;
  var SUBSTITUTION_SYMBOLS_NO_NAMED = /\$([$&'`]|\d{1,2})/g;
  var getSubstitution$2 = function getSubstitution(matched, str, position, captures, namedCaptures, replacement2) {
    var tailPos = position + matched.length;
    var m = captures.length;
    var symbols = SUBSTITUTION_SYMBOLS_NO_NAMED;
    if (namedCaptures !== void 0) {
      namedCaptures = toObject$5(namedCaptures);
      symbols = SUBSTITUTION_SYMBOLS;
    }
    return replace$5(replacement2, symbols, function(match2, ch) {
      var capture;
      switch (charAt$5(ch, 0)) {
        case "$":
          return "$";
        case "&":
          return matched;
        case "`":
          return stringSlice$7(str, 0, position);
        case "'":
          return stringSlice$7(str, tailPos);
        case "<":
          capture = namedCaptures[stringSlice$7(ch, 1, -1)];
          break;
        default:
          var n = +ch;
          if (n === 0) return match2;
          if (n > m) {
            var f = floor$3(n / 10);
            if (f === 0) return match2;
            if (f <= m) return captures[f - 1] === void 0 ? charAt$5(ch, 1) : captures[f - 1] + charAt$5(ch, 1);
            return match2;
          }
          capture = captures[n - 1];
      }
      return capture === void 0 ? "" : capture;
    });
  };
  var apply$6 = functionApply$1;
  var call$o = functionCall;
  var uncurryThis$t = functionUncurryThis;
  var fixRegExpWellKnownSymbolLogic$2 = fixRegexpWellKnownSymbolLogic;
  var fails$h = fails$1e;
  var anObject$k = anObject$N;
  var isCallable$6 = isCallable$z;
  var isObject$c = isObject$I;
  var toIntegerOrInfinity$4 = toIntegerOrInfinity$f;
  var toLength$5 = toLength$d;
  var toString$a = toString$t;
  var requireObjectCoercible$9 = requireObjectCoercible$k;
  var advanceStringIndex$2 = advanceStringIndex$4;
  var getMethod$6 = getMethod$b;
  var getSubstitution$1 = getSubstitution$2;
  var regExpExec$3 = regexpExecAbstract;
  var wellKnownSymbol$a = wellKnownSymbol$C;
  var REPLACE$1 = wellKnownSymbol$a("replace");
  var max$2 = Math.max;
  var min$2 = Math.min;
  var concat$1 = uncurryThis$t([].concat);
  var push$9 = uncurryThis$t([].push);
  var stringIndexOf$1 = uncurryThis$t("".indexOf);
  var stringSlice$6 = uncurryThis$t("".slice);
  var maybeToString = function maybeToString2(it) {
    return it === void 0 ? it : String(it);
  };
  var REPLACE_KEEPS_$0 = function() {
    return "a".replace(/./, "$0") === "$0";
  }();
  var REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE = function() {
    if (/./[REPLACE$1]) {
      return /./[REPLACE$1]("a", "$0") === "";
    }
    return false;
  }();
  var REPLACE_SUPPORTS_NAMED_GROUPS = !fails$h(function() {
    var re = /./;
    re.exec = function() {
      var result = [];
      result.groups = {
        a: "7"
      };
      return result;
    };
    return "".replace(re, "$<a>") !== "7";
  });
  fixRegExpWellKnownSymbolLogic$2("replace", function(_, nativeReplace2, maybeCallNative) {
    var UNSAFE_SUBSTITUTE = REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE ? "$" : "$0";
    return [
      // `String.prototype.replace` method
      // https://tc39.es/ecma262/#sec-string.prototype.replace
      function replace2(searchValue, replaceValue) {
        var O = requireObjectCoercible$9(this);
        var replacer3 = isObject$c(searchValue) ? getMethod$6(searchValue, REPLACE$1) : void 0;
        return replacer3 ? call$o(replacer3, searchValue, O, replaceValue) : call$o(nativeReplace2, toString$a(O), searchValue, replaceValue);
      },
      // `RegExp.prototype[@@replace]` method
      // https://tc39.es/ecma262/#sec-regexp.prototype-@@replace
      function(string, replaceValue) {
        var rx = anObject$k(this);
        var S = toString$a(string);
        if (typeof replaceValue == "string" && stringIndexOf$1(replaceValue, UNSAFE_SUBSTITUTE) === -1 && stringIndexOf$1(replaceValue, "$<") === -1) {
          var res = maybeCallNative(nativeReplace2, rx, S, replaceValue);
          if (res.done) return res.value;
        }
        var functionalReplace = isCallable$6(replaceValue);
        if (!functionalReplace) replaceValue = toString$a(replaceValue);
        var global2 = rx.global;
        var fullUnicode;
        if (global2) {
          fullUnicode = rx.unicode;
          rx.lastIndex = 0;
        }
        var results = [];
        var result;
        while (true) {
          result = regExpExec$3(rx, S);
          if (result === null) break;
          push$9(results, result);
          if (!global2) break;
          var matchStr = toString$a(result[0]);
          if (matchStr === "") rx.lastIndex = advanceStringIndex$2(S, toLength$5(rx.lastIndex), fullUnicode);
        }
        var accumulatedResult = "";
        var nextSourcePosition = 0;
        for (var i = 0; i < results.length; i++) {
          result = results[i];
          var matched = toString$a(result[0]);
          var position = max$2(min$2(toIntegerOrInfinity$4(result.index), S.length), 0);
          var captures = [];
          var replacement2;
          for (var j = 1; j < result.length; j++) push$9(captures, maybeToString(result[j]));
          var namedCaptures = result.groups;
          if (functionalReplace) {
            var replacerArgs = concat$1([matched], captures, position, S);
            if (namedCaptures !== void 0) push$9(replacerArgs, namedCaptures);
            replacement2 = toString$a(apply$6(replaceValue, void 0, replacerArgs));
          } else {
            replacement2 = getSubstitution$1(matched, S, position, captures, namedCaptures, replaceValue);
          }
          if (position >= nextSourcePosition) {
            accumulatedResult += stringSlice$6(S, nextSourcePosition, position) + replacement2;
            nextSourcePosition = position + matched.length;
          }
        }
        return accumulatedResult + stringSlice$6(S, nextSourcePosition);
      }
    ];
  }, !REPLACE_SUPPORTS_NAMED_GROUPS || !REPLACE_KEEPS_$0 || REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE);
  var call$n = functionCall;
  var fixRegExpWellKnownSymbolLogic$1 = fixRegexpWellKnownSymbolLogic;
  var anObject$j = anObject$N;
  var isObject$b = isObject$I;
  var requireObjectCoercible$8 = requireObjectCoercible$k;
  var sameValue$1 = sameValue$2;
  var toString$9 = toString$t;
  var getMethod$5 = getMethod$b;
  var regExpExec$2 = regexpExecAbstract;
  fixRegExpWellKnownSymbolLogic$1("search", function(SEARCH, nativeSearch, maybeCallNative) {
    return [
      // `String.prototype.search` method
      // https://tc39.es/ecma262/#sec-string.prototype.search
      function search(regexp2) {
        var O = requireObjectCoercible$8(this);
        var searcher = isObject$b(regexp2) ? getMethod$5(regexp2, SEARCH) : void 0;
        return searcher ? call$n(searcher, regexp2, O) : new RegExp(regexp2)[SEARCH](toString$9(O));
      },
      // `RegExp.prototype[@@search]` method
      // https://tc39.es/ecma262/#sec-regexp.prototype-@@search
      function(string) {
        var rx = anObject$j(this);
        var S = toString$9(string);
        var res = maybeCallNative(nativeSearch, rx, S);
        if (res.done) return res.value;
        var previousLastIndex = rx.lastIndex;
        if (!sameValue$1(previousLastIndex, 0)) rx.lastIndex = 0;
        var result = regExpExec$2(rx, S);
        if (!sameValue$1(rx.lastIndex, previousLastIndex)) rx.lastIndex = previousLastIndex;
        return result === null ? -1 : result.index;
      }
    ];
  });
  var call$m = functionCall;
  var uncurryThis$s = functionUncurryThis;
  var fixRegExpWellKnownSymbolLogic = fixRegexpWellKnownSymbolLogic;
  var anObject$i = anObject$N;
  var isObject$a = isObject$I;
  var requireObjectCoercible$7 = requireObjectCoercible$k;
  var speciesConstructor$1 = speciesConstructor$4;
  var advanceStringIndex$1 = advanceStringIndex$4;
  var toLength$4 = toLength$d;
  var toString$8 = toString$t;
  var getMethod$4 = getMethod$b;
  var regExpExec$1 = regexpExecAbstract;
  var stickyHelpers = regexpStickyHelpers;
  var fails$g = fails$1e;
  var UNSUPPORTED_Y = stickyHelpers.UNSUPPORTED_Y;
  var MAX_UINT32 = 4294967295;
  var min$1 = Math.min;
  var push$8 = uncurryThis$s([].push);
  var stringSlice$5 = uncurryThis$s("".slice);
  var SPLIT_WORKS_WITH_OVERWRITTEN_EXEC = !fails$g(function() {
    var re = /(?:)/;
    var originalExec = re.exec;
    re.exec = function() {
      return originalExec.apply(this, arguments);
    };
    var result = "ab".split(re);
    return result.length !== 2 || result[0] !== "a" || result[1] !== "b";
  });
  var BUGGY = "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;
  fixRegExpWellKnownSymbolLogic("split", function(SPLIT, nativeSplit, maybeCallNative) {
    var internalSplit = "0".split(void 0, 0).length ? function(separator, limit) {
      return separator === void 0 && limit === 0 ? [] : call$m(nativeSplit, this, separator, limit);
    } : nativeSplit;
    return [
      // `String.prototype.split` method
      // https://tc39.es/ecma262/#sec-string.prototype.split
      function split2(separator, limit) {
        var O = requireObjectCoercible$7(this);
        var splitter = isObject$a(separator) ? getMethod$4(separator, SPLIT) : void 0;
        return splitter ? call$m(splitter, separator, O, limit) : call$m(internalSplit, toString$8(O), separator, limit);
      },
      // `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(string, limit) {
        var rx = anObject$i(this);
        var S = toString$8(string);
        if (!BUGGY) {
          var res = maybeCallNative(internalSplit, rx, S, limit, internalSplit !== nativeSplit);
          if (res.done) return res.value;
        }
        var C = speciesConstructor$1(rx, RegExp);
        var unicodeMatching = rx.unicode;
        var flags = (rx.ignoreCase ? "i" : "") + (rx.multiline ? "m" : "") + (rx.unicode ? "u" : "") + (UNSUPPORTED_Y ? "g" : "y");
        var splitter = new C(UNSUPPORTED_Y ? "^(?:" + rx.source + ")" : rx, flags);
        var lim = limit === void 0 ? MAX_UINT32 : limit >>> 0;
        if (lim === 0) return [];
        if (S.length === 0) return regExpExec$1(splitter, S) === null ? [S] : [];
        var p = 0;
        var q = 0;
        var A2 = [];
        while (q < S.length) {
          splitter.lastIndex = UNSUPPORTED_Y ? 0 : q;
          var z2 = regExpExec$1(splitter, UNSUPPORTED_Y ? stringSlice$5(S, q) : S);
          var e;
          if (z2 === null || (e = min$1(toLength$4(splitter.lastIndex + (UNSUPPORTED_Y ? q : 0)), S.length)) === p) {
            q = advanceStringIndex$1(S, q, unicodeMatching);
          } else {
            push$8(A2, stringSlice$5(S, p, q));
            if (A2.length === lim) return A2;
            for (var i = 1; i <= z2.length - 1; i++) {
              push$8(A2, z2[i]);
              if (A2.length === lim) return A2;
            }
            q = p = e;
          }
        }
        push$8(A2, stringSlice$5(S, p));
        return A2;
      }
    ];
  }, BUGGY || !SPLIT_WORKS_WITH_OVERWRITTEN_EXEC, UNSUPPORTED_Y);
  var $$1G = _export;
  var uncurryThis$r = functionUncurryThisClause;
  var getOwnPropertyDescriptor$1 = objectGetOwnPropertyDescriptor.f;
  var toLength$3 = toLength$d;
  var toString$7 = toString$t;
  var notARegExp = notARegexp;
  var requireObjectCoercible$6 = requireObjectCoercible$k;
  var correctIsRegExpLogic = correctIsRegexpLogic;
  var stringSlice$4 = uncurryThis$r("".slice);
  var min = Math.min;
  var CORRECT_IS_REGEXP_LOGIC = correctIsRegExpLogic("startsWith");
  var MDN_POLYFILL_BUG = !CORRECT_IS_REGEXP_LOGIC && !!function() {
    var descriptor2 = getOwnPropertyDescriptor$1(String.prototype, "startsWith");
    return descriptor2 && !descriptor2.writable;
  }();
  $$1G({
    target: "String",
    proto: true,
    forced: !MDN_POLYFILL_BUG && !CORRECT_IS_REGEXP_LOGIC
  }, {
    startsWith: function startsWith(searchString) {
      var that = toString$7(requireObjectCoercible$6(this));
      notARegExp(searchString);
      var index2 = toLength$3(min(arguments.length > 1 ? arguments[1] : void 0, that.length));
      var search = toString$7(searchString);
      return stringSlice$4(that, index2, index2 + search.length) === search;
    }
  });
  var PROPER_FUNCTION_NAME = functionName.PROPER;
  var fails$f = fails$1e;
  var whitespaces = whitespaces$4;
  var non = "​…᠎";
  var stringTrimForced = function stringTrimForced2(METHOD_NAME) {
    return fails$f(function() {
      return !!whitespaces[METHOD_NAME]() || non[METHOD_NAME]() !== non || PROPER_FUNCTION_NAME && whitespaces[METHOD_NAME].name !== METHOD_NAME;
    });
  };
  var $$1F = _export;
  var $trim = stringTrim.trim;
  var forcedStringTrimMethod$2 = stringTrimForced;
  $$1F({
    target: "String",
    proto: true,
    forced: forcedStringTrimMethod$2("trim")
  }, {
    trim: function trim2() {
      return $trim(this);
    }
  });
  var $trimEnd = stringTrim.end;
  var forcedStringTrimMethod$1 = stringTrimForced;
  var stringTrimEnd = forcedStringTrimMethod$1("trimEnd") ? function trimEnd() {
    return $trimEnd(this);
  } : "".trimEnd;
  var $$1E = _export;
  var trimEnd$1 = stringTrimEnd;
  $$1E({
    target: "String",
    proto: true,
    name: "trimEnd",
    forced: "".trimRight !== trimEnd$1
  }, {
    trimRight: trimEnd$1
  });
  var $$1D = _export;
  var trimEnd2 = stringTrimEnd;
  $$1D({
    target: "String",
    proto: true,
    name: "trimEnd",
    forced: "".trimEnd !== trimEnd2
  }, {
    trimEnd: trimEnd2
  });
  var $trimStart = stringTrim.start;
  var forcedStringTrimMethod = stringTrimForced;
  var stringTrimStart = forcedStringTrimMethod("trimStart") ? function trimStart() {
    return $trimStart(this);
  } : "".trimStart;
  var $$1C = _export;
  var trimStart$1 = stringTrimStart;
  $$1C({
    target: "String",
    proto: true,
    name: "trimStart",
    forced: "".trimLeft !== trimStart$1
  }, {
    trimLeft: trimStart$1
  });
  var $$1B = _export;
  var trimStart2 = stringTrimStart;
  $$1B({
    target: "String",
    proto: true,
    name: "trimStart",
    forced: "".trimStart !== trimStart2
  }, {
    trimStart: trimStart2
  });
  var uncurryThis$q = functionUncurryThis;
  var requireObjectCoercible$5 = requireObjectCoercible$k;
  var toString$6 = toString$t;
  var quot = /"/g;
  var replace$4 = uncurryThis$q("".replace);
  var createHtml = function createHtml2(string, tag, attribute, value) {
    var S = toString$6(requireObjectCoercible$5(string));
    var p1 = "<" + tag;
    if (attribute !== "") p1 += " " + attribute + '="' + replace$4(toString$6(value), quot, "&quot;") + '"';
    return p1 + ">" + S + "</" + tag + ">";
  };
  var fails$e = fails$1e;
  var stringHtmlForced = function stringHtmlForced2(METHOD_NAME) {
    return fails$e(function() {
      var test2 = ""[METHOD_NAME]('"');
      return test2 !== test2.toLowerCase() || test2.split('"').length > 3;
    });
  };
  var $$1A = _export;
  var createHTML$c = createHtml;
  var forcedStringHTMLMethod$c = stringHtmlForced;
  $$1A({
    target: "String",
    proto: true,
    forced: forcedStringHTMLMethod$c("anchor")
  }, {
    anchor: function anchor(name2) {
      return createHTML$c(this, "a", "name", name2);
    }
  });
  var $$1z = _export;
  var createHTML$b = createHtml;
  var forcedStringHTMLMethod$b = stringHtmlForced;
  $$1z({
    target: "String",
    proto: true,
    forced: forcedStringHTMLMethod$b("big")
  }, {
    big: function big() {
      return createHTML$b(this, "big", "", "");
    }
  });
  var $$1y = _export;
  var createHTML$a = createHtml;
  var forcedStringHTMLMethod$a = stringHtmlForced;
  $$1y({
    target: "String",
    proto: true,
    forced: forcedStringHTMLMethod$a("blink")
  }, {
    blink: function blink() {
      return createHTML$a(this, "blink", "", "");
    }
  });
  var $$1x = _export;
  var createHTML$9 = createHtml;
  var forcedStringHTMLMethod$9 = stringHtmlForced;
  $$1x({
    target: "String",
    proto: true,
    forced: forcedStringHTMLMethod$9("bold")
  }, {
    bold: function bold() {
      return createHTML$9(this, "b", "", "");
    }
  });
  var $$1w = _export;
  var createHTML$8 = createHtml;
  var forcedStringHTMLMethod$8 = stringHtmlForced;
  $$1w({
    target: "String",
    proto: true,
    forced: forcedStringHTMLMethod$8("fixed")
  }, {
    fixed: function fixed() {
      return createHTML$8(this, "tt", "", "");
    }
  });
  var $$1v = _export;
  var createHTML$7 = createHtml;
  var forcedStringHTMLMethod$7 = stringHtmlForced;
  $$1v({
    target: "String",
    proto: true,
    forced: forcedStringHTMLMethod$7("fontcolor")
  }, {
    fontcolor: function fontcolor(color) {
      return createHTML$7(this, "font", "color", color);
    }
  });
  var $$1u = _export;
  var createHTML$6 = createHtml;
  var forcedStringHTMLMethod$6 = stringHtmlForced;
  $$1u({
    target: "String",
    proto: true,
    forced: forcedStringHTMLMethod$6("fontsize")
  }, {
    fontsize: function fontsize(size3) {
      return createHTML$6(this, "font", "size", size3);
    }
  });
  var $$1t = _export;
  var createHTML$5 = createHtml;
  var forcedStringHTMLMethod$5 = stringHtmlForced;
  $$1t({
    target: "String",
    proto: true,
    forced: forcedStringHTMLMethod$5("italics")
  }, {
    italics: function italics() {
      return createHTML$5(this, "i", "", "");
    }
  });
  var $$1s = _export;
  var createHTML$4 = createHtml;
  var forcedStringHTMLMethod$4 = stringHtmlForced;
  $$1s({
    target: "String",
    proto: true,
    forced: forcedStringHTMLMethod$4("link")
  }, {
    link: function link(url) {
      return createHTML$4(this, "a", "href", url);
    }
  });
  var $$1r = _export;
  var createHTML$3 = createHtml;
  var forcedStringHTMLMethod$3 = stringHtmlForced;
  $$1r({
    target: "String",
    proto: true,
    forced: forcedStringHTMLMethod$3("small")
  }, {
    small: function small() {
      return createHTML$3(this, "small", "", "");
    }
  });
  var $$1q = _export;
  var createHTML$2 = createHtml;
  var forcedStringHTMLMethod$2 = stringHtmlForced;
  $$1q({
    target: "String",
    proto: true,
    forced: forcedStringHTMLMethod$2("strike")
  }, {
    strike: function strike() {
      return createHTML$2(this, "strike", "", "");
    }
  });
  var $$1p = _export;
  var createHTML$1 = createHtml;
  var forcedStringHTMLMethod$1 = stringHtmlForced;
  $$1p({
    target: "String",
    proto: true,
    forced: forcedStringHTMLMethod$1("sub")
  }, {
    sub: function sub() {
      return createHTML$1(this, "sub", "", "");
    }
  });
  var $$1o = _export;
  var createHTML = createHtml;
  var forcedStringHTMLMethod = stringHtmlForced;
  $$1o({
    target: "String",
    proto: true,
    forced: forcedStringHTMLMethod("sup")
  }, {
    sup: function sup() {
      return createHTML(this, "sup", "", "");
    }
  });
  var typedArrayConstructor = { exports: {} };
  var globalThis$l = globalThis_1;
  var fails$d = fails$1e;
  var checkCorrectnessOfIteration2 = checkCorrectnessOfIteration$4;
  var NATIVE_ARRAY_BUFFER_VIEWS$1 = arrayBufferViewCore.NATIVE_ARRAY_BUFFER_VIEWS;
  var ArrayBuffer$2 = globalThis$l.ArrayBuffer;
  var Int8Array$3 = globalThis$l.Int8Array;
  var typedArrayConstructorsRequireWrappers = !NATIVE_ARRAY_BUFFER_VIEWS$1 || !fails$d(function() {
    Int8Array$3(1);
  }) || !fails$d(function() {
    new Int8Array$3(-1);
  }) || !checkCorrectnessOfIteration2(function(iterable) {
    new Int8Array$3();
    new Int8Array$3(null);
    new Int8Array$3(1.5);
    new Int8Array$3(iterable);
  }, true) || fails$d(function() {
    return new Int8Array$3(new ArrayBuffer$2(2), 1, void 0).length !== 1;
  });
  var toIntegerOrInfinity$3 = toIntegerOrInfinity$f;
  var $RangeError$6 = RangeError;
  var toPositiveInteger$1 = function toPositiveInteger(it) {
    var result = toIntegerOrInfinity$3(it);
    if (result < 0) throw new $RangeError$6("The argument can't be less than 0");
    return result;
  };
  var toPositiveInteger2 = toPositiveInteger$1;
  var $RangeError$5 = RangeError;
  var toOffset$2 = function toOffset(it, BYTES) {
    var offset = toPositiveInteger2(it);
    if (offset % BYTES) throw new $RangeError$5("Wrong offset");
    return offset;
  };
  var round = Math.round;
  var toUint8Clamped$1 = function toUint8Clamped(it) {
    var value = round(it);
    return value < 0 ? 0 : value > 255 ? 255 : value & 255;
  };
  var classof$4 = classof$j;
  var isBigIntArray$1 = function isBigIntArray(it) {
    var klass = classof$4(it);
    return klass === "BigInt64Array" || klass === "BigUint64Array";
  };
  var toPrimitive2 = toPrimitive$4;
  var $TypeError$a = TypeError;
  var toBigInt$2 = function toBigInt(argument) {
    var prim = toPrimitive2(argument, "number");
    if (typeof prim == "number") throw new $TypeError$a("Can't convert number to bigint");
    return BigInt(prim);
  };
  var bind$f = functionBindContext;
  var call$l = functionCall;
  var aConstructor2 = aConstructor$3;
  var toObject$4 = toObject$s;
  var lengthOfArrayLike$5 = lengthOfArrayLike$m;
  var getIterator$2 = getIterator$5;
  var getIteratorMethod$1 = getIteratorMethod$5;
  var isArrayIteratorMethod2 = isArrayIteratorMethod$3;
  var isBigIntArray2 = isBigIntArray$1;
  var aTypedArrayConstructor$1 = arrayBufferViewCore.aTypedArrayConstructor;
  var toBigInt$1 = toBigInt$2;
  var typedArrayFrom$2 = function from3(source) {
    var C = aConstructor2(this);
    var O = toObject$4(source);
    var argumentsLength = arguments.length;
    var mapfn = argumentsLength > 1 ? arguments[1] : void 0;
    var mapping = mapfn !== void 0;
    var iteratorMethod = getIteratorMethod$1(O);
    var i, length, result, thisIsBigIntArray, value, step, iterator2, next8;
    if (iteratorMethod && !isArrayIteratorMethod2(iteratorMethod)) {
      iterator2 = getIterator$2(O, iteratorMethod);
      next8 = iterator2.next;
      O = [];
      while (!(step = call$l(next8, iterator2)).done) {
        O.push(step.value);
      }
    }
    if (mapping && argumentsLength > 2) {
      mapfn = bind$f(mapfn, arguments[2]);
    }
    length = lengthOfArrayLike$5(O);
    result = new (aTypedArrayConstructor$1(C))(length);
    thisIsBigIntArray = isBigIntArray2(result);
    for (i = 0; length > i; i++) {
      value = mapping ? mapfn(O[i], i) : O[i];
      result[i] = thisIsBigIntArray ? toBigInt$1(value) : +value;
    }
    return result;
  };
  var lengthOfArrayLike$4 = lengthOfArrayLike$m;
  var arrayFromConstructorAndList$2 = function arrayFromConstructorAndList(Constructor2, list, $length) {
    var index2 = 0;
    var length = arguments.length > 2 ? $length : lengthOfArrayLike$4(list);
    var result = new Constructor2(length);
    while (length > index2) result[index2] = list[index2++];
    return result;
  };
  var $$1n = _export;
  var globalThis$k = globalThis_1;
  var call$k = functionCall;
  var DESCRIPTORS$7 = descriptors;
  var TYPED_ARRAYS_CONSTRUCTORS_REQUIRES_WRAPPERS$2 = typedArrayConstructorsRequireWrappers;
  var ArrayBufferViewCore$n = arrayBufferViewCore;
  var ArrayBufferModule = arrayBuffer;
  var anInstance$4 = anInstance$9;
  var createPropertyDescriptor$3 = createPropertyDescriptor$a;
  var createNonEnumerableProperty$5 = createNonEnumerableProperty$d;
  var isIntegralNumber = isIntegralNumber$3;
  var toLength$2 = toLength$d;
  var toIndex2 = toIndex$2;
  var toOffset$1 = toOffset$2;
  var toUint8Clamped2 = toUint8Clamped$1;
  var toPropertyKey2 = toPropertyKey$7;
  var hasOwn$4 = hasOwnProperty_1;
  var classof$3 = classof$j;
  var isObject$9 = isObject$I;
  var isSymbol = isSymbol$6;
  var create$4 = objectCreate;
  var isPrototypeOf$1 = objectIsPrototypeOf;
  var setPrototypeOf$1 = objectSetPrototypeOf$1;
  var getOwnPropertyNames4 = objectGetOwnPropertyNames.f;
  var typedArrayFrom$1 = typedArrayFrom$2;
  var forEach$3 = arrayIteration.forEach;
  var setSpecies$1 = setSpecies$7;
  var defineBuiltInAccessor$5 = defineBuiltInAccessor$e;
  var definePropertyModule = objectDefineProperty;
  var getOwnPropertyDescriptorModule = objectGetOwnPropertyDescriptor;
  var arrayFromConstructorAndList$1 = arrayFromConstructorAndList$2;
  var InternalStateModule$7 = internalState;
  var inheritIfRequired2 = inheritIfRequired$5;
  var getInternalState$3 = InternalStateModule$7.get;
  var setInternalState$7 = InternalStateModule$7.set;
  var enforceInternalState$1 = InternalStateModule$7.enforce;
  var nativeDefineProperty = definePropertyModule.f;
  var nativeGetOwnPropertyDescriptor = getOwnPropertyDescriptorModule.f;
  var RangeError$2 = globalThis$k.RangeError;
  var ArrayBuffer$1 = ArrayBufferModule.ArrayBuffer;
  var ArrayBufferPrototype = ArrayBuffer$1.prototype;
  var DataView$1 = ArrayBufferModule.DataView;
  var NATIVE_ARRAY_BUFFER_VIEWS = ArrayBufferViewCore$n.NATIVE_ARRAY_BUFFER_VIEWS;
  var TYPED_ARRAY_TAG = ArrayBufferViewCore$n.TYPED_ARRAY_TAG;
  var TypedArray = ArrayBufferViewCore$n.TypedArray;
  var TypedArrayPrototype$1 = ArrayBufferViewCore$n.TypedArrayPrototype;
  var isTypedArray2 = ArrayBufferViewCore$n.isTypedArray;
  var BYTES_PER_ELEMENT = "BYTES_PER_ELEMENT";
  var WRONG_LENGTH = "Wrong length";
  var addGetter2 = function addGetter3(it, key) {
    defineBuiltInAccessor$5(it, key, {
      configurable: true,
      get: function get6() {
        return getInternalState$3(this)[key];
      }
    });
  };
  var isArrayBuffer = function isArrayBuffer2(it) {
    var klass;
    return isPrototypeOf$1(ArrayBufferPrototype, it) || (klass = classof$3(it)) === "ArrayBuffer" || klass === "SharedArrayBuffer";
  };
  var isTypedArrayIndex = function isTypedArrayIndex2(target, key) {
    return isTypedArray2(target) && !isSymbol(key) && key in target && isIntegralNumber(+key) && key >= 0;
  };
  var wrappedGetOwnPropertyDescriptor = function getOwnPropertyDescriptor5(target, key) {
    key = toPropertyKey2(key);
    return isTypedArrayIndex(target, key) ? createPropertyDescriptor$3(2, target[key]) : nativeGetOwnPropertyDescriptor(target, key);
  };
  var wrappedDefineProperty = function defineProperty5(target, key, descriptor2) {
    key = toPropertyKey2(key);
    if (isTypedArrayIndex(target, key) && isObject$9(descriptor2) && hasOwn$4(descriptor2, "value") && !hasOwn$4(descriptor2, "get") && !hasOwn$4(descriptor2, "set") && !descriptor2.configurable && (!hasOwn$4(descriptor2, "writable") || descriptor2.writable) && (!hasOwn$4(descriptor2, "enumerable") || descriptor2.enumerable)) {
      target[key] = descriptor2.value;
      return target;
    }
    return nativeDefineProperty(target, key, descriptor2);
  };
  if (DESCRIPTORS$7) {
    if (!NATIVE_ARRAY_BUFFER_VIEWS) {
      getOwnPropertyDescriptorModule.f = wrappedGetOwnPropertyDescriptor;
      definePropertyModule.f = wrappedDefineProperty;
      addGetter2(TypedArrayPrototype$1, "buffer");
      addGetter2(TypedArrayPrototype$1, "byteOffset");
      addGetter2(TypedArrayPrototype$1, "byteLength");
      addGetter2(TypedArrayPrototype$1, "length");
    }
    $$1n({
      target: "Object",
      stat: true,
      forced: !NATIVE_ARRAY_BUFFER_VIEWS
    }, {
      getOwnPropertyDescriptor: wrappedGetOwnPropertyDescriptor,
      defineProperty: wrappedDefineProperty
    });
    typedArrayConstructor.exports = function(TYPE, wrapper3, CLAMPED) {
      var BYTES = TYPE.match(/\d+/)[0] / 8;
      var CONSTRUCTOR_NAME = TYPE + (CLAMPED ? "Clamped" : "") + "Array";
      var GETTER = "get" + TYPE;
      var SETTER = "set" + TYPE;
      var NativeTypedArrayConstructor = globalThis$k[CONSTRUCTOR_NAME];
      var TypedArrayConstructor = NativeTypedArrayConstructor;
      var TypedArrayConstructorPrototype = TypedArrayConstructor && TypedArrayConstructor.prototype;
      var exported = {};
      var getter = function getter2(that, index2) {
        var data2 = getInternalState$3(that);
        return data2.view[GETTER](index2 * BYTES + data2.byteOffset, true);
      };
      var setter = function setter2(that, index2, value) {
        var data2 = getInternalState$3(that);
        data2.view[SETTER](index2 * BYTES + data2.byteOffset, CLAMPED ? toUint8Clamped2(value) : value, true);
      };
      var addElement = function addElement2(that, index2) {
        nativeDefineProperty(that, index2, {
          get: function get6() {
            return getter(this, index2);
          },
          set: function set6(value) {
            return setter(this, index2, value);
          },
          enumerable: true
        });
      };
      if (!NATIVE_ARRAY_BUFFER_VIEWS) {
        TypedArrayConstructor = wrapper3(function(that, data2, offset, $length) {
          anInstance$4(that, TypedArrayConstructorPrototype);
          var index2 = 0;
          var byteOffset = 0;
          var buffer, byteLength, length;
          if (!isObject$9(data2)) {
            length = toIndex2(data2);
            byteLength = length * BYTES;
            buffer = new ArrayBuffer$1(byteLength);
          } else if (isArrayBuffer(data2)) {
            buffer = data2;
            byteOffset = toOffset$1(offset, BYTES);
            var $len = data2.byteLength;
            if ($length === void 0) {
              if ($len % BYTES) throw new RangeError$2(WRONG_LENGTH);
              byteLength = $len - byteOffset;
              if (byteLength < 0) throw new RangeError$2(WRONG_LENGTH);
            } else {
              byteLength = toLength$2($length) * BYTES;
              if (byteLength + byteOffset > $len) throw new RangeError$2(WRONG_LENGTH);
            }
            length = byteLength / BYTES;
          } else if (isTypedArray2(data2)) {
            return arrayFromConstructorAndList$1(TypedArrayConstructor, data2);
          } else {
            return call$k(typedArrayFrom$1, TypedArrayConstructor, data2);
          }
          setInternalState$7(that, {
            buffer,
            byteOffset,
            byteLength,
            length,
            view: new DataView$1(buffer)
          });
          while (index2 < length) addElement(that, index2++);
        });
        if (setPrototypeOf$1) setPrototypeOf$1(TypedArrayConstructor, TypedArray);
        TypedArrayConstructorPrototype = TypedArrayConstructor.prototype = create$4(TypedArrayPrototype$1);
      } else if (TYPED_ARRAYS_CONSTRUCTORS_REQUIRES_WRAPPERS$2) {
        TypedArrayConstructor = wrapper3(function(dummy, data2, typedArrayOffset, $length) {
          anInstance$4(dummy, TypedArrayConstructorPrototype);
          return inheritIfRequired2(function() {
            if (!isObject$9(data2)) return new NativeTypedArrayConstructor(toIndex2(data2));
            if (isArrayBuffer(data2)) return $length !== void 0 ? new NativeTypedArrayConstructor(data2, toOffset$1(typedArrayOffset, BYTES), $length) : typedArrayOffset !== void 0 ? new NativeTypedArrayConstructor(data2, toOffset$1(typedArrayOffset, BYTES)) : new NativeTypedArrayConstructor(data2);
            if (isTypedArray2(data2)) return arrayFromConstructorAndList$1(TypedArrayConstructor, data2);
            return call$k(typedArrayFrom$1, TypedArrayConstructor, data2);
          }(), dummy, TypedArrayConstructor);
        });
        if (setPrototypeOf$1) setPrototypeOf$1(TypedArrayConstructor, TypedArray);
        forEach$3(getOwnPropertyNames4(NativeTypedArrayConstructor), function(key) {
          if (!(key in TypedArrayConstructor)) {
            createNonEnumerableProperty$5(TypedArrayConstructor, key, NativeTypedArrayConstructor[key]);
          }
        });
        TypedArrayConstructor.prototype = TypedArrayConstructorPrototype;
      }
      if (TypedArrayConstructorPrototype.constructor !== TypedArrayConstructor) {
        createNonEnumerableProperty$5(TypedArrayConstructorPrototype, "constructor", TypedArrayConstructor);
      }
      enforceInternalState$1(TypedArrayConstructorPrototype).TypedArrayConstructor = TypedArrayConstructor;
      if (TYPED_ARRAY_TAG) {
        createNonEnumerableProperty$5(TypedArrayConstructorPrototype, TYPED_ARRAY_TAG, CONSTRUCTOR_NAME);
      }
      var FORCED2 = TypedArrayConstructor !== NativeTypedArrayConstructor;
      exported[CONSTRUCTOR_NAME] = TypedArrayConstructor;
      $$1n({
        global: true,
        constructor: true,
        forced: FORCED2,
        sham: !NATIVE_ARRAY_BUFFER_VIEWS
      }, exported);
      if (!(BYTES_PER_ELEMENT in TypedArrayConstructor)) {
        createNonEnumerableProperty$5(TypedArrayConstructor, BYTES_PER_ELEMENT, BYTES);
      }
      if (!(BYTES_PER_ELEMENT in TypedArrayConstructorPrototype)) {
        createNonEnumerableProperty$5(TypedArrayConstructorPrototype, BYTES_PER_ELEMENT, BYTES);
      }
      setSpecies$1(CONSTRUCTOR_NAME);
    };
  } else typedArrayConstructor.exports = function() {
  };
  var typedArrayConstructorExports = typedArrayConstructor.exports;
  var createTypedArrayConstructor$8 = typedArrayConstructorExports;
  createTypedArrayConstructor$8("Float32", function(init) {
    return function Float32Array(data2, byteOffset, length) {
      return init(this, data2, byteOffset, length);
    };
  });
  var createTypedArrayConstructor$7 = typedArrayConstructorExports;
  createTypedArrayConstructor$7("Float64", function(init) {
    return function Float64Array(data2, byteOffset, length) {
      return init(this, data2, byteOffset, length);
    };
  });
  var createTypedArrayConstructor$6 = typedArrayConstructorExports;
  createTypedArrayConstructor$6("Int8", function(init) {
    return function Int8Array2(data2, byteOffset, length) {
      return init(this, data2, byteOffset, length);
    };
  });
  var createTypedArrayConstructor$5 = typedArrayConstructorExports;
  createTypedArrayConstructor$5("Int16", function(init) {
    return function Int16Array(data2, byteOffset, length) {
      return init(this, data2, byteOffset, length);
    };
  });
  var createTypedArrayConstructor$4 = typedArrayConstructorExports;
  createTypedArrayConstructor$4("Int32", function(init) {
    return function Int32Array(data2, byteOffset, length) {
      return init(this, data2, byteOffset, length);
    };
  });
  var createTypedArrayConstructor$3 = typedArrayConstructorExports;
  createTypedArrayConstructor$3("Uint8", function(init) {
    return function Uint8Array2(data2, byteOffset, length) {
      return init(this, data2, byteOffset, length);
    };
  });
  var createTypedArrayConstructor$2 = typedArrayConstructorExports;
  createTypedArrayConstructor$2("Uint8", function(init) {
    return function Uint8ClampedArray2(data2, byteOffset, length) {
      return init(this, data2, byteOffset, length);
    };
  }, true);
  var createTypedArrayConstructor$1 = typedArrayConstructorExports;
  createTypedArrayConstructor$1("Uint16", function(init) {
    return function Uint16Array2(data2, byteOffset, length) {
      return init(this, data2, byteOffset, length);
    };
  });
  var createTypedArrayConstructor = typedArrayConstructorExports;
  createTypedArrayConstructor("Uint32", function(init) {
    return function Uint32Array(data2, byteOffset, length) {
      return init(this, data2, byteOffset, length);
    };
  });
  var uncurryThis$p = functionUncurryThis;
  var ArrayBufferViewCore$m = arrayBufferViewCore;
  var $ArrayCopyWithin = arrayCopyWithin;
  var u$ArrayCopyWithin = uncurryThis$p($ArrayCopyWithin);
  var aTypedArray$l = ArrayBufferViewCore$m.aTypedArray;
  var exportTypedArrayMethod$m = ArrayBufferViewCore$m.exportTypedArrayMethod;
  exportTypedArrayMethod$m("copyWithin", function copyWithin3(target, start) {
    return u$ArrayCopyWithin(aTypedArray$l(this), target, start, arguments.length > 2 ? arguments[2] : void 0);
  });
  var ArrayBufferViewCore$l = arrayBufferViewCore;
  var $every = arrayIteration.every;
  var aTypedArray$k = ArrayBufferViewCore$l.aTypedArray;
  var exportTypedArrayMethod$l = ArrayBufferViewCore$l.exportTypedArrayMethod;
  exportTypedArrayMethod$l("every", function every2(callbackfn) {
    return $every(aTypedArray$k(this), callbackfn, arguments.length > 1 ? arguments[1] : void 0);
  });
  var ArrayBufferViewCore$k = arrayBufferViewCore;
  var $fill = arrayFill$1;
  var toBigInt2 = toBigInt$2;
  var classof$2 = classof$j;
  var call$j = functionCall;
  var uncurryThis$o = functionUncurryThis;
  var fails$c = fails$1e;
  var aTypedArray$j = ArrayBufferViewCore$k.aTypedArray;
  var exportTypedArrayMethod$k = ArrayBufferViewCore$k.exportTypedArrayMethod;
  var slice$1 = uncurryThis$o("".slice);
  var CONVERSION_BUG = fails$c(function() {
    var count = 0;
    new Int8Array(2).fill({
      valueOf: function valueOf() {
        return count++;
      }
    });
    return count !== 1;
  });
  exportTypedArrayMethod$k("fill", function fill3(value) {
    var length = arguments.length;
    aTypedArray$j(this);
    var actualValue = slice$1(classof$2(this), 0, 3) === "Big" ? toBigInt2(value) : +value;
    return call$j($fill, this, actualValue, length > 1 ? arguments[1] : void 0, length > 2 ? arguments[2] : void 0);
  }, CONVERSION_BUG);
  var arrayFromConstructorAndList2 = arrayFromConstructorAndList$2;
  var getTypedArrayConstructor$3 = arrayBufferViewCore.getTypedArrayConstructor;
  var typedArrayFromSameTypeAndList = function typedArrayFromSameTypeAndList2(instance, list) {
    return arrayFromConstructorAndList2(getTypedArrayConstructor$3(instance), list);
  };
  var ArrayBufferViewCore$j = arrayBufferViewCore;
  var $filter = arrayIteration.filter;
  var fromSameTypeAndList = typedArrayFromSameTypeAndList;
  var aTypedArray$i = ArrayBufferViewCore$j.aTypedArray;
  var exportTypedArrayMethod$j = ArrayBufferViewCore$j.exportTypedArrayMethod;
  exportTypedArrayMethod$j("filter", function filter2(callbackfn) {
    var list = $filter(aTypedArray$i(this), callbackfn, arguments.length > 1 ? arguments[1] : void 0);
    return fromSameTypeAndList(this, list);
  });
  var ArrayBufferViewCore$i = arrayBufferViewCore;
  var $find = arrayIteration.find;
  var aTypedArray$h = ArrayBufferViewCore$i.aTypedArray;
  var exportTypedArrayMethod$i = ArrayBufferViewCore$i.exportTypedArrayMethod;
  exportTypedArrayMethod$i("find", function find2(predicate) {
    return $find(aTypedArray$h(this), predicate, arguments.length > 1 ? arguments[1] : void 0);
  });
  var ArrayBufferViewCore$h = arrayBufferViewCore;
  var $findIndex = arrayIteration.findIndex;
  var aTypedArray$g = ArrayBufferViewCore$h.aTypedArray;
  var exportTypedArrayMethod$h = ArrayBufferViewCore$h.exportTypedArrayMethod;
  exportTypedArrayMethod$h("findIndex", function findIndex2(predicate) {
    return $findIndex(aTypedArray$g(this), predicate, arguments.length > 1 ? arguments[1] : void 0);
  });
  var ArrayBufferViewCore$g = arrayBufferViewCore;
  var $forEach = arrayIteration.forEach;
  var aTypedArray$f = ArrayBufferViewCore$g.aTypedArray;
  var exportTypedArrayMethod$g = ArrayBufferViewCore$g.exportTypedArrayMethod;
  exportTypedArrayMethod$g("forEach", function forEach2(callbackfn) {
    $forEach(aTypedArray$f(this), callbackfn, arguments.length > 1 ? arguments[1] : void 0);
  });
  var TYPED_ARRAYS_CONSTRUCTORS_REQUIRES_WRAPPERS$1 = typedArrayConstructorsRequireWrappers;
  var exportTypedArrayStaticMethod$1 = arrayBufferViewCore.exportTypedArrayStaticMethod;
  var typedArrayFrom = typedArrayFrom$2;
  exportTypedArrayStaticMethod$1("from", typedArrayFrom, TYPED_ARRAYS_CONSTRUCTORS_REQUIRES_WRAPPERS$1);
  var ArrayBufferViewCore$f = arrayBufferViewCore;
  var $includes = arrayIncludes.includes;
  var aTypedArray$e = ArrayBufferViewCore$f.aTypedArray;
  var exportTypedArrayMethod$f = ArrayBufferViewCore$f.exportTypedArrayMethod;
  exportTypedArrayMethod$f("includes", function includes3(searchElement) {
    return $includes(aTypedArray$e(this), searchElement, arguments.length > 1 ? arguments[1] : void 0);
  });
  var ArrayBufferViewCore$e = arrayBufferViewCore;
  var $indexOf = arrayIncludes.indexOf;
  var aTypedArray$d = ArrayBufferViewCore$e.aTypedArray;
  var exportTypedArrayMethod$e = ArrayBufferViewCore$e.exportTypedArrayMethod;
  exportTypedArrayMethod$e("indexOf", function indexOf2(searchElement) {
    return $indexOf(aTypedArray$d(this), searchElement, arguments.length > 1 ? arguments[1] : void 0);
  });
  var globalThis$j = globalThis_1;
  var fails$b = fails$1e;
  var uncurryThis$n = functionUncurryThis;
  var ArrayBufferViewCore$d = arrayBufferViewCore;
  var ArrayIterators = es_array_iterator;
  var wellKnownSymbol$9 = wellKnownSymbol$C;
  var ITERATOR$4 = wellKnownSymbol$9("iterator");
  var Uint8Array$1 = globalThis$j.Uint8Array;
  var arrayValues = uncurryThis$n(ArrayIterators.values);
  var arrayKeys = uncurryThis$n(ArrayIterators.keys);
  var arrayEntries = uncurryThis$n(ArrayIterators.entries);
  var aTypedArray$c = ArrayBufferViewCore$d.aTypedArray;
  var exportTypedArrayMethod$d = ArrayBufferViewCore$d.exportTypedArrayMethod;
  var TypedArrayPrototype = Uint8Array$1 && Uint8Array$1.prototype;
  var GENERIC = !fails$b(function() {
    TypedArrayPrototype[ITERATOR$4].call([1]);
  });
  var ITERATOR_IS_VALUES = !!TypedArrayPrototype && TypedArrayPrototype.values && TypedArrayPrototype[ITERATOR$4] === TypedArrayPrototype.values && TypedArrayPrototype.values.name === "values";
  var typedArrayValues = function values3() {
    return arrayValues(aTypedArray$c(this));
  };
  exportTypedArrayMethod$d("entries", function entries2() {
    return arrayEntries(aTypedArray$c(this));
  }, GENERIC);
  exportTypedArrayMethod$d("keys", function keys3() {
    return arrayKeys(aTypedArray$c(this));
  }, GENERIC);
  exportTypedArrayMethod$d("values", typedArrayValues, GENERIC || !ITERATOR_IS_VALUES, {
    name: "values"
  });
  exportTypedArrayMethod$d(ITERATOR$4, typedArrayValues, GENERIC || !ITERATOR_IS_VALUES, {
    name: "values"
  });
  var ArrayBufferViewCore$c = arrayBufferViewCore;
  var uncurryThis$m = functionUncurryThis;
  var aTypedArray$b = ArrayBufferViewCore$c.aTypedArray;
  var exportTypedArrayMethod$c = ArrayBufferViewCore$c.exportTypedArrayMethod;
  var $join = uncurryThis$m([].join);
  exportTypedArrayMethod$c("join", function join2(separator) {
    return $join(aTypedArray$b(this), separator);
  });
  var ArrayBufferViewCore$b = arrayBufferViewCore;
  var apply$5 = functionApply$1;
  var $lastIndexOf = arrayLastIndexOf;
  var aTypedArray$a = ArrayBufferViewCore$b.aTypedArray;
  var exportTypedArrayMethod$b = ArrayBufferViewCore$b.exportTypedArrayMethod;
  exportTypedArrayMethod$b("lastIndexOf", function lastIndexOf3(searchElement) {
    var length = arguments.length;
    return apply$5($lastIndexOf, aTypedArray$a(this), length > 1 ? [searchElement, arguments[1]] : [searchElement]);
  });
  var ArrayBufferViewCore$a = arrayBufferViewCore;
  var $map = arrayIteration.map;
  var aTypedArray$9 = ArrayBufferViewCore$a.aTypedArray;
  var getTypedArrayConstructor$2 = ArrayBufferViewCore$a.getTypedArrayConstructor;
  var exportTypedArrayMethod$a = ArrayBufferViewCore$a.exportTypedArrayMethod;
  exportTypedArrayMethod$a("map", function map2(mapfn) {
    return $map(aTypedArray$9(this), mapfn, arguments.length > 1 ? arguments[1] : void 0, function(O, length) {
      return new (getTypedArrayConstructor$2(O))(length);
    });
  });
  var ArrayBufferViewCore$9 = arrayBufferViewCore;
  var TYPED_ARRAYS_CONSTRUCTORS_REQUIRES_WRAPPERS = typedArrayConstructorsRequireWrappers;
  var aTypedArrayConstructor2 = ArrayBufferViewCore$9.aTypedArrayConstructor;
  var exportTypedArrayStaticMethod2 = ArrayBufferViewCore$9.exportTypedArrayStaticMethod;
  exportTypedArrayStaticMethod2("of", function of2() {
    var index2 = 0;
    var length = arguments.length;
    var result = new (aTypedArrayConstructor2(this))(length);
    while (length > index2) result[index2] = arguments[index2++];
    return result;
  }, TYPED_ARRAYS_CONSTRUCTORS_REQUIRES_WRAPPERS);
  var ArrayBufferViewCore$8 = arrayBufferViewCore;
  var $reduce = arrayReduce.left;
  var aTypedArray$8 = ArrayBufferViewCore$8.aTypedArray;
  var exportTypedArrayMethod$9 = ArrayBufferViewCore$8.exportTypedArrayMethod;
  exportTypedArrayMethod$9("reduce", function reduce2(callbackfn) {
    var length = arguments.length;
    return $reduce(aTypedArray$8(this), callbackfn, length, length > 1 ? arguments[1] : void 0);
  });
  var ArrayBufferViewCore$7 = arrayBufferViewCore;
  var $reduceRight = arrayReduce.right;
  var aTypedArray$7 = ArrayBufferViewCore$7.aTypedArray;
  var exportTypedArrayMethod$8 = ArrayBufferViewCore$7.exportTypedArrayMethod;
  exportTypedArrayMethod$8("reduceRight", function reduceRight2(callbackfn) {
    var length = arguments.length;
    return $reduceRight(aTypedArray$7(this), callbackfn, length, length > 1 ? arguments[1] : void 0);
  });
  var ArrayBufferViewCore$6 = arrayBufferViewCore;
  var aTypedArray$6 = ArrayBufferViewCore$6.aTypedArray;
  var exportTypedArrayMethod$7 = ArrayBufferViewCore$6.exportTypedArrayMethod;
  var floor$2 = Math.floor;
  exportTypedArrayMethod$7("reverse", function reverse3() {
    var that = this;
    var length = aTypedArray$6(that).length;
    var middle = floor$2(length / 2);
    var index2 = 0;
    var value;
    while (index2 < middle) {
      value = that[index2];
      that[index2++] = that[--length];
      that[length] = value;
    }
    return that;
  });
  var globalThis$i = globalThis_1;
  var call$i = functionCall;
  var ArrayBufferViewCore$5 = arrayBufferViewCore;
  var lengthOfArrayLike$3 = lengthOfArrayLike$m;
  var toOffset2 = toOffset$2;
  var toIndexedObject2 = toObject$s;
  var fails$a = fails$1e;
  var RangeError$1 = globalThis$i.RangeError;
  var Int8Array$2 = globalThis$i.Int8Array;
  var Int8ArrayPrototype = Int8Array$2 && Int8Array$2.prototype;
  var $set = Int8ArrayPrototype && Int8ArrayPrototype.set;
  var aTypedArray$5 = ArrayBufferViewCore$5.aTypedArray;
  var exportTypedArrayMethod$6 = ArrayBufferViewCore$5.exportTypedArrayMethod;
  var WORKS_WITH_OBJECTS_AND_GENERIC_ON_TYPED_ARRAYS = !fails$a(function() {
    var array = new Uint8ClampedArray(2);
    call$i($set, array, {
      length: 1,
      0: 3
    }, 1);
    return array[1] !== 3;
  });
  var TO_OBJECT_BUG = WORKS_WITH_OBJECTS_AND_GENERIC_ON_TYPED_ARRAYS && ArrayBufferViewCore$5.NATIVE_ARRAY_BUFFER_VIEWS && fails$a(function() {
    var array = new Int8Array$2(2);
    array.set(1);
    array.set("2", 1);
    return array[0] !== 0 || array[1] !== 2;
  });
  exportTypedArrayMethod$6("set", function set2(arrayLike) {
    aTypedArray$5(this);
    var offset = toOffset2(arguments.length > 1 ? arguments[1] : void 0, 1);
    var src = toIndexedObject2(arrayLike);
    if (WORKS_WITH_OBJECTS_AND_GENERIC_ON_TYPED_ARRAYS) return call$i($set, this, src, offset);
    var length = this.length;
    var len = lengthOfArrayLike$3(src);
    var index2 = 0;
    if (len + offset > length) throw new RangeError$1("Wrong length");
    while (index2 < len) this[offset + index2] = src[index2++];
  }, !WORKS_WITH_OBJECTS_AND_GENERIC_ON_TYPED_ARRAYS || TO_OBJECT_BUG);
  var ArrayBufferViewCore$4 = arrayBufferViewCore;
  var fails$9 = fails$1e;
  var arraySlice$3 = arraySlice$a;
  var aTypedArray$4 = ArrayBufferViewCore$4.aTypedArray;
  var getTypedArrayConstructor$1 = ArrayBufferViewCore$4.getTypedArrayConstructor;
  var exportTypedArrayMethod$5 = ArrayBufferViewCore$4.exportTypedArrayMethod;
  var FORCED$2 = fails$9(function() {
    new Int8Array(1).slice();
  });
  exportTypedArrayMethod$5("slice", function slice3(start, end) {
    var list = arraySlice$3(aTypedArray$4(this), start, end);
    var C = getTypedArrayConstructor$1(this);
    var index2 = 0;
    var length = list.length;
    var result = new C(length);
    while (length > index2) result[index2] = list[index2++];
    return result;
  }, FORCED$2);
  var ArrayBufferViewCore$3 = arrayBufferViewCore;
  var $some = arrayIteration.some;
  var aTypedArray$3 = ArrayBufferViewCore$3.aTypedArray;
  var exportTypedArrayMethod$4 = ArrayBufferViewCore$3.exportTypedArrayMethod;
  exportTypedArrayMethod$4("some", function some2(callbackfn) {
    return $some(aTypedArray$3(this), callbackfn, arguments.length > 1 ? arguments[1] : void 0);
  });
  var globalThis$h = globalThis_1;
  var uncurryThis$l = functionUncurryThisClause;
  var fails$8 = fails$1e;
  var aCallable$c = aCallable$s;
  var internalSort = arraySort$1;
  var ArrayBufferViewCore$2 = arrayBufferViewCore;
  var FF = environmentFfVersion;
  var IE_OR_EDGE = environmentIsIeOrEdge;
  var V8 = environmentV8Version;
  var WEBKIT = environmentWebkitVersion;
  var aTypedArray$2 = ArrayBufferViewCore$2.aTypedArray;
  var exportTypedArrayMethod$3 = ArrayBufferViewCore$2.exportTypedArrayMethod;
  var Uint16Array$1 = globalThis$h.Uint16Array;
  var nativeSort = Uint16Array$1 && uncurryThis$l(Uint16Array$1.prototype.sort);
  var ACCEPT_INCORRECT_ARGUMENTS = !!nativeSort && !(fails$8(function() {
    nativeSort(new Uint16Array$1(2), null);
  }) && fails$8(function() {
    nativeSort(new Uint16Array$1(2), {});
  }));
  var STABLE_SORT = !!nativeSort && !fails$8(function() {
    if (V8) return V8 < 74;
    if (FF) return FF < 67;
    if (IE_OR_EDGE) return true;
    if (WEBKIT) return WEBKIT < 602;
    var array = new Uint16Array$1(516);
    var expected = Array(516);
    var index2, mod;
    for (index2 = 0; index2 < 516; index2++) {
      mod = index2 % 4;
      array[index2] = 515 - index2;
      expected[index2] = index2 - 2 * mod + 3;
    }
    nativeSort(array, function(a, b) {
      return (a / 4 | 0) - (b / 4 | 0);
    });
    for (index2 = 0; index2 < 516; index2++) {
      if (array[index2] !== expected[index2]) return true;
    }
  });
  var getSortCompare2 = function getSortCompare3(comparefn) {
    return function(x, y) {
      if (comparefn !== void 0) return +comparefn(x, y) || 0;
      if (y !== y) return -1;
      if (x !== x) return 1;
      if (x === 0 && y === 0) return 1 / x > 0 && 1 / y < 0 ? 1 : -1;
      return x > y;
    };
  };
  exportTypedArrayMethod$3("sort", function sort3(comparefn) {
    if (comparefn !== void 0) aCallable$c(comparefn);
    if (STABLE_SORT) return nativeSort(this, comparefn);
    return internalSort(aTypedArray$2(this), getSortCompare2(comparefn));
  }, !STABLE_SORT || ACCEPT_INCORRECT_ARGUMENTS);
  var ArrayBufferViewCore$1 = arrayBufferViewCore;
  var toLength$1 = toLength$d;
  var toAbsoluteIndex2 = toAbsoluteIndex$8;
  var aTypedArray$1 = ArrayBufferViewCore$1.aTypedArray;
  var getTypedArrayConstructor2 = ArrayBufferViewCore$1.getTypedArrayConstructor;
  var exportTypedArrayMethod$2 = ArrayBufferViewCore$1.exportTypedArrayMethod;
  exportTypedArrayMethod$2("subarray", function subarray(begin, end) {
    var O = aTypedArray$1(this);
    var length = O.length;
    var beginIndex = toAbsoluteIndex2(begin, length);
    var C = getTypedArrayConstructor2(O);
    return new C(O.buffer, O.byteOffset + beginIndex * O.BYTES_PER_ELEMENT, toLength$1((end === void 0 ? length : toAbsoluteIndex2(end, length)) - beginIndex));
  });
  var globalThis$g = globalThis_1;
  var apply$4 = functionApply$1;
  var ArrayBufferViewCore = arrayBufferViewCore;
  var fails$7 = fails$1e;
  var arraySlice$2 = arraySlice$a;
  var Int8Array$1 = globalThis$g.Int8Array;
  var aTypedArray2 = ArrayBufferViewCore.aTypedArray;
  var exportTypedArrayMethod$1 = ArrayBufferViewCore.exportTypedArrayMethod;
  var $toLocaleString = [].toLocaleString;
  var TO_LOCALE_STRING_BUG = !!Int8Array$1 && fails$7(function() {
    $toLocaleString.call(new Int8Array$1(1));
  });
  var FORCED$1 = fails$7(function() {
    return [1, 2].toLocaleString() !== new Int8Array$1([1, 2]).toLocaleString();
  }) || !fails$7(function() {
    Int8Array$1.prototype.toLocaleString.call([1, 2]);
  });
  exportTypedArrayMethod$1("toLocaleString", function toLocaleString() {
    return apply$4($toLocaleString, TO_LOCALE_STRING_BUG ? arraySlice$2(aTypedArray2(this)) : aTypedArray2(this), arraySlice$2(arguments));
  }, FORCED$1);
  var exportTypedArrayMethod2 = arrayBufferViewCore.exportTypedArrayMethod;
  var fails$6 = fails$1e;
  var globalThis$f = globalThis_1;
  var uncurryThis$k = functionUncurryThis;
  var Uint8Array$2 = globalThis$f.Uint8Array;
  var Uint8ArrayPrototype = Uint8Array$2 && Uint8Array$2.prototype || {};
  var arrayToString = [].toString;
  var join$3 = uncurryThis$k([].join);
  if (fails$6(function() {
    arrayToString.call({});
  })) {
    arrayToString = function toString7() {
      return join$3(this);
    };
  }
  var IS_NOT_ARRAY_METHOD = Uint8ArrayPrototype.toString !== arrayToString;
  exportTypedArrayMethod2("toString", arrayToString, IS_NOT_ARRAY_METHOD);
  var uncurryThis$j = functionUncurryThis;
  var defineBuiltIns$3 = defineBuiltIns$6;
  var getWeakData2 = internalMetadataExports.getWeakData;
  var anInstance$3 = anInstance$9;
  var anObject$h = anObject$N;
  var isNullOrUndefined$3 = isNullOrUndefined$a;
  var isObject$8 = isObject$I;
  var iterate$s = iterate$y;
  var ArrayIterationModule = arrayIteration;
  var hasOwn$3 = hasOwnProperty_1;
  var InternalStateModule$6 = internalState;
  var setInternalState$6 = InternalStateModule$6.set;
  var internalStateGetterFor = InternalStateModule$6.getterFor;
  var find$1 = ArrayIterationModule.find;
  var findIndex3 = ArrayIterationModule.findIndex;
  var splice$1 = uncurryThis$j([].splice);
  var id = 0;
  var uncaughtFrozenStore = function uncaughtFrozenStore2(state) {
    return state.frozen || (state.frozen = new UncaughtFrozenStore());
  };
  var UncaughtFrozenStore = function UncaughtFrozenStore2() {
    this.entries = [];
  };
  var findUncaughtFrozen = function findUncaughtFrozen2(store2, key) {
    return find$1(store2.entries, function(it) {
      return it[0] === key;
    });
  };
  UncaughtFrozenStore.prototype = {
    get: function get3(key) {
      var entry = findUncaughtFrozen(this, key);
      if (entry) return entry[1];
    },
    has: function has2(key) {
      return !!findUncaughtFrozen(this, key);
    },
    set: function set3(key, value) {
      var entry = findUncaughtFrozen(this, key);
      if (entry) entry[1] = value;
      else this.entries.push([key, value]);
    },
    "delete": function _delete(key) {
      var index2 = findIndex3(this.entries, function(it) {
        return it[0] === key;
      });
      if (~index2) splice$1(this.entries, index2, 1);
      return !!~index2;
    }
  };
  var collectionWeak$2 = {
    getConstructor: function getConstructor2(wrapper3, CONSTRUCTOR_NAME, IS_MAP, ADDER) {
      var Constructor2 = wrapper3(function(that, iterable) {
        anInstance$3(that, Prototype2);
        setInternalState$6(that, {
          type: CONSTRUCTOR_NAME,
          id: id++,
          frozen: null
        });
        if (!isNullOrUndefined$3(iterable)) iterate$s(iterable, that[ADDER], {
          that,
          AS_ENTRIES: IS_MAP
        });
      });
      var Prototype2 = Constructor2.prototype;
      var getInternalState2 = internalStateGetterFor(CONSTRUCTOR_NAME);
      var define2 = function define22(that, key, value) {
        var state = getInternalState2(that);
        var data2 = getWeakData2(anObject$h(key), true);
        if (data2 === true) uncaughtFrozenStore(state).set(key, value);
        else data2[state.id] = value;
        return that;
      };
      defineBuiltIns$3(Prototype2, {
        // `{ WeakMap, WeakSet }.prototype.delete(key)` methods
        // https://tc39.es/ecma262/#sec-weakmap.prototype.delete
        // https://tc39.es/ecma262/#sec-weakset.prototype.delete
        "delete": function _delete3(key) {
          var state = getInternalState2(this);
          if (!isObject$8(key)) return false;
          var data2 = getWeakData2(key);
          if (data2 === true) return uncaughtFrozenStore(state)["delete"](key);
          return data2 && hasOwn$3(data2, state.id) && delete data2[state.id];
        },
        // `{ WeakMap, WeakSet }.prototype.has(key)` methods
        // https://tc39.es/ecma262/#sec-weakmap.prototype.has
        // https://tc39.es/ecma262/#sec-weakset.prototype.has
        has: function has5(key) {
          var state = getInternalState2(this);
          if (!isObject$8(key)) return false;
          var data2 = getWeakData2(key);
          if (data2 === true) return uncaughtFrozenStore(state).has(key);
          return data2 && hasOwn$3(data2, state.id);
        }
      });
      defineBuiltIns$3(Prototype2, IS_MAP ? {
        // `WeakMap.prototype.get(key)` method
        // https://tc39.es/ecma262/#sec-weakmap.prototype.get
        get: function get6(key) {
          var state = getInternalState2(this);
          if (isObject$8(key)) {
            var data2 = getWeakData2(key);
            if (data2 === true) return uncaughtFrozenStore(state).get(key);
            if (data2) return data2[state.id];
          }
        },
        // `WeakMap.prototype.set(key, value)` method
        // https://tc39.es/ecma262/#sec-weakmap.prototype.set
        set: function set6(key, value) {
          return define2(this, key, value);
        }
      } : {
        // `WeakSet.prototype.add(value)` method
        // https://tc39.es/ecma262/#sec-weakset.prototype.add
        add: function add3(value) {
          return define2(this, value, true);
        }
      });
      return Constructor2;
    }
  };
  var FREEZING = freezing;
  var globalThis$e = globalThis_1;
  var uncurryThis$i = functionUncurryThis;
  var defineBuiltIns$2 = defineBuiltIns$6;
  var InternalMetadataModule = internalMetadataExports;
  var collection$1 = collection$4;
  var collectionWeak$1 = collectionWeak$2;
  var isObject$7 = isObject$I;
  var enforceInternalState = internalState.enforce;
  var fails$5 = fails$1e;
  var NATIVE_WEAK_MAP = weakMapBasicDetection;
  var $Object$3 = Object;
  var isArray2 = Array.isArray;
  var isExtensible3 = $Object$3.isExtensible;
  var isFrozen2 = $Object$3.isFrozen;
  var isSealed2 = $Object$3.isSealed;
  var freeze2 = $Object$3.freeze;
  var seal2 = $Object$3.seal;
  var IS_IE11 = !globalThis$e.ActiveXObject && "ActiveXObject" in globalThis$e;
  var InternalWeakMap;
  var wrapper = function wrapper2(init) {
    return function WeakMap2() {
      return init(this, arguments.length ? arguments[0] : void 0);
    };
  };
  var $WeakMap = collection$1("WeakMap", wrapper, collectionWeak$1);
  var WeakMapPrototype$1 = $WeakMap.prototype;
  var nativeSet = uncurryThis$i(WeakMapPrototype$1.set);
  var hasMSEdgeFreezingBug = function hasMSEdgeFreezingBug2() {
    return FREEZING && fails$5(function() {
      var frozenArray = freeze2([]);
      nativeSet(new $WeakMap(), frozenArray, 1);
      return !isFrozen2(frozenArray);
    });
  };
  if (NATIVE_WEAK_MAP) {
    if (IS_IE11) {
      InternalWeakMap = collectionWeak$1.getConstructor(wrapper, "WeakMap", true);
      InternalMetadataModule.enable();
      var nativeDelete = uncurryThis$i(WeakMapPrototype$1["delete"]);
      var nativeHas = uncurryThis$i(WeakMapPrototype$1.has);
      var nativeGet = uncurryThis$i(WeakMapPrototype$1.get);
      defineBuiltIns$2(WeakMapPrototype$1, {
        "delete": function _delete3(key) {
          if (isObject$7(key) && !isExtensible3(key)) {
            var state = enforceInternalState(this);
            if (!state.frozen) state.frozen = new InternalWeakMap();
            return nativeDelete(this, key) || state.frozen["delete"](key);
          }
          return nativeDelete(this, key);
        },
        has: function has5(key) {
          if (isObject$7(key) && !isExtensible3(key)) {
            var state = enforceInternalState(this);
            if (!state.frozen) state.frozen = new InternalWeakMap();
            return nativeHas(this, key) || state.frozen.has(key);
          }
          return nativeHas(this, key);
        },
        get: function get6(key) {
          if (isObject$7(key) && !isExtensible3(key)) {
            var state = enforceInternalState(this);
            if (!state.frozen) state.frozen = new InternalWeakMap();
            return nativeHas(this, key) ? nativeGet(this, key) : state.frozen.get(key);
          }
          return nativeGet(this, key);
        },
        set: function set6(key, value) {
          if (isObject$7(key) && !isExtensible3(key)) {
            var state = enforceInternalState(this);
            if (!state.frozen) state.frozen = new InternalWeakMap();
            nativeHas(this, key) ? nativeSet(this, key, value) : state.frozen.set(key, value);
          } else nativeSet(this, key, value);
          return this;
        }
      });
    } else if (hasMSEdgeFreezingBug()) {
      defineBuiltIns$2(WeakMapPrototype$1, {
        set: function set6(key, value) {
          var arrayIntegrityLevel;
          if (isArray2(key)) {
            if (isFrozen2(key)) arrayIntegrityLevel = freeze2;
            else if (isSealed2(key)) arrayIntegrityLevel = seal2;
          }
          nativeSet(this, key, value);
          if (arrayIntegrityLevel) arrayIntegrityLevel(key);
          return this;
        }
      });
    }
  }
  var collection2 = collection$4;
  var collectionWeak = collectionWeak$2;
  collection2("WeakSet", function(init) {
    return function WeakSet2() {
      return init(this, arguments.length ? arguments[0] : void 0);
    };
  }, collectionWeak);
  var isObject$6 = isObject$I;
  var createNonEnumerableProperty$4 = createNonEnumerableProperty$d;
  var installErrorCause$1 = function installErrorCause(O, options) {
    if (isObject$6(options) && "cause" in options) {
      createNonEnumerableProperty$4(O, "cause", options.cause);
    }
  };
  var uncurryThis$h = functionUncurryThis;
  var $Error$1 = Error;
  var replace$3 = uncurryThis$h("".replace);
  var TEST = function(arg) {
    return String(new $Error$1(arg).stack);
  }("zxcasd");
  var V8_OR_CHAKRA_STACK_ENTRY = /\n\s*at [^:]*:[^\n]*/;
  var IS_V8_OR_CHAKRA_STACK = V8_OR_CHAKRA_STACK_ENTRY.test(TEST);
  var errorStackClear = function errorStackClear2(stack, dropEntries) {
    if (IS_V8_OR_CHAKRA_STACK && typeof stack == "string" && !$Error$1.prepareStackTrace) {
      while (dropEntries--) stack = replace$3(stack, V8_OR_CHAKRA_STACK_ENTRY, "");
    }
    return stack;
  };
  var fails$4 = fails$1e;
  var createPropertyDescriptor$2 = createPropertyDescriptor$a;
  var errorStackInstallable = !fails$4(function() {
    var error2 = new Error("a");
    if (!("stack" in error2)) return true;
    Object.defineProperty(error2, "stack", createPropertyDescriptor$2(1, 7));
    return error2.stack !== 7;
  });
  var createNonEnumerableProperty$3 = createNonEnumerableProperty$d;
  var clearErrorStack = errorStackClear;
  var ERROR_STACK_INSTALLABLE = errorStackInstallable;
  var captureStackTrace = Error.captureStackTrace;
  var errorStackInstall = function errorStackInstall2(error2, C, stack, dropEntries) {
    if (ERROR_STACK_INSTALLABLE) {
      if (captureStackTrace) captureStackTrace(error2, C);
      else createNonEnumerableProperty$3(error2, "stack", clearErrorStack(stack, dropEntries));
    }
  };
  var toString$5 = toString$t;
  var normalizeStringArgument$1 = function normalizeStringArgument(argument, $default) {
    return argument === void 0 ? arguments.length < 2 ? "" : $default : toString$5(argument);
  };
  var $$1m = _export;
  var isPrototypeOf = objectIsPrototypeOf;
  var getPrototypeOf$3 = objectGetPrototypeOf$2;
  var setPrototypeOf2 = objectSetPrototypeOf$1;
  var copyConstructorProperties3 = copyConstructorProperties$5;
  var create$3 = objectCreate;
  var createNonEnumerableProperty$2 = createNonEnumerableProperty$d;
  var createPropertyDescriptor$1 = createPropertyDescriptor$a;
  var installErrorCause2 = installErrorCause$1;
  var installErrorStack = errorStackInstall;
  var iterate$r = iterate$y;
  var normalizeStringArgument2 = normalizeStringArgument$1;
  var wellKnownSymbol$8 = wellKnownSymbol$C;
  var TO_STRING_TAG = wellKnownSymbol$8("toStringTag");
  var $Error = Error;
  var push$7 = [].push;
  var $AggregateError = function AggregateError(errors, message) {
    var isInstance = isPrototypeOf(AggregateErrorPrototype, this);
    var that;
    if (setPrototypeOf2) {
      that = setPrototypeOf2(new $Error(), isInstance ? getPrototypeOf$3(this) : AggregateErrorPrototype);
    } else {
      that = isInstance ? this : create$3(AggregateErrorPrototype);
      createNonEnumerableProperty$2(that, TO_STRING_TAG, "Error");
    }
    if (message !== void 0) createNonEnumerableProperty$2(that, "message", normalizeStringArgument2(message));
    installErrorStack(that, $AggregateError, that.stack, 1);
    if (arguments.length > 2) installErrorCause2(that, arguments[2]);
    var errorsArray = [];
    iterate$r(errors, push$7, {
      that: errorsArray
    });
    createNonEnumerableProperty$2(that, "errors", errorsArray);
    return that;
  };
  if (setPrototypeOf2) setPrototypeOf2($AggregateError, $Error);
  else copyConstructorProperties3($AggregateError, $Error, {
    name: true
  });
  var AggregateErrorPrototype = $AggregateError.prototype = create$3($Error.prototype, {
    constructor: createPropertyDescriptor$1(1, $AggregateError),
    message: createPropertyDescriptor$1(1, ""),
    name: createPropertyDescriptor$1(1, "AggregateError")
  });
  $$1m({
    global: true,
    constructor: true,
    arity: 2
  }, {
    AggregateError: $AggregateError
  });
  var DESCRIPTORS$6 = descriptors;
  var addToUnscopables$1 = addToUnscopables$a;
  var toObject$3 = toObject$s;
  var lengthOfArrayLike$2 = lengthOfArrayLike$m;
  var defineBuiltInAccessor$4 = defineBuiltInAccessor$e;
  if (DESCRIPTORS$6) {
    defineBuiltInAccessor$4(Array.prototype, "lastIndex", {
      configurable: true,
      get: function lastIndex() {
        var O = toObject$3(this);
        var len = lengthOfArrayLike$2(O);
        return len === 0 ? 0 : len - 1;
      }
    });
    addToUnscopables$1("lastIndex");
  }
  var DESCRIPTORS$5 = descriptors;
  var addToUnscopables2 = addToUnscopables$a;
  var toObject$2 = toObject$s;
  var lengthOfArrayLike$1 = lengthOfArrayLike$m;
  var defineBuiltInAccessor$3 = defineBuiltInAccessor$e;
  if (DESCRIPTORS$5) {
    defineBuiltInAccessor$3(Array.prototype, "lastItem", {
      configurable: true,
      get: function lastItem() {
        var O = toObject$2(this);
        var len = lengthOfArrayLike$1(O);
        return len === 0 ? void 0 : O[len - 1];
      },
      set: function lastItem(value) {
        var O = toObject$2(this);
        var len = lengthOfArrayLike$1(O);
        return O[len === 0 ? 0 : len - 1] = value;
      }
    });
    addToUnscopables2("lastItem");
  }
  var getBuiltIn$8 = getBuiltIn$n;
  var create$2 = objectCreate;
  var isObject$5 = isObject$I;
  var $Object$2 = Object;
  var $TypeError$9 = TypeError;
  var Map$9 = getBuiltIn$8("Map");
  var WeakMap$2 = getBuiltIn$8("WeakMap");
  var Node = function Node2() {
    this.object = null;
    this.symbol = null;
    this.primitives = null;
    this.objectsByIndex = create$2(null);
  };
  Node.prototype.get = function(key, initializer3) {
    return this[key] || (this[key] = initializer3());
  };
  Node.prototype.next = function(i, it, IS_OBJECT) {
    var store2 = IS_OBJECT ? this.objectsByIndex[i] || (this.objectsByIndex[i] = new WeakMap$2()) : this.primitives || (this.primitives = new Map$9());
    var entry = store2.get(it);
    if (!entry) store2.set(it, entry = new Node());
    return entry;
  };
  var root = new Node();
  var compositeKey = function compositeKey2() {
    var active = root;
    var length = arguments.length;
    var i, it;
    for (i = 0; i < length; i++) {
      if (isObject$5(it = arguments[i])) active = active.next(i, it, true);
    }
    if (this === $Object$2 && active === root) throw new $TypeError$9("Composite keys must contain a non-primitive component");
    for (i = 0; i < length; i++) {
      if (!isObject$5(it = arguments[i])) active = active.next(i, it, false);
    }
    return active;
  };
  var $$1l = _export;
  var apply$3 = functionApply$1;
  var getCompositeKeyNode$1 = compositeKey;
  var getBuiltIn$7 = getBuiltIn$n;
  var create$1 = objectCreate;
  var $Object$1 = Object;
  var initializer = function initializer2() {
    var freeze3 = getBuiltIn$7("Object", "freeze");
    return freeze3 ? freeze3(create$1(null)) : create$1(null);
  };
  $$1l({
    global: true,
    forced: true
  }, {
    compositeKey: function compositeKey3() {
      return apply$3(getCompositeKeyNode$1, $Object$1, arguments).get("object", initializer);
    }
  });
  var $$1k = _export;
  var getCompositeKeyNode = compositeKey;
  var getBuiltIn$6 = getBuiltIn$n;
  var apply$2 = functionApply$1;
  $$1k({
    global: true,
    forced: true
  }, {
    compositeSymbol: function compositeSymbol() {
      if (arguments.length === 1 && typeof arguments[0] == "string") return getBuiltIn$6("Symbol")["for"](arguments[0]);
      return apply$2(getCompositeKeyNode, null, arguments).get("symbol", getBuiltIn$6("Symbol"));
    }
  });
  var $$1j = _export;
  var globalThis$d = globalThis_1;
  $$1j({
    global: true,
    forced: globalThis$d.globalThis !== globalThis$d
  }, {
    globalThis: globalThis$d
  });
  var uncurryThis$g = functionUncurryThis;
  var MapPrototype$1 = Map.prototype;
  var mapHelpers = {
    // eslint-disable-next-line es/no-map -- safe
    Map,
    set: uncurryThis$g(MapPrototype$1.set),
    get: uncurryThis$g(MapPrototype$1.get),
    has: uncurryThis$g(MapPrototype$1.has),
    remove: uncurryThis$g(MapPrototype$1["delete"]),
    proto: MapPrototype$1
  };
  var has$a = mapHelpers.has;
  var aMap$d = function aMap(it) {
    has$a(it);
    return it;
  };
  var $$1i = _export;
  var aMap$c = aMap$d;
  var remove$5 = mapHelpers.remove;
  $$1i({
    target: "Map",
    proto: true,
    real: true,
    forced: true
  }, {
    deleteAll: function deleteAll() {
      var collection3 = aMap$c(this);
      var allDeleted = true;
      var wasDeleted;
      for (var k2 = 0, len = arguments.length; k2 < len; k2++) {
        wasDeleted = remove$5(collection3, arguments[k2]);
        allDeleted = allDeleted && wasDeleted;
      }
      return !!allDeleted;
    }
  });
  var call$h = functionCall;
  var iterateSimple$8 = function iterateSimple(record, fn, ITERATOR_INSTEAD_OF_RECORD) {
    var iterator2 = ITERATOR_INSTEAD_OF_RECORD ? record : record.iterator;
    var next8 = record.next;
    var step, result;
    while (!(step = call$h(next8, iterator2)).done) {
      result = fn(step.value);
      if (result !== void 0) return result;
    }
  };
  var uncurryThis$f = functionUncurryThis;
  var iterateSimple$7 = iterateSimple$8;
  var MapHelpers$8 = mapHelpers;
  var Map$8 = MapHelpers$8.Map;
  var MapPrototype = MapHelpers$8.proto;
  var forEach$2 = uncurryThis$f(MapPrototype.forEach);
  var entries3 = uncurryThis$f(MapPrototype.entries);
  var next$1 = entries3(new Map$8()).next;
  var mapIterate = function mapIterate2(map4, fn, interruptible) {
    return interruptible ? iterateSimple$7({
      iterator: entries3(map4),
      next: next$1
    }, function(entry) {
      return fn(entry[1], entry[0]);
    }) : forEach$2(map4, fn);
  };
  var $$1h = _export;
  var bind$e = functionBindContext;
  var aMap$b = aMap$d;
  var iterate$q = mapIterate;
  $$1h({
    target: "Map",
    proto: true,
    real: true,
    forced: true
  }, {
    every: function every3(callbackfn) {
      var map4 = aMap$b(this);
      var boundFunction = bind$e(callbackfn, arguments.length > 1 ? arguments[1] : void 0);
      return iterate$q(map4, function(value, key) {
        if (!boundFunction(value, key, map4)) return false;
      }, true) !== false;
    }
  });
  var $$1g = _export;
  var bind$d = functionBindContext;
  var aMap$a = aMap$d;
  var MapHelpers$7 = mapHelpers;
  var iterate$p = mapIterate;
  var Map$7 = MapHelpers$7.Map;
  var set$5 = MapHelpers$7.set;
  $$1g({
    target: "Map",
    proto: true,
    real: true,
    forced: true
  }, {
    filter: function filter3(callbackfn) {
      var map4 = aMap$a(this);
      var boundFunction = bind$d(callbackfn, arguments.length > 1 ? arguments[1] : void 0);
      var newMap = new Map$7();
      iterate$p(map4, function(value, key) {
        if (boundFunction(value, key, map4)) set$5(newMap, key, value);
      });
      return newMap;
    }
  });
  var $$1f = _export;
  var bind$c = functionBindContext;
  var aMap$9 = aMap$d;
  var iterate$o = mapIterate;
  $$1f({
    target: "Map",
    proto: true,
    real: true,
    forced: true
  }, {
    find: function find3(callbackfn) {
      var map4 = aMap$9(this);
      var boundFunction = bind$c(callbackfn, arguments.length > 1 ? arguments[1] : void 0);
      var result = iterate$o(map4, function(value, key) {
        if (boundFunction(value, key, map4)) return {
          value
        };
      }, true);
      return result && result.value;
    }
  });
  var $$1e = _export;
  var bind$b = functionBindContext;
  var aMap$8 = aMap$d;
  var iterate$n = mapIterate;
  $$1e({
    target: "Map",
    proto: true,
    real: true,
    forced: true
  }, {
    findKey: function findKey2(callbackfn) {
      var map4 = aMap$8(this);
      var boundFunction = bind$b(callbackfn, arguments.length > 1 ? arguments[1] : void 0);
      var result = iterate$n(map4, function(value, key) {
        if (boundFunction(value, key, map4)) return {
          key
        };
      }, true);
      return result && result.key;
    }
  });
  var bind$a = functionBindContext;
  var anObject$g = anObject$N;
  var toObject$1 = toObject$s;
  var iterate$m = iterate$y;
  var collectionFrom = function collectionFrom2(C, adder, ENTRY) {
    return function from5(source) {
      var O = toObject$1(source);
      var length = arguments.length;
      var mapFn = length > 1 ? arguments[1] : void 0;
      var mapping = mapFn !== void 0;
      var boundFunction = mapping ? bind$a(mapFn, length > 2 ? arguments[2] : void 0) : void 0;
      var result = new C();
      var n = 0;
      iterate$m(O, function(nextItem) {
        var entry = mapping ? boundFunction(nextItem, n++) : nextItem;
        if (ENTRY) adder(result, anObject$g(entry)[0], entry[1]);
        else adder(result, entry);
      });
      return result;
    };
  };
  var $$1d = _export;
  var MapHelpers$6 = mapHelpers;
  var createCollectionFrom$3 = collectionFrom;
  $$1d({
    target: "Map",
    stat: true,
    forced: true
  }, {
    from: createCollectionFrom$3(MapHelpers$6.Map, MapHelpers$6.set, true)
  });
  var $$1c = _export;
  var uncurryThis$e = functionUncurryThis;
  var aCallable$b = aCallable$s;
  var requireObjectCoercible$4 = requireObjectCoercible$k;
  var iterate$l = iterate$y;
  var MapHelpers$5 = mapHelpers;
  var fails$3 = fails$1e;
  var Map$6 = MapHelpers$5.Map;
  var has$9 = MapHelpers$5.has;
  var get$1 = MapHelpers$5.get;
  var set$4 = MapHelpers$5.set;
  var push$6 = uncurryThis$e([].push);
  var DOES_NOT_WORK_WITH_PRIMITIVES = fails$3(function() {
    return Map$6.groupBy("ab", function(it) {
      return it;
    }).get("a").length !== 1;
  });
  $$1c({
    target: "Map",
    stat: true,
    forced: DOES_NOT_WORK_WITH_PRIMITIVES
  }, {
    groupBy: function groupBy(items, callbackfn) {
      requireObjectCoercible$4(items);
      aCallable$b(callbackfn);
      var map4 = new Map$6();
      var k2 = 0;
      iterate$l(items, function(value) {
        var key = callbackfn(value, k2++);
        if (!has$9(map4, key)) set$4(map4, key, [value]);
        else push$6(get$1(map4, key), value);
      });
      return map4;
    }
  });
  var sameValueZero$1 = function sameValueZero(x, y) {
    return x === y || x !== x && y !== y;
  };
  var $$1b = _export;
  var sameValueZero2 = sameValueZero$1;
  var aMap$7 = aMap$d;
  var iterate$k = mapIterate;
  $$1b({
    target: "Map",
    proto: true,
    real: true,
    forced: true
  }, {
    includes: function includes4(searchElement) {
      return iterate$k(aMap$7(this), function(value) {
        if (sameValueZero2(value, searchElement)) return true;
      }, true) === true;
    }
  });
  var $$1a = _export;
  var call$g = functionCall;
  var iterate$j = iterate$y;
  var isCallable$5 = isCallable$z;
  var aCallable$a = aCallable$s;
  var Map$5 = mapHelpers.Map;
  $$1a({
    target: "Map",
    stat: true,
    forced: true
  }, {
    keyBy: function keyBy(iterable, keyDerivative) {
      var C = isCallable$5(this) ? this : Map$5;
      var newMap = new C();
      aCallable$a(keyDerivative);
      var setter = aCallable$a(newMap.set);
      iterate$j(iterable, function(element) {
        call$g(setter, newMap, keyDerivative(element), element);
      });
      return newMap;
    }
  });
  var $$19 = _export;
  var aMap$6 = aMap$d;
  var iterate$i = mapIterate;
  $$19({
    target: "Map",
    proto: true,
    real: true,
    forced: true
  }, {
    keyOf: function keyOf(searchElement) {
      var result = iterate$i(aMap$6(this), function(value, key) {
        if (value === searchElement) return {
          key
        };
      }, true);
      return result && result.key;
    }
  });
  var $$18 = _export;
  var bind$9 = functionBindContext;
  var aMap$5 = aMap$d;
  var MapHelpers$4 = mapHelpers;
  var iterate$h = mapIterate;
  var Map$4 = MapHelpers$4.Map;
  var set$3 = MapHelpers$4.set;
  $$18({
    target: "Map",
    proto: true,
    real: true,
    forced: true
  }, {
    mapKeys: function mapKeys(callbackfn) {
      var map4 = aMap$5(this);
      var boundFunction = bind$9(callbackfn, arguments.length > 1 ? arguments[1] : void 0);
      var newMap = new Map$4();
      iterate$h(map4, function(value, key) {
        set$3(newMap, boundFunction(value, key, map4), value);
      });
      return newMap;
    }
  });
  var $$17 = _export;
  var bind$8 = functionBindContext;
  var aMap$4 = aMap$d;
  var MapHelpers$3 = mapHelpers;
  var iterate$g = mapIterate;
  var Map$3 = MapHelpers$3.Map;
  var set$2 = MapHelpers$3.set;
  $$17({
    target: "Map",
    proto: true,
    real: true,
    forced: true
  }, {
    mapValues: function mapValues(callbackfn) {
      var map4 = aMap$4(this);
      var boundFunction = bind$8(callbackfn, arguments.length > 1 ? arguments[1] : void 0);
      var newMap = new Map$3();
      iterate$g(map4, function(value, key) {
        set$2(newMap, key, boundFunction(value, key, map4));
      });
      return newMap;
    }
  });
  var $$16 = _export;
  var aMap$3 = aMap$d;
  var iterate$f = iterate$y;
  var set$1 = mapHelpers.set;
  $$16({
    target: "Map",
    proto: true,
    real: true,
    arity: 1,
    forced: true
  }, {
    // eslint-disable-next-line no-unused-vars -- required for `.length`
    merge: function merge2(iterable) {
      var map4 = aMap$3(this);
      var argumentsLength = arguments.length;
      var i = 0;
      while (i < argumentsLength) {
        iterate$f(arguments[i++], function(key, value) {
          set$1(map4, key, value);
        }, {
          AS_ENTRIES: true
        });
      }
      return map4;
    }
  });
  var anObject$f = anObject$N;
  var collectionOf = function collectionOf2(C, adder, ENTRY) {
    return function of4() {
      var result = new C();
      var length = arguments.length;
      for (var index2 = 0; index2 < length; index2++) {
        var entry = arguments[index2];
        if (ENTRY) adder(result, anObject$f(entry)[0], entry[1]);
        else adder(result, entry);
      }
      return result;
    };
  };
  var $$15 = _export;
  var MapHelpers$2 = mapHelpers;
  var createCollectionOf$3 = collectionOf;
  $$15({
    target: "Map",
    stat: true,
    forced: true
  }, {
    of: createCollectionOf$3(MapHelpers$2.Map, MapHelpers$2.set, true)
  });
  var $$14 = _export;
  var aCallable$9 = aCallable$s;
  var aMap$2 = aMap$d;
  var iterate$e = mapIterate;
  var $TypeError$8 = TypeError;
  $$14({
    target: "Map",
    proto: true,
    real: true,
    forced: true
  }, {
    reduce: function reduce3(callbackfn) {
      var map4 = aMap$2(this);
      var noInitial = arguments.length < 2;
      var accumulator = noInitial ? void 0 : arguments[1];
      aCallable$9(callbackfn);
      iterate$e(map4, function(value, key) {
        if (noInitial) {
          noInitial = false;
          accumulator = value;
        } else {
          accumulator = callbackfn(accumulator, value, key, map4);
        }
      });
      if (noInitial) throw new $TypeError$8("Reduce of empty map with no initial value");
      return accumulator;
    }
  });
  var $$13 = _export;
  var bind$7 = functionBindContext;
  var aMap$1 = aMap$d;
  var iterate$d = mapIterate;
  $$13({
    target: "Map",
    proto: true,
    real: true,
    forced: true
  }, {
    some: function some3(callbackfn) {
      var map4 = aMap$1(this);
      var boundFunction = bind$7(callbackfn, arguments.length > 1 ? arguments[1] : void 0);
      return iterate$d(map4, function(value, key) {
        if (boundFunction(value, key, map4)) return true;
      }, true) === true;
    }
  });
  var $$12 = _export;
  var aCallable$8 = aCallable$s;
  var aMap2 = aMap$d;
  var MapHelpers$1 = mapHelpers;
  var $TypeError$7 = TypeError;
  var get4 = MapHelpers$1.get;
  var has$8 = MapHelpers$1.has;
  var set4 = MapHelpers$1.set;
  $$12({
    target: "Map",
    proto: true,
    real: true,
    forced: true
  }, {
    update: function update(key, callback) {
      var map4 = aMap2(this);
      var length = arguments.length;
      aCallable$8(callback);
      var isPresentInMap = has$8(map4, key);
      if (!isPresentInMap && length < 3) {
        throw new $TypeError$7("Updating absent value");
      }
      var value = isPresentInMap ? get4(map4, key) : aCallable$8(length > 2 ? arguments[2] : void 0)(key, map4);
      set4(map4, key, callback(value, key, map4));
      return map4;
    }
  });
  var $TypeError$6 = TypeError;
  var aNumber$1 = function aNumber(argument) {
    if (typeof argument == "number") return argument;
    throw new $TypeError$6("Argument is not a number");
  };
  var $RangeError$4 = RangeError;
  var notANan = function notANan2(it) {
    if (it === it) return it;
    throw new $RangeError$4("NaN is not allowed");
  };
  var $$11 = _export;
  var aNumber2 = aNumber$1;
  var notANaN = notANan;
  var sameValue = sameValue$2;
  var $RangeError$3 = RangeError;
  var $min = Math.min;
  var $max = Math.max;
  $$11({
    target: "Math",
    stat: true,
    forced: true
  }, {
    clamp: function clamp(value, min2, max2) {
      aNumber2(value);
      notANaN(aNumber2(min2));
      notANaN(aNumber2(max2));
      if (sameValue(min2, 0) && sameValue(max2, -0) || min2 > max2) throw new $RangeError$3("`min` should be smaller than `max`");
      return $min(max2, $max(min2, value));
    }
  });
  var $$10 = _export;
  $$10({
    target: "Math",
    stat: true,
    nonConfigurable: true,
    nonWritable: true
  }, {
    DEG_PER_RAD: Math.PI / 180
  });
  var $$$ = _export;
  var RAD_PER_DEG = 180 / Math.PI;
  $$$({
    target: "Math",
    stat: true,
    forced: true
  }, {
    degrees: function degrees(radians2) {
      return radians2 * RAD_PER_DEG;
    }
  });
  var mathScale = function scale(x, inLow, inHigh, outLow, outHigh) {
    var nx = +x;
    var nInLow = +inLow;
    var nInHigh = +inHigh;
    var nOutLow = +outLow;
    var nOutHigh = +outHigh;
    if (nx !== nx || nInLow !== nInLow || nInHigh !== nInHigh || nOutLow !== nOutLow || nOutHigh !== nOutHigh) return NaN;
    if (nx === Infinity || nx === -Infinity) return nx;
    return (nx - nInLow) * (nOutHigh - nOutLow) / (nInHigh - nInLow) + nOutLow;
  };
  var $$_ = _export;
  var scale$1 = mathScale;
  var fround2 = mathFround;
  $$_({
    target: "Math",
    stat: true,
    forced: true
  }, {
    fscale: function fscale(x, inLow, inHigh, outLow, outHigh) {
      return fround2(scale$1(x, inLow, inHigh, outLow, outHigh));
    }
  });
  var $$Z = _export;
  $$Z({
    target: "Math",
    stat: true,
    forced: true
  }, {
    iaddh: function iaddh(x0, x1, y0, y1) {
      var $x0 = x0 >>> 0;
      var $x1 = x1 >>> 0;
      var $y0 = y0 >>> 0;
      return $x1 + (y1 >>> 0) + (($x0 & $y0 | ($x0 | $y0) & ~($x0 + $y0 >>> 0)) >>> 31) | 0;
    }
  });
  var $$Y = _export;
  $$Y({
    target: "Math",
    stat: true,
    forced: true
  }, {
    imulh: function imulh(u, v) {
      var UINT16 = 65535;
      var $u = +u;
      var $v = +v;
      var u0 = $u & UINT16;
      var v0 = $v & UINT16;
      var u1 = $u >> 16;
      var v1 = $v >> 16;
      var t = (u1 * v0 >>> 0) + (u0 * v0 >>> 16);
      return u1 * v1 + (t >> 16) + ((u0 * v1 >>> 0) + (t & UINT16) >> 16);
    }
  });
  var $$X = _export;
  $$X({
    target: "Math",
    stat: true,
    forced: true
  }, {
    isubh: function isubh(x0, x1, y0, y1) {
      var $x0 = x0 >>> 0;
      var $x1 = x1 >>> 0;
      var $y0 = y0 >>> 0;
      return $x1 - (y1 >>> 0) - ((~$x0 & $y0 | ~($x0 ^ $y0) & $x0 - $y0 >>> 0) >>> 31) | 0;
    }
  });
  var $$W = _export;
  $$W({
    target: "Math",
    stat: true,
    nonConfigurable: true,
    nonWritable: true
  }, {
    RAD_PER_DEG: 180 / Math.PI
  });
  var $$V = _export;
  var DEG_PER_RAD = Math.PI / 180;
  $$V({
    target: "Math",
    stat: true,
    forced: true
  }, {
    radians: function radians(degrees2) {
      return degrees2 * DEG_PER_RAD;
    }
  });
  var $$U = _export;
  var scale2 = mathScale;
  $$U({
    target: "Math",
    stat: true,
    forced: true
  }, {
    scale: scale2
  });
  var $$T = _export;
  var anObject$e = anObject$N;
  var numberIsFinite = numberIsFinite$2;
  var createIteratorConstructor$3 = iteratorCreateConstructor;
  var createIterResultObject$3 = createIterResultObject$7;
  var InternalStateModule$5 = internalState;
  var SEEDED_RANDOM = "Seeded Random";
  var SEEDED_RANDOM_GENERATOR = SEEDED_RANDOM + " Generator";
  var SEED_TYPE_ERROR = 'Math.seededPRNG() argument should have a "seed" field with a finite value.';
  var setInternalState$5 = InternalStateModule$5.set;
  var getInternalState$2 = InternalStateModule$5.getterFor(SEEDED_RANDOM_GENERATOR);
  var $TypeError$5 = TypeError;
  var $SeededRandomGenerator = createIteratorConstructor$3(function SeededRandomGenerator(seed2) {
    setInternalState$5(this, {
      type: SEEDED_RANDOM_GENERATOR,
      seed: seed2 % 2147483647
    });
  }, SEEDED_RANDOM, function next2() {
    var state = getInternalState$2(this);
    var seed2 = state.seed = (state.seed * 1103515245 + 12345) % 2147483647;
    return createIterResultObject$3((seed2 & 1073741823) / 1073741823, false);
  });
  $$T({
    target: "Math",
    stat: true,
    forced: true
  }, {
    seededPRNG: function seededPRNG(it) {
      var seed2 = anObject$e(it).seed;
      if (!numberIsFinite(seed2)) throw new $TypeError$5(SEED_TYPE_ERROR);
      return new $SeededRandomGenerator(seed2);
    }
  });
  var $$S = _export;
  $$S({
    target: "Math",
    stat: true,
    forced: true
  }, {
    signbit: function signbit(x) {
      var n = +x;
      return n === n && n === 0 ? 1 / n === -Infinity : n < 0;
    }
  });
  var $$R = _export;
  $$R({
    target: "Math",
    stat: true,
    forced: true
  }, {
    umulh: function umulh(u, v) {
      var UINT16 = 65535;
      var $u = +u;
      var $v = +v;
      var u0 = $u & UINT16;
      var v0 = $v & UINT16;
      var u1 = $u >>> 16;
      var v1 = $v >>> 16;
      var t = (u1 * v0 >>> 0) + (u0 * v0 >>> 16);
      return u1 * v1 + (t >>> 16) + ((u0 * v1 >>> 0) + (t & UINT16) >>> 16);
    }
  });
  var $$Q = _export;
  var uncurryThis$d = functionUncurryThis;
  var toIntegerOrInfinity$2 = toIntegerOrInfinity$f;
  var INVALID_NUMBER_REPRESENTATION = "Invalid number representation";
  var INVALID_RADIX = "Invalid radix";
  var $RangeError$2 = RangeError;
  var $SyntaxError = SyntaxError;
  var $TypeError$4 = TypeError;
  var $parseInt$1 = parseInt;
  var pow$1 = Math.pow;
  var valid = /^[\d.a-z]+$/;
  var charAt$4 = uncurryThis$d("".charAt);
  var exec$3 = uncurryThis$d(valid.exec);
  var numberToString$1 = uncurryThis$d(1 .toString);
  var stringSlice$3 = uncurryThis$d("".slice);
  var split$3 = uncurryThis$d("".split);
  $$Q({
    target: "Number",
    stat: true,
    forced: true
  }, {
    fromString: function fromString(string, radix) {
      var sign3 = 1;
      if (typeof string != "string") throw new $TypeError$4(INVALID_NUMBER_REPRESENTATION);
      if (!string.length) throw new $SyntaxError(INVALID_NUMBER_REPRESENTATION);
      if (charAt$4(string, 0) === "-") {
        sign3 = -1;
        string = stringSlice$3(string, 1);
        if (!string.length) throw new $SyntaxError(INVALID_NUMBER_REPRESENTATION);
      }
      var R2 = radix === void 0 ? 10 : toIntegerOrInfinity$2(radix);
      if (R2 < 2 || R2 > 36) throw new $RangeError$2(INVALID_RADIX);
      if (!exec$3(valid, string)) throw new $SyntaxError(INVALID_NUMBER_REPRESENTATION);
      var parts = split$3(string, ".");
      var mathNum = $parseInt$1(parts[0], R2);
      if (parts.length > 1) mathNum += $parseInt$1(parts[1], R2) / pow$1(R2, parts[1].length);
      if (R2 === 10 && numberToString$1(mathNum, R2) !== string) throw new $SyntaxError(INVALID_NUMBER_REPRESENTATION);
      return sign3 * mathNum;
    }
  });
  var $$P = _export;
  var call$f = functionCall;
  var DESCRIPTORS$4 = descriptors;
  var setSpecies2 = setSpecies$7;
  var aCallable$7 = aCallable$s;
  var anObject$d = anObject$N;
  var anInstance$2 = anInstance$9;
  var isCallable$4 = isCallable$z;
  var isNullOrUndefined$2 = isNullOrUndefined$a;
  var isObject$4 = isObject$I;
  var getMethod$3 = getMethod$b;
  var defineBuiltIn$3 = defineBuiltIn$l;
  var defineBuiltIns$1 = defineBuiltIns$6;
  var defineBuiltInAccessor$2 = defineBuiltInAccessor$e;
  var hostReportErrors2 = hostReportErrors$2;
  var wellKnownSymbol$7 = wellKnownSymbol$C;
  var InternalStateModule$4 = internalState;
  var $$OBSERVABLE$1 = wellKnownSymbol$7("observable");
  var OBSERVABLE = "Observable";
  var SUBSCRIPTION = "Subscription";
  var SUBSCRIPTION_OBSERVER = "SubscriptionObserver";
  var getterFor2 = InternalStateModule$4.getterFor;
  var setInternalState$4 = InternalStateModule$4.set;
  var getObservableInternalState = getterFor2(OBSERVABLE);
  var getSubscriptionInternalState = getterFor2(SUBSCRIPTION);
  var getSubscriptionObserverInternalState = getterFor2(SUBSCRIPTION_OBSERVER);
  var SubscriptionState = function SubscriptionState2(observer) {
    this.observer = anObject$d(observer);
    this.cleanup = null;
    this.subscriptionObserver = null;
  };
  SubscriptionState.prototype = {
    type: SUBSCRIPTION,
    clean: function clean() {
      var cleanup = this.cleanup;
      if (cleanup) {
        this.cleanup = null;
        try {
          cleanup();
        } catch (error2) {
          hostReportErrors2(error2);
        }
      }
    },
    close: function close() {
      if (!DESCRIPTORS$4) {
        var subscription = this.facade;
        var subscriptionObserver = this.subscriptionObserver;
        subscription.closed = true;
        if (subscriptionObserver) subscriptionObserver.closed = true;
      }
      this.observer = null;
    },
    isClosed: function isClosed() {
      return this.observer === null;
    }
  };
  var Subscription = function Subscription2(observer, subscriber) {
    var subscriptionState = setInternalState$4(this, new SubscriptionState(observer));
    var start;
    if (!DESCRIPTORS$4) this.closed = false;
    try {
      if (start = getMethod$3(observer, "start")) call$f(start, observer, this);
    } catch (error2) {
      hostReportErrors2(error2);
    }
    if (subscriptionState.isClosed()) return;
    var subscriptionObserver = subscriptionState.subscriptionObserver = new SubscriptionObserver(subscriptionState);
    try {
      var cleanup = subscriber(subscriptionObserver);
      var subscription = cleanup;
      if (!isNullOrUndefined$2(cleanup)) subscriptionState.cleanup = isCallable$4(cleanup.unsubscribe) ? function() {
        subscription.unsubscribe();
      } : aCallable$7(cleanup);
    } catch (error2) {
      subscriptionObserver.error(error2);
      return;
    }
    if (subscriptionState.isClosed()) subscriptionState.clean();
  };
  Subscription.prototype = defineBuiltIns$1({}, {
    unsubscribe: function unsubscribe() {
      var subscriptionState = getSubscriptionInternalState(this);
      if (!subscriptionState.isClosed()) {
        subscriptionState.close();
        subscriptionState.clean();
      }
    }
  });
  if (DESCRIPTORS$4) defineBuiltInAccessor$2(Subscription.prototype, "closed", {
    configurable: true,
    get: function closed() {
      return getSubscriptionInternalState(this).isClosed();
    }
  });
  var SubscriptionObserver = function SubscriptionObserver2(subscriptionState) {
    setInternalState$4(this, {
      type: SUBSCRIPTION_OBSERVER,
      subscriptionState
    });
    if (!DESCRIPTORS$4) this.closed = false;
  };
  SubscriptionObserver.prototype = defineBuiltIns$1({}, {
    next: function next3(value) {
      var subscriptionState = getSubscriptionObserverInternalState(this).subscriptionState;
      if (!subscriptionState.isClosed()) {
        var observer = subscriptionState.observer;
        try {
          var nextMethod = getMethod$3(observer, "next");
          if (nextMethod) call$f(nextMethod, observer, value);
        } catch (error2) {
          hostReportErrors2(error2);
        }
      }
    },
    error: function error(value) {
      var subscriptionState = getSubscriptionObserverInternalState(this).subscriptionState;
      if (!subscriptionState.isClosed()) {
        var observer = subscriptionState.observer;
        subscriptionState.close();
        try {
          var errorMethod = getMethod$3(observer, "error");
          if (errorMethod) call$f(errorMethod, observer, value);
          else hostReportErrors2(value);
        } catch (err) {
          hostReportErrors2(err);
        }
        subscriptionState.clean();
      }
    },
    complete: function complete() {
      var subscriptionState = getSubscriptionObserverInternalState(this).subscriptionState;
      if (!subscriptionState.isClosed()) {
        var observer = subscriptionState.observer;
        subscriptionState.close();
        try {
          var completeMethod = getMethod$3(observer, "complete");
          if (completeMethod) call$f(completeMethod, observer);
        } catch (error2) {
          hostReportErrors2(error2);
        }
        subscriptionState.clean();
      }
    }
  });
  if (DESCRIPTORS$4) defineBuiltInAccessor$2(SubscriptionObserver.prototype, "closed", {
    configurable: true,
    get: function closed2() {
      return getSubscriptionObserverInternalState(this).subscriptionState.isClosed();
    }
  });
  var $Observable = function Observable(subscriber) {
    anInstance$2(this, ObservablePrototype);
    setInternalState$4(this, {
      type: OBSERVABLE,
      subscriber: aCallable$7(subscriber)
    });
  };
  var ObservablePrototype = $Observable.prototype;
  defineBuiltIns$1(ObservablePrototype, {
    subscribe: function subscribe(observer) {
      var length = arguments.length;
      return new Subscription(isCallable$4(observer) ? {
        next: observer,
        error: length > 1 ? arguments[1] : void 0,
        complete: length > 2 ? arguments[2] : void 0
      } : isObject$4(observer) ? observer : {}, getObservableInternalState(this).subscriber);
    }
  });
  defineBuiltIn$3(ObservablePrototype, $$OBSERVABLE$1, function() {
    return this;
  });
  $$P({
    global: true,
    constructor: true,
    forced: true
  }, {
    Observable: $Observable
  });
  setSpecies2(OBSERVABLE);
  var $$O = _export;
  var getBuiltIn$5 = getBuiltIn$n;
  var call$e = functionCall;
  var anObject$c = anObject$N;
  var isConstructor$1 = isConstructor$7;
  var getIterator$1 = getIterator$5;
  var getMethod$2 = getMethod$b;
  var iterate$c = iterate$y;
  var wellKnownSymbol$6 = wellKnownSymbol$C;
  var $$OBSERVABLE = wellKnownSymbol$6("observable");
  $$O({
    target: "Observable",
    stat: true,
    forced: true
  }, {
    from: function from4(x) {
      var C = isConstructor$1(this) ? this : getBuiltIn$5("Observable");
      var observableMethod = getMethod$2(anObject$c(x), $$OBSERVABLE);
      if (observableMethod) {
        var observable = anObject$c(call$e(observableMethod, x));
        return observable.constructor === C ? observable : new C(function(observer) {
          return observable.subscribe(observer);
        });
      }
      var iterator2 = getIterator$1(x);
      return new C(function(observer) {
        iterate$c(iterator2, function(it, stop) {
          observer.next(it);
          if (observer.closed) return stop();
        }, {
          IS_ITERATOR: true,
          INTERRUPTED: true
        });
        observer.complete();
      });
    }
  });
  var $$N = _export;
  var getBuiltIn$4 = getBuiltIn$n;
  var isConstructor3 = isConstructor$7;
  var Array$1 = getBuiltIn$4("Array");
  $$N({
    target: "Observable",
    stat: true,
    forced: true
  }, {
    of: function of3() {
      var C = isConstructor3(this) ? this : getBuiltIn$4("Observable");
      var length = arguments.length;
      var items = Array$1(length);
      var index2 = 0;
      while (index2 < length) items[index2] = arguments[index2++];
      return new C(function(observer) {
        for (var i = 0; i < length; i++) {
          observer.next(items[i]);
          if (observer.closed) return;
        }
        observer.complete();
      });
    }
  });
  var $$M = _export;
  var call$d = functionCall;
  var aCallable$6 = aCallable$s;
  var newPromiseCapabilityModule$2 = newPromiseCapability$2;
  var perform$2 = perform$6;
  var iterate$b = iterate$y;
  var PROMISE_STATICS_INCORRECT_ITERATION$1 = promiseStaticsIncorrectIteration;
  $$M({
    target: "Promise",
    stat: true,
    forced: PROMISE_STATICS_INCORRECT_ITERATION$1
  }, {
    allSettled: function allSettled(iterable) {
      var C = this;
      var capability = newPromiseCapabilityModule$2.f(C);
      var resolve2 = capability.resolve;
      var reject2 = capability.reject;
      var result = perform$2(function() {
        var promiseResolve3 = aCallable$6(C.resolve);
        var values5 = [];
        var counter2 = 0;
        var remaining = 1;
        iterate$b(iterable, function(promise2) {
          var index2 = counter2++;
          var alreadyCalled = false;
          remaining++;
          call$d(promiseResolve3, C, promise2).then(function(value) {
            if (alreadyCalled) return;
            alreadyCalled = true;
            values5[index2] = {
              status: "fulfilled",
              value
            };
            --remaining || resolve2(values5);
          }, function(error2) {
            if (alreadyCalled) return;
            alreadyCalled = true;
            values5[index2] = {
              status: "rejected",
              reason: error2
            };
            --remaining || resolve2(values5);
          });
        });
        --remaining || resolve2(values5);
      });
      if (result.error) reject2(result.value);
      return capability.promise;
    }
  });
  var $$L = _export;
  var call$c = functionCall;
  var aCallable$5 = aCallable$s;
  var getBuiltIn$3 = getBuiltIn$n;
  var newPromiseCapabilityModule$1 = newPromiseCapability$2;
  var perform$1 = perform$6;
  var iterate$a = iterate$y;
  var PROMISE_STATICS_INCORRECT_ITERATION = promiseStaticsIncorrectIteration;
  var PROMISE_ANY_ERROR = "No one promise resolved";
  $$L({
    target: "Promise",
    stat: true,
    forced: PROMISE_STATICS_INCORRECT_ITERATION
  }, {
    any: function any(iterable) {
      var C = this;
      var AggregateError2 = getBuiltIn$3("AggregateError");
      var capability = newPromiseCapabilityModule$1.f(C);
      var resolve2 = capability.resolve;
      var reject2 = capability.reject;
      var result = perform$1(function() {
        var promiseResolve3 = aCallable$5(C.resolve);
        var errors = [];
        var counter2 = 0;
        var remaining = 1;
        var alreadyResolved = false;
        iterate$a(iterable, function(promise2) {
          var index2 = counter2++;
          var alreadyRejected = false;
          remaining++;
          call$c(promiseResolve3, C, promise2).then(function(value) {
            if (alreadyRejected || alreadyResolved) return;
            alreadyResolved = true;
            resolve2(value);
          }, function(error2) {
            if (alreadyRejected || alreadyResolved) return;
            alreadyRejected = true;
            errors[index2] = error2;
            --remaining || reject2(new AggregateError2(errors, PROMISE_ANY_ERROR));
          });
        });
        --remaining || reject2(new AggregateError2(errors, PROMISE_ANY_ERROR));
      });
      if (result.error) reject2(result.value);
      return capability.promise;
    }
  });
  var $$K = _export;
  var globalThis$c = globalThis_1;
  var apply$1 = functionApply$1;
  var slice4 = arraySlice$a;
  var newPromiseCapabilityModule = newPromiseCapability$2;
  var aCallable$4 = aCallable$s;
  var perform2 = perform$6;
  var Promise$1 = globalThis$c.Promise;
  var ACCEPT_ARGUMENTS = false;
  var FORCED = !Promise$1 || !Promise$1["try"] || perform2(function() {
    Promise$1["try"](function(argument) {
      ACCEPT_ARGUMENTS = argument === 8;
    }, 8);
  }).error || !ACCEPT_ARGUMENTS;
  $$K({
    target: "Promise",
    stat: true,
    forced: FORCED
  }, {
    "try": function _try(callbackfn) {
      var args = arguments.length > 1 ? slice4(arguments, 1) : [];
      var promiseCapability = newPromiseCapabilityModule.f(this);
      var result = perform2(function() {
        return apply$1(aCallable$4(callbackfn), void 0, args);
      });
      (result.error ? promiseCapability.reject : promiseCapability.resolve)(result.value);
      return promiseCapability.promise;
    }
  });
  var getBuiltIn$2 = getBuiltIn$n;
  var uncurryThis$c = functionUncurryThis;
  var shared2 = shared$8;
  var Map$2 = getBuiltIn$2("Map");
  var WeakMap$1 = getBuiltIn$2("WeakMap");
  var push$5 = uncurryThis$c([].push);
  var metadata = shared2("metadata");
  var store$1 = metadata.store || (metadata.store = new WeakMap$1());
  var getOrCreateMetadataMap$1 = function getOrCreateMetadataMap(target, targetKey, create5) {
    var targetMetadata = store$1.get(target);
    if (!targetMetadata) {
      if (!create5) return;
      store$1.set(target, targetMetadata = new Map$2());
    }
    var keyMetadata = targetMetadata.get(targetKey);
    if (!keyMetadata) {
      if (!create5) return;
      targetMetadata.set(targetKey, keyMetadata = new Map$2());
    }
    return keyMetadata;
  };
  var ordinaryHasOwnMetadata$3 = function ordinaryHasOwnMetadata(MetadataKey, O, P2) {
    var metadataMap = getOrCreateMetadataMap$1(O, P2, false);
    return metadataMap === void 0 ? false : metadataMap.has(MetadataKey);
  };
  var ordinaryGetOwnMetadata$2 = function ordinaryGetOwnMetadata(MetadataKey, O, P2) {
    var metadataMap = getOrCreateMetadataMap$1(O, P2, false);
    return metadataMap === void 0 ? void 0 : metadataMap.get(MetadataKey);
  };
  var ordinaryDefineOwnMetadata$2 = function ordinaryDefineOwnMetadata(MetadataKey, MetadataValue, O, P2) {
    getOrCreateMetadataMap$1(O, P2, true).set(MetadataKey, MetadataValue);
  };
  var ordinaryOwnMetadataKeys$2 = function ordinaryOwnMetadataKeys(target, targetKey) {
    var metadataMap = getOrCreateMetadataMap$1(target, targetKey, false);
    var keys6 = [];
    if (metadataMap) metadataMap.forEach(function(_, key) {
      push$5(keys6, key);
    });
    return keys6;
  };
  var toMetadataKey$9 = function toMetadataKey(it) {
    return it === void 0 || _typeof(it) == "symbol" ? it : String(it);
  };
  var reflectMetadata = {
    store: store$1,
    getMap: getOrCreateMetadataMap$1,
    has: ordinaryHasOwnMetadata$3,
    get: ordinaryGetOwnMetadata$2,
    set: ordinaryDefineOwnMetadata$2,
    keys: ordinaryOwnMetadataKeys$2,
    toKey: toMetadataKey$9
  };
  var $$J = _export;
  var ReflectMetadataModule$8 = reflectMetadata;
  var anObject$b = anObject$N;
  var toMetadataKey$8 = ReflectMetadataModule$8.toKey;
  var ordinaryDefineOwnMetadata$1 = ReflectMetadataModule$8.set;
  $$J({
    target: "Reflect",
    stat: true
  }, {
    defineMetadata: function defineMetadata(metadataKey, metadataValue, target) {
      var targetKey = arguments.length < 4 ? void 0 : toMetadataKey$8(arguments[3]);
      ordinaryDefineOwnMetadata$1(metadataKey, metadataValue, anObject$b(target), targetKey);
    }
  });
  var $$I = _export;
  var ReflectMetadataModule$7 = reflectMetadata;
  var anObject$a = anObject$N;
  var toMetadataKey$7 = ReflectMetadataModule$7.toKey;
  var getOrCreateMetadataMap2 = ReflectMetadataModule$7.getMap;
  var store = ReflectMetadataModule$7.store;
  $$I({
    target: "Reflect",
    stat: true
  }, {
    deleteMetadata: function deleteMetadata(metadataKey, target) {
      var targetKey = arguments.length < 3 ? void 0 : toMetadataKey$7(arguments[2]);
      var metadataMap = getOrCreateMetadataMap2(anObject$a(target), targetKey, false);
      if (metadataMap === void 0 || !metadataMap["delete"](metadataKey)) return false;
      if (metadataMap.size) return true;
      var targetMetadata = store.get(target);
      targetMetadata["delete"](targetKey);
      return !!targetMetadata.size || store["delete"](target);
    }
  });
  var $$H = _export;
  var ReflectMetadataModule$6 = reflectMetadata;
  var anObject$9 = anObject$N;
  var getPrototypeOf$2 = objectGetPrototypeOf$2;
  var ordinaryHasOwnMetadata$2 = ReflectMetadataModule$6.has;
  var ordinaryGetOwnMetadata$1 = ReflectMetadataModule$6.get;
  var toMetadataKey$6 = ReflectMetadataModule$6.toKey;
  var _ordinaryGetMetadata = function ordinaryGetMetadata(MetadataKey, O, P2) {
    var hasOwn3 = ordinaryHasOwnMetadata$2(MetadataKey, O, P2);
    if (hasOwn3) return ordinaryGetOwnMetadata$1(MetadataKey, O, P2);
    var parent = getPrototypeOf$2(O);
    return parent !== null ? _ordinaryGetMetadata(MetadataKey, parent, P2) : void 0;
  };
  $$H({
    target: "Reflect",
    stat: true
  }, {
    getMetadata: function getMetadata(metadataKey, target) {
      var targetKey = arguments.length < 3 ? void 0 : toMetadataKey$6(arguments[2]);
      return _ordinaryGetMetadata(metadataKey, anObject$9(target), targetKey);
    }
  });
  var uncurryThis$b = functionUncurryThis;
  var aCallable$3 = aCallable$s;
  var isNullOrUndefined$1 = isNullOrUndefined$a;
  var lengthOfArrayLike2 = lengthOfArrayLike$m;
  var toObject2 = toObject$s;
  var MapHelpers = mapHelpers;
  var iterate$9 = mapIterate;
  var Map$1 = MapHelpers.Map;
  var mapHas = MapHelpers.has;
  var mapSet = MapHelpers.set;
  var push$4 = uncurryThis$b([].push);
  var arrayUniqueBy$1 = function uniqueBy(resolver) {
    var that = toObject2(this);
    var length = lengthOfArrayLike2(that);
    var result = [];
    var map4 = new Map$1();
    var resolverFunction = !isNullOrUndefined$1(resolver) ? aCallable$3(resolver) : function(value) {
      return value;
    };
    var index2, item, key;
    for (index2 = 0; index2 < length; index2++) {
      item = that[index2];
      key = resolverFunction(item);
      if (!mapHas(map4, key)) mapSet(map4, key, item);
    }
    iterate$9(map4, function(value) {
      push$4(result, value);
    });
    return result;
  };
  var $$G = _export;
  var uncurryThis$a = functionUncurryThis;
  var ReflectMetadataModule$5 = reflectMetadata;
  var anObject$8 = anObject$N;
  var getPrototypeOf$1 = objectGetPrototypeOf$2;
  var $arrayUniqueBy = arrayUniqueBy$1;
  var arrayUniqueBy = uncurryThis$a($arrayUniqueBy);
  var concat2 = uncurryThis$a([].concat);
  var ordinaryOwnMetadataKeys$1 = ReflectMetadataModule$5.keys;
  var toMetadataKey$5 = ReflectMetadataModule$5.toKey;
  var _ordinaryMetadataKeys = function ordinaryMetadataKeys(O, P2) {
    var oKeys = ordinaryOwnMetadataKeys$1(O, P2);
    var parent = getPrototypeOf$1(O);
    if (parent === null) return oKeys;
    var pKeys = _ordinaryMetadataKeys(parent, P2);
    return pKeys.length ? oKeys.length ? arrayUniqueBy(concat2(oKeys, pKeys)) : pKeys : oKeys;
  };
  $$G({
    target: "Reflect",
    stat: true
  }, {
    getMetadataKeys: function getMetadataKeys(target) {
      var targetKey = arguments.length < 2 ? void 0 : toMetadataKey$5(arguments[1]);
      return _ordinaryMetadataKeys(anObject$8(target), targetKey);
    }
  });
  var $$F = _export;
  var ReflectMetadataModule$4 = reflectMetadata;
  var anObject$7 = anObject$N;
  var ordinaryGetOwnMetadata2 = ReflectMetadataModule$4.get;
  var toMetadataKey$4 = ReflectMetadataModule$4.toKey;
  $$F({
    target: "Reflect",
    stat: true
  }, {
    getOwnMetadata: function getOwnMetadata(metadataKey, target) {
      var targetKey = arguments.length < 3 ? void 0 : toMetadataKey$4(arguments[2]);
      return ordinaryGetOwnMetadata2(metadataKey, anObject$7(target), targetKey);
    }
  });
  var $$E = _export;
  var ReflectMetadataModule$3 = reflectMetadata;
  var anObject$6 = anObject$N;
  var ordinaryOwnMetadataKeys2 = ReflectMetadataModule$3.keys;
  var toMetadataKey$3 = ReflectMetadataModule$3.toKey;
  $$E({
    target: "Reflect",
    stat: true
  }, {
    getOwnMetadataKeys: function getOwnMetadataKeys(target) {
      var targetKey = arguments.length < 2 ? void 0 : toMetadataKey$3(arguments[1]);
      return ordinaryOwnMetadataKeys2(anObject$6(target), targetKey);
    }
  });
  var $$D = _export;
  var ReflectMetadataModule$2 = reflectMetadata;
  var anObject$5 = anObject$N;
  var getPrototypeOf3 = objectGetPrototypeOf$2;
  var ordinaryHasOwnMetadata$1 = ReflectMetadataModule$2.has;
  var toMetadataKey$2 = ReflectMetadataModule$2.toKey;
  var _ordinaryHasMetadata = function ordinaryHasMetadata(MetadataKey, O, P2) {
    var hasOwn3 = ordinaryHasOwnMetadata$1(MetadataKey, O, P2);
    if (hasOwn3) return true;
    var parent = getPrototypeOf3(O);
    return parent !== null ? _ordinaryHasMetadata(MetadataKey, parent, P2) : false;
  };
  $$D({
    target: "Reflect",
    stat: true
  }, {
    hasMetadata: function hasMetadata(metadataKey, target) {
      var targetKey = arguments.length < 3 ? void 0 : toMetadataKey$2(arguments[2]);
      return _ordinaryHasMetadata(metadataKey, anObject$5(target), targetKey);
    }
  });
  var $$C = _export;
  var ReflectMetadataModule$1 = reflectMetadata;
  var anObject$4 = anObject$N;
  var ordinaryHasOwnMetadata2 = ReflectMetadataModule$1.has;
  var toMetadataKey$1 = ReflectMetadataModule$1.toKey;
  $$C({
    target: "Reflect",
    stat: true
  }, {
    hasOwnMetadata: function hasOwnMetadata(metadataKey, target) {
      var targetKey = arguments.length < 3 ? void 0 : toMetadataKey$1(arguments[2]);
      return ordinaryHasOwnMetadata2(metadataKey, anObject$4(target), targetKey);
    }
  });
  var $$B = _export;
  var ReflectMetadataModule = reflectMetadata;
  var anObject$3 = anObject$N;
  var toMetadataKey2 = ReflectMetadataModule.toKey;
  var ordinaryDefineOwnMetadata2 = ReflectMetadataModule.set;
  $$B({
    target: "Reflect",
    stat: true
  }, {
    metadata: function metadata2(metadataKey, metadataValue) {
      return function decorator(target, key) {
        ordinaryDefineOwnMetadata2(metadataKey, metadataValue, anObject$3(target), toMetadataKey2(key));
      };
    }
  });
  var uncurryThis$9 = functionUncurryThis;
  var SetPrototype$1 = Set.prototype;
  var setHelpers = {
    // eslint-disable-next-line es/no-set -- safe
    Set,
    add: uncurryThis$9(SetPrototype$1.add),
    has: uncurryThis$9(SetPrototype$1.has),
    remove: uncurryThis$9(SetPrototype$1["delete"]),
    proto: SetPrototype$1
  };
  var has$7 = setHelpers.has;
  var aSet$g = function aSet(it) {
    has$7(it);
    return it;
  };
  var $$A = _export;
  var aSet$f = aSet$g;
  var add$7 = setHelpers.add;
  $$A({
    target: "Set",
    proto: true,
    real: true,
    forced: true
  }, {
    addAll: function addAll() {
      var set6 = aSet$f(this);
      for (var k2 = 0, len = arguments.length; k2 < len; k2++) {
        add$7(set6, arguments[k2]);
      }
      return set6;
    }
  });
  var $$z = _export;
  var aSet$e = aSet$g;
  var remove$4 = setHelpers.remove;
  $$z({
    target: "Set",
    proto: true,
    real: true,
    forced: true
  }, {
    deleteAll: function deleteAll2() {
      var collection3 = aSet$e(this);
      var allDeleted = true;
      var wasDeleted;
      for (var k2 = 0, len = arguments.length; k2 < len; k2++) {
        wasDeleted = remove$4(collection3, arguments[k2]);
        allDeleted = allDeleted && wasDeleted;
      }
      return !!allDeleted;
    }
  });
  var classof$1 = classof$j;
  var hasOwn$2 = hasOwnProperty_1;
  var isNullOrUndefined2 = isNullOrUndefined$a;
  var wellKnownSymbol$5 = wellKnownSymbol$C;
  var Iterators = iterators;
  var ITERATOR$3 = wellKnownSymbol$5("iterator");
  var $Object = Object;
  var isIterable$1 = function isIterable3(it) {
    if (isNullOrUndefined2(it)) return false;
    var O = $Object(it);
    return O[ITERATOR$3] !== void 0 || "@@iterator" in O || hasOwn$2(Iterators, classof$1(O));
  };
  var getBuiltIn$1 = getBuiltIn$n;
  var isCallable$3 = isCallable$z;
  var isIterable2 = isIterable$1;
  var isObject$3 = isObject$I;
  var Set$6 = getBuiltIn$1("Set");
  var isSetLike = function isSetLike2(it) {
    return isObject$3(it) && typeof it.size == "number" && isCallable$3(it.has) && isCallable$3(it.keys);
  };
  var toSetLike$7 = function toSetLike(it) {
    if (isSetLike(it)) return it;
    return isIterable2(it) ? new Set$6(it) : it;
  };
  var uncurryThis$8 = functionUncurryThis;
  var iterateSimple$6 = iterateSimple$8;
  var SetHelpers$9 = setHelpers;
  var Set$5 = SetHelpers$9.Set;
  var SetPrototype = SetHelpers$9.proto;
  var forEach$1 = uncurryThis$8(SetPrototype.forEach);
  var keys4 = uncurryThis$8(SetPrototype.keys);
  var next4 = keys4(new Set$5()).next;
  var setIterate = function setIterate2(set6, fn, interruptible) {
    return interruptible ? iterateSimple$6({
      iterator: keys4(set6),
      next: next4
    }, fn) : forEach$1(set6, fn);
  };
  var SetHelpers$8 = setHelpers;
  var iterate$8 = setIterate;
  var Set$4 = SetHelpers$8.Set;
  var add$6 = SetHelpers$8.add;
  var setClone = function setClone2(set6) {
    var result = new Set$4();
    iterate$8(set6, function(it) {
      add$6(result, it);
    });
    return result;
  };
  var uncurryThisAccessor = functionUncurryThisAccessor;
  var SetHelpers$7 = setHelpers;
  var setSize = uncurryThisAccessor(SetHelpers$7.proto, "size", "get") || function(set6) {
    return set6.size;
  };
  var getIteratorDirect$1 = function getIteratorDirect(obj) {
    return {
      iterator: obj,
      next: obj.next,
      done: false
    };
  };
  var aCallable$2 = aCallable$s;
  var anObject$2 = anObject$N;
  var call$b = functionCall;
  var toIntegerOrInfinity$1 = toIntegerOrInfinity$f;
  var getIteratorDirect2 = getIteratorDirect$1;
  var INVALID_SIZE = "Invalid size";
  var $RangeError$1 = RangeError;
  var $TypeError$3 = TypeError;
  var max$1 = Math.max;
  var SetRecord = function SetRecord2(set6, intSize) {
    this.set = set6;
    this.size = max$1(intSize, 0);
    this.has = aCallable$2(set6.has);
    this.keys = aCallable$2(set6.keys);
  };
  SetRecord.prototype = {
    getIterator: function getIterator2() {
      return getIteratorDirect2(anObject$2(call$b(this.keys, this.set)));
    },
    includes: function includes5(it) {
      return call$b(this.has, this.set, it);
    }
  };
  var getSetRecord$7 = function getSetRecord(obj) {
    anObject$2(obj);
    var numSize = +obj.size;
    if (numSize !== numSize) throw new $TypeError$3(INVALID_SIZE);
    var intSize = toIntegerOrInfinity$1(numSize);
    if (intSize < 0) throw new $RangeError$1(INVALID_SIZE);
    return new SetRecord(obj, intSize);
  };
  var aSet$d = aSet$g;
  var SetHelpers$6 = setHelpers;
  var clone$2 = setClone;
  var size$4 = setSize;
  var getSetRecord$6 = getSetRecord$7;
  var iterateSet$2 = setIterate;
  var iterateSimple$5 = iterateSimple$8;
  var has$6 = SetHelpers$6.has;
  var remove$3 = SetHelpers$6.remove;
  var setDifference = function difference(other) {
    var O = aSet$d(this);
    var otherRec = getSetRecord$6(other);
    var result = clone$2(O);
    if (size$4(O) <= otherRec.size) iterateSet$2(O, function(e) {
      if (otherRec.includes(e)) remove$3(result, e);
    });
    else iterateSimple$5(otherRec.getIterator(), function(e) {
      if (has$6(O, e)) remove$3(result, e);
    });
    return result;
  };
  var $$y = _export;
  var call$a = functionCall;
  var toSetLike$6 = toSetLike$7;
  var $difference = setDifference;
  $$y({
    target: "Set",
    proto: true,
    real: true,
    forced: true
  }, {
    difference: function difference2(other) {
      return call$a($difference, this, toSetLike$6(other));
    }
  });
  var $$x = _export;
  var bind$6 = functionBindContext;
  var aSet$c = aSet$g;
  var iterate$7 = setIterate;
  $$x({
    target: "Set",
    proto: true,
    real: true,
    forced: true
  }, {
    every: function every4(callbackfn) {
      var set6 = aSet$c(this);
      var boundFunction = bind$6(callbackfn, arguments.length > 1 ? arguments[1] : void 0);
      return iterate$7(set6, function(value) {
        if (!boundFunction(value, value, set6)) return false;
      }, true) !== false;
    }
  });
  var $$w = _export;
  var bind$5 = functionBindContext;
  var aSet$b = aSet$g;
  var SetHelpers$5 = setHelpers;
  var iterate$6 = setIterate;
  var Set$3 = SetHelpers$5.Set;
  var add$5 = SetHelpers$5.add;
  $$w({
    target: "Set",
    proto: true,
    real: true,
    forced: true
  }, {
    filter: function filter4(callbackfn) {
      var set6 = aSet$b(this);
      var boundFunction = bind$5(callbackfn, arguments.length > 1 ? arguments[1] : void 0);
      var newSet = new Set$3();
      iterate$6(set6, function(value) {
        if (boundFunction(value, value, set6)) add$5(newSet, value);
      });
      return newSet;
    }
  });
  var $$v = _export;
  var bind$4 = functionBindContext;
  var aSet$a = aSet$g;
  var iterate$5 = setIterate;
  $$v({
    target: "Set",
    proto: true,
    real: true,
    forced: true
  }, {
    find: function find4(callbackfn) {
      var set6 = aSet$a(this);
      var boundFunction = bind$4(callbackfn, arguments.length > 1 ? arguments[1] : void 0);
      var result = iterate$5(set6, function(value) {
        if (boundFunction(value, value, set6)) return {
          value
        };
      }, true);
      return result && result.value;
    }
  });
  var $$u = _export;
  var SetHelpers$4 = setHelpers;
  var createCollectionFrom$2 = collectionFrom;
  $$u({
    target: "Set",
    stat: true,
    forced: true
  }, {
    from: createCollectionFrom$2(SetHelpers$4.Set, SetHelpers$4.add, false)
  });
  var aSet$9 = aSet$g;
  var SetHelpers$3 = setHelpers;
  var size$3 = setSize;
  var getSetRecord$5 = getSetRecord$7;
  var iterateSet$1 = setIterate;
  var iterateSimple$4 = iterateSimple$8;
  var Set$2 = SetHelpers$3.Set;
  var add$4 = SetHelpers$3.add;
  var has$5 = SetHelpers$3.has;
  var setIntersection = function intersection(other) {
    var O = aSet$9(this);
    var otherRec = getSetRecord$5(other);
    var result = new Set$2();
    if (size$3(O) > otherRec.size) {
      iterateSimple$4(otherRec.getIterator(), function(e) {
        if (has$5(O, e)) add$4(result, e);
      });
    } else {
      iterateSet$1(O, function(e) {
        if (otherRec.includes(e)) add$4(result, e);
      });
    }
    return result;
  };
  var $$t = _export;
  var call$9 = functionCall;
  var toSetLike$5 = toSetLike$7;
  var $intersection = setIntersection;
  $$t({
    target: "Set",
    proto: true,
    real: true,
    forced: true
  }, {
    intersection: function intersection2(other) {
      return call$9($intersection, this, toSetLike$5(other));
    }
  });
  var aSet$8 = aSet$g;
  var has$4 = setHelpers.has;
  var size$2 = setSize;
  var getSetRecord$4 = getSetRecord$7;
  var iterateSet = setIterate;
  var iterateSimple$3 = iterateSimple$8;
  var iteratorClose$1 = iteratorClose$4;
  var setIsDisjointFrom = function isDisjointFrom(other) {
    var O = aSet$8(this);
    var otherRec = getSetRecord$4(other);
    if (size$2(O) <= otherRec.size) return iterateSet(O, function(e) {
      if (otherRec.includes(e)) return false;
    }, true) !== false;
    var iterator2 = otherRec.getIterator();
    return iterateSimple$3(iterator2, function(e) {
      if (has$4(O, e)) return iteratorClose$1(iterator2, "normal", false);
    }) !== false;
  };
  var $$s = _export;
  var call$8 = functionCall;
  var toSetLike$4 = toSetLike$7;
  var $isDisjointFrom = setIsDisjointFrom;
  $$s({
    target: "Set",
    proto: true,
    real: true,
    forced: true
  }, {
    isDisjointFrom: function isDisjointFrom2(other) {
      return call$8($isDisjointFrom, this, toSetLike$4(other));
    }
  });
  var aSet$7 = aSet$g;
  var size$1 = setSize;
  var iterate$4 = setIterate;
  var getSetRecord$3 = getSetRecord$7;
  var setIsSubsetOf = function isSubsetOf(other) {
    var O = aSet$7(this);
    var otherRec = getSetRecord$3(other);
    if (size$1(O) > otherRec.size) return false;
    return iterate$4(O, function(e) {
      if (!otherRec.includes(e)) return false;
    }, true) !== false;
  };
  var $$r = _export;
  var call$7 = functionCall;
  var toSetLike$3 = toSetLike$7;
  var $isSubsetOf = setIsSubsetOf;
  $$r({
    target: "Set",
    proto: true,
    real: true,
    forced: true
  }, {
    isSubsetOf: function isSubsetOf2(other) {
      return call$7($isSubsetOf, this, toSetLike$3(other));
    }
  });
  var aSet$6 = aSet$g;
  var has$3 = setHelpers.has;
  var size = setSize;
  var getSetRecord$2 = getSetRecord$7;
  var iterateSimple$2 = iterateSimple$8;
  var iteratorClose2 = iteratorClose$4;
  var setIsSupersetOf = function isSupersetOf(other) {
    var O = aSet$6(this);
    var otherRec = getSetRecord$2(other);
    if (size(O) < otherRec.size) return false;
    var iterator2 = otherRec.getIterator();
    return iterateSimple$2(iterator2, function(e) {
      if (!has$3(O, e)) return iteratorClose2(iterator2, "normal", false);
    }) !== false;
  };
  var $$q = _export;
  var call$6 = functionCall;
  var toSetLike$2 = toSetLike$7;
  var $isSupersetOf = setIsSupersetOf;
  $$q({
    target: "Set",
    proto: true,
    real: true,
    forced: true
  }, {
    isSupersetOf: function isSupersetOf2(other) {
      return call$6($isSupersetOf, this, toSetLike$2(other));
    }
  });
  var $$p = _export;
  var uncurryThis$7 = functionUncurryThis;
  var aSet$5 = aSet$g;
  var iterate$3 = setIterate;
  var toString$4 = toString$t;
  var arrayJoin = uncurryThis$7([].join);
  var push$3 = uncurryThis$7([].push);
  $$p({
    target: "Set",
    proto: true,
    real: true,
    forced: true
  }, {
    join: function join3(separator) {
      var set6 = aSet$5(this);
      var sep = separator === void 0 ? "," : toString$4(separator);
      var array = [];
      iterate$3(set6, function(value) {
        push$3(array, value);
      });
      return arrayJoin(array, sep);
    }
  });
  var $$o = _export;
  var bind$3 = functionBindContext;
  var aSet$4 = aSet$g;
  var SetHelpers$2 = setHelpers;
  var iterate$2 = setIterate;
  var Set$1 = SetHelpers$2.Set;
  var add$3 = SetHelpers$2.add;
  $$o({
    target: "Set",
    proto: true,
    real: true,
    forced: true
  }, {
    map: function map3(callbackfn) {
      var set6 = aSet$4(this);
      var boundFunction = bind$3(callbackfn, arguments.length > 1 ? arguments[1] : void 0);
      var newSet = new Set$1();
      iterate$2(set6, function(value) {
        add$3(newSet, boundFunction(value, value, set6));
      });
      return newSet;
    }
  });
  var $$n = _export;
  var SetHelpers$1 = setHelpers;
  var createCollectionOf$2 = collectionOf;
  $$n({
    target: "Set",
    stat: true,
    forced: true
  }, {
    of: createCollectionOf$2(SetHelpers$1.Set, SetHelpers$1.add, false)
  });
  var $$m = _export;
  var aCallable$1 = aCallable$s;
  var aSet$3 = aSet$g;
  var iterate$1 = setIterate;
  var $TypeError$2 = TypeError;
  $$m({
    target: "Set",
    proto: true,
    real: true,
    forced: true
  }, {
    reduce: function reduce4(callbackfn) {
      var set6 = aSet$3(this);
      var noInitial = arguments.length < 2;
      var accumulator = noInitial ? void 0 : arguments[1];
      aCallable$1(callbackfn);
      iterate$1(set6, function(value) {
        if (noInitial) {
          noInitial = false;
          accumulator = value;
        } else {
          accumulator = callbackfn(accumulator, value, value, set6);
        }
      });
      if (noInitial) throw new $TypeError$2("Reduce of empty set with no initial value");
      return accumulator;
    }
  });
  var $$l = _export;
  var bind$2 = functionBindContext;
  var aSet$2 = aSet$g;
  var iterate2 = setIterate;
  $$l({
    target: "Set",
    proto: true,
    real: true,
    forced: true
  }, {
    some: function some4(callbackfn) {
      var set6 = aSet$2(this);
      var boundFunction = bind$2(callbackfn, arguments.length > 1 ? arguments[1] : void 0);
      return iterate2(set6, function(value) {
        if (boundFunction(value, value, set6)) return true;
      }, true) === true;
    }
  });
  var aSet$1 = aSet$g;
  var SetHelpers = setHelpers;
  var clone$1 = setClone;
  var getSetRecord$1 = getSetRecord$7;
  var iterateSimple$1 = iterateSimple$8;
  var add$2 = SetHelpers.add;
  var has$2 = SetHelpers.has;
  var remove$2 = SetHelpers.remove;
  var setSymmetricDifference = function symmetricDifference(other) {
    var O = aSet$1(this);
    var keysIter = getSetRecord$1(other).getIterator();
    var result = clone$1(O);
    iterateSimple$1(keysIter, function(e) {
      if (has$2(O, e)) remove$2(result, e);
      else add$2(result, e);
    });
    return result;
  };
  var $$k = _export;
  var call$5 = functionCall;
  var toSetLike$1 = toSetLike$7;
  var $symmetricDifference = setSymmetricDifference;
  $$k({
    target: "Set",
    proto: true,
    real: true,
    forced: true
  }, {
    symmetricDifference: function symmetricDifference2(other) {
      return call$5($symmetricDifference, this, toSetLike$1(other));
    }
  });
  var aSet2 = aSet$g;
  var add$1 = setHelpers.add;
  var clone = setClone;
  var getSetRecord2 = getSetRecord$7;
  var iterateSimple2 = iterateSimple$8;
  var setUnion = function union(other) {
    var O = aSet2(this);
    var keysIter = getSetRecord2(other).getIterator();
    var result = clone(O);
    iterateSimple2(keysIter, function(it) {
      add$1(result, it);
    });
    return result;
  };
  var $$j = _export;
  var call$4 = functionCall;
  var toSetLike2 = toSetLike$7;
  var $union = setUnion;
  $$j({
    target: "Set",
    proto: true,
    real: true,
    forced: true
  }, {
    union: function union2(other) {
      return call$4($union, this, toSetLike2(other));
    }
  });
  var $$i = _export;
  var charAt$3 = stringMultibyte.charAt;
  var requireObjectCoercible$3 = requireObjectCoercible$k;
  var toIntegerOrInfinity2 = toIntegerOrInfinity$f;
  var toString$3 = toString$t;
  $$i({
    target: "String",
    proto: true,
    forced: true
  }, {
    at: function at(index2) {
      var S = toString$3(requireObjectCoercible$3(this));
      var len = S.length;
      var relativeIndex = toIntegerOrInfinity2(index2);
      var k2 = relativeIndex >= 0 ? relativeIndex : len + relativeIndex;
      return k2 < 0 || k2 >= len ? void 0 : charAt$3(S, k2);
    }
  });
  var $$h = _export;
  var createIteratorConstructor$2 = iteratorCreateConstructor;
  var createIterResultObject$2 = createIterResultObject$7;
  var requireObjectCoercible$2 = requireObjectCoercible$k;
  var toString$2 = toString$t;
  var InternalStateModule$3 = internalState;
  var StringMultibyteModule = stringMultibyte;
  var codeAt$1 = StringMultibyteModule.codeAt;
  var charAt$2 = StringMultibyteModule.charAt;
  var STRING_ITERATOR = "String Iterator";
  var setInternalState$3 = InternalStateModule$3.set;
  var getInternalState$1 = InternalStateModule$3.getterFor(STRING_ITERATOR);
  var $StringIterator = createIteratorConstructor$2(function StringIterator(string) {
    setInternalState$3(this, {
      type: STRING_ITERATOR,
      string,
      index: 0
    });
  }, "String", function next5() {
    var state = getInternalState$1(this);
    var string = state.string;
    var index2 = state.index;
    var point;
    if (index2 >= string.length) return createIterResultObject$2(void 0, true);
    point = charAt$2(string, index2);
    state.index += point.length;
    return createIterResultObject$2({
      codePoint: codeAt$1(point, 0),
      position: index2
    }, false);
  });
  $$h({
    target: "String",
    proto: true,
    forced: true
  }, {
    codePoints: function codePoints() {
      return new $StringIterator(toString$2(requireObjectCoercible$2(this)));
    }
  });
  var $$g = _export;
  var call$3 = functionCall;
  var uncurryThis$6 = functionUncurryThisClause;
  var createIteratorConstructor$1 = iteratorCreateConstructor;
  var createIterResultObject$1 = createIterResultObject$7;
  var requireObjectCoercible$1 = requireObjectCoercible$k;
  var toLength2 = toLength$d;
  var toString$1 = toString$t;
  var anObject$1 = anObject$N;
  var isObject$2 = isObject$I;
  var isRegExp$1 = isRegexp;
  var getRegExpFlags$1 = regexpGetFlags;
  var getMethod$1 = getMethod$b;
  var defineBuiltIn$2 = defineBuiltIn$l;
  var fails$2 = fails$1e;
  var wellKnownSymbol$4 = wellKnownSymbol$C;
  var speciesConstructor2 = speciesConstructor$4;
  var advanceStringIndex2 = advanceStringIndex$4;
  var regExpExec = regexpExecAbstract;
  var InternalStateModule$2 = internalState;
  var MATCH_ALL = wellKnownSymbol$4("matchAll");
  var REGEXP_STRING = "RegExp String";
  var REGEXP_STRING_ITERATOR = REGEXP_STRING + " Iterator";
  var setInternalState$2 = InternalStateModule$2.set;
  var getInternalState = InternalStateModule$2.getterFor(REGEXP_STRING_ITERATOR);
  var RegExpPrototype = RegExp.prototype;
  var $TypeError$1 = TypeError;
  var stringIndexOf = uncurryThis$6("".indexOf);
  var nativeMatchAll = uncurryThis$6("".matchAll);
  var WORKS_WITH_NON_GLOBAL_REGEX = !!nativeMatchAll && !fails$2(function() {
    nativeMatchAll("a", /./);
  });
  var $RegExpStringIterator = createIteratorConstructor$1(function RegExpStringIterator(regexp2, string, $global, fullUnicode) {
    setInternalState$2(this, {
      type: REGEXP_STRING_ITERATOR,
      regexp: regexp2,
      string,
      global: $global,
      unicode: fullUnicode,
      done: false
    });
  }, REGEXP_STRING, function next6() {
    var state = getInternalState(this);
    if (state.done) return createIterResultObject$1(void 0, true);
    var R2 = state.regexp;
    var S = state.string;
    var match2 = regExpExec(R2, S);
    if (match2 === null) {
      state.done = true;
      return createIterResultObject$1(void 0, true);
    }
    if (state.global) {
      if (toString$1(match2[0]) === "") R2.lastIndex = advanceStringIndex2(S, toLength2(R2.lastIndex), state.unicode);
      return createIterResultObject$1(match2, false);
    }
    state.done = true;
    return createIterResultObject$1(match2, false);
  });
  var $matchAll = function $matchAll2(string) {
    var R2 = anObject$1(this);
    var S = toString$1(string);
    var C = speciesConstructor2(R2, RegExp);
    var flags = toString$1(getRegExpFlags$1(R2));
    var matcher, $global, fullUnicode;
    matcher = new C(C === RegExp ? R2.source : R2, flags);
    $global = !!~stringIndexOf(flags, "g");
    fullUnicode = !!~stringIndexOf(flags, "u");
    matcher.lastIndex = toLength2(R2.lastIndex);
    return new $RegExpStringIterator(matcher, S, $global, fullUnicode);
  };
  $$g({
    target: "String",
    proto: true,
    forced: WORKS_WITH_NON_GLOBAL_REGEX
  }, {
    matchAll: function matchAll2(regexp2) {
      var O = requireObjectCoercible$1(this);
      var flags, S, matcher, rx;
      if (isObject$2(regexp2)) {
        if (isRegExp$1(regexp2)) {
          flags = toString$1(requireObjectCoercible$1(getRegExpFlags$1(regexp2)));
          if (!~stringIndexOf(flags, "g")) throw new $TypeError$1("`.matchAll` does not allow non-global regexes");
        }
        if (WORKS_WITH_NON_GLOBAL_REGEX) return nativeMatchAll(O, regexp2);
        matcher = getMethod$1(regexp2, MATCH_ALL);
        if (matcher) return call$3(matcher, regexp2, O);
      } else if (WORKS_WITH_NON_GLOBAL_REGEX) return nativeMatchAll(O, regexp2);
      S = toString$1(O);
      rx = new RegExp(regexp2, "g");
      return rx[MATCH_ALL](S);
    }
  });
  MATCH_ALL in RegExpPrototype || defineBuiltIn$2(RegExpPrototype, MATCH_ALL, $matchAll);
  var $$f = _export;
  var call$2 = functionCall;
  var uncurryThis$5 = functionUncurryThis;
  var requireObjectCoercible2 = requireObjectCoercible$k;
  var isCallable$2 = isCallable$z;
  var isObject$1 = isObject$I;
  var isRegExp = isRegexp;
  var toString4 = toString$t;
  var getMethod2 = getMethod$b;
  var getRegExpFlags = regexpGetFlags;
  var getSubstitution2 = getSubstitution$2;
  var wellKnownSymbol$3 = wellKnownSymbol$C;
  var REPLACE = wellKnownSymbol$3("replace");
  var $TypeError = TypeError;
  var indexOf3 = uncurryThis$5("".indexOf);
  uncurryThis$5("".replace);
  var stringSlice$2 = uncurryThis$5("".slice);
  var max = Math.max;
  $$f({
    target: "String",
    proto: true
  }, {
    replaceAll: function replaceAll(searchValue, replaceValue) {
      var O = requireObjectCoercible2(this);
      var IS_REG_EXP, flags, replacer3, string, searchString, functionalReplace, searchLength, advanceBy, position, replacement2;
      var endOfLastMatch = 0;
      var result = "";
      if (isObject$1(searchValue)) {
        IS_REG_EXP = isRegExp(searchValue);
        if (IS_REG_EXP) {
          flags = toString4(requireObjectCoercible2(getRegExpFlags(searchValue)));
          if (!~indexOf3(flags, "g")) throw new $TypeError("`.replaceAll` does not allow non-global regexes");
        }
        replacer3 = getMethod2(searchValue, REPLACE);
        if (replacer3) return call$2(replacer3, searchValue, O, replaceValue);
      }
      string = toString4(O);
      searchString = toString4(searchValue);
      functionalReplace = isCallable$2(replaceValue);
      if (!functionalReplace) replaceValue = toString4(replaceValue);
      searchLength = searchString.length;
      advanceBy = max(1, searchLength);
      position = indexOf3(string, searchString);
      while (position !== -1) {
        replacement2 = functionalReplace ? toString4(replaceValue(searchString, position, string)) : getSubstitution2(searchString, string, position, [], void 0, replaceValue);
        result += stringSlice$2(string, endOfLastMatch, position) + replacement2;
        endOfLastMatch = position + searchLength;
        position = position + advanceBy > string.length ? -1 : indexOf3(string, searchString, position + advanceBy);
      }
      if (endOfLastMatch < string.length) {
        result += stringSlice$2(string, endOfLastMatch);
      }
      return result;
    }
  });
  var globalThis$b = globalThis_1;
  var defineWellKnownSymbol$2 = wellKnownSymbolDefine;
  var defineProperty6 = objectDefineProperty.f;
  var getOwnPropertyDescriptor6 = objectGetOwnPropertyDescriptor.f;
  var _Symbol = globalThis$b.Symbol;
  defineWellKnownSymbol$2("dispose");
  if (_Symbol) {
    var descriptor = getOwnPropertyDescriptor6(_Symbol, "dispose");
    if (descriptor.enumerable && descriptor.configurable && descriptor.writable) {
      defineProperty6(_Symbol, "dispose", {
        value: descriptor.value,
        enumerable: false,
        configurable: false,
        writable: false
      });
    }
  }
  var defineWellKnownSymbol$1 = wellKnownSymbolDefine;
  defineWellKnownSymbol$1("observable");
  var defineWellKnownSymbol = wellKnownSymbolDefine;
  defineWellKnownSymbol("patternMatch");
  var uncurryThis$4 = functionUncurryThis;
  var WeakMapPrototype = WeakMap.prototype;
  var weakMapHelpers = {
    // eslint-disable-next-line es/no-weak-map -- safe
    WeakMap,
    set: uncurryThis$4(WeakMapPrototype.set),
    get: uncurryThis$4(WeakMapPrototype.get),
    has: uncurryThis$4(WeakMapPrototype.has),
    remove: uncurryThis$4(WeakMapPrototype["delete"])
  };
  var has$1 = weakMapHelpers.has;
  var aWeakMap$1 = function aWeakMap(it) {
    has$1(it);
    return it;
  };
  var $$e = _export;
  var aWeakMap2 = aWeakMap$1;
  var remove$1 = weakMapHelpers.remove;
  $$e({
    target: "WeakMap",
    proto: true,
    real: true,
    forced: true
  }, {
    deleteAll: function deleteAll3() {
      var collection3 = aWeakMap2(this);
      var allDeleted = true;
      var wasDeleted;
      for (var k2 = 0, len = arguments.length; k2 < len; k2++) {
        wasDeleted = remove$1(collection3, arguments[k2]);
        allDeleted = allDeleted && wasDeleted;
      }
      return !!allDeleted;
    }
  });
  var $$d = _export;
  var WeakMapHelpers$1 = weakMapHelpers;
  var createCollectionFrom$1 = collectionFrom;
  $$d({
    target: "WeakMap",
    stat: true,
    forced: true
  }, {
    from: createCollectionFrom$1(WeakMapHelpers$1.WeakMap, WeakMapHelpers$1.set, true)
  });
  var $$c = _export;
  var WeakMapHelpers = weakMapHelpers;
  var createCollectionOf$1 = collectionOf;
  $$c({
    target: "WeakMap",
    stat: true,
    forced: true
  }, {
    of: createCollectionOf$1(WeakMapHelpers.WeakMap, WeakMapHelpers.set, true)
  });
  var uncurryThis$3 = functionUncurryThis;
  var WeakSetPrototype = WeakSet.prototype;
  var weakSetHelpers = {
    // eslint-disable-next-line es/no-weak-set -- safe
    WeakSet,
    add: uncurryThis$3(WeakSetPrototype.add),
    has: uncurryThis$3(WeakSetPrototype.has),
    remove: uncurryThis$3(WeakSetPrototype["delete"])
  };
  var has3 = weakSetHelpers.has;
  var aWeakSet$2 = function aWeakSet(it) {
    has3(it);
    return it;
  };
  var $$b = _export;
  var aWeakSet$1 = aWeakSet$2;
  var add2 = weakSetHelpers.add;
  $$b({
    target: "WeakSet",
    proto: true,
    real: true,
    forced: true
  }, {
    addAll: function addAll2() {
      var set6 = aWeakSet$1(this);
      for (var k2 = 0, len = arguments.length; k2 < len; k2++) {
        add2(set6, arguments[k2]);
      }
      return set6;
    }
  });
  var $$a = _export;
  var aWeakSet2 = aWeakSet$2;
  var remove = weakSetHelpers.remove;
  $$a({
    target: "WeakSet",
    proto: true,
    real: true,
    forced: true
  }, {
    deleteAll: function deleteAll4() {
      var collection3 = aWeakSet2(this);
      var allDeleted = true;
      var wasDeleted;
      for (var k2 = 0, len = arguments.length; k2 < len; k2++) {
        wasDeleted = remove(collection3, arguments[k2]);
        allDeleted = allDeleted && wasDeleted;
      }
      return !!allDeleted;
    }
  });
  var $$9 = _export;
  var WeakSetHelpers$1 = weakSetHelpers;
  var createCollectionFrom = collectionFrom;
  $$9({
    target: "WeakSet",
    stat: true,
    forced: true
  }, {
    from: createCollectionFrom(WeakSetHelpers$1.WeakSet, WeakSetHelpers$1.add, false)
  });
  var $$8 = _export;
  var WeakSetHelpers = weakSetHelpers;
  var createCollectionOf = collectionOf;
  $$8({
    target: "WeakSet",
    stat: true,
    forced: true
  }, {
    of: createCollectionOf(WeakSetHelpers.WeakSet, WeakSetHelpers.add, false)
  });
  var domIterables = {
    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
  };
  var documentCreateElement2 = documentCreateElement$2;
  var classList = documentCreateElement2("span").classList;
  var DOMTokenListPrototype$2 = classList && classList.constructor && classList.constructor.prototype;
  var domTokenListPrototype = DOMTokenListPrototype$2 === Object.prototype ? void 0 : DOMTokenListPrototype$2;
  var globalThis$a = globalThis_1;
  var DOMIterables$1 = domIterables;
  var DOMTokenListPrototype$1 = domTokenListPrototype;
  var forEach3 = arrayForEach;
  var createNonEnumerableProperty$1 = createNonEnumerableProperty$d;
  var handlePrototype$1 = function handlePrototype(CollectionPrototype) {
    if (CollectionPrototype && CollectionPrototype.forEach !== forEach3) try {
      createNonEnumerableProperty$1(CollectionPrototype, "forEach", forEach3);
    } catch (error2) {
      CollectionPrototype.forEach = forEach3;
    }
  };
  for (var COLLECTION_NAME$1 in DOMIterables$1) {
    if (DOMIterables$1[COLLECTION_NAME$1]) {
      handlePrototype$1(globalThis$a[COLLECTION_NAME$1] && globalThis$a[COLLECTION_NAME$1].prototype);
    }
  }
  handlePrototype$1(DOMTokenListPrototype$1);
  var globalThis$9 = globalThis_1;
  var DOMIterables = domIterables;
  var DOMTokenListPrototype = domTokenListPrototype;
  var ArrayIteratorMethods = es_array_iterator;
  var createNonEnumerableProperty = createNonEnumerableProperty$d;
  var setToStringTag$2 = setToStringTag$c;
  var wellKnownSymbol$2 = wellKnownSymbol$C;
  var ITERATOR$2 = wellKnownSymbol$2("iterator");
  var ArrayValues = ArrayIteratorMethods.values;
  var handlePrototype2 = function handlePrototype3(CollectionPrototype, COLLECTION_NAME2) {
    if (CollectionPrototype) {
      if (CollectionPrototype[ITERATOR$2] !== ArrayValues) try {
        createNonEnumerableProperty(CollectionPrototype, ITERATOR$2, ArrayValues);
      } catch (error2) {
        CollectionPrototype[ITERATOR$2] = ArrayValues;
      }
      setToStringTag$2(CollectionPrototype, COLLECTION_NAME2, true);
      if (DOMIterables[COLLECTION_NAME2]) for (var METHOD_NAME in ArrayIteratorMethods) {
        if (CollectionPrototype[METHOD_NAME] !== ArrayIteratorMethods[METHOD_NAME]) try {
          createNonEnumerableProperty(CollectionPrototype, METHOD_NAME, ArrayIteratorMethods[METHOD_NAME]);
        } catch (error2) {
          CollectionPrototype[METHOD_NAME] = ArrayIteratorMethods[METHOD_NAME];
        }
      }
    }
  };
  for (var COLLECTION_NAME in DOMIterables) {
    handlePrototype2(globalThis$9[COLLECTION_NAME] && globalThis$9[COLLECTION_NAME].prototype, COLLECTION_NAME);
  }
  handlePrototype2(DOMTokenListPrototype, "DOMTokenList");
  var $$7 = _export;
  var globalThis$8 = globalThis_1;
  var clearImmediate = task$1.clear;
  $$7({
    global: true,
    bind: true,
    enumerable: true,
    forced: globalThis$8.clearImmediate !== clearImmediate
  }, {
    clearImmediate
  });
  var globalThis$7 = globalThis_1;
  var apply2 = functionApply$1;
  var isCallable$1 = isCallable$z;
  var ENVIRONMENT = environment;
  var USER_AGENT = environmentUserAgent;
  var arraySlice$1 = arraySlice$a;
  var validateArgumentsLength$3 = validateArgumentsLength$5;
  var Function$1 = globalThis$7.Function;
  var WRAP = /MSIE .\./.test(USER_AGENT) || ENVIRONMENT === "BUN" && function() {
    var version2 = globalThis$7.Bun.version.split(".");
    return version2.length < 3 || version2[0] === "0" && (version2[1] < 3 || version2[1] === "3" && version2[2] === "0");
  }();
  var schedulersFix$3 = function schedulersFix(scheduler, hasTimeArg) {
    var firstParamIndex = hasTimeArg ? 2 : 1;
    return WRAP ? function(handler, timeout) {
      var boundArgs = validateArgumentsLength$3(arguments.length, 1) > firstParamIndex;
      var fn = isCallable$1(handler) ? handler : Function$1(handler);
      var params = boundArgs ? arraySlice$1(arguments, firstParamIndex) : [];
      var callback = boundArgs ? function() {
        apply2(fn, this, params);
      } : fn;
      return hasTimeArg ? scheduler(callback, timeout) : scheduler(callback);
    } : scheduler;
  };
  var $$6 = _export;
  var globalThis$6 = globalThis_1;
  var setTask = task$1.set;
  var schedulersFix$2 = schedulersFix$3;
  var setImmediate$1 = globalThis$6.setImmediate ? schedulersFix$2(setTask, false) : setTask;
  $$6({
    global: true,
    bind: true,
    enumerable: true,
    forced: globalThis$6.setImmediate !== setImmediate$1
  }, {
    setImmediate: setImmediate$1
  });
  var $$5 = _export;
  var globalThis$5 = globalThis_1;
  var microtask = microtask_1;
  var aCallable2 = aCallable$s;
  var validateArgumentsLength$2 = validateArgumentsLength$5;
  var fails$1 = fails$1e;
  var DESCRIPTORS$3 = descriptors;
  var WRONG_ARITY = fails$1(function() {
    return DESCRIPTORS$3 && Object.getOwnPropertyDescriptor(globalThis$5, "queueMicrotask").value.length !== 1;
  });
  $$5({
    global: true,
    enumerable: true,
    dontCallGetSet: true,
    forced: WRONG_ARITY
  }, {
    queueMicrotask: function queueMicrotask2(fn) {
      validateArgumentsLength$2(arguments.length, 1);
      microtask(aCallable2(fn));
    }
  });
  var $$4 = _export;
  var globalThis$4 = globalThis_1;
  var schedulersFix$1 = schedulersFix$3;
  var setInterval$1 = schedulersFix$1(globalThis$4.setInterval, true);
  $$4({
    global: true,
    bind: true,
    forced: globalThis$4.setInterval !== setInterval$1
  }, {
    setInterval: setInterval$1
  });
  var $$3 = _export;
  var globalThis$3 = globalThis_1;
  var schedulersFix2 = schedulersFix$3;
  var setTimeout$1 = schedulersFix2(globalThis$3.setTimeout, true);
  $$3({
    global: true,
    bind: true,
    forced: globalThis$3.setTimeout !== setTimeout$1
  }, {
    setTimeout: setTimeout$1
  });
  var fails2 = fails$1e;
  var wellKnownSymbol$1 = wellKnownSymbol$C;
  var DESCRIPTORS$2 = descriptors;
  var IS_PURE = isPure;
  var ITERATOR$1 = wellKnownSymbol$1("iterator");
  var urlConstructorDetection = !fails2(function() {
    var url = new URL("b?a=1&b=2&c=3", "https://a");
    var params = url.searchParams;
    var params2 = new URLSearchParams("a=1&a=2&b=3");
    var result = "";
    url.pathname = "c%20d";
    params.forEach(function(value, key) {
      params["delete"]("b");
      result += key + value;
    });
    params2["delete"]("a", 2);
    params2["delete"]("b", void 0);
    return IS_PURE && (!url.toJSON || !params2.has("a", 1) || params2.has("a", 2) || !params2.has("a", void 0) || params2.has("b")) || !params.size && (IS_PURE || !DESCRIPTORS$2) || !params.sort || url.href !== "https://a/c%20d?a=1&c=3" || params.get("c") !== "3" || String(new URLSearchParams("?a=1")) !== "a=1" || !params[ITERATOR$1] || new URL("https://a@b").username !== "a" || new URLSearchParams(new URLSearchParams("a=b")).get("a") !== "b" || new URL("https://тест").host !== "xn--e1aybc" || new URL("https://a#б").hash !== "#%D0%B1" || result !== "a1c3" || new URL("https://x", void 0).host !== "x";
  });
  var uncurryThis$2 = functionUncurryThis;
  var maxInt = 2147483647;
  var base = 36;
  var tMin = 1;
  var tMax = 26;
  var skew = 38;
  var damp = 700;
  var initialBias = 72;
  var initialN = 128;
  var delimiter = "-";
  var regexNonASCII = /[^\0-\u007E]/;
  var regexSeparators = /[.\u3002\uFF0E\uFF61]/g;
  var OVERFLOW_ERROR = "Overflow: input needs wider integers to process";
  var baseMinusTMin = base - tMin;
  var $RangeError = RangeError;
  var exec$2 = uncurryThis$2(regexSeparators.exec);
  var floor$1 = Math.floor;
  var fromCharCode$1 = String.fromCharCode;
  var charCodeAt = uncurryThis$2("".charCodeAt);
  var join$2 = uncurryThis$2([].join);
  var push$2 = uncurryThis$2([].push);
  var replace$2 = uncurryThis$2("".replace);
  var split$2 = uncurryThis$2("".split);
  var toLowerCase$1 = uncurryThis$2("".toLowerCase);
  var ucs2decode = function ucs2decode2(string) {
    var output = [];
    var counter2 = 0;
    var length = string.length;
    while (counter2 < length) {
      var value = charCodeAt(string, counter2++);
      if (value >= 55296 && value <= 56319 && counter2 < length) {
        var extra = charCodeAt(string, counter2++);
        if ((extra & 64512) === 56320) {
          push$2(output, ((value & 1023) << 10) + (extra & 1023) + 65536);
        } else {
          push$2(output, value);
          counter2--;
        }
      } else {
        push$2(output, value);
      }
    }
    return output;
  };
  var digitToBasic = function digitToBasic2(digit) {
    return digit + 22 + 75 * (digit < 26);
  };
  var adapt = function adapt2(delta, numPoints, firstTime) {
    var k2 = 0;
    delta = firstTime ? floor$1(delta / damp) : delta >> 1;
    delta += floor$1(delta / numPoints);
    while (delta > baseMinusTMin * tMax >> 1) {
      delta = floor$1(delta / baseMinusTMin);
      k2 += base;
    }
    return floor$1(k2 + (baseMinusTMin + 1) * delta / (delta + skew));
  };
  var encode = function encode2(input) {
    var output = [];
    input = ucs2decode(input);
    var inputLength = input.length;
    var n = initialN;
    var delta = 0;
    var bias = initialBias;
    var i, currentValue;
    for (i = 0; i < input.length; i++) {
      currentValue = input[i];
      if (currentValue < 128) {
        push$2(output, fromCharCode$1(currentValue));
      }
    }
    var basicLength = output.length;
    var handledCPCount = basicLength;
    if (basicLength) {
      push$2(output, delimiter);
    }
    while (handledCPCount < inputLength) {
      var m = maxInt;
      for (i = 0; i < input.length; i++) {
        currentValue = input[i];
        if (currentValue >= n && currentValue < m) {
          m = currentValue;
        }
      }
      var handledCPCountPlusOne = handledCPCount + 1;
      if (m - n > floor$1((maxInt - delta) / handledCPCountPlusOne)) {
        throw new $RangeError(OVERFLOW_ERROR);
      }
      delta += (m - n) * handledCPCountPlusOne;
      n = m;
      for (i = 0; i < input.length; i++) {
        currentValue = input[i];
        if (currentValue < n && ++delta > maxInt) {
          throw new $RangeError(OVERFLOW_ERROR);
        }
        if (currentValue === n) {
          var q = delta;
          var k2 = base;
          while (true) {
            var t = k2 <= bias ? tMin : k2 >= bias + tMax ? tMax : k2 - bias;
            if (q < t) break;
            var qMinusT = q - t;
            var baseMinusT = base - t;
            push$2(output, fromCharCode$1(digitToBasic(t + qMinusT % baseMinusT)));
            q = floor$1(qMinusT / baseMinusT);
            k2 += base;
          }
          push$2(output, fromCharCode$1(digitToBasic(q)));
          bias = adapt(delta, handledCPCountPlusOne, handledCPCount === basicLength);
          delta = 0;
          handledCPCount++;
        }
      }
      delta++;
      n++;
    }
    return join$2(output, "");
  };
  var stringPunycodeToAscii = function stringPunycodeToAscii2(input) {
    var encoded = [];
    var labels = split$2(replace$2(toLowerCase$1(input), regexSeparators, "."), ".");
    var i, label;
    for (i = 0; i < labels.length; i++) {
      label = labels[i];
      push$2(encoded, exec$2(regexNonASCII, label) ? "xn--" + encode(label) : label);
    }
    return join$2(encoded, ".");
  };
  var $$2 = _export;
  var globalThis$2 = globalThis_1;
  var safeGetBuiltIn2 = safeGetBuiltIn$2;
  var getBuiltIn2 = getBuiltIn$n;
  var call$1 = functionCall;
  var uncurryThis$1 = functionUncurryThis;
  var DESCRIPTORS$1 = descriptors;
  var USE_NATIVE_URL$1 = urlConstructorDetection;
  var defineBuiltIn$1 = defineBuiltIn$l;
  var defineBuiltInAccessor$1 = defineBuiltInAccessor$e;
  var defineBuiltIns2 = defineBuiltIns$6;
  var setToStringTag$1 = setToStringTag$c;
  var createIteratorConstructor = iteratorCreateConstructor;
  var InternalStateModule$1 = internalState;
  var anInstance$1 = anInstance$9;
  var isCallable = isCallable$z;
  var hasOwn$1 = hasOwnProperty_1;
  var bind$1 = functionBindContext;
  var classof = classof$j;
  var anObject2 = anObject$N;
  var isObject2 = isObject$I;
  var $toString$1 = toString$t;
  var create3 = objectCreate;
  var createPropertyDescriptor2 = createPropertyDescriptor$a;
  var getIterator3 = getIterator$5;
  var getIteratorMethod2 = getIteratorMethod$5;
  var createIterResultObject2 = createIterResultObject$7;
  var validateArgumentsLength$1 = validateArgumentsLength$5;
  var wellKnownSymbol2 = wellKnownSymbol$C;
  var arraySort = arraySort$1;
  var ITERATOR = wellKnownSymbol2("iterator");
  var URL_SEARCH_PARAMS = "URLSearchParams";
  var URL_SEARCH_PARAMS_ITERATOR = URL_SEARCH_PARAMS + "Iterator";
  var setInternalState$1 = InternalStateModule$1.set;
  var getInternalParamsState = InternalStateModule$1.getterFor(URL_SEARCH_PARAMS);
  var getInternalIteratorState = InternalStateModule$1.getterFor(URL_SEARCH_PARAMS_ITERATOR);
  var nativeFetch = safeGetBuiltIn2("fetch");
  var NativeRequest = safeGetBuiltIn2("Request");
  var Headers = safeGetBuiltIn2("Headers");
  var RequestPrototype = NativeRequest && NativeRequest.prototype;
  var HeadersPrototype = Headers && Headers.prototype;
  var TypeError$2 = globalThis$2.TypeError;
  var encodeURIComponent$1 = globalThis$2.encodeURIComponent;
  var fromCharCode = String.fromCharCode;
  var fromCodePoint2 = getBuiltIn2("String", "fromCodePoint");
  var $parseInt = parseInt;
  var charAt$1 = uncurryThis$1("".charAt);
  var join$1 = uncurryThis$1([].join);
  var push$1 = uncurryThis$1([].push);
  var replace$1 = uncurryThis$1("".replace);
  var shift$1 = uncurryThis$1([].shift);
  var splice2 = uncurryThis$1([].splice);
  var split$1 = uncurryThis$1("".split);
  var stringSlice$1 = uncurryThis$1("".slice);
  var exec$1 = uncurryThis$1(/./.exec);
  var plus = /\+/g;
  var FALLBACK_REPLACER = "�";
  var VALID_HEX = /^[0-9a-f]+$/i;
  var parseHexOctet = function parseHexOctet2(string, start) {
    var substr = stringSlice$1(string, start, start + 2);
    if (!exec$1(VALID_HEX, substr)) return NaN;
    return $parseInt(substr, 16);
  };
  var getLeadingOnes = function getLeadingOnes2(octet) {
    var count = 0;
    for (var mask = 128; mask > 0 && (octet & mask) !== 0; mask >>= 1) {
      count++;
    }
    return count;
  };
  var utf8Decode = function utf8Decode2(octets) {
    var codePoint = null;
    switch (octets.length) {
      case 1:
        codePoint = octets[0];
        break;
      case 2:
        codePoint = (octets[0] & 31) << 6 | octets[1] & 63;
        break;
      case 3:
        codePoint = (octets[0] & 15) << 12 | (octets[1] & 63) << 6 | octets[2] & 63;
        break;
      case 4:
        codePoint = (octets[0] & 7) << 18 | (octets[1] & 63) << 12 | (octets[2] & 63) << 6 | octets[3] & 63;
        break;
    }
    return codePoint > 1114111 ? null : codePoint;
  };
  var decode = function decode2(input) {
    input = replace$1(input, plus, " ");
    var length = input.length;
    var result = "";
    var i = 0;
    while (i < length) {
      var decodedChar = charAt$1(input, i);
      if (decodedChar === "%") {
        if (charAt$1(input, i + 1) === "%" || i + 3 > length) {
          result += "%";
          i++;
          continue;
        }
        var octet = parseHexOctet(input, i + 1);
        if (octet !== octet) {
          result += decodedChar;
          i++;
          continue;
        }
        i += 2;
        var byteSequenceLength = getLeadingOnes(octet);
        if (byteSequenceLength === 0) {
          decodedChar = fromCharCode(octet);
        } else {
          if (byteSequenceLength === 1 || byteSequenceLength > 4) {
            result += FALLBACK_REPLACER;
            i++;
            continue;
          }
          var octets = [octet];
          var sequenceIndex = 1;
          while (sequenceIndex < byteSequenceLength) {
            i++;
            if (i + 3 > length || charAt$1(input, i) !== "%") break;
            var nextByte = parseHexOctet(input, i + 1);
            if (nextByte !== nextByte) {
              i += 3;
              break;
            }
            if (nextByte > 191 || nextByte < 128) break;
            push$1(octets, nextByte);
            i += 2;
            sequenceIndex++;
          }
          if (octets.length !== byteSequenceLength) {
            result += FALLBACK_REPLACER;
            continue;
          }
          var codePoint = utf8Decode(octets);
          if (codePoint === null) {
            result += FALLBACK_REPLACER;
          } else {
            decodedChar = fromCodePoint2(codePoint);
          }
        }
      }
      result += decodedChar;
      i++;
    }
    return result;
  };
  var find5 = /[!'()~]|%20/g;
  var replacements = {
    "!": "%21",
    "'": "%27",
    "(": "%28",
    ")": "%29",
    "~": "%7E",
    "%20": "+"
  };
  var replacer = function replacer2(match2) {
    return replacements[match2];
  };
  var _serialize = function serialize(it) {
    return replace$1(encodeURIComponent$1(it), find5, replacer);
  };
  var URLSearchParamsIterator = createIteratorConstructor(function Iterator(params, kind) {
    setInternalState$1(this, {
      type: URL_SEARCH_PARAMS_ITERATOR,
      target: getInternalParamsState(params).entries,
      index: 0,
      kind
    });
  }, URL_SEARCH_PARAMS, function next7() {
    var state = getInternalIteratorState(this);
    var target = state.target;
    var index2 = state.index++;
    if (!target || index2 >= target.length) {
      state.target = null;
      return createIterResultObject2(void 0, true);
    }
    var entry = target[index2];
    switch (state.kind) {
      case "keys":
        return createIterResultObject2(entry.key, false);
      case "values":
        return createIterResultObject2(entry.value, false);
    }
    return createIterResultObject2([entry.key, entry.value], false);
  }, true);
  var URLSearchParamsState = function URLSearchParamsState2(init) {
    this.entries = [];
    this.url = null;
    if (init !== void 0) {
      if (isObject2(init)) this.parseObject(init);
      else this.parseQuery(typeof init == "string" ? charAt$1(init, 0) === "?" ? stringSlice$1(init, 1) : init : $toString$1(init));
    }
  };
  URLSearchParamsState.prototype = {
    type: URL_SEARCH_PARAMS,
    bindURL: function bindURL(url) {
      this.url = url;
      this.update();
    },
    parseObject: function parseObject(object) {
      var entries5 = this.entries;
      var iteratorMethod = getIteratorMethod2(object);
      var iterator2, next8, step, entryIterator, entryNext, first, second;
      if (iteratorMethod) {
        iterator2 = getIterator3(object, iteratorMethod);
        next8 = iterator2.next;
        while (!(step = call$1(next8, iterator2)).done) {
          entryIterator = getIterator3(anObject2(step.value));
          entryNext = entryIterator.next;
          if ((first = call$1(entryNext, entryIterator)).done || (second = call$1(entryNext, entryIterator)).done || !call$1(entryNext, entryIterator).done) throw new TypeError$2("Expected sequence with length 2");
          push$1(entries5, {
            key: $toString$1(first.value),
            value: $toString$1(second.value)
          });
        }
      } else for (var key in object) if (hasOwn$1(object, key)) {
        push$1(entries5, {
          key,
          value: $toString$1(object[key])
        });
      }
    },
    parseQuery: function parseQuery(query) {
      if (query) {
        var entries5 = this.entries;
        var attributes = split$1(query, "&");
        var index2 = 0;
        var attribute, entry;
        while (index2 < attributes.length) {
          attribute = attributes[index2++];
          if (attribute.length) {
            entry = split$1(attribute, "=");
            push$1(entries5, {
              key: decode(shift$1(entry)),
              value: decode(join$1(entry, "="))
            });
          }
        }
      }
    },
    serialize: function serialize2() {
      var entries5 = this.entries;
      var result = [];
      var index2 = 0;
      var entry;
      while (index2 < entries5.length) {
        entry = entries5[index2++];
        push$1(result, _serialize(entry.key) + "=" + _serialize(entry.value));
      }
      return join$1(result, "&");
    },
    update: function update2() {
      this.entries.length = 0;
      this.parseQuery(this.url.query);
    },
    updateURL: function updateURL() {
      if (this.url) this.url.update();
    }
  };
  var URLSearchParamsConstructor = function URLSearchParams2() {
    anInstance$1(this, URLSearchParamsPrototype);
    var init = arguments.length > 0 ? arguments[0] : void 0;
    var state = setInternalState$1(this, new URLSearchParamsState(init));
    if (!DESCRIPTORS$1) this.size = state.entries.length;
  };
  var URLSearchParamsPrototype = URLSearchParamsConstructor.prototype;
  defineBuiltIns2(URLSearchParamsPrototype, {
    // `URLSearchParams.prototype.append` method
    // https://url.spec.whatwg.org/#dom-urlsearchparams-append
    append: function append(name2, value) {
      var state = getInternalParamsState(this);
      validateArgumentsLength$1(arguments.length, 2);
      push$1(state.entries, {
        key: $toString$1(name2),
        value: $toString$1(value)
      });
      if (!DESCRIPTORS$1) this.length++;
      state.updateURL();
    },
    // `URLSearchParams.prototype.delete` method
    // https://url.spec.whatwg.org/#dom-urlsearchparams-delete
    "delete": function _delete2(name2) {
      var state = getInternalParamsState(this);
      var length = validateArgumentsLength$1(arguments.length, 1);
      var entries5 = state.entries;
      var key = $toString$1(name2);
      var $value = length < 2 ? void 0 : arguments[1];
      var value = $value === void 0 ? $value : $toString$1($value);
      var index2 = 0;
      while (index2 < entries5.length) {
        var entry = entries5[index2];
        if (entry.key === key && (value === void 0 || entry.value === value)) {
          splice2(entries5, index2, 1);
          if (value !== void 0) break;
        } else index2++;
      }
      if (!DESCRIPTORS$1) this.size = entries5.length;
      state.updateURL();
    },
    // `URLSearchParams.prototype.get` method
    // https://url.spec.whatwg.org/#dom-urlsearchparams-get
    get: function get5(name2) {
      var entries5 = getInternalParamsState(this).entries;
      validateArgumentsLength$1(arguments.length, 1);
      var key = $toString$1(name2);
      var index2 = 0;
      for (; index2 < entries5.length; index2++) {
        if (entries5[index2].key === key) return entries5[index2].value;
      }
      return null;
    },
    // `URLSearchParams.prototype.getAll` method
    // https://url.spec.whatwg.org/#dom-urlsearchparams-getall
    getAll: function getAll(name2) {
      var entries5 = getInternalParamsState(this).entries;
      validateArgumentsLength$1(arguments.length, 1);
      var key = $toString$1(name2);
      var result = [];
      var index2 = 0;
      for (; index2 < entries5.length; index2++) {
        if (entries5[index2].key === key) push$1(result, entries5[index2].value);
      }
      return result;
    },
    // `URLSearchParams.prototype.has` method
    // https://url.spec.whatwg.org/#dom-urlsearchparams-has
    has: function has4(name2) {
      var entries5 = getInternalParamsState(this).entries;
      var length = validateArgumentsLength$1(arguments.length, 1);
      var key = $toString$1(name2);
      var $value = length < 2 ? void 0 : arguments[1];
      var value = $value === void 0 ? $value : $toString$1($value);
      var index2 = 0;
      while (index2 < entries5.length) {
        var entry = entries5[index2++];
        if (entry.key === key && (value === void 0 || entry.value === value)) return true;
      }
      return false;
    },
    // `URLSearchParams.prototype.set` method
    // https://url.spec.whatwg.org/#dom-urlsearchparams-set
    set: function set5(name2, value) {
      var state = getInternalParamsState(this);
      validateArgumentsLength$1(arguments.length, 1);
      var entries5 = state.entries;
      var found = false;
      var key = $toString$1(name2);
      var val = $toString$1(value);
      var index2 = 0;
      var entry;
      for (; index2 < entries5.length; index2++) {
        entry = entries5[index2];
        if (entry.key === key) {
          if (found) splice2(entries5, index2--, 1);
          else {
            found = true;
            entry.value = val;
          }
        }
      }
      if (!found) push$1(entries5, {
        key,
        value: val
      });
      if (!DESCRIPTORS$1) this.size = entries5.length;
      state.updateURL();
    },
    // `URLSearchParams.prototype.sort` method
    // https://url.spec.whatwg.org/#dom-urlsearchparams-sort
    sort: function sort4() {
      var state = getInternalParamsState(this);
      arraySort(state.entries, function(a, b) {
        return a.key > b.key ? 1 : -1;
      });
      state.updateURL();
    },
    // `URLSearchParams.prototype.forEach` method
    forEach: function forEach4(callback) {
      var entries5 = getInternalParamsState(this).entries;
      var boundFunction = bind$1(callback, arguments.length > 1 ? arguments[1] : void 0);
      var index2 = 0;
      var entry;
      while (index2 < entries5.length) {
        entry = entries5[index2++];
        boundFunction(entry.value, entry.key, this);
      }
    },
    // `URLSearchParams.prototype.keys` method
    keys: function keys5() {
      return new URLSearchParamsIterator(this, "keys");
    },
    // `URLSearchParams.prototype.values` method
    values: function values4() {
      return new URLSearchParamsIterator(this, "values");
    },
    // `URLSearchParams.prototype.entries` method
    entries: function entries4() {
      return new URLSearchParamsIterator(this, "entries");
    }
  }, {
    enumerable: true
  });
  defineBuiltIn$1(URLSearchParamsPrototype, ITERATOR, URLSearchParamsPrototype.entries, {
    name: "entries"
  });
  defineBuiltIn$1(URLSearchParamsPrototype, "toString", function toString5() {
    return getInternalParamsState(this).serialize();
  }, {
    enumerable: true
  });
  if (DESCRIPTORS$1) defineBuiltInAccessor$1(URLSearchParamsPrototype, "size", {
    get: function size2() {
      return getInternalParamsState(this).entries.length;
    },
    configurable: true,
    enumerable: true
  });
  setToStringTag$1(URLSearchParamsConstructor, URL_SEARCH_PARAMS);
  $$2({
    global: true,
    constructor: true,
    forced: !USE_NATIVE_URL$1
  }, {
    URLSearchParams: URLSearchParamsConstructor
  });
  if (!USE_NATIVE_URL$1 && isCallable(Headers)) {
    var headersHas = uncurryThis$1(HeadersPrototype.has);
    var headersSet = uncurryThis$1(HeadersPrototype.set);
    var wrapRequestOptions = function wrapRequestOptions2(init) {
      if (isObject2(init)) {
        var body = init.body;
        var headers;
        if (classof(body) === URL_SEARCH_PARAMS) {
          headers = init.headers ? new Headers(init.headers) : new Headers();
          if (!headersHas(headers, "content-type")) {
            headersSet(headers, "content-type", "application/x-www-form-urlencoded;charset=UTF-8");
          }
          return create3(init, {
            body: createPropertyDescriptor2(0, $toString$1(body)),
            headers: createPropertyDescriptor2(0, headers)
          });
        }
      }
      return init;
    };
    if (isCallable(nativeFetch)) {
      $$2({
        global: true,
        enumerable: true,
        dontCallGetSet: true,
        forced: true
      }, {
        fetch: function fetch2(input) {
          return nativeFetch(input, arguments.length > 1 ? wrapRequestOptions(arguments[1]) : {});
        }
      });
    }
    if (isCallable(NativeRequest)) {
      var RequestConstructor = function Request2(input) {
        anInstance$1(this, RequestPrototype);
        return new NativeRequest(input, arguments.length > 1 ? wrapRequestOptions(arguments[1]) : {});
      };
      RequestPrototype.constructor = RequestConstructor;
      RequestConstructor.prototype = RequestPrototype;
      $$2({
        global: true,
        constructor: true,
        dontCallGetSet: true,
        forced: true
      }, {
        Request: RequestConstructor
      });
    }
  }
  var web_urlSearchParams_constructor = {
    URLSearchParams: URLSearchParamsConstructor,
    getState: getInternalParamsState
  };
  var $$1 = _export;
  var DESCRIPTORS = descriptors;
  var USE_NATIVE_URL = urlConstructorDetection;
  var globalThis$1 = globalThis_1;
  var bind3 = functionBindContext;
  var uncurryThis = functionUncurryThis;
  var defineBuiltIn2 = defineBuiltIn$l;
  var defineBuiltInAccessor2 = defineBuiltInAccessor$e;
  var anInstance2 = anInstance$9;
  var hasOwn2 = hasOwnProperty_1;
  var assign2 = objectAssign;
  var arrayFrom = arrayFrom$1;
  var arraySlice = arraySlice$a;
  var codeAt = stringMultibyte.codeAt;
  var toASCII = stringPunycodeToAscii;
  var $toString = toString$t;
  var setToStringTag2 = setToStringTag$c;
  var validateArgumentsLength2 = validateArgumentsLength$5;
  var URLSearchParamsModule = web_urlSearchParams_constructor;
  var InternalStateModule = internalState;
  var setInternalState = InternalStateModule.set;
  var getInternalURLState = InternalStateModule.getterFor("URL");
  var URLSearchParams$1 = URLSearchParamsModule.URLSearchParams;
  var getInternalSearchParamsState = URLSearchParamsModule.getState;
  var NativeURL = globalThis$1.URL;
  var TypeError$1 = globalThis$1.TypeError;
  var parseInt$1 = globalThis$1.parseInt;
  var floor = Math.floor;
  var pow2 = Math.pow;
  var charAt = uncurryThis("".charAt);
  var exec = uncurryThis(/./.exec);
  var join4 = uncurryThis([].join);
  var numberToString = uncurryThis(1 .toString);
  var pop = uncurryThis([].pop);
  var push = uncurryThis([].push);
  var replace = uncurryThis("".replace);
  var shift = uncurryThis([].shift);
  var split = uncurryThis("".split);
  var stringSlice = uncurryThis("".slice);
  var toLowerCase = uncurryThis("".toLowerCase);
  var unshift = uncurryThis([].unshift);
  var INVALID_AUTHORITY = "Invalid authority";
  var INVALID_SCHEME = "Invalid scheme";
  var INVALID_HOST = "Invalid host";
  var INVALID_PORT = "Invalid port";
  var ALPHA = /[a-z]/i;
  var ALPHANUMERIC = /[\d+-.a-z]/i;
  var DIGIT = /\d/;
  var HEX_START = /^0x/i;
  var OCT = /^[0-7]+$/;
  var DEC = /^\d+$/;
  var HEX = /^[\da-f]+$/i;
  var FORBIDDEN_HOST_CODE_POINT = /[\0\t\n\r #%/:<>?@[\\\]^|]/;
  var FORBIDDEN_HOST_CODE_POINT_EXCLUDING_PERCENT = /[\0\t\n\r #/:<>?@[\\\]^|]/;
  var LEADING_C0_CONTROL_OR_SPACE = /^[\u0000-\u0020]+/;
  var TRAILING_C0_CONTROL_OR_SPACE = /(^|[^\u0000-\u0020])[\u0000-\u0020]+$/;
  var TAB_AND_NEW_LINE = /[\t\n\r]/g;
  var EOF;
  var parseIPv4 = function parseIPv42(input) {
    var parts = split(input, ".");
    var partsLength, numbers, index2, part, radix, number, ipv4;
    if (parts.length && parts[parts.length - 1] === "") {
      parts.length--;
    }
    partsLength = parts.length;
    if (partsLength > 4) return input;
    numbers = [];
    for (index2 = 0; index2 < partsLength; index2++) {
      part = parts[index2];
      if (part === "") return input;
      radix = 10;
      if (part.length > 1 && charAt(part, 0) === "0") {
        radix = exec(HEX_START, part) ? 16 : 8;
        part = stringSlice(part, radix === 8 ? 1 : 2);
      }
      if (part === "") {
        number = 0;
      } else {
        if (!exec(radix === 10 ? DEC : radix === 8 ? OCT : HEX, part)) return input;
        number = parseInt$1(part, radix);
      }
      push(numbers, number);
    }
    for (index2 = 0; index2 < partsLength; index2++) {
      number = numbers[index2];
      if (index2 === partsLength - 1) {
        if (number >= pow2(256, 5 - partsLength)) return null;
      } else if (number > 255) return null;
    }
    ipv4 = pop(numbers);
    for (index2 = 0; index2 < numbers.length; index2++) {
      ipv4 += numbers[index2] * pow2(256, 3 - index2);
    }
    return ipv4;
  };
  var parseIPv6 = function parseIPv62(input) {
    var address = [0, 0, 0, 0, 0, 0, 0, 0];
    var pieceIndex = 0;
    var compress = null;
    var pointer = 0;
    var value, length, numbersSeen, ipv4Piece, number, swaps, swap;
    var chr = function chr2() {
      return charAt(input, pointer);
    };
    if (chr() === ":") {
      if (charAt(input, 1) !== ":") return;
      pointer += 2;
      pieceIndex++;
      compress = pieceIndex;
    }
    while (chr()) {
      if (pieceIndex === 8) return;
      if (chr() === ":") {
        if (compress !== null) return;
        pointer++;
        pieceIndex++;
        compress = pieceIndex;
        continue;
      }
      value = length = 0;
      while (length < 4 && exec(HEX, chr())) {
        value = value * 16 + parseInt$1(chr(), 16);
        pointer++;
        length++;
      }
      if (chr() === ".") {
        if (length === 0) return;
        pointer -= length;
        if (pieceIndex > 6) return;
        numbersSeen = 0;
        while (chr()) {
          ipv4Piece = null;
          if (numbersSeen > 0) {
            if (chr() === "." && numbersSeen < 4) pointer++;
            else return;
          }
          if (!exec(DIGIT, chr())) return;
          while (exec(DIGIT, chr())) {
            number = parseInt$1(chr(), 10);
            if (ipv4Piece === null) ipv4Piece = number;
            else if (ipv4Piece === 0) return;
            else ipv4Piece = ipv4Piece * 10 + number;
            if (ipv4Piece > 255) return;
            pointer++;
          }
          address[pieceIndex] = address[pieceIndex] * 256 + ipv4Piece;
          numbersSeen++;
          if (numbersSeen === 2 || numbersSeen === 4) pieceIndex++;
        }
        if (numbersSeen !== 4) return;
        break;
      } else if (chr() === ":") {
        pointer++;
        if (!chr()) return;
      } else if (chr()) return;
      address[pieceIndex++] = value;
    }
    if (compress !== null) {
      swaps = pieceIndex - compress;
      pieceIndex = 7;
      while (pieceIndex !== 0 && swaps > 0) {
        swap = address[pieceIndex];
        address[pieceIndex--] = address[compress + swaps - 1];
        address[compress + --swaps] = swap;
      }
    } else if (pieceIndex !== 8) return;
    return address;
  };
  var findLongestZeroSequence = function findLongestZeroSequence2(ipv6) {
    var maxIndex = null;
    var maxLength = 1;
    var currStart = null;
    var currLength = 0;
    var index2 = 0;
    for (; index2 < 8; index2++) {
      if (ipv6[index2] !== 0) {
        if (currLength > maxLength) {
          maxIndex = currStart;
          maxLength = currLength;
        }
        currStart = null;
        currLength = 0;
      } else {
        if (currStart === null) currStart = index2;
        ++currLength;
      }
    }
    return currLength > maxLength ? currStart : maxIndex;
  };
  var serializeHost = function serializeHost2(host) {
    var result, index2, compress, ignore0;
    if (typeof host == "number") {
      result = [];
      for (index2 = 0; index2 < 4; index2++) {
        unshift(result, host % 256);
        host = floor(host / 256);
      }
      return join4(result, ".");
    }
    if (_typeof(host) == "object") {
      result = "";
      compress = findLongestZeroSequence(host);
      for (index2 = 0; index2 < 8; index2++) {
        if (ignore0 && host[index2] === 0) continue;
        if (ignore0) ignore0 = false;
        if (compress === index2) {
          result += index2 ? ":" : "::";
          ignore0 = true;
        } else {
          result += numberToString(host[index2], 16);
          if (index2 < 7) result += ":";
        }
      }
      return "[" + result + "]";
    }
    return host;
  };
  var C0ControlPercentEncodeSet = {};
  var fragmentPercentEncodeSet = assign2({}, C0ControlPercentEncodeSet, {
    " ": 1,
    '"': 1,
    "<": 1,
    ">": 1,
    "`": 1
  });
  var pathPercentEncodeSet = assign2({}, fragmentPercentEncodeSet, {
    "#": 1,
    "?": 1,
    "{": 1,
    "}": 1
  });
  var userinfoPercentEncodeSet = assign2({}, pathPercentEncodeSet, {
    "/": 1,
    ":": 1,
    ";": 1,
    "=": 1,
    "@": 1,
    "[": 1,
    "\\": 1,
    "]": 1,
    "^": 1,
    "|": 1
  });
  var percentEncode = function percentEncode2(chr, set6) {
    var code = codeAt(chr, 0);
    return code > 32 && code < 127 && !hasOwn2(set6, chr) ? chr : encodeURIComponent(chr);
  };
  var specialSchemes = {
    ftp: 21,
    file: null,
    http: 80,
    https: 443,
    ws: 80,
    wss: 443
  };
  var isWindowsDriveLetter = function isWindowsDriveLetter2(string, normalized) {
    var second;
    return string.length === 2 && exec(ALPHA, charAt(string, 0)) && ((second = charAt(string, 1)) === ":" || !normalized && second === "|");
  };
  var startsWithWindowsDriveLetter = function startsWithWindowsDriveLetter2(string) {
    var third;
    return string.length > 1 && isWindowsDriveLetter(stringSlice(string, 0, 2)) && (string.length === 2 || (third = charAt(string, 2)) === "/" || third === "\\" || third === "?" || third === "#");
  };
  var isSingleDot = function isSingleDot2(segment) {
    return segment === "." || toLowerCase(segment) === "%2e";
  };
  var isDoubleDot = function isDoubleDot2(segment) {
    segment = toLowerCase(segment);
    return segment === ".." || segment === "%2e." || segment === ".%2e" || segment === "%2e%2e";
  };
  var SCHEME_START = {};
  var SCHEME = {};
  var NO_SCHEME = {};
  var SPECIAL_RELATIVE_OR_AUTHORITY = {};
  var PATH_OR_AUTHORITY = {};
  var RELATIVE = {};
  var RELATIVE_SLASH = {};
  var SPECIAL_AUTHORITY_SLASHES = {};
  var SPECIAL_AUTHORITY_IGNORE_SLASHES = {};
  var AUTHORITY = {};
  var HOST = {};
  var HOSTNAME = {};
  var PORT = {};
  var FILE = {};
  var FILE_SLASH = {};
  var FILE_HOST = {};
  var PATH_START = {};
  var PATH = {};
  var CANNOT_BE_A_BASE_URL_PATH = {};
  var QUERY = {};
  var FRAGMENT = {};
  var _URLState = function URLState(url, isBase, base2) {
    var urlString = $toString(url);
    var baseState, failure, searchParams;
    if (isBase) {
      failure = this.parse(urlString);
      if (failure) throw new TypeError$1(failure);
      this.searchParams = null;
    } else {
      if (base2 !== void 0) baseState = new _URLState(base2, true);
      failure = this.parse(urlString, null, baseState);
      if (failure) throw new TypeError$1(failure);
      searchParams = getInternalSearchParamsState(new URLSearchParams$1());
      searchParams.bindURL(this);
      this.searchParams = searchParams;
    }
  };
  _URLState.prototype = {
    type: "URL",
    // https://url.spec.whatwg.org/#url-parsing
    // eslint-disable-next-line max-statements -- TODO
    parse: function parse(input, stateOverride, base2) {
      var url = this;
      var state = stateOverride || SCHEME_START;
      var pointer = 0;
      var buffer = "";
      var seenAt = false;
      var seenBracket = false;
      var seenPasswordToken = false;
      var codePoints2, chr, bufferCodePoints, failure;
      input = $toString(input);
      if (!stateOverride) {
        url.scheme = "";
        url.username = "";
        url.password = "";
        url.host = null;
        url.port = null;
        url.path = [];
        url.query = null;
        url.fragment = null;
        url.cannotBeABaseURL = false;
        input = replace(input, LEADING_C0_CONTROL_OR_SPACE, "");
        input = replace(input, TRAILING_C0_CONTROL_OR_SPACE, "$1");
      }
      input = replace(input, TAB_AND_NEW_LINE, "");
      codePoints2 = arrayFrom(input);
      while (pointer <= codePoints2.length) {
        chr = codePoints2[pointer];
        switch (state) {
          case SCHEME_START:
            if (chr && exec(ALPHA, chr)) {
              buffer += toLowerCase(chr);
              state = SCHEME;
            } else if (!stateOverride) {
              state = NO_SCHEME;
              continue;
            } else return INVALID_SCHEME;
            break;
          case SCHEME:
            if (chr && (exec(ALPHANUMERIC, chr) || chr === "+" || chr === "-" || chr === ".")) {
              buffer += toLowerCase(chr);
            } else if (chr === ":") {
              if (stateOverride && (url.isSpecial() !== hasOwn2(specialSchemes, buffer) || buffer === "file" && (url.includesCredentials() || url.port !== null) || url.scheme === "file" && !url.host)) return;
              url.scheme = buffer;
              if (stateOverride) {
                if (url.isSpecial() && specialSchemes[url.scheme] === url.port) url.port = null;
                return;
              }
              buffer = "";
              if (url.scheme === "file") {
                state = FILE;
              } else if (url.isSpecial() && base2 && base2.scheme === url.scheme) {
                state = SPECIAL_RELATIVE_OR_AUTHORITY;
              } else if (url.isSpecial()) {
                state = SPECIAL_AUTHORITY_SLASHES;
              } else if (codePoints2[pointer + 1] === "/") {
                state = PATH_OR_AUTHORITY;
                pointer++;
              } else {
                url.cannotBeABaseURL = true;
                push(url.path, "");
                state = CANNOT_BE_A_BASE_URL_PATH;
              }
            } else if (!stateOverride) {
              buffer = "";
              state = NO_SCHEME;
              pointer = 0;
              continue;
            } else return INVALID_SCHEME;
            break;
          case NO_SCHEME:
            if (!base2 || base2.cannotBeABaseURL && chr !== "#") return INVALID_SCHEME;
            if (base2.cannotBeABaseURL && chr === "#") {
              url.scheme = base2.scheme;
              url.path = arraySlice(base2.path);
              url.query = base2.query;
              url.fragment = "";
              url.cannotBeABaseURL = true;
              state = FRAGMENT;
              break;
            }
            state = base2.scheme === "file" ? FILE : RELATIVE;
            continue;
          case SPECIAL_RELATIVE_OR_AUTHORITY:
            if (chr === "/" && codePoints2[pointer + 1] === "/") {
              state = SPECIAL_AUTHORITY_IGNORE_SLASHES;
              pointer++;
            } else {
              state = RELATIVE;
              continue;
            }
            break;
          case PATH_OR_AUTHORITY:
            if (chr === "/") {
              state = AUTHORITY;
              break;
            } else {
              state = PATH;
              continue;
            }
          case RELATIVE:
            url.scheme = base2.scheme;
            if (chr === EOF) {
              url.username = base2.username;
              url.password = base2.password;
              url.host = base2.host;
              url.port = base2.port;
              url.path = arraySlice(base2.path);
              url.query = base2.query;
            } else if (chr === "/" || chr === "\\" && url.isSpecial()) {
              state = RELATIVE_SLASH;
            } else if (chr === "?") {
              url.username = base2.username;
              url.password = base2.password;
              url.host = base2.host;
              url.port = base2.port;
              url.path = arraySlice(base2.path);
              url.query = "";
              state = QUERY;
            } else if (chr === "#") {
              url.username = base2.username;
              url.password = base2.password;
              url.host = base2.host;
              url.port = base2.port;
              url.path = arraySlice(base2.path);
              url.query = base2.query;
              url.fragment = "";
              state = FRAGMENT;
            } else {
              url.username = base2.username;
              url.password = base2.password;
              url.host = base2.host;
              url.port = base2.port;
              url.path = arraySlice(base2.path);
              url.path.length--;
              state = PATH;
              continue;
            }
            break;
          case RELATIVE_SLASH:
            if (url.isSpecial() && (chr === "/" || chr === "\\")) {
              state = SPECIAL_AUTHORITY_IGNORE_SLASHES;
            } else if (chr === "/") {
              state = AUTHORITY;
            } else {
              url.username = base2.username;
              url.password = base2.password;
              url.host = base2.host;
              url.port = base2.port;
              state = PATH;
              continue;
            }
            break;
          case SPECIAL_AUTHORITY_SLASHES:
            state = SPECIAL_AUTHORITY_IGNORE_SLASHES;
            if (chr !== "/" || charAt(buffer, pointer + 1) !== "/") continue;
            pointer++;
            break;
          case SPECIAL_AUTHORITY_IGNORE_SLASHES:
            if (chr !== "/" && chr !== "\\") {
              state = AUTHORITY;
              continue;
            }
            break;
          case AUTHORITY:
            if (chr === "@") {
              if (seenAt) buffer = "%40" + buffer;
              seenAt = true;
              bufferCodePoints = arrayFrom(buffer);
              for (var i = 0; i < bufferCodePoints.length; i++) {
                var codePoint = bufferCodePoints[i];
                if (codePoint === ":" && !seenPasswordToken) {
                  seenPasswordToken = true;
                  continue;
                }
                var encodedCodePoints = percentEncode(codePoint, userinfoPercentEncodeSet);
                if (seenPasswordToken) url.password += encodedCodePoints;
                else url.username += encodedCodePoints;
              }
              buffer = "";
            } else if (chr === EOF || chr === "/" || chr === "?" || chr === "#" || chr === "\\" && url.isSpecial()) {
              if (seenAt && buffer === "") return INVALID_AUTHORITY;
              pointer -= arrayFrom(buffer).length + 1;
              buffer = "";
              state = HOST;
            } else buffer += chr;
            break;
          case HOST:
          case HOSTNAME:
            if (stateOverride && url.scheme === "file") {
              state = FILE_HOST;
              continue;
            } else if (chr === ":" && !seenBracket) {
              if (buffer === "") return INVALID_HOST;
              failure = url.parseHost(buffer);
              if (failure) return failure;
              buffer = "";
              state = PORT;
              if (stateOverride === HOSTNAME) return;
            } else if (chr === EOF || chr === "/" || chr === "?" || chr === "#" || chr === "\\" && url.isSpecial()) {
              if (url.isSpecial() && buffer === "") return INVALID_HOST;
              if (stateOverride && buffer === "" && (url.includesCredentials() || url.port !== null)) return;
              failure = url.parseHost(buffer);
              if (failure) return failure;
              buffer = "";
              state = PATH_START;
              if (stateOverride) return;
              continue;
            } else {
              if (chr === "[") seenBracket = true;
              else if (chr === "]") seenBracket = false;
              buffer += chr;
            }
            break;
          case PORT:
            if (exec(DIGIT, chr)) {
              buffer += chr;
            } else if (chr === EOF || chr === "/" || chr === "?" || chr === "#" || chr === "\\" && url.isSpecial() || stateOverride) {
              if (buffer !== "") {
                var port2 = parseInt$1(buffer, 10);
                if (port2 > 65535) return INVALID_PORT;
                url.port = url.isSpecial() && port2 === specialSchemes[url.scheme] ? null : port2;
                buffer = "";
              }
              if (stateOverride) return;
              state = PATH_START;
              continue;
            } else return INVALID_PORT;
            break;
          case FILE:
            url.scheme = "file";
            if (chr === "/" || chr === "\\") state = FILE_SLASH;
            else if (base2 && base2.scheme === "file") {
              switch (chr) {
                case EOF:
                  url.host = base2.host;
                  url.path = arraySlice(base2.path);
                  url.query = base2.query;
                  break;
                case "?":
                  url.host = base2.host;
                  url.path = arraySlice(base2.path);
                  url.query = "";
                  state = QUERY;
                  break;
                case "#":
                  url.host = base2.host;
                  url.path = arraySlice(base2.path);
                  url.query = base2.query;
                  url.fragment = "";
                  state = FRAGMENT;
                  break;
                default:
                  if (!startsWithWindowsDriveLetter(join4(arraySlice(codePoints2, pointer), ""))) {
                    url.host = base2.host;
                    url.path = arraySlice(base2.path);
                    url.shortenPath();
                  }
                  state = PATH;
                  continue;
              }
            } else {
              state = PATH;
              continue;
            }
            break;
          case FILE_SLASH:
            if (chr === "/" || chr === "\\") {
              state = FILE_HOST;
              break;
            }
            if (base2 && base2.scheme === "file" && !startsWithWindowsDriveLetter(join4(arraySlice(codePoints2, pointer), ""))) {
              if (isWindowsDriveLetter(base2.path[0], true)) push(url.path, base2.path[0]);
              else url.host = base2.host;
            }
            state = PATH;
            continue;
          case FILE_HOST:
            if (chr === EOF || chr === "/" || chr === "\\" || chr === "?" || chr === "#") {
              if (!stateOverride && isWindowsDriveLetter(buffer)) {
                state = PATH;
              } else if (buffer === "") {
                url.host = "";
                if (stateOverride) return;
                state = PATH_START;
              } else {
                failure = url.parseHost(buffer);
                if (failure) return failure;
                if (url.host === "localhost") url.host = "";
                if (stateOverride) return;
                buffer = "";
                state = PATH_START;
              }
              continue;
            } else buffer += chr;
            break;
          case PATH_START:
            if (url.isSpecial()) {
              state = PATH;
              if (chr !== "/" && chr !== "\\") continue;
            } else if (!stateOverride && chr === "?") {
              url.query = "";
              state = QUERY;
            } else if (!stateOverride && chr === "#") {
              url.fragment = "";
              state = FRAGMENT;
            } else if (chr !== EOF) {
              state = PATH;
              if (chr !== "/") continue;
            }
            break;
          case PATH:
            if (chr === EOF || chr === "/" || chr === "\\" && url.isSpecial() || !stateOverride && (chr === "?" || chr === "#")) {
              if (isDoubleDot(buffer)) {
                url.shortenPath();
                if (chr !== "/" && !(chr === "\\" && url.isSpecial())) {
                  push(url.path, "");
                }
              } else if (isSingleDot(buffer)) {
                if (chr !== "/" && !(chr === "\\" && url.isSpecial())) {
                  push(url.path, "");
                }
              } else {
                if (url.scheme === "file" && !url.path.length && isWindowsDriveLetter(buffer)) {
                  if (url.host) url.host = "";
                  buffer = charAt(buffer, 0) + ":";
                }
                push(url.path, buffer);
              }
              buffer = "";
              if (url.scheme === "file" && (chr === EOF || chr === "?" || chr === "#")) {
                while (url.path.length > 1 && url.path[0] === "") {
                  shift(url.path);
                }
              }
              if (chr === "?") {
                url.query = "";
                state = QUERY;
              } else if (chr === "#") {
                url.fragment = "";
                state = FRAGMENT;
              }
            } else {
              buffer += percentEncode(chr, pathPercentEncodeSet);
            }
            break;
          case CANNOT_BE_A_BASE_URL_PATH:
            if (chr === "?") {
              url.query = "";
              state = QUERY;
            } else if (chr === "#") {
              url.fragment = "";
              state = FRAGMENT;
            } else if (chr !== EOF) {
              url.path[0] += percentEncode(chr, C0ControlPercentEncodeSet);
            }
            break;
          case QUERY:
            if (!stateOverride && chr === "#") {
              url.fragment = "";
              state = FRAGMENT;
            } else if (chr !== EOF) {
              if (chr === "'" && url.isSpecial()) url.query += "%27";
              else if (chr === "#") url.query += "%23";
              else url.query += percentEncode(chr, C0ControlPercentEncodeSet);
            }
            break;
          case FRAGMENT:
            if (chr !== EOF) url.fragment += percentEncode(chr, fragmentPercentEncodeSet);
            break;
        }
        pointer++;
      }
    },
    // https://url.spec.whatwg.org/#host-parsing
    parseHost: function parseHost(input) {
      var result, codePoints2, index2;
      if (charAt(input, 0) === "[") {
        if (charAt(input, input.length - 1) !== "]") return INVALID_HOST;
        result = parseIPv6(stringSlice(input, 1, -1));
        if (!result) return INVALID_HOST;
        this.host = result;
      } else if (!this.isSpecial()) {
        if (exec(FORBIDDEN_HOST_CODE_POINT_EXCLUDING_PERCENT, input)) return INVALID_HOST;
        result = "";
        codePoints2 = arrayFrom(input);
        for (index2 = 0; index2 < codePoints2.length; index2++) {
          result += percentEncode(codePoints2[index2], C0ControlPercentEncodeSet);
        }
        this.host = result;
      } else {
        input = toASCII(input);
        if (exec(FORBIDDEN_HOST_CODE_POINT, input)) return INVALID_HOST;
        result = parseIPv4(input);
        if (result === null) return INVALID_HOST;
        this.host = result;
      }
    },
    // https://url.spec.whatwg.org/#cannot-have-a-username-password-port
    cannotHaveUsernamePasswordPort: function cannotHaveUsernamePasswordPort() {
      return !this.host || this.cannotBeABaseURL || this.scheme === "file";
    },
    // https://url.spec.whatwg.org/#include-credentials
    includesCredentials: function includesCredentials() {
      return this.username !== "" || this.password !== "";
    },
    // https://url.spec.whatwg.org/#is-special
    isSpecial: function isSpecial() {
      return hasOwn2(specialSchemes, this.scheme);
    },
    // https://url.spec.whatwg.org/#shorten-a-urls-path
    shortenPath: function shortenPath() {
      var path2 = this.path;
      var pathSize = path2.length;
      if (pathSize && (this.scheme !== "file" || pathSize !== 1 || !isWindowsDriveLetter(path2[0], true))) {
        path2.length--;
      }
    },
    // https://url.spec.whatwg.org/#concept-url-serializer
    serialize: function serialize3() {
      var url = this;
      var scheme = url.scheme;
      var username = url.username;
      var password = url.password;
      var host = url.host;
      var port2 = url.port;
      var path2 = url.path;
      var query = url.query;
      var fragment = url.fragment;
      var output = scheme + ":";
      if (host !== null) {
        output += "//";
        if (url.includesCredentials()) {
          output += username + (password ? ":" + password : "") + "@";
        }
        output += serializeHost(host);
        if (port2 !== null) output += ":" + port2;
      } else if (scheme === "file") output += "//";
      output += url.cannotBeABaseURL ? path2[0] : path2.length ? "/" + join4(path2, "/") : "";
      if (query !== null) output += "?" + query;
      if (fragment !== null) output += "#" + fragment;
      return output;
    },
    // https://url.spec.whatwg.org/#dom-url-href
    setHref: function setHref(href) {
      var failure = this.parse(href);
      if (failure) throw new TypeError$1(failure);
      this.searchParams.update();
    },
    // https://url.spec.whatwg.org/#dom-url-origin
    getOrigin: function getOrigin() {
      var scheme = this.scheme;
      var port2 = this.port;
      if (scheme === "blob") try {
        return new URLConstructor(scheme.path[0]).origin;
      } catch (error2) {
        return "null";
      }
      if (scheme === "file" || !this.isSpecial()) return "null";
      return scheme + "://" + serializeHost(this.host) + (port2 !== null ? ":" + port2 : "");
    },
    // https://url.spec.whatwg.org/#dom-url-protocol
    getProtocol: function getProtocol() {
      return this.scheme + ":";
    },
    setProtocol: function setProtocol(protocol) {
      this.parse($toString(protocol) + ":", SCHEME_START);
    },
    // https://url.spec.whatwg.org/#dom-url-username
    getUsername: function getUsername() {
      return this.username;
    },
    setUsername: function setUsername(username) {
      var codePoints2 = arrayFrom($toString(username));
      if (this.cannotHaveUsernamePasswordPort()) return;
      this.username = "";
      for (var i = 0; i < codePoints2.length; i++) {
        this.username += percentEncode(codePoints2[i], userinfoPercentEncodeSet);
      }
    },
    // https://url.spec.whatwg.org/#dom-url-password
    getPassword: function getPassword() {
      return this.password;
    },
    setPassword: function setPassword(password) {
      var codePoints2 = arrayFrom($toString(password));
      if (this.cannotHaveUsernamePasswordPort()) return;
      this.password = "";
      for (var i = 0; i < codePoints2.length; i++) {
        this.password += percentEncode(codePoints2[i], userinfoPercentEncodeSet);
      }
    },
    // https://url.spec.whatwg.org/#dom-url-host
    getHost: function getHost() {
      var host = this.host;
      var port2 = this.port;
      return host === null ? "" : port2 === null ? serializeHost(host) : serializeHost(host) + ":" + port2;
    },
    setHost: function setHost(host) {
      if (this.cannotBeABaseURL) return;
      this.parse(host, HOST);
    },
    // https://url.spec.whatwg.org/#dom-url-hostname
    getHostname: function getHostname() {
      var host = this.host;
      return host === null ? "" : serializeHost(host);
    },
    setHostname: function setHostname(hostname) {
      if (this.cannotBeABaseURL) return;
      this.parse(hostname, HOSTNAME);
    },
    // https://url.spec.whatwg.org/#dom-url-port
    getPort: function getPort() {
      var port2 = this.port;
      return port2 === null ? "" : $toString(port2);
    },
    setPort: function setPort(port2) {
      if (this.cannotHaveUsernamePasswordPort()) return;
      port2 = $toString(port2);
      if (port2 === "") this.port = null;
      else this.parse(port2, PORT);
    },
    // https://url.spec.whatwg.org/#dom-url-pathname
    getPathname: function getPathname() {
      var path2 = this.path;
      return this.cannotBeABaseURL ? path2[0] : path2.length ? "/" + join4(path2, "/") : "";
    },
    setPathname: function setPathname(pathname) {
      if (this.cannotBeABaseURL) return;
      this.path = [];
      this.parse(pathname, PATH_START);
    },
    // https://url.spec.whatwg.org/#dom-url-search
    getSearch: function getSearch() {
      var query = this.query;
      return query ? "?" + query : "";
    },
    setSearch: function setSearch(search) {
      search = $toString(search);
      if (search === "") {
        this.query = null;
      } else {
        if (charAt(search, 0) === "?") search = stringSlice(search, 1);
        this.query = "";
        this.parse(search, QUERY);
      }
      this.searchParams.update();
    },
    // https://url.spec.whatwg.org/#dom-url-searchparams
    getSearchParams: function getSearchParams() {
      return this.searchParams.facade;
    },
    // https://url.spec.whatwg.org/#dom-url-hash
    getHash: function getHash() {
      var fragment = this.fragment;
      return fragment ? "#" + fragment : "";
    },
    setHash: function setHash(hash) {
      hash = $toString(hash);
      if (hash === "") {
        this.fragment = null;
        return;
      }
      if (charAt(hash, 0) === "#") hash = stringSlice(hash, 1);
      this.fragment = "";
      this.parse(hash, FRAGMENT);
    },
    update: function update3() {
      this.query = this.searchParams.serialize() || null;
    }
  };
  var URLConstructor = function URL2(url) {
    var that = anInstance2(this, URLPrototype);
    var base2 = validateArgumentsLength2(arguments.length, 1) > 1 ? arguments[1] : void 0;
    var state = setInternalState(that, new _URLState(url, false, base2));
    if (!DESCRIPTORS) {
      that.href = state.serialize();
      that.origin = state.getOrigin();
      that.protocol = state.getProtocol();
      that.username = state.getUsername();
      that.password = state.getPassword();
      that.host = state.getHost();
      that.hostname = state.getHostname();
      that.port = state.getPort();
      that.pathname = state.getPathname();
      that.search = state.getSearch();
      that.searchParams = state.getSearchParams();
      that.hash = state.getHash();
    }
  };
  var URLPrototype = URLConstructor.prototype;
  var accessorDescriptor = function accessorDescriptor2(getter, setter) {
    return {
      get: function get6() {
        return getInternalURLState(this)[getter]();
      },
      set: setter && function(value) {
        return getInternalURLState(this)[setter](value);
      },
      configurable: true,
      enumerable: true
    };
  };
  if (DESCRIPTORS) {
    defineBuiltInAccessor2(URLPrototype, "href", accessorDescriptor("serialize", "setHref"));
    defineBuiltInAccessor2(URLPrototype, "origin", accessorDescriptor("getOrigin"));
    defineBuiltInAccessor2(URLPrototype, "protocol", accessorDescriptor("getProtocol", "setProtocol"));
    defineBuiltInAccessor2(URLPrototype, "username", accessorDescriptor("getUsername", "setUsername"));
    defineBuiltInAccessor2(URLPrototype, "password", accessorDescriptor("getPassword", "setPassword"));
    defineBuiltInAccessor2(URLPrototype, "host", accessorDescriptor("getHost", "setHost"));
    defineBuiltInAccessor2(URLPrototype, "hostname", accessorDescriptor("getHostname", "setHostname"));
    defineBuiltInAccessor2(URLPrototype, "port", accessorDescriptor("getPort", "setPort"));
    defineBuiltInAccessor2(URLPrototype, "pathname", accessorDescriptor("getPathname", "setPathname"));
    defineBuiltInAccessor2(URLPrototype, "search", accessorDescriptor("getSearch", "setSearch"));
    defineBuiltInAccessor2(URLPrototype, "searchParams", accessorDescriptor("getSearchParams"));
    defineBuiltInAccessor2(URLPrototype, "hash", accessorDescriptor("getHash", "setHash"));
  }
  defineBuiltIn2(URLPrototype, "toJSON", function toJSON2() {
    return getInternalURLState(this).serialize();
  }, {
    enumerable: true
  });
  defineBuiltIn2(URLPrototype, "toString", function toString6() {
    return getInternalURLState(this).serialize();
  }, {
    enumerable: true
  });
  if (NativeURL) {
    var nativeCreateObjectURL = NativeURL.createObjectURL;
    var nativeRevokeObjectURL = NativeURL.revokeObjectURL;
    if (nativeCreateObjectURL) defineBuiltIn2(URLConstructor, "createObjectURL", bind3(nativeCreateObjectURL, NativeURL));
    if (nativeRevokeObjectURL) defineBuiltIn2(URLConstructor, "revokeObjectURL", bind3(nativeRevokeObjectURL, NativeURL));
  }
  setToStringTag2(URLConstructor, "URL");
  $$1({
    global: true,
    constructor: true,
    forced: !USE_NATIVE_URL,
    sham: !DESCRIPTORS
  }, {
    URL: URLConstructor
  });
  var $ = _export;
  var call = functionCall;
  $({
    target: "URL",
    proto: true,
    enumerable: true
  }, {
    toJSON: function toJSON3() {
      return call(URL.prototype.toString, this);
    }
  });
  var ObsErrorCode = /* @__PURE__ */ function(ObsErrorCode2) {
    ObsErrorCode2[ObsErrorCode2["UPLOAD_NETWORK_ERROR"] = 10001] = "UPLOAD_NETWORK_ERROR";
    ObsErrorCode2[ObsErrorCode2["SLICE_UPLOAD_INIT_AUTH_ERROR"] = 10022] = "SLICE_UPLOAD_INIT_AUTH_ERROR";
    ObsErrorCode2[ObsErrorCode2["SLICE_UPLOAD_INIT_ERROR"] = 10002] = "SLICE_UPLOAD_INIT_ERROR";
    ObsErrorCode2[ObsErrorCode2["SLICE_UPLOAD_PART_AUTH_ERROR"] = 10033] = "SLICE_UPLOAD_PART_AUTH_ERROR";
    ObsErrorCode2[ObsErrorCode2["SLICE_UPLOAD_PART_ERROR"] = 10003] = "SLICE_UPLOAD_PART_ERROR";
    ObsErrorCode2[ObsErrorCode2["SLICE_UPLOAD_MERGE_AUTH_ERROR"] = 10055] = "SLICE_UPLOAD_MERGE_AUTH_ERROR";
    ObsErrorCode2[ObsErrorCode2["SLICE_UPLOAD_MERGE_ERROR"] = 10005] = "SLICE_UPLOAD_MERGE_ERROR";
    ObsErrorCode2[ObsErrorCode2["SLICE_UPLOAD_GET_FILE_IFNO_ERROR"] = 10006] = "SLICE_UPLOAD_GET_FILE_IFNO_ERROR";
    ObsErrorCode2[ObsErrorCode2["ONE_UPLOAD_GET_TIONE_ERROR"] = 10009] = "ONE_UPLOAD_GET_TIONE_ERROR";
    ObsErrorCode2[ObsErrorCode2["ONE_UPLOAD_ERROR"] = 10099] = "ONE_UPLOAD_ERROR";
    ObsErrorCode2[ObsErrorCode2["UPLOAD_ABORT_ERROR"] = 10007] = "UPLOAD_ABORT_ERROR";
    return ObsErrorCode2;
  }(ObsErrorCode || {});
  var _OBS_ERROR_CODE_MAP;
  var OBS_ERROR_CODE_MAP = (_OBS_ERROR_CODE_MAP = {}, _defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_OBS_ERROR_CODE_MAP, ObsErrorCode.UPLOAD_NETWORK_ERROR, "请求失败,请检查网络"), ObsErrorCode.SLICE_UPLOAD_INIT_AUTH_ERROR, "切片上传文件初始化信息的临时URL获取失败,请检查网络"), ObsErrorCode.SLICE_UPLOAD_INIT_ERROR, "切片上传文件初始化信息获取失败,请检查文件"), ObsErrorCode.SLICE_UPLOAD_PART_AUTH_ERROR, "切片上传文件段的临时URL获取失败,请检查网络"), ObsErrorCode.SLICE_UPLOAD_PART_ERROR, "切片上传文件段失败,请检查文件"), ObsErrorCode.SLICE_UPLOAD_MERGE_AUTH_ERROR, "合并文件段的临时URL获取失败,请检查网络"), ObsErrorCode.SLICE_UPLOAD_MERGE_ERROR, "合并文件段失败,请检查文件"), ObsErrorCode.SLICE_UPLOAD_GET_FILE_IFNO_ERROR, "获取文件信息失败,请检查网络"), ObsErrorCode.ONE_UPLOAD_GET_TIONE_ERROR, "单文件上传获取临时URL失败,请检查网络"), ObsErrorCode.ONE_UPLOAD_ERROR, "单文件上传失败,请检查文件"), _defineProperty(_OBS_ERROR_CODE_MAP, ObsErrorCode.UPLOAD_ABORT_ERROR, "文件上传取消失败,请检查网络"));
  var ObsError = /* @__PURE__ */ function(_Error) {
    function ObsError2(message, code) {
      var _this;
      _classCallCheck(this, ObsError2);
      _this = _callSuper(this, ObsError2, [message]);
      _defineProperty(_this, "code", void 0);
      _this.name = "ObsError";
      _this.code = code;
      return _this;
    }
    _inherits(ObsError2, _Error);
    return _createClass(ObsError2, null, [{
      key: "create",
      value: function create5(code, message) {
        var _ref, _OBS_ERROR_CODE_MAP$c;
        return new ObsError2((_ref = (_OBS_ERROR_CODE_MAP$c = OBS_ERROR_CODE_MAP === null || OBS_ERROR_CODE_MAP === void 0 ? void 0 : OBS_ERROR_CODE_MAP[code]) !== null && _OBS_ERROR_CODE_MAP$c !== void 0 ? _OBS_ERROR_CODE_MAP$c : message) !== null && _ref !== void 0 ? _ref : "未知错误", code);
      }
    }]);
  }(/* @__PURE__ */ _wrapNativeSuper(Error));
  var UploadFileStatusEnum = /* @__PURE__ */ function(UploadFileStatusEnum2) {
    UploadFileStatusEnum2["READY"] = "ready";
    UploadFileStatusEnum2["UPLOADING"] = "uploading";
    UploadFileStatusEnum2["SUCCESS"] = "success";
    UploadFileStatusEnum2["ERROR"] = "error";
    UploadFileStatusEnum2["ABORT"] = "abort";
    return UploadFileStatusEnum2;
  }(UploadFileStatusEnum || {});
  var UploadFile = /* @__PURE__ */ function() {
    function UploadFile2(globalOptions2, uploadOptions) {
      _classCallCheck(this, UploadFile2);
      _defineProperty(this, "globalOptions", void 0);
      _defineProperty(this, "uploadOptions", void 0);
      _defineProperty(this, "uploadStatus", void 0);
      _defineProperty(this, "cancelTokenSource", void 0);
      _defineProperty(this, "filePath", void 0);
      this.globalOptions = globalOptions2;
      this.uploadOptions = uploadOptions;
      this.uploadStatus = UploadFileStatusEnum.READY;
      this.filePath = "";
      this.cancelTokenSource = axios.CancelToken.source();
    }
    return _createClass(UploadFile2, [{
      key: "getFileName",
      value: function getFileName() {
        return this.uploadOptions.sourceFile.name;
      }
      /**
       * 获取文件上传目录
       * @returns 返回文件上传目录
       */
    }, {
      key: "getFileDir",
      value: function getFileDir() {
        var _this$filePath$match$, _this$filePath$match;
        return (_this$filePath$match$ = (_this$filePath$match = this.filePath.match(/^.*\//)) === null || _this$filePath$match === void 0 ? void 0 : _this$filePath$match[0]) !== null && _this$filePath$match$ !== void 0 ? _this$filePath$match$ : "";
      }
      /**
       * 获取文件完整路径
       * @returns 返回文件完整路径
       */
    }, {
      key: "getFilePath",
      value: function getFilePath() {
        return this.filePath;
      }
      /**
       * 获取文件下载地址
       */
    }, {
      key: "getFIleInfo",
      value: function() {
        var _getFIleInfo = _asyncToGenerator(/* @__PURE__ */ _regeneratorRuntime().mark(function _callee() {
          var fileInfo;
          return _regeneratorRuntime().wrap(function _callee$(_context) {
            while (1) switch (_context.prev = _context.next) {
              case 0:
                _context.next = 2;
                return axios({
                  url: "/backend-api/tuzai/file/downloadLink/batch",
                  method: "POST",
                  data: {
                    dir: this.getFileDir(),
                    fileKey: [this.getFileName()]
                  },
                  headers: {
                    Authorization: this.globalOptions.getToken()
                  },
                  cancelToken: this.cancelTokenSource.token
                });
              case 2:
                fileInfo = _context.sent;
                if (!(fileInfo.data.code !== 200)) {
                  _context.next = 5;
                  break;
                }
                throw ObsError.create(ObsErrorCode.SLICE_UPLOAD_GET_FILE_IFNO_ERROR);
              case 5:
                return _context.abrupt("return", fileInfo.data.data[0]);
              case 6:
              case "end":
                return _context.stop();
            }
          }, _callee, this);
        }));
        function getFIleInfo() {
          return _getFIleInfo.apply(this, arguments);
        }
        return getFIleInfo;
      }()
    }, {
      key: "shouldAbort",
      value: function shouldAbort() {
        return this.uploadStatus === UploadFileStatusEnum.ABORT;
      }
    }]);
  }();
  var OneUploadFile = /* @__PURE__ */ function(_UploadFile) {
    function OneUploadFile2(globalOptions2, uploadOptions) {
      var _this;
      _classCallCheck(this, OneUploadFile2);
      _this = _callSuper(this, OneUploadFile2, [globalOptions2, uploadOptions]);
      _defineProperty(_this, "signatureData", null);
      _this.execute();
      return _this;
    }
    _inherits(OneUploadFile2, _UploadFile);
    return _createClass(OneUploadFile2, [{
      key: "loadUploadToken",
      value: function() {
        var _loadUploadToken = _asyncToGenerator(/* @__PURE__ */ _regeneratorRuntime().mark(function _callee() {
          var uploadTokenResponse;
          return _regeneratorRuntime().wrap(function _callee$(_context) {
            while (1) switch (_context.prev = _context.next) {
              case 0:
                _context.next = 2;
                return axios({
                  url: "/backend-api/tuzai/file/uploadToken",
                  method: "POST",
                  headers: {
                    "Authorization": this.globalOptions.getToken(),
                    "Content-Type": "application/x-www-form-urlencoded"
                  },
                  data: {
                    fileKey: this.getFileName()
                  },
                  cancelToken: this.cancelTokenSource.token
                });
              case 2:
                uploadTokenResponse = _context.sent;
                if (!(uploadTokenResponse.data.code !== 200)) {
                  _context.next = 5;
                  break;
                }
                throw ObsError.create(ObsErrorCode.UPLOAD_ABORT_ERROR);
              case 5:
                return _context.abrupt("return", {
                  signatureData: uploadTokenResponse.data.data.signatureData,
                  filePath: uploadTokenResponse.data.data.objectKey
                });
              case 6:
              case "end":
                return _context.stop();
            }
          }, _callee, this);
        }));
        function loadUploadToken() {
          return _loadUploadToken.apply(this, arguments);
        }
        return loadUploadToken;
      }()
    }, {
      key: "runUploadFile",
      value: function() {
        var _runUploadFile = _asyncToGenerator(/* @__PURE__ */ _regeneratorRuntime().mark(function _callee2() {
          var _this2 = this;
          var formData, uploadFileResponse;
          return _regeneratorRuntime().wrap(function _callee2$(_context2) {
            while (1) switch (_context2.prev = _context2.next) {
              case 0:
                formData = new FormData();
                formData.append("key", this.getFilePath());
                formData.append("content-type", this.uploadOptions.sourceFile.type);
                formData.append("policy", this.signatureData.policy);
                formData.append("AccessKeyId", this.signatureData.accessId);
                formData.append("signature", this.signatureData.signature);
                formData.append("file", this.uploadOptions.sourceFile);
                _context2.next = 9;
                return axios({
                  url: this.signatureData.host,
                  method: "post",
                  data: formData,
                  onUploadProgress: function onUploadProgress(progressEvent) {
                    var _this2$uploadOptions, _this2$uploadOptions$;
                    var num = Math.round(progressEvent.loaded / progressEvent.total * 100 || 0);
                    (_this2$uploadOptions = _this2.uploadOptions) === null || _this2$uploadOptions === void 0 || (_this2$uploadOptions$ = _this2$uploadOptions.onProgress) === null || _this2$uploadOptions$ === void 0 || _this2$uploadOptions$.call(_this2$uploadOptions, {
                      percent: Math.max(Math.min(99, num), 1)
                    });
                  },
                  cancelToken: this.cancelTokenSource.token
                });
              case 9:
                uploadFileResponse = _context2.sent;
                if (!(uploadFileResponse.status >= 300 || uploadFileResponse.status < 200)) {
                  _context2.next = 12;
                  break;
                }
                throw ObsError.create(ObsErrorCode.UPLOAD_ABORT_ERROR);
              case 12:
              case "end":
                return _context2.stop();
            }
          }, _callee2, this);
        }));
        function runUploadFile() {
          return _runUploadFile.apply(this, arguments);
        }
        return runUploadFile;
      }()
    }, {
      key: "execute",
      value: function() {
        var _execute = _asyncToGenerator(/* @__PURE__ */ _regeneratorRuntime().mark(function _callee3() {
          var _this$uploadOptions, _this$uploadOptions$o, _this$uploadOptions2, _this$uploadOptions2$, _this$uploadOptions3, _this$uploadOptions3$, _this$uploadOptions4, _this$uploadOptions4$, _this$uploadOptions5, _this$uploadOptions5$, _this$uploadOptions6, _this$uploadOptions6$, _yield$this$loadUploa, signatureData, filePath, fileInfo, _this$uploadOptions7, _this$uploadOptions7$, _this$uploadOptions8, _this$uploadOptions8$;
          return _regeneratorRuntime().wrap(function _callee3$(_context3) {
            while (1) switch (_context3.prev = _context3.next) {
              case 0:
                _context3.prev = 0;
                this.uploadStatus = UploadFileStatusEnum.READY;
                (_this$uploadOptions = this.uploadOptions) === null || _this$uploadOptions === void 0 || (_this$uploadOptions$o = _this$uploadOptions.onStart) === null || _this$uploadOptions$o === void 0 || _this$uploadOptions$o.call(_this$uploadOptions);
                (_this$uploadOptions2 = this.uploadOptions) === null || _this$uploadOptions2 === void 0 || (_this$uploadOptions2$ = _this$uploadOptions2.onProgress) === null || _this$uploadOptions2$ === void 0 || _this$uploadOptions2$.call(_this$uploadOptions2, {
                  percent: 0
                });
                _context3.next = 6;
                return this.loadUploadToken();
              case 6:
                _yield$this$loadUploa = _context3.sent;
                signatureData = _yield$this$loadUploa.signatureData;
                filePath = _yield$this$loadUploa.filePath;
                this.signatureData = signatureData;
                this.filePath = filePath;
                (_this$uploadOptions3 = this.uploadOptions) === null || _this$uploadOptions3 === void 0 || (_this$uploadOptions3$ = _this$uploadOptions3.onProgress) === null || _this$uploadOptions3$ === void 0 || _this$uploadOptions3$.call(_this$uploadOptions3, {
                  percent: 1
                });
                _context3.next = 14;
                return this.runUploadFile();
              case 14:
                (_this$uploadOptions4 = this.uploadOptions) === null || _this$uploadOptions4 === void 0 || (_this$uploadOptions4$ = _this$uploadOptions4.onProgress) === null || _this$uploadOptions4$ === void 0 || _this$uploadOptions4$.call(_this$uploadOptions4, {
                  percent: 99
                });
                _context3.next = 17;
                return this.getFIleInfo();
              case 17:
                fileInfo = _context3.sent;
                (_this$uploadOptions5 = this.uploadOptions) === null || _this$uploadOptions5 === void 0 || (_this$uploadOptions5$ = _this$uploadOptions5.onProgress) === null || _this$uploadOptions5$ === void 0 || _this$uploadOptions5$.call(_this$uploadOptions5, {
                  percent: 100
                });
                (_this$uploadOptions6 = this.uploadOptions) === null || _this$uploadOptions6 === void 0 || (_this$uploadOptions6$ = _this$uploadOptions6.onSuccess) === null || _this$uploadOptions6$ === void 0 || _this$uploadOptions6$.call(_this$uploadOptions6, {
                  sourceFile: this.uploadOptions.sourceFile,
                  fileInfo
                });
                _context3.next = 28;
                break;
              case 22:
                _context3.prev = 22;
                _context3.t0 = _context3["catch"](0);
                if (!this.shouldAbort()) {
                  _context3.next = 26;
                  break;
                }
                return _context3.abrupt("return");
              case 26:
                this.uploadStatus = UploadFileStatusEnum.ERROR;
                (_this$uploadOptions7 = this.uploadOptions) === null || _this$uploadOptions7 === void 0 || (_this$uploadOptions7$ = _this$uploadOptions7.onError) === null || _this$uploadOptions7$ === void 0 || _this$uploadOptions7$.call(_this$uploadOptions7, _context3.t0);
              case 28:
                _context3.prev = 28;
                (_this$uploadOptions8 = this.uploadOptions) === null || _this$uploadOptions8 === void 0 || (_this$uploadOptions8$ = _this$uploadOptions8.onFinally) === null || _this$uploadOptions8$ === void 0 || _this$uploadOptions8$.call(_this$uploadOptions8);
                return _context3.finish(28);
              case 31:
              case "end":
                return _context3.stop();
            }
          }, _callee3, this, [[0, 22, 28, 31]]);
        }));
        function execute() {
          return _execute.apply(this, arguments);
        }
        return execute;
      }()
    }, {
      key: "abort",
      value: function abort() {
        var _this$uploadOptions9, _this$uploadOptions9$;
        this.cancelTokenSource.cancel();
        this.uploadStatus = UploadFileStatusEnum.ABORT;
        (_this$uploadOptions9 = this.uploadOptions) === null || _this$uploadOptions9 === void 0 || (_this$uploadOptions9$ = _this$uploadOptions9.onAbort) === null || _this$uploadOptions9$ === void 0 || _this$uploadOptions9$.call(_this$uploadOptions9);
      }
    }]);
  }(UploadFile);
  var SliceUploadFile = /* @__PURE__ */ function(_UploadFile) {
    function SliceUploadFile2(globalOptions2, uploadOptions) {
      var _this;
      _classCallCheck(this, SliceUploadFile2);
      _this = _callSuper(this, SliceUploadFile2, [globalOptions2, uploadOptions]);
      _defineProperty(_this, "fileParts", void 0);
      _defineProperty(_this, "etagList", void 0);
      _defineProperty(_this, "uploadId", void 0);
      _this.fileParts = [];
      _this.etagList = [];
      _this.uploadId = "";
      _this.execute();
      return _this;
    }
    _inherits(SliceUploadFile2, _UploadFile);
    return _createClass(SliceUploadFile2, [{
      key: "loadUploadId",
      value: function() {
        var _loadUploadId = _asyncToGenerator(/* @__PURE__ */ _regeneratorRuntime().mark(function _callee() {
          var authResponse, obsResponse, obsXmlData, UploadId;
          return _regeneratorRuntime().wrap(function _callee$(_context) {
            while (1) switch (_context.prev = _context.next) {
              case 0:
                _context.next = 2;
                return axios({
                  url: "/backend-api/tuzai/file/presign/initiateMultiPartUpload",
                  method: "POST",
                  data: {
                    fileKey: this.getFileName(),
                    contentType: this.uploadOptions.sourceFile.type
                  },
                  headers: {
                    Authorization: this.globalOptions.getToken()
                  },
                  cancelToken: this.cancelTokenSource.token
                });
              case 2:
                authResponse = _context.sent;
                if (!(authResponse.data.code !== 200)) {
                  _context.next = 5;
                  break;
                }
                throw ObsError.create(ObsErrorCode.SLICE_UPLOAD_INIT_ERROR);
              case 5:
                this.filePath = authResponse.data.data.objectKey;
                _context.next = 8;
                return axios({
                  url: authResponse.data.data.signedUrl,
                  method: "POST",
                  withCredentials: false,
                  headers: authResponse.data.data.actualSignedRequestHeaders || {},
                  maxRedirects: 0,
                  responseType: "text",
                  cancelToken: this.cancelTokenSource.token
                });
              case 8:
                obsResponse = _context.sent;
                if (!(obsResponse.status > 300 || obsResponse.status < 200)) {
                  _context.next = 11;
                  break;
                }
                throw ObsError.create(ObsErrorCode.SLICE_UPLOAD_INIT_ERROR);
              case 11:
                obsXmlData = new DOMParser().parseFromString(obsResponse.data, "text/xml");
                UploadId = obsXmlData.getElementsByTagName("UploadId")[0].innerHTML;
                return _context.abrupt("return", UploadId);
              case 14:
              case "end":
                return _context.stop();
            }
          }, _callee, this);
        }));
        function loadUploadId() {
          return _loadUploadId.apply(this, arguments);
        }
        return loadUploadId;
      }()
    }, {
      key: "generateFileParts",
      value: function generateFileParts() {
        var fileSize = this.uploadOptions.sourceFile.size;
        var fileParts = [];
        var index2 = 0;
        var offset = 0;
        while (offset < fileSize) {
          var size3 = Math.min(this.uploadOptions.partSize, fileSize - offset);
          var filePart = {
            index: index2 + 1,
            size: size3,
            offset
          };
          fileParts.push(filePart);
          offset += this.uploadOptions.partSize;
          index2 += 1;
        }
        return fileParts;
      }
      /**
       * 上传各个分片。
       * @returns 返回上传结果数组
       */
    }, {
      key: "uploadFileParts",
      value: function() {
        var _uploadFileParts = _asyncToGenerator(/* @__PURE__ */ _regeneratorRuntime().mark(function _callee2() {
          var etagList, i, _this$uploadOptions, _this$uploadOptions$o, filePart, authResponse, obsResponse;
          return _regeneratorRuntime().wrap(function _callee2$(_context2) {
            while (1) switch (_context2.prev = _context2.next) {
              case 0:
                etagList = [];
                i = 0;
              case 2:
                if (!(i < this.fileParts.length)) {
                  _context2.next = 19;
                  break;
                }
                filePart = this.fileParts[i];
                _context2.next = 6;
                return axios({
                  url: "/backend-api/tuzai/file/presign/multiPartUpload",
                  method: "POST",
                  data: {
                    fileKey: this.getFilePath(),
                    contentType: this.uploadOptions.sourceFile.type,
                    partNumber: filePart.index,
                    uploadId: this.uploadId
                  },
                  headers: {
                    Authorization: this.globalOptions.getToken()
                  },
                  cancelToken: this.cancelTokenSource.token
                });
              case 6:
                authResponse = _context2.sent;
                if (!(authResponse.data.code !== 200)) {
                  _context2.next = 9;
                  break;
                }
                throw ObsError.create(ObsErrorCode.SLICE_UPLOAD_INIT_AUTH_ERROR);
              case 9:
                _context2.next = 11;
                return axios({
                  method: "PUT",
                  url: authResponse.data.data.signedUrl,
                  withCredentials: false,
                  headers: authResponse.data.data.actualSignedRequestHeaders || {},
                  maxRedirects: 0,
                  responseType: "text",
                  data: this.uploadOptions.sourceFile.slice(filePart.offset, filePart.offset + filePart.size),
                  cancelToken: this.cancelTokenSource.token
                });
              case 11:
                obsResponse = _context2.sent;
                if (!(obsResponse.status > 300 || obsResponse.status < 200)) {
                  _context2.next = 14;
                  break;
                }
                throw ObsError.create(ObsErrorCode.SLICE_UPLOAD_PART_ERROR);
              case 14:
                etagList.push({
                  ETag: JSON.parse(obsResponse.headers.etag),
                  PartNumber: filePart.index
                });
                (_this$uploadOptions = this.uploadOptions) === null || _this$uploadOptions === void 0 || (_this$uploadOptions$o = _this$uploadOptions.onProgress) === null || _this$uploadOptions$o === void 0 || _this$uploadOptions$o.call(_this$uploadOptions, {
                  percent: Math.max(Math.min(98, Math.round(filePart.index / this.fileParts.length * 100 || 0)), 1)
                });
              case 16:
                i += 1;
                _context2.next = 2;
                break;
              case 19:
                return _context2.abrupt("return", etagList);
              case 20:
              case "end":
                return _context2.stop();
            }
          }, _callee2, this);
        }));
        function uploadFileParts() {
          return _uploadFileParts.apply(this, arguments);
        }
        return uploadFileParts;
      }()
    }, {
      key: "mergeFileParts",
      value: function() {
        var _mergeFileParts = _asyncToGenerator(/* @__PURE__ */ _regeneratorRuntime().mark(function _callee3() {
          var authResponse, content, obsResponse;
          return _regeneratorRuntime().wrap(function _callee3$(_context3) {
            while (1) switch (_context3.prev = _context3.next) {
              case 0:
                _context3.next = 2;
                return axios({
                  url: "/backend-api/tuzai/file/presign/completeMultiPartUpload",
                  method: "POST",
                  data: {
                    fileKey: this.getFilePath(),
                    contentType: this.uploadOptions.sourceFile.type,
                    uploadId: this.uploadId
                  },
                  headers: {
                    Authorization: this.globalOptions.getToken()
                  },
                  cancelToken: this.cancelTokenSource.token
                });
              case 2:
                authResponse = _context3.sent;
                if (!(authResponse.data.code !== 200)) {
                  _context3.next = 5;
                  break;
                }
                throw ObsError.create(ObsErrorCode.SLICE_UPLOAD_MERGE_AUTH_ERROR);
              case 5:
                content = ["<CompleteMultipartUpload>", this.etagList.map(function(item) {
                  return "<Part><PartNumber>".concat(item.PartNumber, "</PartNumber><ETag>").concat(item.ETag, "</ETag></Part>");
                }).join(""), "</CompleteMultipartUpload>"].join("");
                _context3.next = 8;
                return axios({
                  method: "POST",
                  url: authResponse.data.data.signedUrl,
                  withCredentials: false,
                  headers: authResponse.data.data.actualSignedRequestHeaders || {},
                  maxRedirects: 0,
                  responseType: "text",
                  data: content,
                  cancelToken: this.cancelTokenSource.token
                });
              case 8:
                obsResponse = _context3.sent;
                if (!(obsResponse.status > 300 || obsResponse.status < 200)) {
                  _context3.next = 11;
                  break;
                }
                throw ObsError.create(ObsErrorCode.SLICE_UPLOAD_MERGE_ERROR);
              case 11:
              case "end":
                return _context3.stop();
            }
          }, _callee3, this);
        }));
        function mergeFileParts() {
          return _mergeFileParts.apply(this, arguments);
        }
        return mergeFileParts;
      }()
    }, {
      key: "abort",
      value: function abort() {
        var _this$uploadOptions2, _this$uploadOptions2$;
        this.cancelTokenSource.cancel();
        this.uploadStatus = UploadFileStatusEnum.ABORT;
        (_this$uploadOptions2 = this.uploadOptions) === null || _this$uploadOptions2 === void 0 || (_this$uploadOptions2$ = _this$uploadOptions2.onAbort) === null || _this$uploadOptions2$ === void 0 || _this$uploadOptions2$.call(_this$uploadOptions2);
      }
      /**
       * 执行上传
       */
    }, {
      key: "execute",
      value: function() {
        var _execute = _asyncToGenerator(/* @__PURE__ */ _regeneratorRuntime().mark(function _callee4() {
          var _this$uploadOptions3, _this$uploadOptions3$, _this$uploadOptions4, _this$uploadOptions4$, _this$uploadOptions5, _this$uploadOptions5$, _this$uploadOptions6, _this$uploadOptions6$, _this$uploadOptions7, _this$uploadOptions7$, uploadId, fileParts, etagList, fileInfo, _this$uploadOptions8, _this$uploadOptions8$, _this$uploadOptions9, _this$uploadOptions9$;
          return _regeneratorRuntime().wrap(function _callee4$(_context4) {
            while (1) switch (_context4.prev = _context4.next) {
              case 0:
                _context4.prev = 0;
                this.uploadStatus = UploadFileStatusEnum.READY;
                (_this$uploadOptions3 = this.uploadOptions) === null || _this$uploadOptions3 === void 0 || (_this$uploadOptions3$ = _this$uploadOptions3.onStart) === null || _this$uploadOptions3$ === void 0 || _this$uploadOptions3$.call(_this$uploadOptions3);
                (_this$uploadOptions4 = this.uploadOptions) === null || _this$uploadOptions4 === void 0 || (_this$uploadOptions4$ = _this$uploadOptions4.onProgress) === null || _this$uploadOptions4$ === void 0 || _this$uploadOptions4$.call(_this$uploadOptions4, {
                  percent: 0
                });
                _context4.next = 6;
                return this.loadUploadId();
              case 6:
                uploadId = _context4.sent;
                this.uploadId = uploadId;
                fileParts = this.generateFileParts();
                this.fileParts = fileParts;
                _context4.next = 12;
                return this.uploadFileParts();
              case 12:
                etagList = _context4.sent;
                this.etagList = etagList;
                _context4.next = 16;
                return this.mergeFileParts();
              case 16:
                (_this$uploadOptions5 = this.uploadOptions) === null || _this$uploadOptions5 === void 0 || (_this$uploadOptions5$ = _this$uploadOptions5.onProgress) === null || _this$uploadOptions5$ === void 0 || _this$uploadOptions5$.call(_this$uploadOptions5, {
                  percent: 99
                });
                _context4.next = 19;
                return this.getFIleInfo();
              case 19:
                fileInfo = _context4.sent;
                (_this$uploadOptions6 = this.uploadOptions) === null || _this$uploadOptions6 === void 0 || (_this$uploadOptions6$ = _this$uploadOptions6.onProgress) === null || _this$uploadOptions6$ === void 0 || _this$uploadOptions6$.call(_this$uploadOptions6, {
                  percent: 100
                });
                (_this$uploadOptions7 = this.uploadOptions) === null || _this$uploadOptions7 === void 0 || (_this$uploadOptions7$ = _this$uploadOptions7.onSuccess) === null || _this$uploadOptions7$ === void 0 || _this$uploadOptions7$.call(_this$uploadOptions7, {
                  sourceFile: this.uploadOptions.sourceFile,
                  fileInfo
                });
                _context4.next = 30;
                break;
              case 24:
                _context4.prev = 24;
                _context4.t0 = _context4["catch"](0);
                if (!this.shouldAbort()) {
                  _context4.next = 28;
                  break;
                }
                return _context4.abrupt("return");
              case 28:
                this.uploadStatus = UploadFileStatusEnum.ERROR;
                (_this$uploadOptions8 = this.uploadOptions) === null || _this$uploadOptions8 === void 0 || (_this$uploadOptions8$ = _this$uploadOptions8.onError) === null || _this$uploadOptions8$ === void 0 || _this$uploadOptions8$.call(_this$uploadOptions8, _context4.t0);
              case 30:
                _context4.prev = 30;
                (_this$uploadOptions9 = this.uploadOptions) === null || _this$uploadOptions9 === void 0 || (_this$uploadOptions9$ = _this$uploadOptions9.onFinally) === null || _this$uploadOptions9$ === void 0 || _this$uploadOptions9$.call(_this$uploadOptions9);
                return _context4.finish(30);
              case 33:
              case "end":
                return _context4.stop();
            }
          }, _callee4, this, [[0, 24, 30, 33]]);
        }));
        function execute() {
          return _execute.apply(this, arguments);
        }
        return execute;
      }()
    }]);
  }(UploadFile);
  var globalOptions = null;
  var defaultUploadOptions = {
    partSize: 1024 * 1024 * 1,
    onStart: function onStart() {
    },
    onProgress: function onProgress() {
    },
    onSuccess: function onSuccess() {
    },
    onError: function onError() {
    },
    onAbort: function onAbort() {
    },
    onFinally: function onFinally() {
    }
  };
  var uploadMethods = {
    config: function config(options) {
      globalOptions = _objectSpread2(_objectSpread2({}, {
        fileSplitThreshold: 1024 * 1024 * 6
      }), options || {});
    },
    create: function create4(options) {
      var uploadOptions = _objectSpread2(_objectSpread2({}, defaultUploadOptions), options);
      if (uploadOptions.sourceFile.size > globalOptions.fileSplitThreshold) {
        return new SliceUploadFile(globalOptions, uploadOptions);
      }
      return new OneUploadFile(globalOptions, uploadOptions);
    }
  };
  const uploadContentProps = {
    fileList: {
      type: Array,
      default: () => []
    },
    limit: {
      type: Number
    },
    multiple: {
      type: Boolean
    },
    suffixes: {
      type: Array
    },
    disabled: {
      type: Boolean
    },
    onExceed: {
      type: Function,
      default: NOOP
    },
    onStart: {
      type: Function,
      default: () => {
      }
    },
    onReload: {
      type: Function,
      default: NOOP
    },
    onProgress: {
      type: Function,
      default: NOOP
    },
    onError: {
      type: Function,
      default: NOOP
    },
    onSuccess: {
      type: Function,
      default: NOOP
    },
    onRemove: {
      type: Function,
      default: NOOP
    },
    beforeUpload: {
      type: Function,
      default: NOOP
    }
  };
  const _hoisted_1$2 = { class: "mt-upload-content" };
  const _hoisted_2$2 = ["disabled", "multiple", "accept"];
  const _sfc_main$2 = /* @__PURE__ */ vue.defineComponent({
    ...{
      name: "MtUploadContent"
    },
    __name: "upload-content",
    props: uploadContentProps,
    setup(__props, { expose: __expose }) {
      const props = __props;
      uploadMethods.config({
        getToken: () => {
          if (!fileUploadConfig.getToken) {
            throw new Error("文件预览功能未正确配置。请确保通过 mt-config-provider 组件全局配置了 fileUpload.getToken 方法,以保证上传时接口所需的 token。");
          }
          return fileUploadConfig.getToken();
        }
      });
      const inputRef = vue.shallowRef();
      const requests = vue.shallowRef(
        {}
      );
      const accept = vue.computed(() => {
        if (!props.suffixes) {
          return "";
        }
        return props.suffixes.map((suffix) => `.${suffix}`).join(",");
      });
      function handleChange(event) {
        const files = event.target.files;
        if (!files) {
          return;
        }
        uploadFiles(Array.from(files));
      }
      function uploadFiles(files) {
        if (files.length === 0) {
          return;
        }
        if (props.limit && props.fileList.length + files.length > props.limit) {
          props.onExceed(files);
          return;
        }
        if (!props.multiple) {
          files = files.slice(0, 1);
        }
        for (const file of files) {
          const rawFile = file;
          rawFile.uid = genFileId();
          props.onStart(rawFile);
          upload(rawFile);
        }
      }
      async function upload(rawFile) {
        inputRef.value.value = "";
        if (!props.beforeUpload) {
          return doUpload(rawFile);
        }
        let hookResult;
        try {
          const beforeUploadPromise = props.beforeUpload(rawFile);
          hookResult = await beforeUploadPromise;
        } catch {
          hookResult = false;
        }
        if (hookResult === false) {
          props.onRemove(rawFile);
          return;
        }
        doUpload(rawFile);
      }
      async function doUpload(rawFile) {
        const uploadInstance = uploadMethods.create({
          sourceFile: rawFile,
          onProgress: (event) => {
            props.onProgress(event, rawFile);
          },
          onSuccess(response) {
            props.onSuccess(response, rawFile);
            delete requests.value[rawFile.uid];
          },
          onError(error) {
            props.onError(error, rawFile);
            delete requests.value[rawFile.uid];
          }
        });
        requests.value[rawFile.uid] = uploadInstance;
      }
      function abort(uploadFile) {
        if (!uploadFile) {
          return;
        }
        Object.entries(requests.value).filter(
          ([uid]) => String(uploadFile.uid) === uid
        ).forEach(([uid, req]) => {
          req.abort();
          delete requests.value[uid];
        });
      }
      function choose() {
        if (!props.disabled) {
          inputRef.value.value = "";
          inputRef.value.click();
        }
      }
      function reload(uid, file) {
        const rawFile = file;
        rawFile.uid = uid;
        props.onReload(rawFile);
        upload(rawFile);
      }
      __expose({
        abort,
        choose,
        reload,
        upload: (files) => {
          uploadFiles(Array.from(files));
        }
      });
      return (_ctx, _cache) => {
        return vue.openBlock(), vue.createElementBlock("div", _hoisted_1$2, [
          vue.createElementVNode("input", {
            ref_key: "inputRef",
            ref: inputRef,
            class: "mt-upload-content__input",
            name: "file",
            type: "file",
            disabled: props.disabled,
            multiple: props.multiple,
            accept: accept.value,
            onChange: handleChange
          }, null, 40, _hoisted_2$2)
        ]);
      };
    }
  });
  const DragIcon = "data:image/png;base64,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";
  const _hoisted_1$1 = { class: "upload-full-screen-drag" };
  const _hoisted_2$1 = { class: "upload-full-screen-drag__entry" };
  const _hoisted_3$1 = { class: "upload-full-screen-drag__desc" };
  const _sfc_main$1 = /* @__PURE__ */ vue.defineComponent({
    ...{
      name: "MtUploadFullScreenDrag"
    },
    __name: "upload-full-screen-drag",
    props: {
      description: {
        type: String
      }
    },
    setup(__props) {
      const props = __props;
      const uploadContext = vue.inject(uploadContextKey);
      const isMaskVisible = vue.ref(false);
      const maskRef = vue.ref(null);
      function handleBodyDragover(event) {
        event.preventDefault();
        event.stopPropagation();
        isMaskVisible.value = true;
      }
      function handleMaskDragleave(event) {
        event.preventDefault();
        event.stopPropagation();
        isMaskVisible.value = false;
      }
      function handleMaskDrop(event) {
        event.preventDefault();
        event.stopPropagation();
        isMaskVisible.value = false;
        const { files } = event.dataTransfer;
        if (uploadContext) {
          uploadContext.upload(Array.from(files));
        }
      }
      vue.onMounted(() => {
        var _a, _b;
        document.body.addEventListener("dragover", handleBodyDragover);
        (_a = maskRef.value) == null ? void 0 : _a.addEventListener("dragleave", handleMaskDragleave);
        (_b = maskRef.value) == null ? void 0 : _b.addEventListener("drop", handleMaskDrop);
      });
      vue.onBeforeUnmount(() => {
        var _a, _b;
        document.body.removeEventListener("dragover", handleBodyDragover);
        (_a = maskRef.value) == null ? void 0 : _a.removeEventListener("dragleave", handleMaskDragleave);
        (_b = maskRef.value) == null ? void 0 : _b.removeEventListener("drop", handleMaskDrop);
      });
      return (_ctx, _cache) => {
        return vue.openBlock(), vue.createElementBlock("div", _hoisted_1$1, [
          vue.createVNode(vue.unref(MtFadeTransition), null, {
            default: vue.withCtx(() => [
              vue.withDirectives(vue.createElementVNode("div", {
                ref_key: "maskRef",
                ref: maskRef,
                class: "upload-full-screen-drag__mask"
              }, [
                vue.createElementVNode("div", _hoisted_2$1, [
                  vue.createVNode(vue.unref(MtImage), {
                    class: "upload-full-screen-drag__icon",
                    width: 60,
                    height: 60,
                    src: vue.unref(DragIcon)
                  }, null, 8, ["src"]),
                  _cache[0] || (_cache[0] = vue.createElementVNode("div", { class: "upload-full-screen-drag__title" }, " 文件拖动在此处即可上传 ", -1)),
                  vue.createElementVNode("div", _hoisted_3$1, vue.toDisplayString(props.description), 1)
                ])
              ], 512), [
                [vue.vShow, isMaskVisible.value]
              ])
            ]),
            _: 1
          })
        ]);
      };
    }
  });
  const UploadFullScreenDrag = /* @__PURE__ */ _export_sfc(_sfc_main$1, [["__scopeId", "data-v-ceab9e67"]]);
  const uploadInstances = vue.ref([]);
  function useFullScreenDrag(props) {
    const vm = vue.getCurrentInstance();
    const uid = tools.getUuid();
    function addUploadInstance() {
      if (props.isFullScreeDrag && vm) {
        const existingIndex = uploadInstances.value.findIndex((instance) => instance.uid === uid);
        if (existingIndex === -1) {
          uploadInstances.value.push({
            vm,
            uid
          });
        }
      }
    }
    function removeUploadInstance() {
      if (props.isFullScreeDrag) {
        const index2 = uploadInstances.value.findIndex((instance) => instance.uid === uid);
        if (index2 !== -1) {
          uploadInstances.value.splice(index2, 1);
        }
      }
    }
    const dialogContext = vue.inject(DialogKey);
    if (dialogContext) {
      vue.watch(() => dialogContext.visible.value, () => {
        if (dialogContext.visible.value) {
          addUploadInstance();
        } else {
          removeUploadInstance();
        }
      });
    }
    vue.onMounted(addUploadInstance);
    vue.onUnmounted(removeUploadInstance);
    const onlyFullScreenDragInstance = vue.computed(() => {
      if (!props.isFullScreeDrag || uploadInstances.value.length === 0) {
        return false;
      }
      const lastInstance = uploadInstances.value[uploadInstances.value.length - 1];
      return (lastInstance == null ? void 0 : lastInstance.uid) === uid;
    });
    return {
      onlyFullScreenDragInstance
    };
  }
  const _hoisted_1 = { class: "mt-upload" };
  const _hoisted_2 = { class: "mt-upload__wrapper" };
  const _hoisted_3 = {
    key: 0,
    class: "mt-upload__file-list"
  };
  const _hoisted_4 = {
    key: 1,
    class: "mt-upload__image-grid"
  };
  const _hoisted_5 = {
    key: 2,
    class: "mt-upload__image-only"
  };
  const _sfc_main = /* @__PURE__ */ vue.defineComponent({
    ...{
      name: "MtUpload"
    },
    __name: "upload",
    props: uploadProps,
    emits: ["update:modelValue", "success", "error", "change"],
    setup(__props, { expose: __expose, emit: __emit }) {
      const props = __props;
      const emits = __emit;
      const uploadImageOnlyTriggerRef = vue.ref();
      const { onlyFullScreenDragInstance } = useFullScreenDrag(props);
      let reloadPromiseDeferred = null;
      const uploadFiles = vue.ref(props.modelValue);
      vue.watch(() => props.modelValue, () => {
        uploadFiles.value = props.modelValue;
      });
      vue.watch(uploadFiles, () => {
        emits("update:modelValue", uploadFiles.value);
      }, { immediate: true });
      const resultSuffixes = vue.computed(() => {
        if (props.listType === ListTypeEnum.IMAGE_GRID || props.listType === ListTypeEnum.IMAGE_ONLY) {
          return [
            ...Object.values(tools.ImageFileSuffixEnum)
          ];
        }
        return props.suffixes;
      });
      const resultLimit = vue.computed(() => {
        if (props.listType === ListTypeEnum.IMAGE_ONLY) {
          return 1;
        } else {
          return props.limit;
        }
      });
      const resultMultiple = vue.computed(() => {
        if (props.listType === ListTypeEnum.IMAGE_ONLY) {
          return false;
        } else {
          return props.multiple;
        }
      });
      const uploadTriggerDescription = vue.computed(() => {
        let suffixes = [...resultSuffixes.value];
        const FILE_GROUP_MAP = /* @__PURE__ */ new Map([
          ["图片", Object.keys(tools.ImageFileSuffixEnum)],
          ["视频", Object.keys(tools.VideoFileSuffixEnum)],
          ["文档", Object.keys(tools.DocumentFileSuffixEnum)],
          ["音乐", Object.keys(tools.MusicFileSuffixEnum)],
          ["压缩包", Object.keys(tools.CompressFileSuffixEnum)],
          ["PPT", Object.keys(tools.PptFileSuffixEnum)]
        ]);
        const allGroupName = FILE_GROUP_MAP.entries().reduce((allGroupName2, [groupName, fileSuffixlist]) => {
          if (fileSuffixlist.every((suffix) => suffixes.map((i) => i.toLowerCase()).includes(suffix.toLowerCase()))) {
            suffixes = suffixes.filter((suffix) => !fileSuffixlist.map((i) => i.toLowerCase()).includes(suffix.toLowerCase()));
            allGroupName2.push(groupName);
          }
          return allGroupName2;
        }, []);
        return `支持 ${[...allGroupName, ...suffixes].join(`\\`)} 文件上传`;
      });
      const fileSizeLimitConfig = vue.computed(() => fileSizeLimitConfigMap.get(props.sizeType));
      const uploadRef = vue.ref();
      function revokeFileObjectURL(uploadFile) {
        var _a;
        if ((_a = uploadFile.url) == null ? void 0 : _a.startsWith("blob:")) {
          URL.revokeObjectURL(uploadFile.url);
        }
      }
      function removeFile(uploadFile) {
        uploadFiles.value = uploadFiles.value.filter(
          (item) => item !== uploadFile
        );
      }
      function getUploadFile(rawFile) {
        return uploadFiles.value.find((file) => file.uid === rawFile.uid);
      }
      const handleExceed = () => {
        MtMessage.warning(`最多只能上传${resultLimit.value}个文件`);
      };
      const handleStart = async (file) => {
        const rawFile = file;
        const uploadFile = {
          name: rawFile.name,
          percentage: 0,
          status: "ready",
          size: rawFile.size,
          raw: rawFile,
          uid: rawFile.uid
        };
        if (tools.isImageFilePath(rawFile.name)) {
          uploadFile.url = URL.createObjectURL(rawFile);
        }
        uploadFiles.value = [...uploadFiles.value, uploadFile];
        emits("change", {
          uploadFile,
          uploadFiles: uploadFiles.value
        });
      };
      const handleReload = (file) => {
        const rawFile = file;
        const uploadFile = getUploadFile(rawFile);
        if (!uploadFile) {
          return;
        }
        Object.assign(uploadFile, {
          name: rawFile.name,
          percentage: 0,
          status: "ready",
          size: rawFile.size,
          raw: rawFile
        });
        if (tools.isImageFilePath(rawFile.name)) {
          uploadFile.url = URL.createObjectURL(rawFile);
        }
        emits("change", {
          uploadFile,
          uploadFiles: uploadFiles.value
        });
      };
      const handleProgress = (event, rawFile) => {
        const uploadFile = getUploadFile(rawFile);
        if (!uploadFile) {
          return;
        }
        uploadFile.status = "uploading";
        uploadFile.percentage = Math.round(event.percent);
      };
      const handleError = (error, rawFile) => {
        const uploadFile = getUploadFile(rawFile);
        if (!uploadFile) {
          return;
        }
        console.error(error);
        uploadFile.status = "fail";
        removeFile(uploadFile);
        MtMessage.error("上传失败");
        emits("error", {
          error,
          uploadFile,
          uploadFiles: uploadFiles.value
        });
        emits("change", {
          uploadFile,
          uploadFiles: uploadFiles.value
        });
        if ((reloadPromiseDeferred == null ? void 0 : reloadPromiseDeferred.uid) === uploadFile.uid) {
          reloadPromiseDeferred == null ? void 0 : reloadPromiseDeferred.reject();
        }
      };
      const handleSuccess = (response, rawFile) => {
        const uploadFile = getUploadFile(rawFile);
        if (!uploadFile) {
          return;
        }
        uploadFile.status = "success";
        uploadFile.response = response;
        uploadFile.url = response.fileInfo.url;
        emits("success", {
          response,
          uploadFile,
          uploadFiles: uploadFiles.value
        });
        emits("change", {
          uploadFile,
          uploadFiles: uploadFiles.value
        });
        if ((reloadPromiseDeferred == null ? void 0 : reloadPromiseDeferred.uid) === uploadFile.uid) {
          reloadPromiseDeferred == null ? void 0 : reloadPromiseDeferred.resolve();
        }
      };
      const handleBeforeUpload = (rawFile) => {
        const fileSuffix = tools.getFileSuffix(rawFile.name);
        if (resultSuffixes.value) {
          if (!resultSuffixes.value.map((i) => i.toLowerCase()).includes(fileSuffix.toLowerCase())) {
            MtMessage.error(`文件格式不支持, 请上传${resultSuffixes.value.join("/")}格式的文件`);
            return false;
          }
        }
        const fileSizeLimit = fileSizeLimitConfig.value[fileSuffix];
        if (fileSizeLimit) {
          if (rawFile.size > fileSizeLimit) {
            MtMessage.error(`文件大小不能超过${fileSizeLimit / 1024 / 1024}MB`);
            return false;
          }
        }
        return true;
      };
      const handleRemove = (rawFile) => {
        var _a;
        const uploadFile = getUploadFile(rawFile);
        if (!uploadFile) {
          return;
        }
        (_a = uploadRef.value) == null ? void 0 : _a.abort(uploadFile);
        removeFile(uploadFile);
        revokeFileObjectURL(uploadFile);
      };
      function handleLayoutRemove({ fileItem: uploadFile }) {
        var _a;
        (_a = uploadRef.value) == null ? void 0 : _a.abort(uploadFile);
        removeFile(uploadFile);
        revokeFileObjectURL(uploadFile);
      }
      const uploadContentProps2 = vue.computed(() => ({
        fileList: uploadFiles.value,
        limit: resultLimit.value,
        multiple: resultMultiple.value,
        disabled: props.disabled,
        suffixes: resultSuffixes.value,
        onExceed: handleExceed,
        onStart: handleStart,
        onReload: handleReload,
        onProgress: handleProgress,
        onSuccess: handleSuccess,
        onError: handleError,
        beforeUpload: handleBeforeUpload,
        onRemove: handleRemove
      }));
      __expose({
        abort(uploadFile) {
          var _a;
          (_a = uploadRef.value) == null ? void 0 : _a.abort(uploadFile);
        },
        remove(uploadFile) {
          var _a;
          (_a = uploadRef.value) == null ? void 0 : _a.abort(uploadFile);
          removeFile(uploadFile);
          revokeFileObjectURL(uploadFile);
        },
        choose() {
          var _a, _b;
          if (props.listType === ListTypeEnum.IMAGE_ONLY) {
            (_a = uploadImageOnlyTriggerRef.value) == null ? void 0 : _a.choose();
          } else {
            (_b = uploadRef.value) == null ? void 0 : _b.choose();
          }
        },
        format(data2) {
          return formatUploadFiles(data2);
        },
        /**
         * 验证上传文件状态
         * @param isRequired - 是否必须上传文件
         * @returns 验证结果
         */
        validate(isRequired = false) {
          if (isRequired) {
            return uploadFiles.value.length > 0;
          } else {
            return uploadFiles.value.length === 0 || uploadFiles.value.every((uploadFile) => uploadFile.status === "success");
          }
        }
      });
      vue.provide(uploadContextKey, {
        choose() {
          var _a;
          (_a = uploadRef.value) == null ? void 0 : _a.choose();
        },
        async reload({ uid, file }) {
          var _a;
          (_a = uploadRef.value) == null ? void 0 : _a.reload(uid, file);
          reloadPromiseDeferred = new Deferred({
            uid
          });
          await reloadPromiseDeferred.promise;
          reloadPromiseDeferred = null;
        },
        remove(uploadFile) {
          var _a;
          (_a = uploadRef.value) == null ? void 0 : _a.abort(uploadFile);
          removeFile(uploadFile);
          revokeFileObjectURL(uploadFile);
        },
        async upload(files) {
          var _a;
          (_a = uploadRef.value) == null ? void 0 : _a.upload(files);
        }
      });
      return (_ctx, _cache) => {
        return vue.openBlock(), vue.createElementBlock("div", _hoisted_1, [
          vue.createElementVNode("div", _hoisted_2, [
            props.listType === vue.unref(ListTypeEnum).FILE_LIST ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_3, [
              props.showList ? (vue.openBlock(), vue.createBlock(_sfc_main$9, {
                key: 0,
                "file-list": uploadFiles.value,
                disabled: props.disabled,
                onRemove: handleLayoutRemove
              }, null, 8, ["file-list", "disabled"])) : vue.createCommentVNode("", true),
              props.showTrigger ? (vue.openBlock(), vue.createBlock(_sfc_main$4, {
                key: 1,
                "file-list": uploadFiles.value,
                disabled: props.disabled,
                description: uploadTriggerDescription.value
              }, {
                trigger: vue.withCtx(() => [
                  vue.renderSlot(_ctx.$slots, "trigger")
                ]),
                _: 3
              }, 8, ["file-list", "disabled", "description"])) : vue.createCommentVNode("", true)
            ])) : vue.createCommentVNode("", true),
            props.listType === vue.unref(ListTypeEnum).IMAGE_GRID ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_4, [
              props.showList ? (vue.openBlock(), vue.createBlock(_sfc_main$7, {
                key: 0,
                "file-list": uploadFiles.value,
                disabled: props.disabled,
                "copper-options": props.copperOptions,
                onRemove: handleLayoutRemove
              }, null, 8, ["file-list", "disabled", "copper-options"])) : vue.createCommentVNode("", true),
              props.showTrigger ? (vue.openBlock(), vue.createBlock(_sfc_main$3, {
                key: 1,
                "file-list": uploadFiles.value,
                disabled: props.disabled,
                "copper-options": props.copperOptions
              }, {
                trigger: vue.withCtx(() => [
                  vue.renderSlot(_ctx.$slots, "trigger")
                ]),
                tip: vue.withCtx(() => [
                  vue.renderSlot(_ctx.$slots, "tip")
                ]),
                _: 3
              }, 8, ["file-list", "disabled", "copper-options"])) : vue.createCommentVNode("", true)
            ])) : vue.createCommentVNode("", true),
            props.listType === vue.unref(ListTypeEnum).IMAGE_ONLY ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_5, [
              props.showList ? (vue.openBlock(), vue.createBlock(UploadImageOnlyLayout, {
                key: 0,
                "file-list": uploadFiles.value,
                disabled: props.disabled,
                "copper-options": props.copperOptions,
                onRemove: handleLayoutRemove
              }, null, 8, ["file-list", "disabled", "copper-options"])) : vue.createCommentVNode("", true),
              vue.createVNode(_sfc_main$6, {
                ref_key: "uploadImageOnlyTriggerRef",
                ref: uploadImageOnlyTriggerRef,
                limit: resultLimit.value,
                disabled: props.disabled,
                "file-list": uploadFiles.value,
                multiple: resultMultiple.value,
                suffixes: resultSuffixes.value,
                "on-exceed": handleExceed,
                "auto-cropper": props.autoCropper,
                "copper-options": props.copperOptions,
                "show-trigger": props.showTrigger,
                onRemove: handleLayoutRemove
              }, {
                trigger: vue.withCtx(() => [
                  vue.renderSlot(_ctx.$slots, "trigger")
                ]),
                tip: vue.withCtx(() => [
                  vue.renderSlot(_ctx.$slots, "tip")
                ]),
                _: 3
              }, 8, ["limit", "disabled", "file-list", "multiple", "suffixes", "auto-cropper", "copper-options", "show-trigger"])
            ])) : vue.createCommentVNode("", true)
          ]),
          vue.createVNode(_sfc_main$2, vue.mergeProps(uploadContentProps2.value, {
            ref_key: "uploadRef",
            ref: uploadRef
          }), null, 16),
          props.isFullScreeDrag && props.showTrigger && !props.disabled && vue.unref(onlyFullScreenDragInstance) ? (vue.openBlock(), vue.createBlock(vue.unref(MtTeleport), {
            key: 0,
            to: "body"
          }, {
            default: vue.withCtx(() => [
              vue.createVNode(UploadFullScreenDrag, { description: uploadTriggerDescription.value }, null, 8, ["description"])
            ]),
            _: 1
          })) : vue.createCommentVNode("", true)
        ]);
      };
    }
  });
  const MtUpload = withInstall(_sfc_main);
  const MtUploadFileListLayout = withInstall(_sfc_main$9);
  const MtUploadImageGridLayout = withInstall(_sfc_main$7);
  const MtUploadImageOnlyLayout = withInstall(_sfc_main$6);
  const components = [
    MtAvatarText,
    MtAvatarImage,
    MtBadge,
    MtButton,
    MtCell,
    MtCellGroup,
    MtCollapseTransition,
    MtDialog,
    MtEmpty,
    MtFadeTransition,
    MtFilePreview,
    MtIcon,
    MtImage,
    MtInfiniteScroll,
    MtLoading,
    MtOverlay,
    MtTab,
    MtTabs,
    MtTeleport,
    MtPoster,
    MtPopover,
    MtProgress,
    MtTooltip,
    MtDialogConfirmLayout,
    MtConfigProvider,
    MtMessage,
    MtUpload,
    MtUploadFileListLayout,
    MtUploadImageGridLayout,
    MtUploadImageOnlyLayout,
    MtTag
  ];
  const index = {
    install: (app) => {
      components.forEach((component) => app.use(component));
    }
  };
  exports2.MtAvatarImage = MtAvatarImage;
  exports2.MtAvatarText = MtAvatarText;
  exports2.MtBadge = MtBadge;
  exports2.MtButton = MtButton;
  exports2.MtCell = MtCell;
  exports2.MtCellGroup = MtCellGroup;
  exports2.MtCollapseTransition = MtCollapseTransition;
  exports2.MtConfigProvider = MtConfigProvider;
  exports2.MtDialog = MtDialog;
  exports2.MtDialogConfirmLayout = MtDialogConfirmLayout;
  exports2.MtEmpty = MtEmpty;
  exports2.MtFadeTransition = MtFadeTransition;
  exports2.MtFilePreview = MtFilePreview;
  exports2.MtIcon = MtIcon;
  exports2.MtImage = MtImage;
  exports2.MtInfiniteScroll = MtInfiniteScroll;
  exports2.MtLoading = MtLoading;
  exports2.MtMessage = MtMessage;
  exports2.MtOverlay = MtOverlay;
  exports2.MtPopover = MtPopover;
  exports2.MtPoster = MtPoster;
  exports2.MtProgress = MtProgress;
  exports2.MtTab = MtTab;
  exports2.MtTabs = MtTabs;
  exports2.MtTag = MtTag;
  exports2.MtTeleport = MtTeleport;
  exports2.MtTooltip = MtTooltip;
  exports2.MtUpload = MtUpload;
  exports2.MtUploadFileListLayout = MtUploadFileListLayout;
  exports2.MtUploadImageGridLayout = MtUploadImageGridLayout;
  exports2.MtUploadImageOnlyLayout = MtUploadImageOnlyLayout;
  exports2.default = index;
  exports2.formatUploadFiles = formatUploadFiles;
  exports2.iconfontJson = iconfontJson;
  Object.defineProperties(exports2, { __esModule: { value: true }, [Symbol.toStringTag]: { value: "Module" } });
});