{"version":3,"file":"dep-d35c96a0.mjs","sources":["../../node_modules/lodash/now.js","../../node_modules/lodash/_trimmedEndIndex.js","../../node_modules/lodash/_baseTrim.js","../../node_modules/lodash/toNumber.js","../../node_modules/lodash/debounce.js","../../src/model/index.vue"],"sourcesContent":["var root = require('./_root');\n\n/**\n * Gets the timestamp of the number of milliseconds that have elapsed since\n * the Unix epoch (1 January 1970 00:00:00 UTC).\n *\n * @static\n * @memberOf _\n * @since 2.4.0\n * @category Date\n * @returns {number} Returns the timestamp.\n * @example\n *\n * _.defer(function(stamp) {\n *   console.log(_.now() - stamp);\n * }, _.now());\n * // => Logs the number of milliseconds it took for the deferred invocation.\n */\nvar now = function() {\n  return root.Date.now();\n};\n\nmodule.exports = now;\n","/** Used to match a single whitespace character. */\nvar reWhitespace = /\\s/;\n\n/**\n * Used by `_.trim` and `_.trimEnd` to get the index of the last non-whitespace\n * character of `string`.\n *\n * @private\n * @param {string} string The string to inspect.\n * @returns {number} Returns the index of the last non-whitespace character.\n */\nfunction trimmedEndIndex(string) {\n  var index = string.length;\n\n  while (index-- && reWhitespace.test(string.charAt(index))) {}\n  return index;\n}\n\nmodule.exports = trimmedEndIndex;\n","var trimmedEndIndex = require('./_trimmedEndIndex');\n\n/** Used to match leading whitespace. */\nvar reTrimStart = /^\\s+/;\n\n/**\n * The base implementation of `_.trim`.\n *\n * @private\n * @param {string} string The string to trim.\n * @returns {string} Returns the trimmed string.\n */\nfunction baseTrim(string) {\n  return string\n    ? string.slice(0, trimmedEndIndex(string) + 1).replace(reTrimStart, '')\n    : string;\n}\n\nmodule.exports = baseTrim;\n","var baseTrim = require('./_baseTrim'),\n    isObject = require('./isObject'),\n    isSymbol = require('./isSymbol');\n\n/** Used as references for various `Number` constants. */\nvar NAN = 0 / 0;\n\n/** Used to detect bad signed hexadecimal string values. */\nvar reIsBadHex = /^[-+]0x[0-9a-f]+$/i;\n\n/** Used to detect binary string values. */\nvar reIsBinary = /^0b[01]+$/i;\n\n/** Used to detect octal string values. */\nvar reIsOctal = /^0o[0-7]+$/i;\n\n/** Built-in method references without a dependency on `root`. */\nvar freeParseInt = parseInt;\n\n/**\n * Converts `value` to a number.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to process.\n * @returns {number} Returns the number.\n * @example\n *\n * _.toNumber(3.2);\n * // => 3.2\n *\n * _.toNumber(Number.MIN_VALUE);\n * // => 5e-324\n *\n * _.toNumber(Infinity);\n * // => Infinity\n *\n * _.toNumber('3.2');\n * // => 3.2\n */\nfunction toNumber(value) {\n  if (typeof value == 'number') {\n    return value;\n  }\n  if (isSymbol(value)) {\n    return NAN;\n  }\n  if (isObject(value)) {\n    var other = typeof value.valueOf == 'function' ? value.valueOf() : value;\n    value = isObject(other) ? (other + '') : other;\n  }\n  if (typeof value != 'string') {\n    return value === 0 ? value : +value;\n  }\n  value = baseTrim(value);\n  var isBinary = reIsBinary.test(value);\n  return (isBinary || reIsOctal.test(value))\n    ? freeParseInt(value.slice(2), isBinary ? 2 : 8)\n    : (reIsBadHex.test(value) ? NAN : +value);\n}\n\nmodule.exports = toNumber;\n","var isObject = require('./isObject'),\n    now = require('./now'),\n    toNumber = require('./toNumber');\n\n/** Error message constants. */\nvar FUNC_ERROR_TEXT = 'Expected a function';\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeMax = Math.max,\n    nativeMin = Math.min;\n\n/**\n * Creates a debounced function that delays invoking `func` until after `wait`\n * milliseconds have elapsed since the last time the debounced function was\n * invoked. The debounced function comes with a `cancel` method to cancel\n * delayed `func` invocations and a `flush` method to immediately invoke them.\n * Provide `options` to indicate whether `func` should be invoked on the\n * leading and/or trailing edge of the `wait` timeout. The `func` is invoked\n * with the last arguments provided to the debounced function. Subsequent\n * calls to the debounced function return the result of the last `func`\n * invocation.\n *\n * **Note:** If `leading` and `trailing` options are `true`, `func` is\n * invoked on the trailing edge of the timeout only if the debounced function\n * is invoked more than once during the `wait` timeout.\n *\n * If `wait` is `0` and `leading` is `false`, `func` invocation is deferred\n * until to the next tick, similar to `setTimeout` with a timeout of `0`.\n *\n * See [David Corbacho's article](https://css-tricks.com/debouncing-throttling-explained-examples/)\n * for details over the differences between `_.debounce` and `_.throttle`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Function\n * @param {Function} func The function to debounce.\n * @param {number} [wait=0] The number of milliseconds to delay.\n * @param {Object} [options={}] The options object.\n * @param {boolean} [options.leading=false]\n *  Specify invoking on the leading edge of the timeout.\n * @param {number} [options.maxWait]\n *  The maximum time `func` is allowed to be delayed before it's invoked.\n * @param {boolean} [options.trailing=true]\n *  Specify invoking on the trailing edge of the timeout.\n * @returns {Function} Returns the new debounced function.\n * @example\n *\n * // Avoid costly calculations while the window size is in flux.\n * jQuery(window).on('resize', _.debounce(calculateLayout, 150));\n *\n * // Invoke `sendMail` when clicked, debouncing subsequent calls.\n * jQuery(element).on('click', _.debounce(sendMail, 300, {\n *   'leading': true,\n *   'trailing': false\n * }));\n *\n * // Ensure `batchLog` is invoked once after 1 second of debounced calls.\n * var debounced = _.debounce(batchLog, 250, { 'maxWait': 1000 });\n * var source = new EventSource('/stream');\n * jQuery(source).on('message', debounced);\n *\n * // Cancel the trailing debounced invocation.\n * jQuery(window).on('popstate', debounced.cancel);\n */\nfunction debounce(func, wait, options) {\n  var lastArgs,\n      lastThis,\n      maxWait,\n      result,\n      timerId,\n      lastCallTime,\n      lastInvokeTime = 0,\n      leading = false,\n      maxing = false,\n      trailing = true;\n\n  if (typeof func != 'function') {\n    throw new TypeError(FUNC_ERROR_TEXT);\n  }\n  wait = toNumber(wait) || 0;\n  if (isObject(options)) {\n    leading = !!options.leading;\n    maxing = 'maxWait' in options;\n    maxWait = maxing ? nativeMax(toNumber(options.maxWait) || 0, wait) : maxWait;\n    trailing = 'trailing' in options ? !!options.trailing : trailing;\n  }\n\n  function invokeFunc(time) {\n    var args = lastArgs,\n        thisArg = lastThis;\n\n    lastArgs = lastThis = undefined;\n    lastInvokeTime = time;\n    result = func.apply(thisArg, args);\n    return result;\n  }\n\n  function leadingEdge(time) {\n    // Reset any `maxWait` timer.\n    lastInvokeTime = time;\n    // Start the timer for the trailing edge.\n    timerId = setTimeout(timerExpired, wait);\n    // Invoke the leading edge.\n    return leading ? invokeFunc(time) : result;\n  }\n\n  function remainingWait(time) {\n    var timeSinceLastCall = time - lastCallTime,\n        timeSinceLastInvoke = time - lastInvokeTime,\n        timeWaiting = wait - timeSinceLastCall;\n\n    return maxing\n      ? nativeMin(timeWaiting, maxWait - timeSinceLastInvoke)\n      : timeWaiting;\n  }\n\n  function shouldInvoke(time) {\n    var timeSinceLastCall = time - lastCallTime,\n        timeSinceLastInvoke = time - lastInvokeTime;\n\n    // Either this is the first call, activity has stopped and we're at the\n    // trailing edge, the system time has gone backwards and we're treating\n    // it as the trailing edge, or we've hit the `maxWait` limit.\n    return (lastCallTime === undefined || (timeSinceLastCall >= wait) ||\n      (timeSinceLastCall < 0) || (maxing && timeSinceLastInvoke >= maxWait));\n  }\n\n  function timerExpired() {\n    var time = now();\n    if (shouldInvoke(time)) {\n      return trailingEdge(time);\n    }\n    // Restart the timer.\n    timerId = setTimeout(timerExpired, remainingWait(time));\n  }\n\n  function trailingEdge(time) {\n    timerId = undefined;\n\n    // Only invoke if we have `lastArgs` which means `func` has been\n    // debounced at least once.\n    if (trailing && lastArgs) {\n      return invokeFunc(time);\n    }\n    lastArgs = lastThis = undefined;\n    return result;\n  }\n\n  function cancel() {\n    if (timerId !== undefined) {\n      clearTimeout(timerId);\n    }\n    lastInvokeTime = 0;\n    lastArgs = lastCallTime = lastThis = timerId = undefined;\n  }\n\n  function flush() {\n    return timerId === undefined ? result : trailingEdge(now());\n  }\n\n  function debounced() {\n    var time = now(),\n        isInvoking = shouldInvoke(time);\n\n    lastArgs = arguments;\n    lastThis = this;\n    lastCallTime = time;\n\n    if (isInvoking) {\n      if (timerId === undefined) {\n        return leadingEdge(lastCallTime);\n      }\n      if (maxing) {\n        // Handle invocations in a tight loop.\n        clearTimeout(timerId);\n        timerId = setTimeout(timerExpired, wait);\n        return invokeFunc(lastCallTime);\n      }\n    }\n    if (timerId === undefined) {\n      timerId = setTimeout(timerExpired, wait);\n    }\n    return result;\n  }\n  debounced.cancel = cancel;\n  debounced.flush = flush;\n  return debounced;\n}\n\nmodule.exports = debounce;\n","<script lang=\"ts\">\nimport { defineComponent } from 'vue'\nexport default defineComponent({\n  name: 'TlbsModel',\n  \n})\n</script>\n<template>\n  <div\n    ref=\"tmodelContainer\"\n    class=\"tlbs-model\"\n  />\n</template>\n<script setup lang=\"ts\" name=\"TlbsModel\">\nimport TModel from '@tlbs/galaxy-model';\nimport updatedDiff from '../utils/objectDiff';\nimport { defaultConfig } from './model.config';\nimport debounce from 'lodash/debounce';\n\ninterface ModelState {\n  currentScene: number;\n  sceneArray: ModelSceneState[];\n}\n\ninterface CameraOption {\n  position?: number[];\n  target?: number[];\n  minDistance?: number;\n  maxDistance?: number;\n  duration?: number;\n}\n\ninterface CirCleOptions {\n  color?: string;\n  innerRadius: number;\n  outerRadius: number;\n  position: number[];\n  rotation: number[];\n}\n\ninterface FlowLightRange {\n  x: number;\n  y: number;\n}\n\ninterface LineOptions {\n  color?: string;\n  end: number[];\n  gapsize: number;\n  start: number[];\n  type: string;\n}\n\ninterface RingOptions {\n  color?: string;\n  position: number[];\n  radius: number;\n  rotation: number[];\n  type: string;\n}\n\ninterface TextOptions {\n  color?: string;\n  content?: string;\n  font?: string;\n  fontSize: number;\n  height?: number;\n  position: number[];\n  rotation: number[];\n}\n\ninterface ModelSceneState {\n  animation?: {\n    dest?: number[];\n    rotation?: number[];\n    duration?: number;\n    easeType: string;\n    enablePositionAnimation: boolean;\n    enableAnimation: boolean;\n    target?: any\n  };\n  autoRotate?: boolean;\n  background?: string;\n  camera: {\n    maxDistance: number;\n    minDistance: number;\n    position: number[];\n    target: number[];\n  };\n  circle: CirCleOptions[];\n  enableEnv: boolean;\n  light: LightOptions[];\n  flowLight: {\n    useFlowLight: boolean;\n    targetUrl: string;\n    materialMixUrl: string;\n    duration: number;\n    color: string;\n    range: FlowLightRange[]\n  }\n  line: LineOptions[];\n  model: ModelInstanceOption;\n  polarAngle: number;\n  ring: RingOptions[];\n  text: TextOptions[];\n}\n\ninterface Props {\n  sceneArray: any,\n  currentScene: number,\n}\n\nconst props = withDefaults(defineProps<Props>(), {\n  sceneArray: [defaultConfig],\n  currentScene: 1,\n});\n\nconst emit = defineEmits<{\n  (e: 'loading', progress: number): void,\n  (e: 'loaded'): void,\n}>();\n\nconst tmodelContainer = ref<HTMLElement>();\n\nonMounted(() => {\n  nextTick(() => {\n    initModel();\n  });\n});\n\nlet sceneInstance: any; let modelInstance: any; let storeConfig: ModelSceneState;let currentIndex: number;\nconst initModel = (): void => {\n  sceneInstance = new TModel.Scene(tmodelContainer.value);\n  debounceChange(props);\n};\n\n// TODO: 目前把设置模型位置和相机lookat都给关了\nconst onDataChange = (newProps: ModelState) => {\n  if (!sceneInstance) return;\n  const currentConfig = newProps.sceneArray[newProps.currentScene - 1];\n  if (!currentConfig) return;\n  const isChangeScene = !(newProps.currentScene === currentIndex);\n  const diffConfig = updatedDiff(storeConfig, currentConfig);\n  const diffConfigAdd = updatedDiff(currentConfig, storeConfig);\n  const { model, light, line, circle, text, camera, ring, enableEnv, flowLight } = diffConfig;\n  (isChangeScene || camera) && updateCamera(currentConfig?.camera, storeConfig?.camera);\n  light && updateLight(currentConfig?.light);\n  ((model || diffConfigAdd.model || flowLight || diffConfigAdd.flowLight) || isChangeScene) && updateModel(\n    currentConfig?.model,\n    { flowLight: currentConfig?.flowLight,\n      rotation: currentConfig?.animation?.rotation,\n      animation: currentConfig?.animation,\n      autoRotate: currentConfig?.autoRotate,\n    },\n  );\n  if (currentConfig.animation && isChangeScene && modelInstance.object && currentConfig?.animation?.enableAnimation) {\n    sceneInstance.easeTo(\n      Object.assign(currentConfig?.animation, { target: modelInstance.object }),\n      currentConfig?.animation?.enablePositionAnimation,\n    );\n  } else if (model && isChangeScene) {\n    currentConfig.model.position && modelInstance.setPosition(currentConfig.model.position);\n  }\n  sceneInstance.setBackground(currentConfig?.background || '');\n  if (line || diffConfigAdd.line) {\n    sceneInstance.clearLine();\n    currentConfig.line?.forEach((singleLine: LineOptions) => {\n      sceneInstance.addLine(singleLine);\n    });\n  }\n  if (text || diffConfigAdd.text) {\n    sceneInstance.clearText();\n    currentConfig.text?.forEach((singleText: TextOptions) => {\n      const formatText = {\n        content: singleText.content,\n        position: singleText.position,\n        rotation: singleText.rotation,\n        style: { ...singleText },\n      };\n      sceneInstance.addText(formatText);\n    });\n  }\n  if (circle || diffConfigAdd?.circle) {\n    sceneInstance.clearCircle();\n    currentConfig.circle?.forEach((singleCircle: CirCleOptions) => {\n      sceneInstance.addCircle(singleCircle);\n    });\n  }\n  if (ring || diffConfigAdd.ring) {\n    sceneInstance.clearRing();\n    currentConfig.ring?.forEach((singleRing: RingOptions) => {\n      sceneInstance.addRing(singleRing);\n    });\n  }\n  enableEnv !== undefined && sceneInstance.updateEnv(enableEnv);\n  currentConfig.polarAngle && sceneInstance.setPolarAngel(currentConfig.polarAngle);\n  storeConfig = currentConfig;\n  currentIndex = newProps.currentScene;\n};\n\nconst debounceChange = debounce(onDataChange, 100);\nwatch(props, debounceChange);\n\nconst runAnimation = (currentConfig: any) => {\n  // 执行动画时关闭自动旋转\n  sceneInstance.setAutoRotate(false);\n  if (currentConfig.animation && currentConfig?.animation?.enableAnimation) {\n    const setAutoRotate = () => {\n      sceneInstance.setAutoRotate(currentConfig?.autoRotate);\n    };\n    sceneInstance.easeTo(\n      Object.assign(currentConfig?.animation, { target: modelInstance.object }),\n      currentConfig?.animation?.enablePositionAnimation,\n      setAutoRotate,\n    );\n  } else {\n    sceneInstance.setAutoRotate(currentConfig?.autoRotate);\n  }\n};\n\nconst updateModel = (model: ModelInstanceOption, modelConfig?: any): void => {\n  const { url,  scale, position, rotation } = model;\n  const currentUrl = modelInstance?.url;\n  if (url && url === currentUrl) {\n    scale && modelInstance.setScale(scale);\n    position && modelInstance.setPosition(position);\n    rotation && modelInstance.setRotation(rotation);\n    modelInstance.useFlowLight(modelConfig?.flowLight?.useFlowLight);\n    modelInstance.addFlowLight({ ...modelConfig.flowLight });\n    runAnimation(modelConfig);\n  } else {\n    // 初始化时，模型rotation 为动画的rotation\n    const modelOption = { ...model, ...modelConfig.flowLight };\n    if (modelOption && modelConfig?.animateRotation) {\n      modelOption.rotation = modelConfig.animateRotation;\n    }\n    modelInstance = new TModel.Model(modelOption, sceneInstance);\n    modelInstance.on('loaded', (): void => {\n      sceneInstance.addModel(modelInstance);\n      emit('loaded');\n      if (modelConfig.flowLight?.targetUrl) {\n        modelInstance.addFlowLight({ ...modelConfig.flowLight });\n        // color: '#E7C474',\n        //  laiding range: [{ x: 0.065512, y: 0.69352 }, { x: 0.24021, y: 0.80873 }],\n        // 牛股range: [{ x: 0.84623, y: 0.3322 }, { x: 0.5193, y: 0.6989 }],\n      }\n      const currentConfig = props.sceneArray[props.currentScene - 1];\n      runAnimation(currentConfig);\n    });\n    modelInstance.useFlowLight(modelConfig?.flowLight?.useFlowLight);\n    modelInstance.on('loading', (evt: any): void => {\n      emit('loading', evt.progress);\n    });\n  }\n};\n\nconst updateCamera = (camera: CameraOption, oldCameraOption: CameraOption | null): void => {\n  const { position, target, minDistance, maxDistance, duration = 2000 } = camera;\n  position && sceneInstance.updateCamera({ position, lookAt: target, minDistance, maxDistance,\n    animation: {\n      // type: '',\n      initPosition: oldCameraOption?.position,\n      duration,\n    } });\n};\n\nconst updateLight = (lightArray: LightOptions[]): void => {\n  sceneInstance.removeLights();\n  if (!Array.isArray(lightArray)) return;\n  lightArray.forEach((lightOption: LightOptions): void => {\n    sceneInstance.addLight(lightOption);\n  });\n};\n\n</script>\n"],"names":["root","require","now","Date","module","reWhitespace","trimmedEndIndex","string","index","length","test","charAt","reTrimStart","baseTrim","slice","replace","isObject","isSymbol","NAN","reIsBadHex","reIsBinary","reIsOctal","freeParseInt","parseInt","toNumber","value","other","valueOf","isBinary","FUNC_ERROR_TEXT","nativeMax","Math","max","nativeMin","min","debounce","func","wait","options","lastArgs","lastThis","maxWait","result","timerId","lastCallTime","lastInvokeTime","leading","maxing","trailing","TypeError","invokeFunc","time","args","thisArg","undefined","apply","leadingEdge","setTimeout","timerExpired","remainingWait","timeSinceLastCall","timeSinceLastInvoke","timeWaiting","shouldInvoke","trailingEdge","cancel","clearTimeout","flush","debounced","isInvoking","arguments","__default__","defineComponent","name","_defineComponent","_objectSpread","props","sceneArray","type","required","default","defaultConfig","currentScene","Number","emits","setup","__props","emit","tmodelContainer","ref","onMounted","nextTick","initModel","sceneInstance","modelInstance","storeConfig","currentIndex","TModel","Scene","debounceChange","onDataChange","newProps","currentConfig","isChangeScene","diffConfig","updatedDiff","diffConfigAdd","model","light","line","circle","text","camera","ring","enableEnv","flowLight","updateCamera","updateLight","updateModel","rotation","animation","autoRotate","object","enableAnimation","easeTo","Object","assign","target","enablePositionAnimation","position","setPosition","setBackground","background","clearLine","forEach","singleLine","addLine","clearText","singleText","formatText","content","style","addText","clearCircle","singleCircle","addCircle","clearRing","singleRing","addRing","updateEnv","polarAngle","setPolarAngel","watch","runAnimation","setAutoRotate","modelConfig","url","scale","on","addModel","targetUrl","addFlowLight","useFlowLight","evt","progress","oldCameraOption","minDistance","maxDistance","duration","lookAt","initPosition","lightArray","removeLights","Array","isArray","lightOption","addLight","_ctx","_cache","_openBlock","_createElementBlock","ref_key","class"],"mappings":";;;;;;;;;AAAA,IAAIA,IAAI,GAAGC,KAAX,CAAA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,IAAIC,KAAG,GAAG,SAANA,GAAM,GAAW;AACnB,EAAA,OAAOF,IAAI,CAACG,IAAL,CAAUD,GAAV,EAAP,CAAA;AACD,CAFD,CAAA;;AAIAE,IAAAA,KAAA,GAAiBF,KAAjB;;;;ACrBA,IAAIG,YAAY,GAAG,IAAnB,CAAA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AACA,SAASC,iBAAT,CAAyBC,MAAzB,EAAiC;AAC/B,EAAA,IAAIC,KAAK,GAAGD,MAAM,CAACE,MAAnB,CAAA;;AAEA,EAAA,OAAOD,KAAK,EAAA,IAAMH,YAAY,CAACK,IAAb,CAAkBH,MAAM,CAACI,MAAP,CAAcH,KAAd,CAAlB,CAAlB,EAA2D,EAAE;;AAC7D,EAAA,OAAOA,KAAP,CAAA;AACD,CAAA;;AAEDJ,IAAAA,gBAAA,GAAiBE,iBAAjB;;AClBA,IAAIA,eAAe,GAAGL,gBAAtB,CAAA;AAEA;;;AACA,IAAIW,WAAW,GAAG,MAAlB,CAAA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AACA,SAASC,UAAT,CAAkBN,MAAlB,EAA0B;EACxB,OAAOA,MAAM,GACTA,MAAM,CAACO,KAAP,CAAa,CAAb,EAAgBR,eAAe,CAACC,MAAD,CAAf,GAA0B,CAA1C,EAA6CQ,OAA7C,CAAqDH,WAArD,EAAkE,EAAlE,CADS,GAETL,MAFJ,CAAA;AAGD,CAAA;;AAEDH,IAAAA,SAAA,GAAiBS,UAAjB;;AClBA,IAAIA,QAAQ,GAAGZ,SAAf;AAAA,IACIe,UAAQ,GAAGf,UADf;AAAA,IAEIgB,QAAQ,GAAGhB,UAFf,CAAA;AAIA;;;AACA,IAAIiB,GAAG,GAAG,CAAA,GAAI,CAAd,CAAA;AAEA;;AACA,IAAIC,UAAU,GAAG,oBAAjB,CAAA;AAEA;;AACA,IAAIC,UAAU,GAAG,YAAjB,CAAA;AAEA;;AACA,IAAIC,SAAS,GAAG,aAAhB,CAAA;AAEA;;AACA,IAAIC,YAAY,GAAGC,QAAnB,CAAA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AACA,SAASC,UAAT,CAAkBC,KAAlB,EAAyB;AACvB,EAAA,IAAI,OAAOA,KAAP,IAAgB,QAApB,EAA8B;AAC5B,IAAA,OAAOA,KAAP,CAAA;AACD,GAAA;;AACD,EAAA,IAAIR,QAAQ,CAACQ,KAAD,CAAZ,EAAqB;AACnB,IAAA,OAAOP,GAAP,CAAA;AACD,GAAA;;AACD,EAAA,IAAIF,UAAQ,CAACS,KAAD,CAAZ,EAAqB;AACnB,IAAA,IAAIC,KAAK,GAAG,OAAOD,KAAK,CAACE,OAAb,IAAwB,UAAxB,GAAqCF,KAAK,CAACE,OAAN,EAArC,GAAuDF,KAAnE,CAAA;IACAA,KAAK,GAAGT,UAAQ,CAACU,KAAD,CAAR,GAAmBA,KAAK,GAAG,EAA3B,GAAiCA,KAAzC,CAAA;AACD,GAAA;;AACD,EAAA,IAAI,OAAOD,KAAP,IAAgB,QAApB,EAA8B;AAC5B,IAAA,OAAOA,KAAK,KAAK,CAAV,GAAcA,KAAd,GAAsB,CAACA,KAA9B,CAAA;AACD,GAAA;;AACDA,EAAAA,KAAK,GAAGZ,QAAQ,CAACY,KAAD,CAAhB,CAAA;AACA,EAAA,IAAIG,QAAQ,GAAGR,UAAU,CAACV,IAAX,CAAgBe,KAAhB,CAAf,CAAA;AACA,EAAA,OAAQG,QAAQ,IAAIP,SAAS,CAACX,IAAV,CAAee,KAAf,CAAb,GACHH,YAAY,CAACG,KAAK,CAACX,KAAN,CAAY,CAAZ,CAAD,EAAiBc,QAAQ,GAAG,CAAH,GAAO,CAAhC,CADT,GAEFT,UAAU,CAACT,IAAX,CAAgBe,KAAhB,CAAA,GAAyBP,GAAzB,GAA+B,CAACO,KAFrC,CAAA;AAGD,CAAA;;AAEDrB,IAAAA,UAAA,GAAiBoB,UAAjB;;AC/DA,IAAIR,QAAQ,GAAGf,UAAf;AAAA,IACIC,GAAG,GAAGD,KADV;AAAA,IAEIuB,QAAQ,GAAGvB,UAFf,CAAA;AAIA;;;AACA,IAAI4B,eAAe,GAAG,qBAAtB,CAAA;AAEA;;AACA,IAAIC,SAAS,GAAGC,IAAI,CAACC,GAArB;AAAA,IACIC,SAAS,GAAGF,IAAI,CAACG,GADrB,CAAA;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AACA,SAASC,QAAT,CAAkBC,IAAlB,EAAwBC,IAAxB,EAA8BC,OAA9B,EAAuC;AACrC,EAAA,IAAIC,QAAJ;AAAA,MACIC,QADJ;AAAA,MAEIC,OAFJ;AAAA,MAGIC,MAHJ;AAAA,MAIIC,OAJJ;AAAA,MAKIC,YALJ;MAMIC,cAAc,GAAG,CANrB;MAOIC,OAAO,GAAG,KAPd;MAQIC,MAAM,GAAG,KARb;MASIC,QAAQ,GAAG,IATf,CAAA;;AAWA,EAAA,IAAI,OAAOZ,IAAP,IAAe,UAAnB,EAA+B;AAC7B,IAAA,MAAM,IAAIa,SAAJ,CAAcpB,eAAd,CAAN,CAAA;AACD,GAAA;;AACDQ,EAAAA,IAAI,GAAGb,QAAQ,CAACa,IAAD,CAAR,IAAkB,CAAzB,CAAA;;AACA,EAAA,IAAIrB,QAAQ,CAACsB,OAAD,CAAZ,EAAuB;AACrBQ,IAAAA,OAAO,GAAG,CAAC,CAACR,OAAO,CAACQ,OAApB,CAAA;IACAC,MAAM,GAAG,aAAaT,OAAtB,CAAA;AACAG,IAAAA,OAAO,GAAGM,MAAM,GAAGjB,SAAS,CAACN,QAAQ,CAACc,OAAO,CAACG,OAAT,CAAR,IAA6B,CAA9B,EAAiCJ,IAAjC,CAAZ,GAAqDI,OAArE,CAAA;IACAO,QAAQ,GAAG,UAAcV,IAAAA,OAAd,GAAwB,CAAC,CAACA,OAAO,CAACU,QAAlC,GAA6CA,QAAxD,CAAA;AACD,GAAA;;EAED,SAASE,UAAT,CAAoBC,IAApB,EAA0B;IACxB,IAAIC,IAAI,GAAGb,QAAX;QACIc,OAAO,GAAGb,QADd,CAAA;IAGAD,QAAQ,GAAGC,QAAQ,GAAGc,SAAtB,CAAA;AACAT,IAAAA,cAAc,GAAGM,IAAjB,CAAA;IACAT,MAAM,GAAGN,IAAI,CAACmB,KAAL,CAAWF,OAAX,EAAoBD,IAApB,CAAT,CAAA;AACA,IAAA,OAAOV,MAAP,CAAA;AACD,GAAA;;EAED,SAASc,WAAT,CAAqBL,IAArB,EAA2B;AACzB;IACAN,cAAc,GAAGM,IAAjB,CAFyB;;IAIzBR,OAAO,GAAGc,UAAU,CAACC,YAAD,EAAerB,IAAf,CAApB,CAJyB;;AAMzB,IAAA,OAAOS,OAAO,GAAGI,UAAU,CAACC,IAAD,CAAb,GAAsBT,MAApC,CAAA;AACD,GAAA;;EAED,SAASiB,aAAT,CAAuBR,IAAvB,EAA6B;AAC3B,IAAA,IAAIS,iBAAiB,GAAGT,IAAI,GAAGP,YAA/B;AAAA,QACIiB,mBAAmB,GAAGV,IAAI,GAAGN,cADjC;AAAA,QAEIiB,WAAW,GAAGzB,IAAI,GAAGuB,iBAFzB,CAAA;IAIA,OAAOb,MAAM,GACTd,SAAS,CAAC6B,WAAD,EAAcrB,OAAO,GAAGoB,mBAAxB,CADA,GAETC,WAFJ,CAAA;AAGD,GAAA;;EAED,SAASC,YAAT,CAAsBZ,IAAtB,EAA4B;AAC1B,IAAA,IAAIS,iBAAiB,GAAGT,IAAI,GAAGP,YAA/B;AAAA,QACIiB,mBAAmB,GAAGV,IAAI,GAAGN,cADjC,CAD0B;AAK1B;AACA;;AACA,IAAA,OAAQD,YAAY,KAAKU,SAAjB,IAA+BM,iBAAiB,IAAIvB,IAApD,IACLuB,iBAAiB,GAAG,CADf,IACsBb,MAAM,IAAIc,mBAAmB,IAAIpB,OAD/D,CAAA;AAED,GAAA;;AAED,EAAA,SAASiB,YAAT,GAAwB;IACtB,IAAIP,IAAI,GAAGjD,GAAG,EAAd,CAAA;;AACA,IAAA,IAAI6D,YAAY,CAACZ,IAAD,CAAhB,EAAwB;MACtB,OAAOa,YAAY,CAACb,IAAD,CAAnB,CAAA;AACD,KAJqB;;;IAMtBR,OAAO,GAAGc,UAAU,CAACC,YAAD,EAAeC,aAAa,CAACR,IAAD,CAA5B,CAApB,CAAA;AACD,GAAA;;EAED,SAASa,YAAT,CAAsBb,IAAtB,EAA4B;IAC1BR,OAAO,GAAGW,SAAV,CAD0B;AAI1B;;IACA,IAAIN,QAAQ,IAAIT,QAAhB,EAA0B;MACxB,OAAOW,UAAU,CAACC,IAAD,CAAjB,CAAA;AACD,KAAA;;IACDZ,QAAQ,GAAGC,QAAQ,GAAGc,SAAtB,CAAA;AACA,IAAA,OAAOZ,MAAP,CAAA;AACD,GAAA;;AAED,EAAA,SAASuB,MAAT,GAAkB;IAChB,IAAItB,OAAO,KAAKW,SAAhB,EAA2B;MACzBY,YAAY,CAACvB,OAAD,CAAZ,CAAA;AACD,KAAA;;AACDE,IAAAA,cAAc,GAAG,CAAjB,CAAA;AACAN,IAAAA,QAAQ,GAAGK,YAAY,GAAGJ,QAAQ,GAAGG,OAAO,GAAGW,SAA/C,CAAA;AACD,GAAA;;AAED,EAAA,SAASa,KAAT,GAAiB;IACf,OAAOxB,OAAO,KAAKW,SAAZ,GAAwBZ,MAAxB,GAAiCsB,YAAY,CAAC9D,GAAG,EAAJ,CAApD,CAAA;AACD,GAAA;;AAED,EAAA,SAASkE,SAAT,GAAqB;IACnB,IAAIjB,IAAI,GAAGjD,GAAG,EAAd;AAAA,QACImE,UAAU,GAAGN,YAAY,CAACZ,IAAD,CAD7B,CAAA;AAGAZ,IAAAA,QAAQ,GAAG+B,SAAX,CAAA;AACA9B,IAAAA,QAAQ,GAAG,IAAX,CAAA;AACAI,IAAAA,YAAY,GAAGO,IAAf,CAAA;;AAEA,IAAA,IAAIkB,UAAJ,EAAgB;MACd,IAAI1B,OAAO,KAAKW,SAAhB,EAA2B;QACzB,OAAOE,WAAW,CAACZ,YAAD,CAAlB,CAAA;AACD,OAAA;;AACD,MAAA,IAAIG,MAAJ,EAAY;AACV;QACAmB,YAAY,CAACvB,OAAD,CAAZ,CAAA;AACAA,QAAAA,OAAO,GAAGc,UAAU,CAACC,YAAD,EAAerB,IAAf,CAApB,CAAA;QACA,OAAOa,UAAU,CAACN,YAAD,CAAjB,CAAA;AACD,OAAA;AACF,KAAA;;IACD,IAAID,OAAO,KAAKW,SAAhB,EAA2B;AACzBX,MAAAA,OAAO,GAAGc,UAAU,CAACC,YAAD,EAAerB,IAAf,CAApB,CAAA;AACD,KAAA;;AACD,IAAA,OAAOK,MAAP,CAAA;AACD,GAAA;;EACD0B,SAAS,CAACH,MAAV,GAAmBA,MAAnB,CAAA;EACAG,SAAS,CAACD,KAAV,GAAkBA,KAAlB,CAAA;AACA,EAAA,OAAOC,SAAP,CAAA;AACD,CAAA;;AAEDhE,IAAAA,UAAA,GAAiB+B,QAAjB;;AC5KA,IAAAoC,WAAA,GAAAC,eAAA,CAAA;AACAC,EAAAA,IAAA,EAAA,WAAA;AADA,CAAA,CAAA,CAAA;;AAGA,aAAA,eAAAC,eAAA,CAAAC,cAAA,CAAAA,cAAA,CAAA,EAAA,EACAJ,WADA,CAAA,EAAA,EAAA,EAAA;AAEAK,EAAAA,KAAA,EAAA;AACAC,IAAAA,UAAA,EAAA;AAAAC,MAAAA,IAAA,EAAA,IAAA;AAAAC,MAAAA,QAAA,EAAA,IAAA;MAAAC,OAAA,EAAA,CAAAC,aAAA,CAAA;KADA;AAEAC,IAAAA,YAAA,EAAA;AAAAJ,MAAAA,IAAA,EAAAK,MAAA;AAAAJ,MAAAA,QAAA,EAAA,IAAA;AAAAC,MAAAA,OAAA,EAAA,CAAA;AAAA,KAAA;GAJA;AAMAI,EAAAA,KAAA,EAAA,CAAA,SAAA,EAAA,QAAA,CANA;;EAOAC,KAAA,CAAAC,OAAA,EAAA,IAAA,EAAA;IAAA,IAAA;AAAAC,MAAAA,IAAAA;KAAA,GAAA,IAAA,CAAA;IACA,IAAAX,KAAA,GAAAU,OAAA,CAAA;IACA,IAAAE,eAAA,GAAAC,GAAA,EAAA,CAAA;AACAC,IAAAA,SAAA,CAAA,MAAA;AACAC,MAAAA,QAAA,CAAA,MAAA;QACAC,SAAA,EAAA,CAAA;AACA,OAFA,CAAA,CAAA;AAGA,KAJA,CAAA,CAAA;AAKA,IAAA,IAAAC,aAAA,CAAA;AACA,IAAA,IAAAC,aAAA,CAAA;AACA,IAAA,IAAAC,WAAA,CAAA;AACA,IAAA,IAAAC,YAAA,CAAA;;IACA,IAAAJ,SAAA,GAAA,MAAA;MACAC,aAAA,GAAA,IAAAI,MAAA,CAAAC,KAAA,CAAAV,eAAA,CAAA/D,KAAA,CAAA,CAAA;MACA0E,cAAA,CAAAvB,KAAA,CAAA,CAAA;KAFA,CAAA;;IAIA,IAAAwB,YAAA,GAAAC,QAAA,IAAA;AAAA,MAAA,IAAA,YAAA,EAAA,qBAAA,EAAA,sBAAA,CAAA;;MACA,IAAA,CAAAR,aAAA,EACA,OAAA;MACA,IAAAS,aAAA,GAAAD,QAAA,CAAAxB,UAAA,CAAAwB,QAAA,CAAAnB,YAAA,GAAA,CAAA,CAAA,CAAA;MACA,IAAA,CAAAoB,aAAA,EACA,OAAA;MACA,IAAAC,aAAA,GAAA,EAAAF,QAAA,CAAAnB,YAAA,KAAAc,YAAA,CAAA,CAAA;AACA,MAAA,IAAAQ,UAAA,GAAAC,WAAA,CAAAV,WAAA,EAAAO,aAAA,CAAA,CAAA;AACA,MAAA,IAAAI,aAAA,GAAAD,WAAA,CAAAH,aAAA,EAAAP,WAAA,CAAA,CAAA;MACA,IAAA;QAAAY,KAAA;QAAAC,KAAA;QAAAC,IAAA;QAAAC,MAAA;QAAAC,IAAA;QAAAC,MAAA;QAAAC,IAAA;QAAAC,SAAA;AAAAC,QAAAA,SAAAA;AAAA,OAAA,GAAAX,UAAA,CAAA;AACA,MAAA,CAAAD,aAAA,IAAAS,MAAA,KAAAI,YAAA,CAAAd,aAAA,KAAAA,IAAAA,IAAAA,aAAA,KAAAA,KAAAA,CAAAA,GAAAA,KAAAA,CAAAA,GAAAA,aAAA,CAAAU,MAAA,EAAA,CAAA,YAAA,GAAAjB,WAAA,MAAA,IAAA,IAAA,YAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,YAAA,CAAAiB,MAAA,CAAA,CAAA;MACAJ,KAAA,IAAAS,WAAA,CAAAf,aAAA,KAAA,IAAA,IAAAA,aAAA,KAAAA,KAAAA,CAAAA,GAAAA,KAAAA,CAAAA,GAAAA,aAAA,CAAAM,KAAA,CAAA,CAAA;MACA,CAAAD,KAAA,IAAAD,aAAA,CAAAC,KAAA,IAAAQ,SAAA,IAAAT,aAAA,CAAAS,SAAA,IAAAZ,aAAA,KAAAe,WAAA,CAAAhB,aAAA,KAAA,IAAA,IAAAA,aAAA,KAAAA,KAAAA,CAAAA,GAAAA,KAAAA,CAAAA,GAAAA,aAAA,CAAAK,KAAA,EAAA;AACAQ,QAAAA,SAAA,EAAAb,aAAA,KAAA,IAAA,IAAAA,aAAA,KAAAA,KAAAA,CAAAA,GAAAA,KAAAA,CAAAA,GAAAA,aAAA,CAAAa,SADA;QAEAI,QAAA,EAAAjB,aAAA,KAAA,IAAA,IAAAA,aAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,CAAA,qBAAA,GAAAA,aAAA,CAAAkB,SAAA,MAAA,IAAA,IAAA,qBAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,qBAAA,CAAAD,QAFA;AAGAC,QAAAA,SAAA,EAAAlB,aAAA,KAAA,IAAA,IAAAA,aAAA,KAAAA,KAAAA,CAAAA,GAAAA,KAAAA,CAAAA,GAAAA,aAAA,CAAAkB,SAHA;AAIAC,QAAAA,UAAA,EAAAnB,aAAA,KAAA,IAAA,IAAAA,aAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAAA,aAAA,CAAAmB,UAAAA;AAJA,OAAA,CAAA,CAAA;;MAMA,IAAAnB,aAAA,CAAAkB,SAAA,IAAAjB,aAAA,IAAAT,aAAA,CAAA4B,MAAA,IAAApB,aAAA,KAAAA,IAAAA,IAAAA,aAAA,yCAAAA,aAAA,CAAAkB,SAAA,MAAA,IAAA,IAAA,sBAAA,KAAA,KAAA,CAAA,IAAA,sBAAA,CAAAG,eAAA,EAAA;AAAA,QAAA,IAAA,sBAAA,CAAA;;AACA9B,QAAAA,aAAA,CAAA+B,MAAA,CAAAC,MAAA,CAAAC,MAAA,CAAAxB,aAAA,KAAA,IAAA,IAAAA,aAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAAA,aAAA,CAAAkB,SAAA,EAAA;UAAAO,MAAA,EAAAjC,aAAA,CAAA4B,MAAAA;SAAA,CAAA,EAAApB,aAAA,KAAAA,IAAAA,IAAAA,aAAA,KAAAA,KAAAA,CAAAA,GAAAA,KAAAA,CAAAA,GAAAA,CAAAA,sBAAAA,GAAAA,aAAA,CAAAkB,SAAA,MAAA,IAAA,IAAA,sBAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,sBAAA,CAAAQ,uBAAA,CAAA,CAAA;AACA,OAFA,MAEA,IAAArB,KAAA,IAAAJ,aAAA,EAAA;AACAD,QAAAA,aAAA,CAAAK,KAAA,CAAAsB,QAAA,IAAAnC,aAAA,CAAAoC,WAAA,CAAA5B,aAAA,CAAAK,KAAA,CAAAsB,QAAA,CAAA,CAAA;AACA,OAAA;;AACApC,MAAAA,aAAA,CAAAsC,aAAA,CAAA,CAAA7B,aAAA,KAAA,IAAA,IAAAA,aAAA,KAAA,KAAA,CAAA,GAAAA,KAAAA,CAAAA,GAAAA,aAAA,CAAA8B,UAAA,KAAA,EAAA,CAAA,CAAA;;AACA,MAAA,IAAAvB,IAAA,IAAAH,aAAA,CAAAG,IAAA,EAAA;AAAA,QAAA,IAAA,mBAAA,CAAA;;AACAhB,QAAAA,aAAA,CAAAwC,SAAA,EAAA,CAAA;AACA,QAAA,CAAA,mBAAA,GAAA/B,aAAA,CAAAO,IAAA,4EAAAyB,OAAA,CAAAC,UAAA,IAAA;UACA1C,aAAA,CAAA2C,OAAA,CAAAD,UAAA,CAAA,CAAA;SADA,CAAA,CAAA;AAGA,OAAA;;AACA,MAAA,IAAAxB,IAAA,IAAAL,aAAA,CAAAK,IAAA,EAAA;AAAA,QAAA,IAAA,mBAAA,CAAA;;AACAlB,QAAAA,aAAA,CAAA4C,SAAA,EAAA,CAAA;AACA,QAAA,CAAA,mBAAA,GAAAnC,aAAA,CAAAS,IAAA,4EAAAuB,OAAA,CAAAI,UAAA,IAAA;AACA,UAAA,IAAAC,UAAA,GAAA;YACAC,OAAA,EAAAF,UAAA,CAAAE,OADA;YAEAX,QAAA,EAAAS,UAAA,CAAAT,QAFA;YAGAV,QAAA,EAAAmB,UAAA,CAAAnB,QAHA;AAIAsB,YAAAA,KAAA,qBAAAH,UAAA,CAAA;WAJA,CAAA;UAMA7C,aAAA,CAAAiD,OAAA,CAAAH,UAAA,CAAA,CAAA;SAPA,CAAA,CAAA;AASA,OAAA;;MACA,IAAA7B,MAAA,IAAAJ,aAAA,KAAA,IAAA,IAAAA,aAAA,KAAAA,KAAAA,CAAAA,IAAAA,aAAA,CAAAI,MAAA,EAAA;AAAA,QAAA,IAAA,qBAAA,CAAA;;AACAjB,QAAAA,aAAA,CAAAkD,WAAA,EAAA,CAAA;AACA,QAAA,CAAA,qBAAA,GAAAzC,aAAA,CAAAQ,MAAA,gFAAAwB,OAAA,CAAAU,YAAA,IAAA;UACAnD,aAAA,CAAAoD,SAAA,CAAAD,YAAA,CAAA,CAAA;SADA,CAAA,CAAA;AAGA,OAAA;;AACA,MAAA,IAAA/B,IAAA,IAAAP,aAAA,CAAAO,IAAA,EAAA;AAAA,QAAA,IAAA,mBAAA,CAAA;;AACApB,QAAAA,aAAA,CAAAqD,SAAA,EAAA,CAAA;AACA,QAAA,CAAA,mBAAA,GAAA5C,aAAA,CAAAW,IAAA,4EAAAqB,OAAA,CAAAa,UAAA,IAAA;UACAtD,aAAA,CAAAuD,OAAA,CAAAD,UAAA,CAAA,CAAA;SADA,CAAA,CAAA;AAGA,OAAA;;MACAjC,SAAA,KAAA,KAAA,CAAA,IAAArB,aAAA,CAAAwD,SAAA,CAAAnC,SAAA,CAAA,CAAA;MACAZ,aAAA,CAAAgD,UAAA,IAAAzD,aAAA,CAAA0D,aAAA,CAAAjD,aAAA,CAAAgD,UAAA,CAAA,CAAA;AACAvD,MAAAA,WAAA,GAAAO,aAAA,CAAA;MACAN,YAAA,GAAAK,QAAA,CAAAnB,YAAA,CAAA;KAzDA,CAAA;;AA2DA,IAAA,IAAAiB,cAAA,GAAAhE,UAAA,CAAAiE,YAAA,EAAA,GAAA,CAAA,CAAA;AACAoD,IAAAA,KAAA,CAAA5E,KAAA,EAAAuB,cAAA,CAAA,CAAA;;IACA,IAAAsD,YAAA,GAAAnD,aAAA,IAAA;AAAA,MAAA,IAAA,sBAAA,CAAA;;MACAT,aAAA,CAAA6D,aAAA,CAAA,KAAA,CAAA,CAAA;;AACA,MAAA,IAAApD,aAAA,CAAAkB,SAAA,IAAAlB,aAAA,KAAAA,IAAAA,IAAAA,aAAA,KAAAA,KAAAA,CAAAA,IAAAA,CAAAA,sBAAAA,GAAAA,aAAA,CAAAkB,SAAA,MAAA,IAAA,IAAA,sBAAA,KAAA,KAAA,CAAA,IAAA,sBAAA,CAAAG,eAAA,EAAA;AAAA,QAAA,IAAA,sBAAA,CAAA;;QACA,IAAA+B,aAAA,GAAA,MAAA;UACA7D,aAAA,CAAA6D,aAAA,CAAApD,aAAA,aAAAA,aAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAAA,aAAA,CAAAmB,UAAA,CAAA,CAAA;SADA,CAAA;;AAGA5B,QAAAA,aAAA,CAAA+B,MAAA,CAAAC,MAAA,CAAAC,MAAA,CAAAxB,aAAA,KAAA,IAAA,IAAAA,aAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAAA,aAAA,CAAAkB,SAAA,EAAA;UAAAO,MAAA,EAAAjC,aAAA,CAAA4B,MAAAA;AAAA,SAAA,CAAA,EAAApB,aAAA,KAAA,IAAA,IAAAA,aAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,CAAA,sBAAA,GAAAA,aAAA,CAAAkB,SAAA,MAAA,IAAA,IAAA,sBAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,sBAAAQ,CAAAA,uBAAA,EAAA0B,aAAA,CAAA,CAAA;AA/GkB,OA2GlB,MA3GkB;QAClB7D,aAAA,CAAA6D,aAAA,CAAApD,aAAA,aAAAA,aAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAAA,aAAA,CAAAmB,UAAA,CAAA,CAAA;AACA,OAAA;KAuGA,CAAA;;AArGA,IAAA,IAAAH,WAAA,GAAA,CAAAX,KAAA,EAAAgD,WAAA,KAAA;AAAA,MAAA,IAAA,cAAA,CAAA;;MACA,IAAA;QAAAC,GAAA;QAAAC,KAAA;QAAA5B,QAAA;AAAAV,QAAAA,QAAAA;AAAA,OAAA,GAAAZ,KAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;AAQyCb,QAAAA,aAAA,CAAAgE,EAAA,CAAA,QAAA,EAAA,MAAA;AAAA,UAAA,IAAA,sBAAA,CAAA;;UAsGtCjE,aAAA,CAAAkE,QAAA,CAAAjE,aAAA,CAAA,CAAA;UACHP,IAAA,CAAA,QAAA,CAAA,CAAA;;AAIK,UAAA,IAAA,CAAA,sBAAA,GAAAoE,WAAA,CAAAxC,SAAA,MAAA,IAAA,IAAA,sBAAA,KAAA,KAAA,CAAA,IAAA,sBAAA,CAAA6C,SAAA,EAAA;AACLlE,YAAAA,aAAA,CAAAmE,YAAA,CAAAN,cAAAA,CAAAA,EAAAA,EAAAA,WAAA,CAAAxC,SAAA,CAAA,CAAA,CAAA;AACA,WAAA;;UACA,IAAAb,aAAA,GAAA1B,KAAA,CAAAC,UAAA,CAAAD,KAAA,CAAAM,YAAA,GAAA,CAAA,CAAA,CAAA;UACAuE,YAAA,CAAAnD,aAAA,CAAA,CAAA;SA/GyC,CAAA,CAAA;AAiHzCR,QAAAA,aAAA,CAAAoE,YAAA,CAAAP,WAAA,KAAAA,IAAAA,IAAAA,WAAA,KAAAA,KAAAA,CAAAA,GAAAA,KAAAA,CAAAA,GAAAA,CAAAA,sBAAAA,GAAAA,WAAA,CAAAxC,SAAA,MAAA,IAAA,IAAA,sBAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,sBAAA,CAAA+C,YAAA,CAAA,CAAA;AACApE,QAAAA,aAAA,CAAAgE,EAAA,CAAA,SAAA,EAAAK,GAAA,IAAA;AACA5E,UAAAA,IAAA,CAAA,SAAA,EAAA4E,GAAA,CAAAC,QAAA,CAAA,CAAA;SADA,CAAA,CAAA;AAGA,OAAA;KA9HA,CAAA;;AAgIA,IAAA,IAAAhD,YAAA,GAAA,CAAAJ,MAAA,EAAAqD,eAAA,KAAA;MACA,IAAA;QAAApC,QAAA;QAAAF,MAAA;QAAAuC,WAAA;QAAAC,WAAA;AAAAC,QAAAA,QAAA,GAAA,GAAA;AAAA,OAAA,GAAAxD,MAAA,CAAA;AACAiB,MAAAA,QAAA,IAAApC,aAAA,CAAAuB,YAAA,CAAA;QACAa,QADA;AAEAwC,QAAAA,MAAA,EAAA1C,MAFA;QAGAuC,WAHA;QAIAC,WAJA;AAKA/C,QAAAA,SAAA,EAAA;AACAkD,UAAAA,YAAA,EAAAL,eAAA,KAAA,IAAA,IAAAA,eAAA,KAAAA,KAAAA,CAAAA,GAAAA,KAAAA,CAAAA,GAAAA,eAAA,CAAApC,QADA;AAEAuC,UAAAA,QAAAA;AAFA,SAAA;AALA,OAAA,CAAA,CAAA;KAFA,CAAA;;IAaA,IAAAnD,WAAA,GAAAsD,UAAA,IAAA;AACA9E,MAAAA,aAAA,CAAA+E,YAAA,EAAA,CAAA;AACA,MAAA,IAAA,CAAAC,KAAA,CAAAC,OAAA,CAAAH,UAAA,CAAA,EACA,OAAA;AACAA,MAAAA,UAAA,CAAArC,OAAA,CAAAyC,WAAA,IAAA;QACAlF,aAAA,CAAAmF,QAAA,CAAAD,WAAA,CAAA,CAAA;OADA,CAAA,CAAA;KAJA,CAAA;;AAQA,IAAA,OAAA,CAAAE,IAAA,EAAAC,MAAA,KAAA;AACA,MAAA,OAAAC,SAAA,EAAA,EAAAC,kBAAA,CAAA,KAAA,EAAA;AACAC,QAAAA,OAAA,EAAA,iBADA;AAEA5F,QAAAA,GAAA,EAAAD,eAFA;AAGA8F,QAAAA,KAAA,EAAA,YAAA;AAHA,OAAA,EAIA,IAJA,EAIA,GAJA,CAAA,CAAA;KADA,CAAA;AAOA,GAAA;;AA3IA,CAAA,CAAA,CAAA;;;;;;;"}