{"version":3,"file":"index.mjs","sources":["../src/utils/index.ts","../src/components/Icon.ts","../../node_modules/style-inject/dist/style-inject.es.js"],"sourcesContent":["const ESCAPE_MAP: { [key: string]: string } = {\r\n  \"<\": \"&lt;\",\r\n  \">\": \"&gt;\",\r\n  '\"': \"&quot;\",\r\n  \"'\": \"&#039;\",\r\n  \"&\": \"&amp;\"\r\n};\r\n\r\nconst escapeHTML = (html: string): string => {\r\n  return html.replace(/[<>\"&]/g, (c) => ESCAPE_MAP[c] || c);\r\n};\r\n\r\nlet id_count = 0;\r\n\r\nconst getID = (prefix: string): string => {\r\n  return prefix + id_count++;\r\n};\r\n\r\nexport default {\r\n  escapeHTML,\r\n  getID\r\n};\r\n","import {\r\n  defineComponent,\r\n  reactive,\r\n  computed,\r\n  onMounted,\r\n  onUpdated,\r\n  toRefs,\r\n  ref,\r\n  h,\r\n  isVue2\r\n} from \"vue-demi\";\r\nimport type { CustomizeIconType, ObjType } from \"../../types/icons\";\r\nimport utils from \"../utils\";\r\n\r\ntype IconsType = {\r\n  [key: string]: CustomizeIconType;\r\n};\r\n\r\nconst icons: IconsType = {};\r\n\r\nconst register = (data: CustomizeIconType): void => {\r\n  const { name, paths = [], d, polygons = [], points } = data;\r\n\r\n  if (d) paths.push({ d });\r\n  if (points) polygons.push({ points });\r\n\r\n  icons[name] = Object.assign({}, data, {\r\n    paths,\r\n    polygons\r\n  });\r\n\r\n  if (!icons[name].minX) icons[name].minX = 0;\r\n  if (!icons[name].minY) icons[name].minY = 0;\r\n};\r\n\r\nconst addIcons = (...data: CustomizeIconType[]): void => {\r\n  for (const icon of data) register(icon);\r\n};\r\n\r\nconst listIcons = (): IconsType => {\r\n  return icons;\r\n};\r\n\r\nconst HiVueIcon = defineComponent({\r\n  name: \"HiVueIcon\",\r\n\r\n  props: {\r\n    name: {\r\n      type: String,\r\n      validator: (val: string): boolean => {\r\n        if (val && !(val in icons)) {\r\n          console.warn(\r\n            `Invalid prop: prop \"name\" is referring to an unregistered icon \"${val}\".\\n` +\r\n              `Please make sure you have imported this icon before using it.`\r\n          );\r\n          return false;\r\n        }\r\n        return true;\r\n      }\r\n    },\r\n    title: String,\r\n    fill: String,\r\n    scale: {\r\n      type: [Number, String],\r\n      default: 1\r\n    },\r\n    animation: {\r\n      validator: (val: string): boolean => {\r\n        return [\r\n          \"spin\",\r\n          \"spin-pulse\",\r\n          \"wrench\",\r\n          \"ring\",\r\n          \"pulse\",\r\n          \"flash\",\r\n          \"float\"\r\n        ].includes(val);\r\n      }\r\n    },\r\n    hover: Boolean,\r\n    flip: {\r\n      validator: (val: string): boolean => {\r\n        return [\"horizontal\", \"vertical\", \"both\"].includes(val);\r\n      }\r\n    },\r\n    speed: {\r\n      validator: (val: string): boolean => {\r\n        return val === \"fast\" || val === \"slow\";\r\n      }\r\n    },\r\n    label: String,\r\n    inverse: Boolean\r\n  },\r\n\r\n  setup(props) {\r\n    const children = ref([] as any[]);\r\n\r\n    const state = reactive({\r\n      outerScale: 1.2,\r\n      x: null as number | null,\r\n      y: null as number | null\r\n    });\r\n\r\n    const childrenState = reactive({\r\n      width: 0,\r\n      height: 0\r\n    });\r\n\r\n    const normalizedScale = computed(() => {\r\n      const scale = Number(props.scale);\r\n      if (isNaN(scale) || scale <= 0) {\r\n        console.warn(`Invalid prop: prop \"scale\" should be a number over 0.`);\r\n        return state.outerScale;\r\n      }\r\n      return scale * state.outerScale;\r\n    });\r\n\r\n    const klass = computed(() => {\r\n      const classes = {\r\n        \"ov-icon\": true,\r\n        \"ov-inverse\": props.inverse,\r\n        \"ov-flip-horizontal\": props.flip === \"horizontal\",\r\n        \"ov-flip-vertical\": props.flip === \"vertical\",\r\n        \"ov-flip-both\": props.flip === \"both\",\r\n        \"ov-spin\": props.animation === \"spin\",\r\n        \"ov-spin-pulse\": props.animation === \"spin-pulse\",\r\n        \"ov-wrench\": props.animation === \"wrench\",\r\n        \"ov-ring\": props.animation === \"ring\",\r\n        \"ov-pulse\": props.animation === \"pulse\",\r\n        \"ov-flash\": props.animation === \"flash\",\r\n        \"ov-float\": props.animation === \"float\",\r\n        \"ov-hover\": props.hover,\r\n        \"ov-fast\": props.speed === \"fast\",\r\n        \"ov-slow\": props.speed === \"slow\"\r\n      };\r\n      return classes;\r\n    });\r\n\r\n    const icon = computed((): CustomizeIconType | null => {\r\n      if (props.name) return icons[props.name];\r\n      return null;\r\n    });\r\n\r\n    const box = computed((): string => {\r\n      if (icon.value) {\r\n        return `${icon.value.minX} ${icon.value.minY} ${icon.value.width} ${icon.value.height}`;\r\n      }\r\n      return `0 0 ${width.value} ${height.value}`;\r\n    });\r\n\r\n    const ratio = computed((): number => {\r\n      if (!icon.value) return 1;\r\n\r\n      const { width, height } = icon.value;\r\n      return Math.max(width, height) / 16;\r\n    });\r\n\r\n    const width = computed((): number => {\r\n      return (\r\n        childrenState.width ||\r\n        (icon.value &&\r\n          (icon.value.width / ratio.value) * normalizedScale.value) ||\r\n        0\r\n      );\r\n    });\r\n\r\n    const height = computed((): number => {\r\n      return (\r\n        childrenState.height ||\r\n        (icon.value &&\r\n          (icon.value.height / ratio.value) * normalizedScale.value) ||\r\n        0\r\n      );\r\n    });\r\n\r\n    const style = computed(() => {\r\n      if (normalizedScale.value === 1) return false;\r\n      return {\r\n        fontSize: normalizedScale.value + \"em\"\r\n      };\r\n    });\r\n\r\n    const raw = computed((): string | null => {\r\n      // Generates unique id for each icon's SVG element with ID\r\n      if (!icon.value || !icon.value.raw) return null;\r\n\r\n      const ids: { [key: string]: string } = {};\r\n      let raw = icon.value.raw;\r\n\r\n      raw = raw.replace(\r\n        /\\s(?:xml:)?id=([\"']?)([^\"')\\s]+)\\1/g,\r\n        (match: any, quote: string, id: string) => {\r\n          const uniqueId = utils.getID(\"vat-\");\r\n          ids[id] = uniqueId;\r\n          return ` id=\"${uniqueId}\"`;\r\n        }\r\n      );\r\n      raw = raw.replace(\r\n        /#(?:([^'\")\\s]+)|xpointer\\(id\\((['\"]?)([^')]+)\\2\\)\\))/g,\r\n        (match: any, rawId: string, _: string, pointerId: string) => {\r\n          const id = rawId || pointerId;\r\n          if (!id || !ids[id]) return match;\r\n          return `#${ids[id]}`;\r\n        }\r\n      );\r\n      return raw;\r\n    });\r\n\r\n    const attribs = computed((): any => {\r\n      if (!icon.value || !icon.value.attr) return {};\r\n      return icon.value.attr;\r\n    });\r\n\r\n    const updateStack = () => {\r\n      if (!props.name && props.name !== null && children.value.length === 0) {\r\n        console.warn(`Invalid prop: prop \"name\" is required.`);\r\n        return;\r\n      }\r\n\r\n      if (icon.value) return;\r\n\r\n      let width = 0,\r\n        height = 0;\r\n\r\n      children.value.forEach((child: any) => {\r\n        child.outerScale = normalizedScale.value;\r\n\r\n        width = Math.max(width, child.width);\r\n        height = Math.max(height, child.height);\r\n      });\r\n\r\n      childrenState.width = width;\r\n      childrenState.height = height;\r\n\r\n      children.value.forEach((child: any) => {\r\n        child.x = (width - child.width) / 2;\r\n        child.y = (height - child.height) / 2;\r\n      });\r\n    };\r\n\r\n    onMounted(() => {\r\n      updateStack();\r\n    });\r\n\r\n    onUpdated(() => {\r\n      updateStack();\r\n    });\r\n\r\n    return {\r\n      ...toRefs(state),\r\n      children,\r\n      icon,\r\n      klass,\r\n      style,\r\n      width,\r\n      height,\r\n      box,\r\n      attribs,\r\n      raw\r\n    };\r\n  },\r\n\r\n  created() {\r\n    const parent = this.$parent as any;\r\n    if (parent && parent.children) parent.children.push(this);\r\n  },\r\n\r\n  render() {\r\n    const attrs = Object.assign(\r\n      {\r\n        role: this.$attrs.role || (this.label || this.title ? \"img\" : null),\r\n        \"aria-label\": this.label || null,\r\n        \"aria-hidden\": !(this.label || this.title),\r\n        width: this.width,\r\n        height: this.height,\r\n        viewBox: this.box\r\n      },\r\n      this.attribs\r\n    ) as any;\r\n\r\n    if ((this.attribs as ObjType).stroke)\r\n      attrs.stroke = this.fill ? this.fill : \"currentColor\";\r\n    else attrs.fill = this.fill ? this.fill : \"currentColor\";\r\n\r\n    if (this.x) attrs.x = (this.x as number).toString();\r\n    if (this.y) attrs.y = (this.y as number).toString();\r\n\r\n    let options = {\r\n      class: this.klass,\r\n      style: this.style\r\n    } as any;\r\n\r\n    if (isVue2) {\r\n      options.attrs = attrs;\r\n    } else {\r\n      options = Object.assign(options, attrs);\r\n    }\r\n\r\n    if (this.raw) {\r\n      const html = this.title\r\n        ? `<title>${utils.escapeHTML(this.title)}</title>${this.raw}`\r\n        : this.raw;\r\n\r\n      if (isVue2) {\r\n        options.domProps = { innerHTML: html };\r\n      } else {\r\n        options.innerHTML = html;\r\n      }\r\n    }\r\n\r\n    const content = this.title\r\n      ? [h(\"title\", this.title as string)]\r\n      : ([] as any[]);\r\n\r\n    const svgAttrs = (name: string, value: ObjType, i: number) => {\r\n      if (isVue2) {\r\n        return h(name, {\r\n          attrs: value,\r\n          key: `${name}-${i}`\r\n        });\r\n      } else {\r\n        return h(name, {\r\n          ...value,\r\n          key: `${name}-${i}`\r\n        });\r\n      }\r\n    };\r\n\r\n    return h(\r\n      \"svg\",\r\n      options,\r\n      this.raw\r\n        ? undefined\r\n        : content.concat([\r\n            this.$slots.default\r\n              ? isVue2\r\n                ? this.$slots.default\r\n                : // @ts-ignore: this.$slots.default() is only used in Vue3\r\n                  this.$slots.default()\r\n              : this.icon\r\n              ? [\r\n                  ...((this.icon as CustomizeIconType).paths as ObjType[]).map(\r\n                    (path: ObjType, i: number) => svgAttrs(\"path\", path, i)\r\n                  ),\r\n                  ...(\r\n                    (this.icon as CustomizeIconType).polygons as ObjType[]\r\n                  ).map((polygon: ObjType, i: number) =>\r\n                    svgAttrs(\"polygon\", polygon, i)\r\n                  )\r\n                ]\r\n              : []\r\n          ])\r\n    );\r\n  }\r\n});\r\n\r\nexport { HiVueIcon, addIcons, listIcons };\r\n","function styleInject(css, ref) {\n  if ( ref === void 0 ) ref = {};\n  var insertAt = ref.insertAt;\n\n  if (!css || typeof document === 'undefined') { return; }\n\n  var head = document.head || document.getElementsByTagName('head')[0];\n  var style = document.createElement('style');\n  style.type = 'text/css';\n\n  if (insertAt === 'top') {\n    if (head.firstChild) {\n      head.insertBefore(style, head.firstChild);\n    } else {\n      head.appendChild(style);\n    }\n  } else {\n    head.appendChild(style);\n  }\n\n  if (style.styleSheet) {\n    style.styleSheet.cssText = css;\n  } else {\n    style.appendChild(document.createTextNode(css));\n  }\n}\n\nexport default styleInject;\n"],"names":[],"mappings":";;AAAA,MAAM,UAAU,GAAG;AACnB,EAAE,GAAG,EAAE,MAAM;AACb,EAAE,GAAG,EAAE,MAAM;AACb,EAAE,GAAG,EAAE,QAAQ;AACf,EAAE,GAAG,EAAE,QAAQ;AACf,EAAE,GAAG,EAAE,OAAO;AACd,CAAC,CAAC;AACF,MAAM,UAAU,GAAG,CAAC,IAAI,KAAK;AAC7B,EAAE,OAAO,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,CAAC,CAAC,KAAK,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;AAC5D,CAAC,CAAC;AACF,IAAI,QAAQ,GAAG,CAAC,CAAC;AACjB,MAAM,KAAK,GAAG,CAAC,MAAM,KAAK;AAC1B,EAAE,OAAO,MAAM,GAAG,QAAQ,EAAE,CAAC;AAC7B,CAAC,CAAC;AACF,YAAe;AACf,EAAE,UAAU;AACZ,EAAE,KAAK;AACP,CAAC;;ACLD,MAAM,KAAK,GAAG,EAAE,CAAC;AACjB,MAAM,QAAQ,GAAG,CAAC,IAAI,KAAK;AAC3B,EAAE,MAAM,EAAE,IAAI,EAAE,KAAK,GAAG,EAAE,EAAE,CAAC,EAAE,QAAQ,GAAG,EAAE,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC;AAC9D,EAAE,IAAI,CAAC;AACP,IAAI,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;AACtB,EAAE,IAAI,MAAM;AACZ,IAAI,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC;AAC9B,EAAE,KAAK,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,IAAI,EAAE;AACxC,IAAI,KAAK;AACT,IAAI,QAAQ;AACZ,GAAG,CAAC,CAAC;AACL,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI;AACvB,IAAI,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC;AACzB,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI;AACvB,IAAI,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC;AACzB,CAAC,CAAC;AACG,MAAC,QAAQ,GAAG,CAAC,GAAG,IAAI,KAAK;AAC9B,EAAE,KAAK,MAAM,IAAI,IAAI,IAAI;AACzB,IAAI,QAAQ,CAAC,IAAI,CAAC,CAAC;AACnB,EAAE;AACG,MAAC,SAAS,GAAG,MAAM;AACxB,EAAE,OAAO,KAAK,CAAC;AACf,EAAE;AACG,MAAC,SAAS,GAAG,eAAe,CAAC;AAClC,EAAE,IAAI,EAAE,WAAW;AACnB,EAAE,KAAK,EAAE;AACT,IAAI,IAAI,EAAE;AACV,MAAM,IAAI,EAAE,MAAM;AAClB,MAAM,SAAS,EAAE,CAAC,GAAG,KAAK;AAC1B,QAAQ,IAAI,GAAG,IAAI,EAAE,GAAG,IAAI,KAAK,CAAC,EAAE;AACpC,UAAU,OAAO,CAAC,IAAI,CAAC,CAAC,gEAAgE,EAAE,GAAG,CAAC;AAC9F,6DAA6D,CAAC,CAAC,CAAC;AAChE,UAAU,OAAO,KAAK,CAAC;AACvB,SAAS;AACT,QAAQ,OAAO,IAAI,CAAC;AACpB,OAAO;AACP,KAAK;AACL,IAAI,KAAK,EAAE,MAAM;AACjB,IAAI,IAAI,EAAE,MAAM;AAChB,IAAI,KAAK,EAAE;AACX,MAAM,IAAI,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC;AAC5B,MAAM,OAAO,EAAE,CAAC;AAChB,KAAK;AACL,IAAI,SAAS,EAAE;AACf,MAAM,SAAS,EAAE,CAAC,GAAG,KAAK;AAC1B,QAAQ,OAAO;AACf,UAAU,MAAM;AAChB,UAAU,YAAY;AACtB,UAAU,QAAQ;AAClB,UAAU,MAAM;AAChB,UAAU,OAAO;AACjB,UAAU,OAAO;AACjB,UAAU,OAAO;AACjB,SAAS,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;AACxB,OAAO;AACP,KAAK;AACL,IAAI,KAAK,EAAE,OAAO;AAClB,IAAI,IAAI,EAAE;AACV,MAAM,SAAS,EAAE,CAAC,GAAG,KAAK;AAC1B,QAAQ,OAAO,CAAC,YAAY,EAAE,UAAU,EAAE,MAAM,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;AAChE,OAAO;AACP,KAAK;AACL,IAAI,KAAK,EAAE;AACX,MAAM,SAAS,EAAE,CAAC,GAAG,KAAK;AAC1B,QAAQ,OAAO,GAAG,KAAK,MAAM,IAAI,GAAG,KAAK,MAAM,CAAC;AAChD,OAAO;AACP,KAAK;AACL,IAAI,KAAK,EAAE,MAAM;AACjB,IAAI,OAAO,EAAE,OAAO;AACpB,GAAG;AACH,EAAE,KAAK,CAAC,KAAK,EAAE;AACf,IAAI,MAAM,QAAQ,GAAG,GAAG,CAAC,EAAE,CAAC,CAAC;AAC7B,IAAI,MAAM,KAAK,GAAG,QAAQ,CAAC;AAC3B,MAAM,UAAU,EAAE,GAAG;AACrB,MAAM,CAAC,EAAE,IAAI;AACb,MAAM,CAAC,EAAE,IAAI;AACb,KAAK,CAAC,CAAC;AACP,IAAI,MAAM,aAAa,GAAG,QAAQ,CAAC;AACnC,MAAM,KAAK,EAAE,CAAC;AACd,MAAM,MAAM,EAAE,CAAC;AACf,KAAK,CAAC,CAAC;AACP,IAAI,MAAM,eAAe,GAAG,QAAQ,CAAC,MAAM;AAC3C,MAAM,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;AACxC,MAAM,IAAI,KAAK,CAAC,KAAK,CAAC,IAAI,KAAK,IAAI,CAAC,EAAE;AACtC,QAAQ,OAAO,CAAC,IAAI,CAAC,CAAC,qDAAqD,CAAC,CAAC,CAAC;AAC9E,QAAQ,OAAO,KAAK,CAAC,UAAU,CAAC;AAChC,OAAO;AACP,MAAM,OAAO,KAAK,GAAG,KAAK,CAAC,UAAU,CAAC;AACtC,KAAK,CAAC,CAAC;AACP,IAAI,MAAM,KAAK,GAAG,QAAQ,CAAC,MAAM;AACjC,MAAM,MAAM,OAAO,GAAG;AACtB,QAAQ,SAAS,EAAE,IAAI;AACvB,QAAQ,YAAY,EAAE,KAAK,CAAC,OAAO;AACnC,QAAQ,oBAAoB,EAAE,KAAK,CAAC,IAAI,KAAK,YAAY;AACzD,QAAQ,kBAAkB,EAAE,KAAK,CAAC,IAAI,KAAK,UAAU;AACrD,QAAQ,cAAc,EAAE,KAAK,CAAC,IAAI,KAAK,MAAM;AAC7C,QAAQ,SAAS,EAAE,KAAK,CAAC,SAAS,KAAK,MAAM;AAC7C,QAAQ,eAAe,EAAE,KAAK,CAAC,SAAS,KAAK,YAAY;AACzD,QAAQ,WAAW,EAAE,KAAK,CAAC,SAAS,KAAK,QAAQ;AACjD,QAAQ,SAAS,EAAE,KAAK,CAAC,SAAS,KAAK,MAAM;AAC7C,QAAQ,UAAU,EAAE,KAAK,CAAC,SAAS,KAAK,OAAO;AAC/C,QAAQ,UAAU,EAAE,KAAK,CAAC,SAAS,KAAK,OAAO;AAC/C,QAAQ,UAAU,EAAE,KAAK,CAAC,SAAS,KAAK,OAAO;AAC/C,QAAQ,UAAU,EAAE,KAAK,CAAC,KAAK;AAC/B,QAAQ,SAAS,EAAE,KAAK,CAAC,KAAK,KAAK,MAAM;AACzC,QAAQ,SAAS,EAAE,KAAK,CAAC,KAAK,KAAK,MAAM;AACzC,OAAO,CAAC;AACR,MAAM,OAAO,OAAO,CAAC;AACrB,KAAK,CAAC,CAAC;AACP,IAAI,MAAM,IAAI,GAAG,QAAQ,CAAC,MAAM;AAChC,MAAM,IAAI,KAAK,CAAC,IAAI;AACpB,QAAQ,OAAO,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;AACjC,MAAM,OAAO,IAAI,CAAC;AAClB,KAAK,CAAC,CAAC;AACP,IAAI,MAAM,GAAG,GAAG,QAAQ,CAAC,MAAM;AAC/B,MAAM,IAAI,IAAI,CAAC,KAAK,EAAE;AACtB,QAAQ,OAAO,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC;AAChG,OAAO;AACP,MAAM,OAAO,CAAC,IAAI,EAAE,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;AAClD,KAAK,CAAC,CAAC;AACP,IAAI,MAAM,KAAK,GAAG,QAAQ,CAAC,MAAM;AACjC,MAAM,IAAI,CAAC,IAAI,CAAC,KAAK;AACrB,QAAQ,OAAO,CAAC,CAAC;AACjB,MAAM,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC;AAC5D,MAAM,OAAO,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,EAAE,CAAC;AAC5C,KAAK,CAAC,CAAC;AACP,IAAI,MAAM,KAAK,GAAG,QAAQ,CAAC,MAAM;AACjC,MAAM,OAAO,aAAa,CAAC,KAAK,IAAI,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,KAAK,CAAC,KAAK,GAAG,KAAK,CAAC,KAAK,GAAG,eAAe,CAAC,KAAK,IAAI,CAAC,CAAC;AAC9G,KAAK,CAAC,CAAC;AACP,IAAI,MAAM,MAAM,GAAG,QAAQ,CAAC,MAAM;AAClC,MAAM,OAAO,aAAa,CAAC,MAAM,IAAI,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,KAAK,CAAC,KAAK,GAAG,eAAe,CAAC,KAAK,IAAI,CAAC,CAAC;AAChH,KAAK,CAAC,CAAC;AACP,IAAI,MAAM,KAAK,GAAG,QAAQ,CAAC,MAAM;AACjC,MAAM,IAAI,eAAe,CAAC,KAAK,KAAK,CAAC;AACrC,QAAQ,OAAO,KAAK,CAAC;AACrB,MAAM,OAAO;AACb,QAAQ,QAAQ,EAAE,eAAe,CAAC,KAAK,GAAG,IAAI;AAC9C,OAAO,CAAC;AACR,KAAK,CAAC,CAAC;AACP,IAAI,MAAM,GAAG,GAAG,QAAQ,CAAC,MAAM;AAC/B,MAAM,IAAI,CAAC,IAAI,CAAC,KAAK,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG;AACxC,QAAQ,OAAO,IAAI,CAAC;AACpB,MAAM,MAAM,GAAG,GAAG,EAAE,CAAC;AACrB,MAAM,IAAI,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC;AAChC,MAAM,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,qCAAqC,EAAE,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE,KAAK;AACvF,QAAQ,MAAM,QAAQ,GAAG,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;AAC7C,QAAQ,GAAG,CAAC,EAAE,CAAC,GAAG,QAAQ,CAAC;AAC3B,QAAQ,OAAO,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC;AACnC,OAAO,CAAC,CAAC;AACT,MAAM,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,uDAAuD,EAAE,CAAC,KAAK,EAAE,KAAK,EAAE,CAAC,EAAE,SAAS,KAAK;AACnH,QAAQ,MAAM,EAAE,GAAG,KAAK,IAAI,SAAS,CAAC;AACtC,QAAQ,IAAI,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;AAC3B,UAAU,OAAO,KAAK,CAAC;AACvB,QAAQ,OAAO,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;AAC7B,OAAO,CAAC,CAAC;AACT,MAAM,OAAO,IAAI,CAAC;AAClB,KAAK,CAAC,CAAC;AACP,IAAI,MAAM,OAAO,GAAG,QAAQ,CAAC,MAAM;AACnC,MAAM,IAAI,CAAC,IAAI,CAAC,KAAK,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI;AACzC,QAAQ,OAAO,EAAE,CAAC;AAClB,MAAM,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC;AAC7B,KAAK,CAAC,CAAC;AACP,IAAI,MAAM,WAAW,GAAG,MAAM;AAC9B,MAAM,IAAI,CAAC,KAAK,CAAC,IAAI,IAAI,KAAK,CAAC,IAAI,KAAK,IAAI,IAAI,QAAQ,CAAC,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE;AAC7E,QAAQ,OAAO,CAAC,IAAI,CAAC,CAAC,sCAAsC,CAAC,CAAC,CAAC;AAC/D,QAAQ,OAAO;AACf,OAAO;AACP,MAAM,IAAI,IAAI,CAAC,KAAK;AACpB,QAAQ,OAAO;AACf,MAAM,IAAI,MAAM,GAAG,CAAC,EAAE,OAAO,GAAG,CAAC,CAAC;AAClC,MAAM,QAAQ,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,KAAK,KAAK;AACxC,QAAQ,KAAK,CAAC,UAAU,GAAG,eAAe,CAAC,KAAK,CAAC;AACjD,QAAQ,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE,KAAK,CAAC,KAAK,CAAC,CAAC;AAC/C,QAAQ,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC;AAClD,OAAO,CAAC,CAAC;AACT,MAAM,aAAa,CAAC,KAAK,GAAG,MAAM,CAAC;AACnC,MAAM,aAAa,CAAC,MAAM,GAAG,OAAO,CAAC;AACrC,MAAM,QAAQ,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,KAAK,KAAK;AACxC,QAAQ,KAAK,CAAC,CAAC,GAAG,CAAC,MAAM,GAAG,KAAK,CAAC,KAAK,IAAI,CAAC,CAAC;AAC7C,QAAQ,KAAK,CAAC,CAAC,GAAG,CAAC,OAAO,GAAG,KAAK,CAAC,MAAM,IAAI,CAAC,CAAC;AAC/C,OAAO,CAAC,CAAC;AACT,KAAK,CAAC;AACN,IAAI,SAAS,CAAC,MAAM;AACpB,MAAM,WAAW,EAAE,CAAC;AACpB,KAAK,CAAC,CAAC;AACP,IAAI,SAAS,CAAC,MAAM;AACpB,MAAM,WAAW,EAAE,CAAC;AACpB,KAAK,CAAC,CAAC;AACP,IAAI,OAAO;AACX,MAAM,GAAG,MAAM,CAAC,KAAK,CAAC;AACtB,MAAM,QAAQ;AACd,MAAM,IAAI;AACV,MAAM,KAAK;AACX,MAAM,KAAK;AACX,MAAM,KAAK;AACX,MAAM,MAAM;AACZ,MAAM,GAAG;AACT,MAAM,OAAO;AACb,MAAM,GAAG;AACT,KAAK,CAAC;AACN,GAAG;AACH,EAAE,OAAO,GAAG;AACZ,IAAI,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC;AAChC,IAAI,IAAI,MAAM,IAAI,MAAM,CAAC,QAAQ;AACjC,MAAM,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACjC,GAAG;AACH,EAAE,MAAM,GAAG;AACX,IAAI,MAAM,KAAK,GAAG,MAAM,CAAC,MAAM,CAAC;AAChC,MAAM,IAAI,EAAE,IAAI,CAAC,MAAM,CAAC,IAAI,KAAK,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,KAAK,GAAG,KAAK,GAAG,IAAI,CAAC;AACzE,MAAM,YAAY,EAAE,IAAI,CAAC,KAAK,IAAI,IAAI;AACtC,MAAM,aAAa,EAAE,EAAE,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,KAAK,CAAC;AAChD,MAAM,KAAK,EAAE,IAAI,CAAC,KAAK;AACvB,MAAM,MAAM,EAAE,IAAI,CAAC,MAAM;AACzB,MAAM,OAAO,EAAE,IAAI,CAAC,GAAG;AACvB,KAAK,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;AACrB,IAAI,IAAI,IAAI,CAAC,OAAO,CAAC,MAAM;AAC3B,MAAM,KAAK,CAAC,MAAM,GAAG,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,GAAG,cAAc,CAAC;AAC5D;AACA,MAAM,KAAK,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,GAAG,cAAc,CAAC;AAC1D,IAAI,IAAI,IAAI,CAAC,CAAC;AACd,MAAM,KAAK,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC;AAClC,IAAI,IAAI,IAAI,CAAC,CAAC;AACd,MAAM,KAAK,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC;AAClC,IAAI,IAAI,OAAO,GAAG;AAClB,MAAM,KAAK,EAAE,IAAI,CAAC,KAAK;AACvB,MAAM,KAAK,EAAE,IAAI,CAAC,KAAK;AACvB,KAAK,CAAC;AACN,IAAI,IAAI,MAAM,EAAE;AAChB,MAAM,OAAO,CAAC,KAAK,GAAG,KAAK,CAAC;AAC5B,KAAK,MAAM;AACX,MAAM,OAAO,GAAG,MAAM,CAAC,MAAM,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;AAC9C,KAAK;AACL,IAAI,IAAI,IAAI,CAAC,GAAG,EAAE;AAClB,MAAM,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,GAAG,CAAC,OAAO,EAAE,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,QAAQ,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC;AACvG,MAAM,IAAI,MAAM,EAAE;AAClB,QAAQ,OAAO,CAAC,QAAQ,GAAG,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC;AAC/C,OAAO,MAAM;AACb,QAAQ,OAAO,CAAC,SAAS,GAAG,IAAI,CAAC;AACjC,OAAO;AACP,KAAK;AACL,IAAI,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,OAAO,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,CAAC;AAC/D,IAAI,MAAM,QAAQ,GAAG,CAAC,IAAI,EAAE,KAAK,EAAE,CAAC,KAAK;AACzC,MAAM,IAAI,MAAM,EAAE;AAClB,QAAQ,OAAO,CAAC,CAAC,IAAI,EAAE;AACvB,UAAU,KAAK,EAAE,KAAK;AACtB,UAAU,GAAG,EAAE,CAAC,EAAE,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;AAC7B,SAAS,CAAC,CAAC;AACX,OAAO,MAAM;AACb,QAAQ,OAAO,CAAC,CAAC,IAAI,EAAE;AACvB,UAAU,GAAG,KAAK;AAClB,UAAU,GAAG,EAAE,CAAC,EAAE,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;AAC7B,SAAS,CAAC,CAAC;AACX,OAAO;AACP,KAAK,CAAC;AACN,IAAI,OAAO,CAAC,CAAC,KAAK,EAAE,OAAO,EAAE,IAAI,CAAC,GAAG,GAAG,KAAK,CAAC,GAAG,OAAO,CAAC,MAAM,CAAC;AAChE,MAAM,IAAI,CAAC,MAAM,CAAC,OAAO,GAAG,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,OAAO,GAAG,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,GAAG,IAAI,CAAC,IAAI,GAAG;AAC/F,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC,KAAK,QAAQ,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;AACtE,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,CAAC,KAAK,QAAQ,CAAC,SAAS,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC;AAClF,OAAO,GAAG,EAAE;AACZ,KAAK,CAAC,CAAC,CAAC;AACR,GAAG;AACH,CAAC;;ACjRD,SAAS,WAAW,CAAC,GAAG,EAAE,GAAG,EAAE;AAC/B,EAAE,KAAK,GAAG,KAAK,KAAK,CAAC,GAAG,GAAG,GAAG,EAAE,CAAC;AACjC,EAAE,IAAI,QAAQ,GAAG,GAAG,CAAC,QAAQ,CAAC;AAC9B;AACA,EAAE,IAAI,CAAC,GAAG,IAAI,OAAO,QAAQ,KAAK,WAAW,EAAE,EAAE,OAAO,EAAE;AAC1D;AACA,EAAE,IAAI,IAAI,GAAG,QAAQ,CAAC,IAAI,IAAI,QAAQ,CAAC,oBAAoB,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;AACvE,EAAE,IAAI,KAAK,GAAG,QAAQ,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;AAC9C,EAAE,KAAK,CAAC,IAAI,GAAG,UAAU,CAAC;AAC1B;AACA,EAAE,IAAI,QAAQ,KAAK,KAAK,EAAE;AAC1B,IAAI,IAAI,IAAI,CAAC,UAAU,EAAE;AACzB,MAAM,IAAI,CAAC,YAAY,CAAC,KAAK,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC;AAChD,KAAK,MAAM;AACX,MAAM,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;AAC9B,KAAK;AACL,GAAG,MAAM;AACT,IAAI,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;AAC5B,GAAG;AACH;AACA,EAAE,IAAI,KAAK,CAAC,UAAU,EAAE;AACxB,IAAI,KAAK,CAAC,UAAU,CAAC,OAAO,GAAG,GAAG,CAAC;AACnC,GAAG,MAAM;AACT,IAAI,KAAK,CAAC,WAAW,CAAC,QAAQ,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC,CAAC;AACpD,GAAG;AACH;;;;;;;;;;;;;"}