{"version":3,"file":"use-drawing-action.mjs","sources":["../../../../../packages/composables/use-drawing/use-drawing-action.ts"],"sourcesContent":["/*\n * @Author: zouyaoji@https://github.com/zouyaoji\n * @Date: 2021-10-15 09:47:36\n * @LastEditTime: 2022-07-25 17:36:49\n * @LastEditors: zouyaoji\n * @Description:\n * @FilePath: \\vue-cesium@next\\packages\\composables\\use-drawing\\use-drawing-action.ts\n */\n// import { enableMouseEvent } from 'casc-cesium-utils/cesium-props'\nimport type { VcReadyObject, VcComponentInternalInstance, VcComponentPublicInstance, VcDrawingProvider, VcPickEvent } from 'casc-cesium-utils/types'\nimport { ref, computed } from 'vue'\nimport { useLocale } from '../use-locale'\nimport { DrawStatus } from 'casc-cesium-shared'\nimport useTimeout from 'casc-cesium-composables/private/use-timeout'\nimport { kebabCase } from 'casc-cesium-utils/util'\nimport { VcDrawTipOpts } from 'casc-cesium-utils/drawing-types'\n\nexport default function (props, ctx, instance: VcComponentInternalInstance, cmpName: string, $services: VcDrawingProvider) {\n  instance.cesiumClass = cmpName\n  instance.cesiumEvents = []\n  const { t } = useLocale()\n  const { emit } = ctx\n  const tips = kebabCase(cmpName).split('-')\n  if (cmpName === 'VcMeasurementDistance' && props.showComponentLines) {\n    tips[2] = 'component-distance'\n  }\n  if (cmpName === 'VcDrawingRegular' || cmpName === 'VcMeasurementRegular') {\n    if (props.edge === 4) {\n      tips[2] = 'rectangle'\n    }\n    if (props.edge === 360) {\n      tips[2] = 'circle'\n    }\n  }\n  let drawingType = tips[2]\n\n  tips[3] && (drawingType = `${tips[2]}-${tips[3]}`)\n\n  const drawTip = ref('')\n  const drawTipOpts = computed<VcDrawTipOpts>(() => {\n    return {\n      drawingTipStart: props.drawtip.drawingTipStart || t(`${tips[0]}.${tips[1]}.${tips[2]}.drawingTipStart`),\n      drawingTipEnd: props.drawtip.drawingTipEnd || t(`${tips[0]}.${tips[1]}.${tips[2]}.drawingTipEnd`),\n      drawingTipEditing: props.drawtip.drawingTipEditing || t(`${tips[0]}.${tips[1]}.${tips[2]}.drawingTipEditing`)\n    }\n  })\n\n  const drawStatus = ref(DrawStatus.BeforeDraw)\n  const canShowDrawTip = ref(false)\n  const drawTipPosition = ref<Array<number> | Cesium.Cartesian3>([0, 0, 0])\n  const showEditor = ref(false)\n  const editorPosition = ref<Array<number> | Cesium.Cartesian3>([0, 0, 0])\n  const mouseoverPoint = ref<any>(null)\n  const editingPoint = ref<any>(null)\n  const primitiveCollectionRef = ref<VcComponentPublicInstance>(null!)\n  const editorType = ref('')\n\n  const { registerTimeout, removeTimeout } = useTimeout()\n\n  // methods\n  instance.createCesiumObject = async () => {\n    return primitiveCollectionRef\n  }\n\n  const onMouseoverPoints = (e: VcPickEvent) => {\n    const { drawingHandlerActive, viewer } = $services\n    if (props.editable && drawStatus.value !== DrawStatus.Drawing && drawingHandlerActive) {\n      e.pickedFeature.primitive.pixelSize = props.pointOpts?.pixelSize * 1.5\n      removeTimeout()\n      registerTimeout(() => {\n        mouseoverPoint.value = e.pickedFeature.primitive\n        editorPosition.value = e.pickedFeature.primitive.position\n        showEditor.value = true\n        canShowDrawTip.value = false\n        drawTipPosition.value = [0, 0, 0]\n      }, props.editorOpts?.delay)\n    }\n\n    emit(\n      'mouseEvt',\n      {\n        type: e.type,\n        name: drawingType,\n        target: e\n      },\n      viewer\n    )\n  }\n\n  const onMouseoutPoints = (e: VcPickEvent) => {\n    const { viewer, selectedDrawingActionInstance } = $services\n    if (props.editable) {\n      e.pickedFeature.primitive.pixelSize = props.pointOpts?.pixelSize * 1.0\n      removeTimeout()\n      registerTimeout(() => {\n        editorPosition.value = [0, 0, 0]\n        mouseoverPoint.value = undefined\n        showEditor.value = false\n      }, props.editorOpts?.hideDelay)\n      selectedDrawingActionInstance && (canShowDrawTip.value = true)\n    }\n\n    emit(\n      'mouseEvt',\n      {\n        type: e.type,\n        name: drawingType,\n        target: e\n      },\n      viewer\n    )\n  }\n\n  const onMouseenterEditor = evt => {\n    removeTimeout()\n  }\n\n  const onMouseleaveEditor = evt => {\n    removeTimeout()\n    registerTimeout(() => {\n      editorPosition.value = [0, 0, 0]\n      mouseoverPoint.value.pixelSize = props.pointOpts?.pixelSize * 1.0\n      mouseoverPoint.value = undefined\n      showEditor.value = false\n    }, props.editorOpts?.hideDelay)\n  }\n\n  const onPrimitiveCollectionReady = (readyObj: VcReadyObject) => {\n    ;(readyObj.cesiumObject as any)._vcId = cmpName\n  }\n\n  const onVcCollectionPointReady = function (e: VcReadyObject) {\n    const { cesiumObject: pointPrimitiveCollection } = e as any\n    const originalUpdate = pointPrimitiveCollection.update\n\n    pointPrimitiveCollection.update = function (frameState) {\n      const originalLength = frameState.commandList.length\n      originalUpdate.call(this, frameState)\n      const endLength = frameState.commandList.length\n      for (let i = originalLength; i < endLength; ++i) {\n        frameState.commandList[i].pass = Cesium['Pass'].TRANSLUCENT\n        frameState.commandList[i].renderState = Cesium['RenderState'].fromCache({\n          depthTest: {\n            enabled: false\n          },\n          depthMask: false\n        })\n      }\n    }\n  }\n\n  const onVcCollectionLabelReady = (e: VcReadyObject) => {\n    if (props.disableDepthTest) return\n    const labelCollection = e.cesiumObject as any\n    const originalUpdate = labelCollection.update\n\n    labelCollection.update = function (frameState) {\n      const originalLength = frameState.commandList.length\n      originalUpdate.call(this, frameState)\n      const endLength = frameState.commandList.length\n      for (let i = originalLength; i < endLength; ++i) {\n        frameState.commandList[i].pass = Cesium['Pass'].OVERLAY\n        frameState.commandList[i].renderState = Cesium['RenderState'].fromCache({\n          depthTest: {\n            enabled: false\n          },\n          depthMask: false,\n          blending: Cesium.BlendingState.ALPHA_BLEND\n        })\n      }\n    }\n  }\n\n  const onVcPrimitiveReady = (e: VcReadyObject) => {\n    if (props.disableDepthTest) return\n\n    const primitive = e.cesiumObject as any\n    const originalPrimitiveUpdate = primitive.update\n\n    primitive.update = function (frameState) {\n      const originalLength = frameState.commandList.length\n      originalPrimitiveUpdate.call(this, frameState)\n      const endLength = frameState.commandList.length\n      for (let i = originalLength; i < endLength; ++i) {\n        if (frameState.commandList[i].pass !== Cesium['Pass'].TRANSLUCENT) {\n          continue\n        }\n        frameState.commandList[i].pass = Cesium['Pass'].OPAQUE\n        frameState.commandList[i].renderState = Cesium['RenderState'].fromCache({\n          depthTest: {\n            enabled: false\n          },\n          depthMask: false,\n          blending: Cesium.BlendingState.ALPHA_BLEND\n        })\n      }\n    }\n  }\n\n  return {\n    drawingType,\n    drawTip,\n    drawTipOpts,\n    drawStatus,\n    canShowDrawTip,\n    drawTipPosition,\n    showEditor,\n    editorPosition,\n    mouseoverPoint,\n    editingPoint,\n    primitiveCollectionRef,\n    editorType,\n    onMouseoverPoints,\n    onMouseoutPoints,\n    onMouseenterEditor,\n    onMouseleaveEditor,\n    onPrimitiveCollectionReady,\n    onVcCollectionPointReady,\n    onVcPrimitiveReady,\n    onVcCollectionLabelReady\n  }\n}\n"],"names":[],"mappings":";;;;;;;AAKe,yBAAQ,CAAC,KAAK,EAAE,GAAG,EAAE,QAAQ,EAAE,OAAO,EAAE,SAAS,EAAE;AAClE,EAAE,QAAQ,CAAC,WAAW,GAAG,OAAO,CAAC;AACjC,EAAE,QAAQ,CAAC,YAAY,GAAG,EAAE,CAAC;AAC7B,EAAE,MAAM,EAAE,CAAC,EAAE,GAAG,SAAS,EAAE,CAAC;AAC5B,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,GAAG,CAAC;AACvB,EAAE,MAAM,IAAI,GAAG,SAAS,CAAC,OAAO,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;AAC7C,EAAE,IAAI,OAAO,KAAK,uBAAuB,IAAI,KAAK,CAAC,kBAAkB,EAAE;AACvE,IAAI,IAAI,CAAC,CAAC,CAAC,GAAG,oBAAoB,CAAC;AACnC,GAAG;AACH,EAAE,IAAI,OAAO,KAAK,kBAAkB,IAAI,OAAO,KAAK,sBAAsB,EAAE;AAC5E,IAAI,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,EAAE;AAC1B,MAAM,IAAI,CAAC,CAAC,CAAC,GAAG,WAAW,CAAC;AAC5B,KAAK;AACL,IAAI,IAAI,KAAK,CAAC,IAAI,KAAK,GAAG,EAAE;AAC5B,MAAM,IAAI,CAAC,CAAC,CAAC,GAAG,QAAQ,CAAC;AACzB,KAAK;AACL,GAAG;AACH,EAAE,IAAI,WAAW,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;AAC5B,EAAE,IAAI,CAAC,CAAC,CAAC,KAAK,WAAW,GAAG,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AACrD,EAAE,MAAM,OAAO,GAAG,GAAG,CAAC,EAAE,CAAC,CAAC;AAC1B,EAAE,MAAM,WAAW,GAAG,QAAQ,CAAC,MAAM;AACrC,IAAI,OAAO;AACX,MAAM,eAAe,EAAE,KAAK,CAAC,OAAO,CAAC,eAAe,IAAI,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC;AAC7G,MAAM,aAAa,EAAE,KAAK,CAAC,OAAO,CAAC,aAAa,IAAI,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC;AACvG,MAAM,iBAAiB,EAAE,KAAK,CAAC,OAAO,CAAC,iBAAiB,IAAI,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,kBAAkB,CAAC,CAAC;AACnH,KAAK,CAAC;AACN,GAAG,CAAC,CAAC;AACL,EAAE,MAAM,UAAU,GAAG,GAAG,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC;AAChD,EAAE,MAAM,cAAc,GAAG,GAAG,CAAC,KAAK,CAAC,CAAC;AACpC,EAAE,MAAM,eAAe,GAAG,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;AACzC,EAAE,MAAM,UAAU,GAAG,GAAG,CAAC,KAAK,CAAC,CAAC;AAChC,EAAE,MAAM,cAAc,GAAG,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;AACxC,EAAE,MAAM,cAAc,GAAG,GAAG,CAAC,IAAI,CAAC,CAAC;AACnC,EAAE,MAAM,YAAY,GAAG,GAAG,CAAC,IAAI,CAAC,CAAC;AACjC,EAAE,MAAM,sBAAsB,GAAG,GAAG,CAAC,IAAI,CAAC,CAAC;AAC3C,EAAE,MAAM,UAAU,GAAG,GAAG,CAAC,EAAE,CAAC,CAAC;AAC7B,EAAE,MAAM,EAAE,eAAe,EAAE,aAAa,EAAE,GAAG,UAAU,EAAE,CAAC;AAC1D,EAAE,QAAQ,CAAC,kBAAkB,GAAG,YAAY;AAC5C,IAAI,OAAO,sBAAsB,CAAC;AAClC,GAAG,CAAC;AACJ,EAAE,MAAM,iBAAiB,GAAG,CAAC,CAAC,KAAK;AACnC,IAAI,IAAI,EAAE,EAAE,EAAE,CAAC;AACf,IAAI,MAAM,EAAE,oBAAoB,EAAE,MAAM,EAAE,GAAG,SAAS,CAAC;AACvD,IAAI,IAAI,KAAK,CAAC,QAAQ,IAAI,UAAU,CAAC,KAAK,KAAK,UAAU,CAAC,OAAO,IAAI,oBAAoB,EAAE;AAC3F,MAAM,CAAC,CAAC,aAAa,CAAC,SAAS,CAAC,SAAS,GAAG,CAAC,CAAC,EAAE,GAAG,KAAK,CAAC,SAAS,KAAK,IAAI,GAAG,KAAK,CAAC,GAAG,EAAE,CAAC,SAAS,IAAI,GAAG,CAAC;AAC3G,MAAM,aAAa,EAAE,CAAC;AACtB,MAAM,eAAe,CAAC,MAAM;AAC5B,QAAQ,cAAc,CAAC,KAAK,GAAG,CAAC,CAAC,aAAa,CAAC,SAAS,CAAC;AACzD,QAAQ,cAAc,CAAC,KAAK,GAAG,CAAC,CAAC,aAAa,CAAC,SAAS,CAAC,QAAQ,CAAC;AAClE,QAAQ,UAAU,CAAC,KAAK,GAAG,IAAI,CAAC;AAChC,QAAQ,cAAc,CAAC,KAAK,GAAG,KAAK,CAAC;AACrC,QAAQ,eAAe,CAAC,KAAK,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;AAC1C,OAAO,EAAE,CAAC,EAAE,GAAG,KAAK,CAAC,UAAU,KAAK,IAAI,GAAG,KAAK,CAAC,GAAG,EAAE,CAAC,KAAK,CAAC,CAAC;AAC9D,KAAK;AACL,IAAI,IAAI,CAAC,UAAU,EAAE;AACrB,MAAM,IAAI,EAAE,CAAC,CAAC,IAAI;AAClB,MAAM,IAAI,EAAE,WAAW;AACvB,MAAM,MAAM,EAAE,CAAC;AACf,KAAK,EAAE,MAAM,CAAC,CAAC;AACf,GAAG,CAAC;AACJ,EAAE,MAAM,gBAAgB,GAAG,CAAC,CAAC,KAAK;AAClC,IAAI,IAAI,EAAE,EAAE,EAAE,CAAC;AACf,IAAI,MAAM,EAAE,MAAM,EAAE,6BAA6B,EAAE,GAAG,SAAS,CAAC;AAChE,IAAI,IAAI,KAAK,CAAC,QAAQ,EAAE;AACxB,MAAM,CAAC,CAAC,aAAa,CAAC,SAAS,CAAC,SAAS,GAAG,CAAC,CAAC,EAAE,GAAG,KAAK,CAAC,SAAS,KAAK,IAAI,GAAG,KAAK,CAAC,GAAG,EAAE,CAAC,SAAS,IAAI,CAAC,CAAC;AACzG,MAAM,aAAa,EAAE,CAAC;AACtB,MAAM,eAAe,CAAC,MAAM;AAC5B,QAAQ,cAAc,CAAC,KAAK,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;AACzC,QAAQ,cAAc,CAAC,KAAK,GAAG,KAAK,CAAC,CAAC;AACtC,QAAQ,UAAU,CAAC,KAAK,GAAG,KAAK,CAAC;AACjC,OAAO,EAAE,CAAC,EAAE,GAAG,KAAK,CAAC,UAAU,KAAK,IAAI,GAAG,KAAK,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,CAAC;AAClE,MAAM,6BAA6B,KAAK,cAAc,CAAC,KAAK,GAAG,IAAI,CAAC,CAAC;AACrE,KAAK;AACL,IAAI,IAAI,CAAC,UAAU,EAAE;AACrB,MAAM,IAAI,EAAE,CAAC,CAAC,IAAI;AAClB,MAAM,IAAI,EAAE,WAAW;AACvB,MAAM,MAAM,EAAE,CAAC;AACf,KAAK,EAAE,MAAM,CAAC,CAAC;AACf,GAAG,CAAC;AACJ,EAAE,MAAM,kBAAkB,GAAG,CAAC,GAAG,KAAK;AACtC,IAAI,aAAa,EAAE,CAAC;AACpB,GAAG,CAAC;AACJ,EAAE,MAAM,kBAAkB,GAAG,CAAC,GAAG,KAAK;AACtC,IAAI,IAAI,EAAE,CAAC;AACX,IAAI,aAAa,EAAE,CAAC;AACpB,IAAI,eAAe,CAAC,MAAM;AAC1B,MAAM,IAAI,GAAG,CAAC;AACd,MAAM,cAAc,CAAC,KAAK,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;AACvC,MAAM,cAAc,CAAC,KAAK,CAAC,SAAS,GAAG,CAAC,CAAC,GAAG,GAAG,KAAK,CAAC,SAAS,KAAK,IAAI,GAAG,KAAK,CAAC,GAAG,GAAG,CAAC,SAAS,IAAI,CAAC,CAAC;AACtG,MAAM,cAAc,CAAC,KAAK,GAAG,KAAK,CAAC,CAAC;AACpC,MAAM,UAAU,CAAC,KAAK,GAAG,KAAK,CAAC;AAC/B,KAAK,EAAE,CAAC,EAAE,GAAG,KAAK,CAAC,UAAU,KAAK,IAAI,GAAG,KAAK,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,CAAC;AAChE,GAAG,CAAC;AACJ,EAAE,MAAM,0BAA0B,GAAG,CAAC,QAAQ,KAAK;AACnD,IAAI,CAAC;AACL,IAAI,QAAQ,CAAC,YAAY,CAAC,KAAK,GAAG,OAAO,CAAC;AAC1C,GAAG,CAAC;AACJ,EAAE,MAAM,wBAAwB,GAAG,SAAS,CAAC,EAAE;AAC/C,IAAI,MAAM,EAAE,YAAY,EAAE,wBAAwB,EAAE,GAAG,CAAC,CAAC;AACzD,IAAI,MAAM,cAAc,GAAG,wBAAwB,CAAC,MAAM,CAAC;AAC3D,IAAI,wBAAwB,CAAC,MAAM,GAAG,SAAS,UAAU,EAAE;AAC3D,MAAM,MAAM,cAAc,GAAG,UAAU,CAAC,WAAW,CAAC,MAAM,CAAC;AAC3D,MAAM,cAAc,CAAC,IAAI,CAAC,IAAI,EAAE,UAAU,CAAC,CAAC;AAC5C,MAAM,MAAM,SAAS,GAAG,UAAU,CAAC,WAAW,CAAC,MAAM,CAAC;AACtD,MAAM,KAAK,IAAI,CAAC,GAAG,cAAc,EAAE,CAAC,GAAG,SAAS,EAAE,EAAE,CAAC,EAAE;AACvD,QAAQ,UAAU,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,IAAI,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,WAAW,CAAC;AACpE,QAAQ,UAAU,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,WAAW,GAAG,MAAM,CAAC,aAAa,CAAC,CAAC,SAAS,CAAC;AAChF,UAAU,SAAS,EAAE;AACrB,YAAY,OAAO,EAAE,KAAK;AAC1B,WAAW;AACX,UAAU,SAAS,EAAE,KAAK;AAC1B,SAAS,CAAC,CAAC;AACX,OAAO;AACP,KAAK,CAAC;AACN,GAAG,CAAC;AACJ,EAAE,MAAM,wBAAwB,GAAG,CAAC,CAAC,KAAK;AAC1C,IAAI,IAAI,KAAK,CAAC,gBAAgB;AAC9B,MAAM,OAAO;AACb,IAAI,MAAM,eAAe,GAAG,CAAC,CAAC,YAAY,CAAC;AAC3C,IAAI,MAAM,cAAc,GAAG,eAAe,CAAC,MAAM,CAAC;AAClD,IAAI,eAAe,CAAC,MAAM,GAAG,SAAS,UAAU,EAAE;AAClD,MAAM,MAAM,cAAc,GAAG,UAAU,CAAC,WAAW,CAAC,MAAM,CAAC;AAC3D,MAAM,cAAc,CAAC,IAAI,CAAC,IAAI,EAAE,UAAU,CAAC,CAAC;AAC5C,MAAM,MAAM,SAAS,GAAG,UAAU,CAAC,WAAW,CAAC,MAAM,CAAC;AACtD,MAAM,KAAK,IAAI,CAAC,GAAG,cAAc,EAAE,CAAC,GAAG,SAAS,EAAE,EAAE,CAAC,EAAE;AACvD,QAAQ,UAAU,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,IAAI,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC;AAChE,QAAQ,UAAU,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,WAAW,GAAG,MAAM,CAAC,aAAa,CAAC,CAAC,SAAS,CAAC;AAChF,UAAU,SAAS,EAAE;AACrB,YAAY,OAAO,EAAE,KAAK;AAC1B,WAAW;AACX,UAAU,SAAS,EAAE,KAAK;AAC1B,UAAU,QAAQ,EAAE,MAAM,CAAC,aAAa,CAAC,WAAW;AACpD,SAAS,CAAC,CAAC;AACX,OAAO;AACP,KAAK,CAAC;AACN,GAAG,CAAC;AACJ,EAAE,MAAM,kBAAkB,GAAG,CAAC,CAAC,KAAK;AACpC,IAAI,IAAI,KAAK,CAAC,gBAAgB;AAC9B,MAAM,OAAO;AACb,IAAI,MAAM,SAAS,GAAG,CAAC,CAAC,YAAY,CAAC;AACrC,IAAI,MAAM,uBAAuB,GAAG,SAAS,CAAC,MAAM,CAAC;AACrD,IAAI,SAAS,CAAC,MAAM,GAAG,SAAS,UAAU,EAAE;AAC5C,MAAM,MAAM,cAAc,GAAG,UAAU,CAAC,WAAW,CAAC,MAAM,CAAC;AAC3D,MAAM,uBAAuB,CAAC,IAAI,CAAC,IAAI,EAAE,UAAU,CAAC,CAAC;AACrD,MAAM,MAAM,SAAS,GAAG,UAAU,CAAC,WAAW,CAAC,MAAM,CAAC;AACtD,MAAM,KAAK,IAAI,CAAC,GAAG,cAAc,EAAE,CAAC,GAAG,SAAS,EAAE,EAAE,CAAC,EAAE;AACvD,QAAQ,IAAI,UAAU,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,IAAI,KAAK,MAAM,CAAC,MAAM,CAAC,CAAC,WAAW,EAAE;AAC3E,UAAU,SAAS;AACnB,SAAS;AACT,QAAQ,UAAU,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,IAAI,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC;AAC/D,QAAQ,UAAU,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,WAAW,GAAG,MAAM,CAAC,aAAa,CAAC,CAAC,SAAS,CAAC;AAChF,UAAU,SAAS,EAAE;AACrB,YAAY,OAAO,EAAE,KAAK;AAC1B,WAAW;AACX,UAAU,SAAS,EAAE,KAAK;AAC1B,UAAU,QAAQ,EAAE,MAAM,CAAC,aAAa,CAAC,WAAW;AACpD,SAAS,CAAC,CAAC;AACX,OAAO;AACP,KAAK,CAAC;AACN,GAAG,CAAC;AACJ,EAAE,OAAO;AACT,IAAI,WAAW;AACf,IAAI,OAAO;AACX,IAAI,WAAW;AACf,IAAI,UAAU;AACd,IAAI,cAAc;AAClB,IAAI,eAAe;AACnB,IAAI,UAAU;AACd,IAAI,cAAc;AAClB,IAAI,cAAc;AAClB,IAAI,YAAY;AAChB,IAAI,sBAAsB;AAC1B,IAAI,UAAU;AACd,IAAI,iBAAiB;AACrB,IAAI,gBAAgB;AACpB,IAAI,kBAAkB;AACtB,IAAI,kBAAkB;AACtB,IAAI,0BAA0B;AAC9B,IAAI,wBAAwB;AAC5B,IAAI,kBAAkB;AACtB,IAAI,wBAAwB;AAC5B,GAAG,CAAC;AACJ;;;;"}