@bigbinary/neeto-pdf-frontend 1.0.2 → 1.0.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (64) hide show
  1. package/dist/.ready +1 -1
  2. package/dist/AttachmentCard-Blp45MKz.js +64 -0
  3. package/dist/AttachmentCard-Blp45MKz.js.map +1 -0
  4. package/dist/AttachmentCard-CbDrjY7P.js +67 -0
  5. package/dist/AttachmentCard-CbDrjY7P.js.map +1 -0
  6. package/dist/FilenameUtilities-DFEKeP7n.js +150 -0
  7. package/dist/FilenameUtilities-DFEKeP7n.js.map +1 -0
  8. package/dist/{FilenameUtilities-BRCCinT2.js → FilenameUtilities-Di7TmEIR.js} +9 -184
  9. package/dist/FilenameUtilities-Di7TmEIR.js.map +1 -0
  10. package/dist/FilenameUtilities-SpduImYz.js +139 -0
  11. package/dist/FilenameUtilities-SpduImYz.js.map +1 -0
  12. package/dist/{FilenameUtilities-DHtvZ32y.js → FilenameUtilities-Xttn7r8R.js} +2 -177
  13. package/dist/FilenameUtilities-Xttn7r8R.js.map +1 -0
  14. package/dist/IconBlock-BZvD1k7W.js +17 -0
  15. package/dist/IconBlock-BZvD1k7W.js.map +1 -0
  16. package/dist/IconBlock-Cte1G732.js +15 -0
  17. package/dist/IconBlock-Cte1G732.js.map +1 -0
  18. package/dist/PdfDocumentsPage.js +2 -1
  19. package/dist/PdfDocumentsPage.js.map +1 -1
  20. package/dist/PdfEditorPage.js +3 -146
  21. package/dist/PdfEditorPage.js.map +1 -1
  22. package/dist/cjs/PdfDocumentsPage.js +2 -1
  23. package/dist/cjs/PdfDocumentsPage.js.map +1 -1
  24. package/dist/cjs/PdfEditorPage.js +12 -155
  25. package/dist/cjs/PdfEditorPage.js.map +1 -1
  26. package/dist/cjs/index.js +3 -1
  27. package/dist/cjs/index.js.map +1 -1
  28. package/dist/cjs/v2/PdfAttachmentSelector.js +95 -0
  29. package/dist/cjs/v2/PdfAttachmentSelector.js.map +1 -0
  30. package/dist/cjs/v2/PdfAttachmentsPreview.js +45 -0
  31. package/dist/cjs/v2/PdfAttachmentsPreview.js.map +1 -0
  32. package/dist/cjs/v2/PdfDocumentsPage.js +555 -0
  33. package/dist/cjs/v2/PdfDocumentsPage.js.map +1 -0
  34. package/dist/cjs/v2/PdfEditorPage.js +1920 -0
  35. package/dist/cjs/v2/PdfEditorPage.js.map +1 -0
  36. package/dist/cjs/v2/index.js +67 -0
  37. package/dist/cjs/v2/index.js.map +1 -0
  38. package/dist/constants-DDj0SAA-.js +8 -0
  39. package/dist/constants-DDj0SAA-.js.map +1 -0
  40. package/dist/constants-MHmmvZDo.js +5 -0
  41. package/dist/constants-MHmmvZDo.js.map +1 -0
  42. package/dist/index.js +3 -1
  43. package/dist/index.js.map +1 -1
  44. package/dist/pdf_documents-PKt4xiTc.js +181 -0
  45. package/dist/pdf_documents-PKt4xiTc.js.map +1 -0
  46. package/dist/pdf_documents-j2CBlJrR.js +179 -0
  47. package/dist/pdf_documents-j2CBlJrR.js.map +1 -0
  48. package/dist/pdf_mapping_schema-CS6f9Kug.js +149 -0
  49. package/dist/pdf_mapping_schema-CS6f9Kug.js.map +1 -0
  50. package/dist/pdf_mapping_schema-Co4FN4KU.js +147 -0
  51. package/dist/pdf_mapping_schema-Co4FN4KU.js.map +1 -0
  52. package/dist/v2/PdfAttachmentSelector.js +93 -0
  53. package/dist/v2/PdfAttachmentSelector.js.map +1 -0
  54. package/dist/v2/PdfAttachmentsPreview.js +43 -0
  55. package/dist/v2/PdfAttachmentsPreview.js.map +1 -0
  56. package/dist/v2/PdfDocumentsPage.js +553 -0
  57. package/dist/v2/PdfDocumentsPage.js.map +1 -0
  58. package/dist/v2/PdfEditorPage.js +1899 -0
  59. package/dist/v2/PdfEditorPage.js.map +1 -0
  60. package/dist/v2/index.js +58 -0
  61. package/dist/v2/index.js.map +1 -0
  62. package/package.json +13 -1
  63. package/dist/FilenameUtilities-BRCCinT2.js.map +0 -1
  64. package/dist/FilenameUtilities-DHtvZ32y.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"PdfEditorPage.js","sources":["../../app/javascript/src/components/PdfDocuments/Editor/constants.js","../../app/javascript/src/components/PdfDocuments/Editor/CanvasUtilities.js","../../app/javascript/src/components/PdfDocuments/Editor/Canvas/PlacedField.jsx","../../app/javascript/src/components/PdfDocuments/Editor/Canvas/PdfPage.jsx","../../app/javascript/src/components/PdfDocuments/Editor/hooks/usePdfDocument.js","../../app/javascript/src/components/PdfDocuments/Editor/Canvas/index.jsx","../../app/javascript/src/components/PdfDocuments/Editor/FieldPanel.jsx","../../app/javascript/src/components/PdfDocuments/Editor/FieldCard.jsx","../../app/javascript/src/components/PdfDocuments/Editor/FieldsPanel.jsx","../../app/javascript/src/components/PdfDocuments/Editor/PdfDownloadUtilities.js","../../app/javascript/src/components/PdfDocuments/Editor/hooks/usePdfDownload.js","../../app/javascript/src/components/PdfDocuments/Editor/hooks/usePdfEditorDocument.js","../../app/javascript/src/components/PdfDocuments/Editor/MappingUtilities.js","../../app/javascript/src/components/PdfDocuments/Editor/hooks/usePdfMappingsState.js","../../app/javascript/src/components/PdfDocuments/Editor/hooks/usePreviewPagination.js","../../app/javascript/src/components/PdfDocuments/Editor/PreviewPager.jsx","../../app/javascript/src/components/PdfDocuments/Editor/PreviewValueUtilities.js","../../app/javascript/src/components/PdfDocuments/Editor/TopBar.jsx","../../app/javascript/src/components/PdfDocuments/Editor/index.jsx"],"sourcesContent":["import { Calendar, Hash, TextLines } from \"neetoicons\";\n\nimport pdfMappingSchema from \"../../../../../../config/neeto_pdf_engine/pdf_mapping_schema.json\";\n\nconst mappingDefaults = pdfMappingSchema.defaults;\n\n// CSS pixels per PDF point (96dpi / 72dpi). `renderScale = CSS_PX_PER_PT * zoom`\n// maps a page's intrinsic point dimensions to on-screen pixels, and font sizes\n// (stored in points) to pixels. Keeping geometry in point-fractions keeps\n// mappings resolution independent.\nexport const CSS_PX_PER_PT = 96 / 72;\n\nexport const ZOOM = { MIN: 0.5, MAX: 2, STEP: 0.1, DEFAULT: 1 };\n\nexport const PDF_CANVAS = {\n MAX_DISPLAY_SIZE: 1400,\n MAX_RENDER_SIZE: 8192,\n MAX_RENDER_PIXELS: 16_000_000,\n};\n\nexport const EDITOR_MODES = { MAP: \"map\", PREVIEW: \"preview\" };\n\nexport const PDF_LOAD_INITIAL_STATE = {\n pages: [],\n isLoading: true,\n error: null,\n};\n\nexport const EMPTY_MAPPINGS = [];\n\nexport const FIELD_SOURCES = {\n ANSWER: pdfMappingSchema.enums.sources[0],\n SYSTEM: pdfMappingSchema.enums.sources[1],\n};\n\nexport const DRAG_KINDS = { MOVE: \"move\", RESIZE: \"resize\" };\n\nexport const ALIGNMENTS = {\n LEFT: pdfMappingSchema.enums.alignments[0],\n CENTER: pdfMappingSchema.enums.alignments[1],\n RIGHT: pdfMappingSchema.enums.alignments[2],\n};\n\nexport const FORM_THEME_COLOR =\n \"rgb(var(--neeto-form-answer-color, var(--neeto-ui-primary-500)))\";\n\nexport const FORM_THEME_BACKGROUND =\n \"rgba(var(--neeto-form-answer-color, var(--neeto-ui-primary-500)), 0.08)\";\n\nexport const RESIZE_HANDLES = [\n {\n key: \"top-left\",\n x: \"left\",\n y: \"top\",\n className: \"-left-1.5 -top-1.5 cursor-nwse-resize\",\n },\n {\n key: \"top-right\",\n x: \"right\",\n y: \"top\",\n className: \"-right-1.5 -top-1.5 cursor-nesw-resize\",\n },\n {\n key: \"bottom-left\",\n x: \"left\",\n y: \"bottom\",\n className: \"-left-1.5 -bottom-1.5 cursor-nesw-resize\",\n },\n {\n key: \"bottom-right\",\n x: \"right\",\n y: \"bottom\",\n className: \"-right-1.5 -bottom-1.5 cursor-nwse-resize\",\n },\n];\n\n// Curated, PDF/web-safe fonts. The JSON schema also supplies the server-side\n// variants so client/server rendering cannot drift when the list changes.\nexport const FONTS = pdfMappingSchema.fonts.map(({ label, stack, value }) => ({\n value,\n label,\n stack,\n}));\n\n// Maps a curated font to pdf-lib StandardFont variant names, indexed by\n// (bold ? 1 : 0) + (italic ? 2 : 0).\nexport const STANDARD_FONT_VARIANTS = Object.fromEntries(\n pdfMappingSchema.fonts.map(({ client_variants: clientVariants, value }) => [\n value,\n clientVariants,\n ])\n);\n\nexport const DEFAULT_FONT_SIZE = mappingDefaults.style.font_size;\n\nexport const DEFAULT_DISPLAY_FONT_SIZE = DEFAULT_FONT_SIZE * CSS_PX_PER_PT;\n\nexport const FONT_SIZE_LIMITS = pdfMappingSchema.ranges.font_size;\n\nexport const DEFAULT_STYLE = {\n font: mappingDefaults.style.font,\n fontSize: DEFAULT_FONT_SIZE,\n color: mappingDefaults.style.color,\n bold: mappingDefaults.style.bold,\n italic: mappingDefaults.style.italic,\n underline: mappingDefaults.style.underline,\n align: mappingDefaults.style.align,\n};\n\n// Default placement box as a fraction of the page (top-left origin).\nexport const DEFAULT_BOX = mappingDefaults.box;\n\nexport const MIN_BOX = { width: 0.03, height: 0.012 };\n\nexport const SYSTEM_FIELD_KEYS = {\n FORM_NAME: \"form_name\",\n SUBMISSION_ID: \"submission_id\",\n SUBMISSION_DATE: \"submission_date\",\n};\n\n// System fields are not form questions; they resolve from submission metadata.\nexport const SYSTEM_FIELDS = [\n {\n key: SYSTEM_FIELD_KEYS.FORM_NAME,\n labelKey: \"neetoPdf.pdfDocuments.editor.systemFields.formName\",\n icon: TextLines,\n },\n {\n key: SYSTEM_FIELD_KEYS.SUBMISSION_ID,\n labelKey: \"neetoPdf.pdfDocuments.editor.systemFields.submissionId\",\n icon: Hash,\n },\n {\n key: SYSTEM_FIELD_KEYS.SUBMISSION_DATE,\n labelKey: \"neetoPdf.pdfDocuments.editor.systemFields.submissionDate\",\n icon: Calendar,\n },\n];\n","import { findBy } from \"neetocist\";\n\nimport {\n CSS_PX_PER_PT,\n DEFAULT_DISPLAY_FONT_SIZE,\n DEFAULT_STYLE,\n FONT_SIZE_LIMITS,\n FONTS,\n PDF_CANVAS,\n} from \"./constants\";\n\nexport const clamp = (value, min, max) => Math.min(Math.max(value, min), max);\n\nexport const getPdfPageDisplayScale = ({ heightPt, rawScale, widthPt }) => {\n const maxPageSize = Math.max(widthPt, heightPt);\n if (!maxPageSize) return rawScale;\n\n const zoom = rawScale / CSS_PX_PER_PT;\n const baseScale = Math.min(\n CSS_PX_PER_PT,\n PDF_CANVAS.MAX_DISPLAY_SIZE / maxPageSize\n );\n\n return baseScale * zoom;\n};\n\nexport const getDefaultFontSizeForScale = scale => {\n if (!scale || Number.isNaN(scale)) return DEFAULT_STYLE.fontSize;\n\n return clamp(\n Math.round(DEFAULT_DISPLAY_FONT_SIZE / scale),\n FONT_SIZE_LIMITS.min,\n FONT_SIZE_LIMITS.max\n );\n};\n\nexport const getFontStack = font =>\n findBy({ value: font }, FONTS)?.stack || FONTS[0].stack;\n","import { useRef, useState } from \"react\";\n\nimport classNames from \"classnames\";\n\nimport { clamp, getFontStack } from \"../CanvasUtilities\";\nimport {\n DRAG_KINDS,\n EDITOR_MODES,\n FORM_THEME_BACKGROUND,\n FORM_THEME_COLOR,\n MIN_BOX,\n RESIZE_HANDLES,\n} from \"../constants\";\n\nconst getJustifyContent = align => {\n if (align === \"center\") return \"center\";\n\n if (align === \"right\") return \"flex-end\";\n\n return \"flex-start\";\n};\n\nconst PlacedField = ({\n mapping,\n mode,\n isSelected,\n scale,\n pageWidthPx,\n pageHeightPx,\n previewValue,\n onSelect,\n onChange,\n}) => {\n const dragRef = useRef(null);\n const draftPatchRef = useRef(null);\n const [draftPatch, setDraftPatch] = useState(null);\n\n const isPreview = mode === EDITOR_MODES.PREVIEW;\n const displayMapping = draftPatch ? { ...mapping, ...draftPatch } : mapping;\n\n const style = {\n left: `${displayMapping.x * pageWidthPx}px`,\n top: `${displayMapping.y * pageHeightPx}px`,\n width: `${displayMapping.width * pageWidthPx}px`,\n height: `${displayMapping.height * pageHeightPx}px`,\n };\n\n const selectedStyle = isSelected\n ? {\n borderColor: FORM_THEME_COLOR,\n backgroundColor: FORM_THEME_BACKGROUND,\n }\n : {};\n\n const textStyle = {\n fontFamily: getFontStack(displayMapping.font),\n fontSize: `${displayMapping.fontSize * scale}px`,\n color: displayMapping.color,\n fontWeight: displayMapping.bold ? 700 : 400,\n fontStyle: displayMapping.italic ? \"italic\" : \"normal\",\n textDecoration: displayMapping.underline ? \"underline\" : \"none\",\n textAlign: displayMapping.align,\n justifyContent: getJustifyContent(displayMapping.align),\n };\n\n const getResizePatch = ({ drag, dxFrac, dyFrac }) => {\n const patch = {};\n const originRight = drag.originX + drag.originWidth;\n const originBottom = drag.originY + drag.originHeight;\n\n if (drag.handle.x === \"left\") {\n const x = clamp(drag.originX + dxFrac, 0, originRight - MIN_BOX.width);\n patch.x = x;\n patch.width = originRight - x;\n } else {\n patch.width = clamp(\n drag.originWidth + dxFrac,\n MIN_BOX.width,\n 1 - drag.originX\n );\n }\n\n if (drag.handle.y === \"top\") {\n const y = clamp(drag.originY + dyFrac, 0, originBottom - MIN_BOX.height);\n patch.y = y;\n patch.height = originBottom - y;\n } else {\n patch.height = clamp(\n drag.originHeight + dyFrac,\n MIN_BOX.height,\n 1 - drag.originY\n );\n }\n\n return patch;\n };\n\n const handlePointerMove = event => {\n const drag = dragRef.current;\n if (!drag) return;\n\n const dxFrac = (event.clientX - drag.startX) / pageWidthPx;\n const dyFrac = (event.clientY - drag.startY) / pageHeightPx;\n\n const patch =\n drag.kind === DRAG_KINDS.MOVE\n ? {\n x: clamp(drag.originX + dxFrac, 0, 1 - mapping.width),\n y: clamp(drag.originY + dyFrac, 0, 1 - mapping.height),\n }\n : getResizePatch({ drag, dxFrac, dyFrac });\n\n draftPatchRef.current = patch;\n setDraftPatch(patch);\n };\n\n const startDrag = (event, kind, handle = null) => {\n if (isPreview) return;\n event.stopPropagation();\n event.preventDefault();\n onSelect(mapping.id);\n event.currentTarget.setPointerCapture(event.pointerId);\n dragRef.current = {\n kind,\n handle,\n startX: event.clientX,\n startY: event.clientY,\n originX: mapping.x,\n originY: mapping.y,\n originWidth: mapping.width,\n originHeight: mapping.height,\n };\n draftPatchRef.current = null;\n setDraftPatch(null);\n };\n\n const endDrag = event => {\n if (!dragRef.current) return;\n event.currentTarget.releasePointerCapture?.(event.pointerId);\n dragRef.current = null;\n if (draftPatchRef.current) onChange(mapping.id, draftPatchRef.current);\n draftPatchRef.current = null;\n setDraftPatch(null);\n };\n\n const renderResizeHandle = handle => (\n <span\n key={handle.key}\n style={{ backgroundColor: FORM_THEME_COLOR }}\n className={classNames(\n \"neeto-ui-rounded-full neeto-ui-border-white absolute h-3 w-3 border-2\",\n handle.className\n )}\n onPointerCancel={endDrag}\n onPointerDown={event => startDrag(event, DRAG_KINDS.RESIZE, handle)}\n onPointerMove={handlePointerMove}\n onPointerUp={endDrag}\n />\n );\n\n if (isPreview) {\n return (\n <div\n {...{ style }}\n className=\"pointer-events-none absolute flex items-center\"\n >\n <span\n className=\"w-full overflow-hidden leading-tight whitespace-pre-wrap\"\n style={textStyle}\n >\n {previewValue}\n </span>\n </div>\n );\n }\n\n return (\n <div\n style={{ ...style, ...selectedStyle }}\n className={classNames(\n \"neeto-ui-rounded-sm absolute flex cursor-move items-center border transition-colors select-none\",\n {\n \"z-10\": isSelected,\n \"neeto-ui-border-gray-400 bg-opacity-40 neeto-ui-bg-white border-dashed\":\n !isSelected,\n }\n )}\n onPointerCancel={endDrag}\n onPointerDown={event => startDrag(event, DRAG_KINDS.MOVE)}\n onPointerMove={handlePointerMove}\n onPointerUp={endDrag}\n >\n <span\n className=\"flex w-full items-center gap-1 overflow-hidden px-1 leading-tight\"\n style={textStyle}\n >\n <span className=\"truncate\">{displayMapping.label}</span>\n </span>\n {isSelected && RESIZE_HANDLES.map(renderResizeHandle)}\n </div>\n );\n};\n\nexport default PlacedField;\n","import { useEffect, useMemo, useRef } from \"react\";\n\nimport PlacedField from \"./PlacedField\";\n\nimport { clamp, getPdfPageDisplayScale } from \"../CanvasUtilities\";\nimport { CSS_PX_PER_PT, EDITOR_MODES, PDF_CANVAS } from \"../constants\";\n\nconst getRenderPixelRatio = viewport => {\n const dpr = window.devicePixelRatio || 1;\n const widthRatio = PDF_CANVAS.MAX_RENDER_SIZE / viewport.width;\n const heightRatio = PDF_CANVAS.MAX_RENDER_SIZE / viewport.height;\n const pixelRatio = Math.sqrt(\n PDF_CANVAS.MAX_RENDER_PIXELS / (viewport.width * viewport.height)\n );\n\n return Math.min(dpr, widthRatio, heightRatio, pixelRatio);\n};\n\nconst PdfPage = ({\n pageDescriptor,\n scale: rawScale,\n mappings,\n selectedId,\n mode,\n resolveValue,\n onSelect,\n onChange,\n onDropField,\n onScaleChange,\n}) => {\n const { page, pageNumber, widthPt, heightPt } = pageDescriptor;\n const canvasRef = useRef(null);\n const overlayRef = useRef(null);\n const scale = useMemo(\n () => getPdfPageDisplayScale({ heightPt, rawScale, widthPt }),\n [heightPt, rawScale, widthPt]\n );\n\n const defaultMappingScale = useMemo(\n () =>\n getPdfPageDisplayScale({\n heightPt,\n rawScale: CSS_PX_PER_PT,\n widthPt,\n }),\n [heightPt, widthPt]\n );\n const viewport = useMemo(() => page.getViewport({ scale }), [page, scale]);\n const pageWidthPx = viewport.width;\n const pageHeightPx = viewport.height;\n\n useEffect(() => {\n onScaleChange(pageNumber, defaultMappingScale);\n }, [defaultMappingScale, onScaleChange, pageNumber]);\n\n useEffect(() => {\n const canvas = canvasRef.current;\n if (!canvas) return undefined;\n\n const renderPixelRatio = getRenderPixelRatio(viewport);\n canvas.width = Math.floor(viewport.width * renderPixelRatio);\n canvas.height = Math.floor(viewport.height * renderPixelRatio);\n canvas.style.width = `${viewport.width}px`;\n canvas.style.height = `${viewport.height}px`;\n\n const renderTask = page.render({\n canvasContext: canvas.getContext(\"2d\"),\n viewport,\n transform:\n renderPixelRatio !== 1\n ? [renderPixelRatio, 0, 0, renderPixelRatio, 0, 0]\n : undefined,\n });\n\n const render = async () => {\n try {\n await renderTask.promise;\n } catch {\n // Ignore RenderingCancelledException thrown when scale/page changes.\n }\n };\n render();\n\n return () => renderTask.cancel();\n }, [page, scale, viewport]);\n\n const handleDrop = event => {\n event.preventDefault();\n const rect = overlayRef.current.getBoundingClientRect();\n const xFrac = clamp((event.clientX - rect.left) / rect.width, 0, 1);\n const yFrac = clamp((event.clientY - rect.top) / rect.height, 0, 1);\n onDropField({ pageNumber, scale: defaultMappingScale, x: xFrac, y: yFrac });\n };\n\n const handleDragOver = event => {\n event.preventDefault();\n event.dataTransfer.dropEffect = \"copy\";\n };\n\n return (\n <div\n className=\"neeto-ui-shadow-md neeto-ui-bg-white relative\"\n style={{ width: `${pageWidthPx}px`, height: `${pageHeightPx}px` }}\n >\n <canvas ref={canvasRef} />\n <div\n className=\"absolute inset-0\"\n ref={overlayRef}\n onDragOver={handleDragOver}\n onDrop={handleDrop}\n onPointerDown={() => onSelect(null)}\n >\n {mappings.map(mapping => (\n <PlacedField\n {...{\n mapping,\n mode,\n onChange,\n onSelect,\n pageHeightPx,\n pageWidthPx,\n scale,\n }}\n isSelected={mapping.id === selectedId}\n key={mapping.id}\n previewValue={\n mode === EDITOR_MODES.PREVIEW ? resolveValue(mapping) : null\n }\n />\n ))}\n </div>\n </div>\n );\n};\n\nexport default PdfPage;\n","import { useEffect, useState } from \"react\";\n\nimport * as pdfjsLib from \"pdfjs-dist\";\n\nimport { PDF_LOAD_INITIAL_STATE } from \"../constants\";\n\n// The worker is vendored into public/ (see the sync:pdf-worker script) so it is\n// served as a static asset with a JS MIME type. pdf.js always loads it as a\n// module worker. Its version must stay in sync with pdfjs-dist.\npdfjsLib.GlobalWorkerOptions.workerSrc = \"/pdf.worker.min.js\";\n\n// Loads a PDF via pdf.js and returns one descriptor per page:\n// { pageNumber, page (PDFPageProxy), widthPt, heightPt }. Dimensions are in PDF\n// points (viewport scale 1), which the canvas scales by CSS_PX_PER_PT * zoom.\nconst usePdfDocument = url => {\n const [state, setState] = useState(PDF_LOAD_INITIAL_STATE);\n\n useEffect(() => {\n if (!url) return undefined;\n\n let isCancelled = false;\n let pdf;\n setState(PDF_LOAD_INITIAL_STATE);\n\n const loadingTask = pdfjsLib.getDocument({ url });\n\n const loadPages = async () => {\n try {\n pdf = await loadingTask.promise;\n const pages = [];\n\n for (let pageNumber = 1; pageNumber <= pdf.numPages; pageNumber += 1) {\n const page = await pdf.getPage(pageNumber);\n const viewport = page.getViewport({ scale: 1 });\n pages.push({\n pageNumber,\n page,\n widthPt: viewport.width,\n heightPt: viewport.height,\n });\n }\n\n if (!isCancelled) setState({ pages, isLoading: false, error: null });\n } catch (error) {\n if (!isCancelled) setState({ pages: [], isLoading: false, error });\n }\n };\n\n loadPages();\n\n return () => {\n isCancelled = true;\n loadingTask.destroy?.();\n pdf?.destroy?.();\n };\n }, [url]);\n\n return state;\n};\n\nexport default usePdfDocument;\n","import { useMemo } from \"react\";\n\nimport { Spinner, Typography } from \"neetoui\";\nimport { useTranslation } from \"react-i18next\";\n\nimport PdfPage from \"./PdfPage\";\n\nimport { CSS_PX_PER_PT, EMPTY_MAPPINGS } from \"../constants\";\nimport usePdfDocument from \"../hooks/usePdfDocument\";\n\nconst Canvas = ({\n templateUrl,\n zoom,\n mappings,\n selectedId,\n mode,\n resolveValue,\n onSelect,\n onChange,\n onDropField,\n onPageScaleChange,\n}) => {\n const { t } = useTranslation();\n const { pages, isLoading, error } = usePdfDocument(templateUrl);\n\n const scale = CSS_PX_PER_PT * zoom;\n const mappingsByPage = useMemo(\n () =>\n mappings.reduce((groupedMappings, mapping) => {\n const pageMappings = groupedMappings.get(mapping.page) || [];\n pageMappings.push(mapping);\n groupedMappings.set(mapping.page, pageMappings);\n\n return groupedMappings;\n }, new Map()),\n [mappings]\n );\n\n if (isLoading) {\n return (\n <div className=\"flex h-full w-full items-center justify-center\">\n <Spinner />\n </div>\n );\n }\n\n if (error || !templateUrl) {\n return (\n <div className=\"flex h-full w-full items-center justify-center p-8\">\n <Typography className=\"neeto-ui-text-gray-500\" style=\"body2\">\n {t(\"neetoPdf.pdfDocuments.editor.renderError\")}\n </Typography>\n </div>\n );\n }\n\n return (\n <div className=\"neeto-ui-bg-gray-200 absolute inset-0 overflow-auto\">\n <div className=\"flex min-h-full min-w-full w-max flex-col items-center gap-6 p-8\">\n {pages.map(pageDescriptor => (\n <PdfPage\n {...{\n mode,\n onChange,\n onDropField,\n\n onSelect,\n pageDescriptor,\n resolveValue,\n scale,\n selectedId,\n }}\n key={pageDescriptor.pageNumber}\n mappings={\n mappingsByPage.get(pageDescriptor.pageNumber) || EMPTY_MAPPINGS\n }\n onScaleChange={onPageScaleChange}\n />\n ))}\n </div>\n </div>\n );\n};\n\nexport default Canvas;\n","import classNames from \"classnames\";\nimport { findBy } from \"neetocist\";\nimport { withT } from \"neetocommons/react-utils\";\nimport { CenterAlign, Delete, Folder, LeftAlign, RightAlign } from \"neetoicons\";\nimport { Button, ColorPicker, Input, Select, Typography } from \"neetoui\";\n\nimport { ALIGNMENTS, FONTS, FONT_SIZE_LIMITS } from \"./constants\";\n\nconst ToggleButton = ({ isActive, onClick, className, children, ...rest }) => (\n <button\n {...{ onClick }}\n type=\"button\"\n className={classNames(\n \"neeto-ui-border-gray-300 flex h-8 items-center justify-center border text-sm first:rounded-l-md last:rounded-r-md\",\n className,\n {\n \"neeto-ui-bg-gray-800 neeto-ui-text-white\": isActive,\n \"neeto-ui-bg-white neeto-ui-text-gray-700 hover:neeto-ui-bg-gray-100\":\n !isActive,\n }\n )}\n {...rest}\n >\n {children}\n </button>\n);\n\nconst EmptyState = withT(({ t }) => (\n <div className=\"flex h-full flex-col items-center justify-center gap-2 p-8 text-center\">\n <Folder className=\"neeto-ui-text-gray-400\" size={32} />\n <Typography style=\"body2\" weight=\"medium\">\n {t(\"neetoPdf.pdfDocuments.editor.field.emptyTitle\")}\n </Typography>\n <Typography className=\"neeto-ui-text-gray-500\" style=\"body3\">\n {t(\"neetoPdf.pdfDocuments.editor.field.emptyDescription\")}\n </Typography>\n </div>\n));\n\nconst renderFontOptionLabel = ({ label, stack }) => (\n <span style={{ fontFamily: stack }}>{label}</span>\n);\n\nconst sanitizeFontSize = value => {\n const fontSize = Number(value);\n\n if (Number.isNaN(fontSize)) return FONT_SIZE_LIMITS.min;\n\n return Math.min(\n Math.max(fontSize, FONT_SIZE_LIMITS.min),\n FONT_SIZE_LIMITS.max\n );\n};\n\nconst FieldPanel = withT(({ t, mapping, onChange, onRemove }) =>\n mapping ? (\n <div className=\"neeto-ui-border-gray-200 neeto-ui-bg-white flex h-full w-72 shrink-0 flex-col overflow-y-auto border-l p-4\">\n <div className=\"mb-4 flex place-content-between items-center gap-2\">\n <Typography className=\"truncate\" data-testid=\"field-header\" style=\"h3\">\n {mapping.label}\n </Typography>\n </div>\n <div className=\"grow space-y-5\">\n <div className=\"space-y-1\">\n <Typography className=\"neeto-ui-text-gray-700\" style=\"body3\">\n {t(\"neetoPdf.pdfDocuments.editor.field.font\")}\n </Typography>\n <Select\n formatOptionLabel={renderFontOptionLabel}\n isSearchable={false}\n options={FONTS}\n size=\"small\"\n strategy=\"fixed\"\n value={findBy({ value: mapping.font }, FONTS)}\n onChange={option => onChange(mapping.id, { font: option.value })}\n />\n </div>\n <div className=\"flex gap-4\">\n <div className=\"min-w-0 flex-1 space-y-1\">\n <Typography className=\"neeto-ui-text-gray-700\" style=\"body3\">\n {t(\"neetoPdf.pdfDocuments.editor.field.size\")}\n </Typography>\n <Input\n max={FONT_SIZE_LIMITS.max}\n min={FONT_SIZE_LIMITS.min}\n size=\"small\"\n type=\"number\"\n value={mapping.fontSize}\n onChange={event =>\n onChange(mapping.id, {\n fontSize: sanitizeFontSize(event.target.value),\n })\n }\n />\n </div>\n <div className=\"space-y-1\">\n <Typography className=\"neeto-ui-text-gray-700\" style=\"body3\">\n {t(\"neetoPdf.pdfDocuments.editor.field.format\")}\n </Typography>\n <div className=\"flex\">\n <ToggleButton\n aria-label=\"bold\"\n className=\"w-9\"\n isActive={mapping.bold}\n onClick={() => onChange(mapping.id, { bold: !mapping.bold })}\n >\n <span className=\"font-bold\">B</span>\n </ToggleButton>\n <ToggleButton\n aria-label=\"italic\"\n className=\"w-9\"\n isActive={mapping.italic}\n onClick={() =>\n onChange(mapping.id, { italic: !mapping.italic })\n }\n >\n <span className=\"italic\">I</span>\n </ToggleButton>\n <ToggleButton\n aria-label=\"underline\"\n className=\"w-9\"\n isActive={mapping.underline}\n onClick={() =>\n onChange(mapping.id, { underline: !mapping.underline })\n }\n >\n <span className=\"underline\">U</span>\n </ToggleButton>\n </div>\n </div>\n </div>\n <div className=\"space-y-1\">\n <Typography className=\"neeto-ui-text-gray-700\" style=\"body3\">\n {t(\"neetoPdf.pdfDocuments.editor.field.fontColor\")}\n </Typography>\n <ColorPicker\n showHexValue\n color={mapping.color}\n size=\"small\"\n onChange={({ hex }) => onChange(mapping.id, { color: hex })}\n />\n </div>\n <div className=\"space-y-1\">\n <Typography className=\"neeto-ui-text-gray-700\" style=\"body3\">\n {t(\"neetoPdf.pdfDocuments.editor.field.alignment\")}\n </Typography>\n <div className=\"flex w-full\">\n <ToggleButton\n aria-label=\"align-left\"\n className=\"flex-1\"\n isActive={mapping.align === ALIGNMENTS.LEFT}\n onClick={() => onChange(mapping.id, { align: ALIGNMENTS.LEFT })}\n >\n <LeftAlign size={16} />\n </ToggleButton>\n <ToggleButton\n aria-label=\"align-center\"\n className=\"flex-1\"\n isActive={mapping.align === ALIGNMENTS.CENTER}\n onClick={() => onChange(mapping.id, { align: ALIGNMENTS.CENTER })}\n >\n <CenterAlign size={16} />\n </ToggleButton>\n <ToggleButton\n aria-label=\"align-right\"\n className=\"flex-1\"\n isActive={mapping.align === ALIGNMENTS.RIGHT}\n onClick={() => onChange(mapping.id, { align: ALIGNMENTS.RIGHT })}\n >\n <RightAlign size={16} />\n </ToggleButton>\n </div>\n </div>\n </div>\n <Button\n fullWidth\n className=\"mt-4\"\n icon={Delete}\n label={t(\"neetoPdf.pdfDocuments.editor.field.remove\")}\n style=\"danger\"\n onClick={() => onRemove(mapping.id)}\n />\n </div>\n ) : (\n <div className=\"neeto-ui-border-gray-200 neeto-ui-bg-white flex h-full w-72 shrink-0 flex-col border-l\">\n <EmptyState />\n </div>\n )\n);\n\nexport default FieldPanel;\n","import { Drag } from \"neetoicons\";\nimport { Typography } from \"neetoui\";\n\nconst FieldCard = ({ field, onPlace, onDragStart, onDragEnd }) => {\n const Icon = field.icon;\n\n const handleDragStart = event => {\n event.dataTransfer.effectAllowed = \"copy\";\n event.dataTransfer.setData(\"text/plain\", field.key);\n onDragStart(field);\n };\n\n return (\n <div\n {...{ onDragEnd }}\n draggable\n className=\"neeto-ui-border-gray-400 neeto-ui-bg-white hover:neeto-ui-bg-gray-200 neeto-ui-rounded-lg relative mb-2 flex h-10 cursor-pointer items-center gap-2 border p-3 transition-all duration-300 ease-in-out\"\n data-testid={`add-${field.key}-field`}\n onClick={() => onPlace(field)}\n onDragStart={handleDragStart}\n >\n <span\n className=\"absolute end-full top-1/2 me-0.5 flex-shrink-0 -translate-y-1/2 cursor-grab\"\n data-testid=\"drag-handle\"\n >\n <Drag\n className=\"neeto-ui-text-gray-400 hover:neeto-ui-text-gray-500 transition-all duration-300 ease-in-out\"\n size={16}\n />\n </span>\n <div className=\"flex flex-grow items-center gap-2 overflow-hidden\">\n {Icon && (\n <div className=\"flex-shrink-0\">\n <Icon />\n </div>\n )}\n <Typography className=\"truncate leading-4\" style=\"body2\">\n {field.label}\n </Typography>\n </div>\n </div>\n );\n};\n\nexport default FieldCard;\n","import { useState } from \"react\";\n\nimport { Search } from \"neetoicons\";\nimport { Input, Typography } from \"neetoui\";\nimport { useTranslation } from \"react-i18next\";\n\nimport FieldCard from \"./FieldCard\";\n\nconst Section = ({ title, children }) => {\n if (!children?.length) return null;\n\n return (\n <>\n <Typography className=\"mt-1 mb-3\" style=\"h3\">\n {title}\n </Typography>\n {children}\n </>\n );\n};\n\nconst FieldsPanel = ({\n answerFields,\n systemFields,\n onPlace,\n onDragStartField,\n onDragEndField,\n}) => {\n const { t } = useTranslation();\n const [searchTerm, setSearchTerm] = useState(\"\");\n\n const query = searchTerm.trim().toLowerCase();\n const matches = field => field.label.toLowerCase().includes(query);\n\n const filteredAnswers = query ? answerFields.filter(matches) : answerFields;\n const filteredSystem = query ? systemFields.filter(matches) : systemFields;\n\n const renderField = field => (\n <FieldCard\n {...{ field, onPlace }}\n key={`${field.source}-${field.key}`}\n onDragEnd={onDragEndField}\n onDragStart={onDragStartField}\n />\n );\n\n return (\n <div className=\"neeto-ui-border-gray-200 neeto-ui-bg-gray-50 flex h-full w-[360px] shrink-0 flex-col border-r\">\n <div className=\"p-6 pb-1\">\n <Typography lineHeight=\"normal\" style=\"h3\" weight=\"semibold\">\n {t(\"neetoPdf.pdfDocuments.editor.addNewElement\")}\n </Typography>\n </div>\n <div className=\"mb-1 px-6\">\n <Typography className=\"mb-3\" style=\"body3\">\n {t(\"neetoPdf.pdfDocuments.editor.addNewElementDescription\")}\n </Typography>\n <Input\n autoFocus\n data-testid=\"elements-panel-search-field\"\n placeholder={t(\"neetoPdf.pdfDocuments.editor.searchElements\")}\n prefix={<Search />}\n type=\"search\"\n value={searchTerm}\n onChange={event => setSearchTerm(event.target.value)}\n />\n </div>\n <div\n className=\"grow overflow-y-auto px-6 pb-2\"\n data-testid=\"elements-container\"\n >\n <Section title={t(\"neetoPdf.pdfDocuments.editor.answers\")}>\n {filteredAnswers.map(renderField)}\n </Section>\n <Section title={t(\"neetoPdf.pdfDocuments.editor.system\")}>\n {filteredSystem.map(renderField)}\n </Section>\n {filteredAnswers.length === 0 && filteredSystem.length === 0 ? (\n <Typography\n className=\"neeto-ui-text-gray-800 text-md flex h-full items-center justify-center\"\n weight=\"bold\"\n >\n {t(\"neetoPdf.pdfDocuments.editor.noFields\")}\n </Typography>\n ) : null}\n </div>\n </div>\n );\n};\n\nexport default FieldsPanel;\n","import { DEFAULT_STYLE, STANDARD_FONT_VARIANTS } from \"./constants\";\n\n// pdf-lib StandardFonts only support WinAnsi encoding and single-line text, so\n// collapse whitespace and drop characters they cannot encode.\nconst sanitizeForPdf = text =>\n text\n .replace(/\\s+/g, \" \")\n .trim()\n\n .replace(/[^\\x20-\\x7E\\xA0-\\xFF]/g, \"\")\n .trim();\n\nconst hexToRgbComponents = hex => {\n const value = (hex || DEFAULT_STYLE.color).replace(\"#\", \"\");\n const full =\n value.length === 3\n ? value\n .split(\"\")\n .map(char => char + char)\n .join(\"\")\n : value;\n const int = parseInt(full, 16);\n\n return {\n r: ((int >> 16) & 255) / 255,\n g: ((int >> 8) & 255) / 255,\n b: (int & 255) / 255,\n };\n};\n\nconst standardFontName = (font, bold, italic) => {\n const variants =\n STANDARD_FONT_VARIANTS[font] || STANDARD_FONT_VARIANTS.Helvetica;\n\n return variants[(bold ? 1 : 0) + (italic ? 2 : 0)];\n};\n\nconst triggerBlobDownload = (bytes, fileName) => {\n const blob = new Blob([bytes], { type: \"application/pdf\" });\n const url = URL.createObjectURL(blob);\n const link = window.document.createElement(\"a\");\n link.href = url;\n link.download = fileName;\n window.document.body.appendChild(link);\n link.click();\n link.remove();\n URL.revokeObjectURL(url);\n};\n\n// Stamp the resolved values for one submission onto the template PDF (client\n// side, via pdf-lib) and trigger a browser download. pdf-lib is imported lazily\n// so it only loads on the first download.\nexport const downloadFilledPdf = async ({\n templateUrl,\n mappings,\n valueFor,\n fileName,\n}) => {\n const pdfLibModule = await import(\"pdf-lib\");\n const { PDFDocument, StandardFonts, rgb } = pdfLibModule;\n\n const response = await fetch(templateUrl);\n if (!response.ok) {\n throw new Error(`Failed to fetch template PDF (${response.status})`);\n }\n const bytes = await response.arrayBuffer();\n\n const pdfDoc = await PDFDocument.load(bytes, { ignoreEncryption: true });\n const pages = pdfDoc.getPages();\n\n const fontNames = [\n ...new Set(\n mappings.map(mapping =>\n standardFontName(mapping.font, mapping.bold, mapping.italic)\n )\n ),\n ];\n\n const embeddedFonts = Object.fromEntries(\n await Promise.all(\n fontNames.map(async name => [\n name,\n await pdfDoc.embedFont(StandardFonts[name]),\n ])\n )\n );\n\n mappings.forEach(mapping => {\n const page = pages[mapping.page - 1];\n if (!page) return;\n\n const text = sanitizeForPdf(valueFor(mapping) || \"\");\n if (!text) return;\n\n const { width: pageWidth, height: pageHeight } = page.getSize();\n const font =\n embeddedFonts[\n standardFontName(mapping.font, mapping.bold, mapping.italic)\n ];\n const size = mapping.fontSize;\n const { r, g, b } = hexToRgbComponents(mapping.color);\n const color = rgb(r, g, b);\n\n const boxLeft = mapping.x * pageWidth;\n const boxWidth = mapping.width * pageWidth;\n const textWidth = font.widthOfTextAtSize(text, size);\n\n let x = boxLeft;\n if (mapping.align === \"center\") x = boxLeft + (boxWidth - textWidth) / 2;\n else if (mapping.align === \"right\") x = boxLeft + boxWidth - textWidth;\n\n const y = pageHeight - mapping.y * pageHeight - size;\n\n page.drawText(text, { x, y, size, font, color });\n\n if (mapping.underline) {\n const lineY = y - size * 0.1;\n page.drawLine({\n start: { x, y: lineY },\n end: { x: x + textWidth, y: lineY },\n thickness: Math.max(0.5, size * 0.06),\n color,\n });\n }\n });\n\n triggerBlobDownload(await pdfDoc.save(), fileName);\n};\n","import { useState } from \"react\";\n\nimport logger from \"js-logger\";\nimport { Toastr } from \"neetoui\";\n\nimport { buildOutputFilename } from \"../../FilenameUtilities\";\nimport { downloadFilledPdf } from \"../PdfDownloadUtilities\";\n\nconst usePdfDownload = ({\n mappings,\n pdfDocument,\n previewRecord,\n resolveValue,\n t,\n}) => {\n const [isDownloading, setIsDownloading] = useState(false);\n\n const downloadPdf = async () => {\n const templateUrl = pdfDocument?.templateFile?.url;\n if (!templateUrl || !previewRecord) return;\n\n setIsDownloading(true);\n\n try {\n await downloadFilledPdf({\n templateUrl,\n mappings,\n valueFor: resolveValue,\n fileName: buildOutputFilename(pdfDocument, previewRecord),\n });\n } catch (error) {\n logger.error(error);\n Toastr.error(t(\"neetoPdf.pdfDocuments.editor.downloadError\"));\n } finally {\n setIsDownloading(false);\n }\n };\n\n return { downloadPdf, isDownloading };\n};\n\nexport default usePdfDownload;\n","import { Toastr } from \"neetoui\";\n\nimport {\n getPdfDocumentApiErrorMessage,\n useFetchPdfDocument,\n useUpdatePdfDocument,\n} from \"src/hooks/usePdfDocumentsApi\";\n\nimport { buildOutputFilenameTemplate } from \"../../FilenameUtilities\";\n\nconst usePdfEditorDocument = ({ apiBaseUrl, documentId, ownerId, t }) => {\n const { data: documentResponse, isLoading: isDocumentLoading } =\n useFetchPdfDocument({ apiBaseUrl, ownerId, documentId });\n\n const pdfDocument = documentResponse?.document;\n\n const { mutate: saveMappings, isPending: isSaving } = useUpdatePdfDocument({\n apiBaseUrl,\n ownerId,\n options: {\n onSuccess: () =>\n Toastr.success(t(\"neetoPdf.pdfDocuments.editor.saveSuccess\")),\n onError: error =>\n Toastr.error(\n getPdfDocumentApiErrorMessage(\n error,\n t(\"neetoPdf.pdfDocuments.editor.saveError\")\n )\n ),\n },\n });\n\n const { mutate: renameDocument } = useUpdatePdfDocument({\n apiBaseUrl,\n ownerId,\n options: {\n onSuccess: () =>\n Toastr.success(t(\"neetoPdf.pdfDocuments.rename.success\")),\n onError: error =>\n Toastr.error(\n getPdfDocumentApiErrorMessage(\n error,\n t(\"neetoPdf.pdfDocuments.rename.error\")\n )\n ),\n },\n });\n\n const saveDocumentMappings = ({ mappings, onSuccess }) => {\n saveMappings({ documentId, payload: { mappings } }, { onSuccess });\n };\n\n const renamePdfDocument = name => {\n const trimmedName = name.trim();\n\n renameDocument({\n documentId,\n payload: {\n name: trimmedName,\n outputFilename: buildOutputFilenameTemplate(trimmedName),\n },\n });\n };\n\n return {\n documentName: pdfDocument?.name || \"\",\n isDocumentLoading,\n isSaving,\n pdfDocument,\n renamePdfDocument,\n saveDocumentMappings,\n templateUrl: pdfDocument?.templateFile?.url,\n };\n};\n\nexport default usePdfEditorDocument;\n","import { getDefaultFontSizeForScale } from \"./CanvasUtilities\";\nimport { DEFAULT_BOX, DEFAULT_STYLE, FIELD_SOURCES } from \"./constants\";\n\nconst htmlToPlainText = value => {\n const element = window.document.createElement(\"div\");\n element.innerHTML = value || \"\";\n\n return element.textContent || element.innerText || \"\";\n};\n\nconst generateId = () =>\n window.crypto?.randomUUID?.() || `${Date.now()}-${Math.random()}`;\n\n// Turn the form's records into the \"Answers\" list shown in the left panel.\nexport const buildAnswerFields = (fields = []) =>\n fields\n .filter(field => field)\n .map(field => ({\n source: FIELD_SOURCES.ANSWER,\n key: field.key || field.slug,\n recordId: field.recordId || field.id || null,\n slug: field.slug || field.key,\n label: htmlToPlainText(field.label || \"\"),\n kind: field.kind,\n icon: field.icon,\n typeLabel: field.typeLabel || field.kind || \"\",\n }));\n\nexport const buildMapping = ({ field, page, scale }) => ({\n id: generateId(),\n source: field.source,\n fieldSlug: field.key,\n recordId: field.recordId ?? null,\n label: field.label,\n kind: field.kind,\n page,\n ...DEFAULT_BOX,\n ...DEFAULT_STYLE,\n fontSize: getDefaultFontSizeForScale(scale),\n});\n","import { useEffect, useRef, useState } from \"react\";\n\nimport { findById, removeById } from \"neetocist\";\nimport { append } from \"ramda\";\n\nimport { clamp } from \"../CanvasUtilities\";\nimport { DEFAULT_BOX } from \"../constants\";\nimport { buildMapping } from \"../MappingUtilities\";\n\nconst usePdfMappingsState = ({ documentId, pdfDocument }) => {\n const [mappings, setMappings] = useState([]);\n const [selectedId, setSelectedId] = useState(null);\n const [pageScales, setPageScales] = useState(() => new Map());\n const [isDirty, setIsDirty] = useState(false);\n\n const draggedFieldRef = useRef(null);\n const initializedRef = useRef(null);\n\n useEffect(() => {\n if (!(pdfDocument && initializedRef.current !== documentId)) return;\n\n initializedRef.current = documentId;\n setMappings(pdfDocument.mappings || []);\n setIsDirty(false);\n }, [pdfDocument, documentId]);\n\n const selectedMapping = findById(selectedId, mappings) || null;\n\n const mutateMappings = updater => {\n setMappings(updater);\n setIsDirty(true);\n };\n\n const handleAddField = field => {\n const mapping = buildMapping({ field, page: 1, scale: pageScales.get(1) });\n mutateMappings(append(mapping));\n setSelectedId(mapping.id);\n };\n\n const handleDropField = ({ pageNumber, scale, x, y }) => {\n const field = draggedFieldRef.current;\n if (!field) return;\n\n const mapping = {\n ...buildMapping({ field, page: pageNumber, scale }),\n x: clamp(x, 0, 1 - DEFAULT_BOX.width),\n y: clamp(y, 0, 1 - DEFAULT_BOX.height),\n };\n\n mutateMappings(append(mapping));\n setSelectedId(mapping.id);\n };\n\n const handleChangeMapping = (id, patch) =>\n mutateMappings(prev =>\n prev.map(mapping =>\n mapping.id === id ? { ...mapping, ...patch } : mapping\n )\n );\n\n const handlePageScaleChange = (pageNumber, scale) => {\n setPageScales(prev => {\n if (prev.get(pageNumber) === scale) return prev;\n\n const nextPageScales = new Map(prev);\n nextPageScales.set(pageNumber, scale);\n\n return nextPageScales;\n });\n };\n\n const handleRemoveMapping = id => {\n mutateMappings(prev => removeById(id, prev));\n setSelectedId(current => (current === id ? null : current));\n };\n\n const handleDragEndField = () => {\n draggedFieldRef.current = null;\n };\n\n const handleDragStartField = field => {\n draggedFieldRef.current = field;\n };\n\n return {\n handleAddField,\n handleChangeMapping,\n handleDragEndField,\n handleDragStartField,\n handleDropField,\n handlePageScaleChange,\n handleRemoveMapping,\n isDirty,\n mappings,\n selectedId,\n selectedMapping,\n setIsDirty,\n setSelectedId,\n };\n};\n\nexport default usePdfMappingsState;\n","import { useEffect, useState } from \"react\";\n\nimport { EDITOR_MODES } from \"../constants\";\n\nconst usePreviewPagination = ({\n controlledMode,\n onModeChange,\n onPreviewPageChange,\n previewPage,\n setSelectedId,\n}) => {\n const [localPreviewPage, setLocalPreviewPage] = useState(previewPage);\n const [localMode, setLocalMode] = useState(EDITOR_MODES.MAP);\n\n const mode = controlledMode || localMode;\n const isPreview = mode === EDITOR_MODES.PREVIEW;\n const currentPreviewPage = onPreviewPageChange\n ? previewPage\n : localPreviewPage;\n\n useEffect(() => {\n if (!isPreview) return;\n\n setSelectedId(null);\n setLocalPreviewPage(1);\n onPreviewPageChange?.(1);\n }, [isPreview, onPreviewPageChange, setSelectedId]);\n\n const setPreviewPage = page => {\n setLocalPreviewPage(page);\n onPreviewPageChange?.(page);\n };\n\n const handleModeChange = nextMode => {\n setLocalMode(nextMode);\n onModeChange?.(nextMode);\n };\n\n return {\n currentPreviewPage,\n handleModeChange,\n isPreview,\n mode,\n setPreviewPage,\n };\n};\n\nexport default usePreviewPagination;\n","import { Left, Right } from \"neetoicons\";\nimport { Button, Typography } from \"neetoui\";\nimport { useTranslation } from \"react-i18next\";\n\nconst PreviewPager = ({ page, total, isLoading, onPrev, onNext }) => {\n const { t } = useTranslation();\n\n if (!isLoading && total === 0) {\n return (\n <div className=\"neeto-ui-border-gray-200 neeto-ui-bg-white neeto-ui-shadow-md neeto-ui-rounded-lg border px-3 py-1.5\">\n <Typography className=\"neeto-ui-text-gray-500\" style=\"body3\">\n {t(\"neetoPdf.pdfDocuments.editor.preview.noSubmissions\")}\n </Typography>\n </div>\n );\n }\n\n return (\n <div className=\"neeto-ui-border-gray-200 neeto-ui-bg-white neeto-ui-shadow-md neeto-ui-rounded-lg flex items-center gap-1 border px-1\">\n <Button\n disabled={page <= 1 || isLoading}\n icon={Left}\n size=\"small\"\n style=\"text\"\n onClick={onPrev}\n />\n <Typography className=\"px-1 whitespace-nowrap\" style=\"body3\">\n {t(\"neetoPdf.pdfDocuments.editor.preview.counter\", {\n page,\n total,\n })}\n </Typography>\n <Button\n disabled={page >= total || isLoading}\n icon={Right}\n size=\"small\"\n style=\"text\"\n onClick={onNext}\n />\n </div>\n );\n};\n\nexport default PreviewPager;\n","import { dateFormat } from \"neetocommons/utils\";\n\nimport { FIELD_SOURCES, SYSTEM_FIELD_KEYS } from \"./constants\";\n\nconst coerceToText = value => {\n if (value === null || value === undefined) return \"\";\n\n if (Array.isArray(value)) {\n return value.map(coerceToText).filter(Boolean).join(\", \");\n }\n\n if (typeof value === \"object\") {\n if (\"value\" in value) return coerceToText(value.value);\n\n if (\"label\" in value) return coerceToText(value.label);\n\n return \"\";\n }\n\n return String(value);\n};\n\n// Resolve the text shown for a placement in \"Preview with data\" mode. Returns\n// \"\" (rendered blank) when the current submission has no answer for the field.\nexport const resolvePreviewValue = ({\n mapping,\n responsesBySlug = {},\n form,\n submission,\n}) => {\n if (mapping.source === FIELD_SOURCES.SYSTEM) {\n switch (mapping.fieldSlug) {\n case SYSTEM_FIELD_KEYS.FORM_NAME:\n return form?.title || form?.name || \"\";\n case SYSTEM_FIELD_KEYS.SUBMISSION_ID:\n return submission?.id || \"\";\n case SYSTEM_FIELD_KEYS.SUBMISSION_DATE:\n return submission?.createdAt\n ? dateFormat.dateTime(submission.createdAt)\n : \"\";\n default:\n return \"\";\n }\n }\n\n return coerceToText(responsesBySlug[mapping.fieldSlug]);\n};\n\n// Build a slug -> value lookup from a single submission's responses array.\nexport const buildResponsesBySlug = (responses = []) =>\n responses.reduce((acc, response) => {\n if (response?.slug !== undefined) acc[response.slug] = response.value;\n\n return acc;\n }, {});\n","import { Download, LeftArrow, Minus, Plus } from \"neetoicons\";\nimport NavigationHeader from \"neetomolecules/NavigationHeader\";\nimport { Button, Typography } from \"neetoui\";\nimport { useTranslation } from \"react-i18next\";\n\nimport { EDITOR_MODES, ZOOM } from \"./constants\";\n\nconst TopBar = ({\n name,\n onRename,\n canManage,\n homeUrl,\n isPreview,\n zoom,\n onZoomIn,\n onZoomOut,\n onDownload,\n isDownloading,\n canDownload,\n onSave,\n isSaving,\n isDirty,\n onBack,\n onModeChange,\n}) => {\n const { t } = useTranslation();\n\n const headerLinks = [\n {\n key: EDITOR_MODES.MAP,\n label: t(\"neetoPdf.pdfDocuments.editor.mapFields\"),\n to: \"#map\",\n isActive: () => !isPreview,\n onClick: event => {\n event.preventDefault();\n onModeChange(EDITOR_MODES.MAP);\n },\n },\n {\n key: EDITOR_MODES.PREVIEW,\n label: t(\"neetoPdf.pdfDocuments.editor.previewWithData\"),\n to: \"#preview\",\n isActive: () => isPreview,\n onClick: event => {\n event.preventDefault();\n onModeChange(EDITOR_MODES.PREVIEW);\n },\n },\n ];\n\n const rightActionBlock = (\n <div className=\"flex w-full items-center justify-end gap-3\">\n <div className=\"flex items-center gap-1\">\n <Button\n disabled={zoom <= ZOOM.MIN}\n icon={Minus}\n size=\"small\"\n style=\"text\"\n onClick={onZoomOut}\n />\n <Typography className=\"w-10 text-center\" style=\"body3\">\n {Math.round(zoom * 100)}%\n </Typography>\n <Button\n disabled={zoom >= ZOOM.MAX}\n icon={Plus}\n size=\"small\"\n style=\"text\"\n onClick={onZoomIn}\n />\n </div>\n <Button\n disabled={!canDownload}\n icon={Download}\n label={t(\"neetoPdf.pdfDocuments.editor.downloadPdf\")}\n loading={isDownloading}\n style=\"secondary\"\n tooltipProps={{\n content: canDownload\n ? t(\"neetoPdf.pdfDocuments.editor.downloadTooltip\")\n : t(\"neetoPdf.pdfDocuments.editor.downloadHint\"),\n }}\n onClick={onDownload}\n />\n <Button\n disabled={!isDirty}\n label={t(\"neetoPdf.common.save\")}\n loading={isSaving}\n onClick={onSave}\n />\n </div>\n );\n\n return (\n <NavigationHeader\n {...{ rightActionBlock }}\n leftActionBlock={\n <NavigationHeader.LeftActionBlock\n homeUrl={homeUrl || \"#\"}\n homeButtonProps={{\n icon: <LeftArrow />,\n tooltip: {\n content: t(\"neetoPdf.pdfDocuments.editor.back\"),\n position: \"bottom\",\n },\n onClick: onBack,\n }}\n renameProps={{\n value: name,\n disabled: !canManage,\n placeholder: t(\"neetoPdf.pdfDocuments.rename.placeholder\"),\n onRename,\n }}\n />\n }\n navigationLinks={\n <NavigationHeader.NavigationLinks\n {...{ headerLinks }}\n maxVisibleLinks={2}\n />\n }\n />\n );\n};\n\nexport default TopBar;\n","import { useMemo, useState } from \"react\";\n\nimport { Spinner } from \"neetoui\";\nimport { createPortal } from \"react-dom\";\nimport { useTranslation } from \"react-i18next\";\n\nimport Canvas from \"./Canvas\";\nimport { clamp } from \"./CanvasUtilities\";\nimport { FIELD_SOURCES, SYSTEM_FIELDS, ZOOM } from \"./constants\";\nimport FieldPanel from \"./FieldPanel\";\nimport FieldsPanel from \"./FieldsPanel\";\nimport usePdfDownload from \"./hooks/usePdfDownload\";\nimport usePdfEditorDocument from \"./hooks/usePdfEditorDocument\";\nimport usePdfMappingsState from \"./hooks/usePdfMappingsState\";\nimport usePreviewPagination from \"./hooks/usePreviewPagination\";\nimport { buildAnswerFields } from \"./MappingUtilities\";\nimport PreviewPager from \"./PreviewPager\";\nimport {\n buildResponsesBySlug,\n resolvePreviewValue,\n} from \"./PreviewValueUtilities\";\nimport TopBar from \"./TopBar\";\n\nconst FullScreenSpinner = () => (\n <div className=\"neeto-ui-bg-white fixed inset-0 z-50 flex items-center justify-center\">\n <Spinner />\n </div>\n);\n\nconst PdfEditorPage = ({\n apiBaseUrl,\n ownerId,\n documentId,\n canManage = true,\n fields = [],\n ownerRecord = {},\n previewRecord,\n previewTotal = 0,\n previewPage = 1,\n isPreviewLoading = false,\n mode: controlledMode,\n homeUrl,\n onBack,\n onModeChange,\n onPreviewPageChange,\n}) => {\n const { t } = useTranslation();\n const [zoom, setZoom] = useState(ZOOM.DEFAULT);\n\n const {\n documentName,\n isDocumentLoading,\n isSaving,\n pdfDocument,\n renamePdfDocument,\n saveDocumentMappings,\n templateUrl,\n } = usePdfEditorDocument({ apiBaseUrl, documentId, ownerId, t });\n\n const {\n handleAddField,\n handleChangeMapping,\n handleDragEndField,\n handleDragStartField,\n handleDropField,\n handlePageScaleChange,\n handleRemoveMapping,\n isDirty,\n mappings,\n selectedId,\n selectedMapping,\n setIsDirty,\n setSelectedId,\n } = usePdfMappingsState({ documentId, pdfDocument });\n\n const {\n currentPreviewPage,\n handleModeChange,\n isPreview,\n mode,\n setPreviewPage,\n } = usePreviewPagination({\n controlledMode,\n onModeChange,\n onPreviewPageChange,\n previewPage,\n setSelectedId,\n });\n\n const answerFields = useMemo(() => buildAnswerFields(fields), [fields]);\n\n const systemFields = useMemo(\n () =>\n SYSTEM_FIELDS.map(({ key, labelKey, icon }) => ({\n source: FIELD_SOURCES.SYSTEM,\n key,\n label: t(labelKey),\n typeLabel: t(\"neetoPdf.pdfDocuments.editor.system\"),\n kind: key,\n icon,\n })),\n [t]\n );\n\n const responsesBySlug = useMemo(\n () => buildResponsesBySlug(previewRecord?.responses),\n [previewRecord]\n );\n\n const resolveValue = mapping =>\n resolvePreviewValue({\n mapping,\n responsesBySlug,\n form: ownerRecord,\n submission: previewRecord,\n });\n\n const { downloadPdf, isDownloading } = usePdfDownload({\n mappings,\n pdfDocument,\n previewRecord,\n resolveValue,\n t,\n });\n\n const handleSave = () =>\n saveDocumentMappings({ mappings, onSuccess: () => setIsDirty(false) });\n\n if (isDocumentLoading) return <FullScreenSpinner />;\n\n return createPortal(\n <div className=\"neeto-ui-bg-white fixed inset-0 z-50 flex flex-col\">\n <TopBar\n {...{\n canManage,\n documentId,\n homeUrl,\n isDirty,\n isDownloading,\n isPreview,\n isSaving,\n mode,\n onBack,\n zoom,\n }}\n canDownload={isPreview && Boolean(previewRecord)}\n name={documentName}\n onDownload={downloadPdf}\n onModeChange={handleModeChange}\n onRename={renamePdfDocument}\n onSave={handleSave}\n onZoomIn={() =>\n setZoom(value => clamp(value + ZOOM.STEP, ZOOM.MIN, ZOOM.MAX))\n }\n onZoomOut={() =>\n setZoom(value => clamp(value - ZOOM.STEP, ZOOM.MIN, ZOOM.MAX))\n }\n />\n <div className=\"flex min-h-0 grow overflow-hidden\">\n {!isPreview && (\n <FieldsPanel\n {...{ answerFields, systemFields }}\n onDragEndField={handleDragEndField}\n onDragStartField={handleDragStartField}\n onPlace={handleAddField}\n />\n )}\n <div className=\"relative h-full min-w-0 flex-1 overflow-hidden\">\n {isPreview && (\n <div className=\"absolute top-4 left-1/2 z-10 -translate-x-1/2\">\n <PreviewPager\n isLoading={isPreviewLoading}\n page={currentPreviewPage}\n total={previewTotal}\n onNext={() =>\n setPreviewPage(Math.min(currentPreviewPage + 1, previewTotal))\n }\n onPrev={() =>\n setPreviewPage(Math.max(currentPreviewPage - 1, 1))\n }\n />\n </div>\n )}\n <Canvas\n {...{ mappings, mode, resolveValue, selectedId, templateUrl, zoom }}\n onChange={handleChangeMapping}\n onDropField={handleDropField}\n onPageScaleChange={handlePageScaleChange}\n onSelect={setSelectedId}\n />\n </div>\n {!isPreview && (\n <FieldPanel\n mapping={selectedMapping}\n onChange={handleChangeMapping}\n onRemove={handleRemoveMapping}\n />\n )}\n </div>\n </div>,\n window.document.body\n );\n};\n\nexport default PdfEditorPage;\n"],"names":["mappingDefaults","pdfMappingSchema","defaults","CSS_PX_PER_PT","ZOOM","MIN","MAX","STEP","DEFAULT","PDF_CANVAS","MAX_DISPLAY_SIZE","MAX_RENDER_SIZE","MAX_RENDER_PIXELS","EDITOR_MODES","MAP","PREVIEW","PDF_LOAD_INITIAL_STATE","pages","isLoading","error","EMPTY_MAPPINGS","FIELD_SOURCES","ANSWER","enums","sources","SYSTEM","DRAG_KINDS","MOVE","RESIZE","ALIGNMENTS","LEFT","alignments","CENTER","RIGHT","FORM_THEME_COLOR","FORM_THEME_BACKGROUND","RESIZE_HANDLES","key","x","y","className","FONTS","fonts","map","_ref","label","stack","value","STANDARD_FONT_VARIANTS","Object","fromEntries","_ref2","clientVariants","client_variants","DEFAULT_FONT_SIZE","style","font_size","DEFAULT_DISPLAY_FONT_SIZE","FONT_SIZE_LIMITS","ranges","DEFAULT_STYLE","font","fontSize","color","bold","italic","underline","align","DEFAULT_BOX","box","MIN_BOX","width","height","SYSTEM_FIELD_KEYS","FORM_NAME","SUBMISSION_ID","SUBMISSION_DATE","SYSTEM_FIELDS","labelKey","icon","TextLines","Hash","Calendar","clamp","min","max","Math","getPdfPageDisplayScale","heightPt","rawScale","widthPt","maxPageSize","zoom","baseScale","getDefaultFontSizeForScale","scale","Number","isNaN","round","getFontStack","_findBy","findBy","getJustifyContent","PlacedField","mapping","mode","isSelected","pageWidthPx","pageHeightPx","previewValue","onSelect","onChange","dragRef","useRef","draftPatchRef","_useState","useState","_useState2","_slicedToArray","draftPatch","setDraftPatch","isPreview","displayMapping","_objectSpread","left","concat","top","selectedStyle","borderColor","backgroundColor","textStyle","fontFamily","fontWeight","fontStyle","textDecoration","textAlign","justifyContent","getResizePatch","drag","dxFrac","dyFrac","patch","originRight","originX","originWidth","originBottom","originY","originHeight","handle","handlePointerMove","event","current","clientX","startX","clientY","startY","kind","startDrag","arguments","length","undefined","stopPropagation","preventDefault","id","currentTarget","setPointerCapture","pointerId","endDrag","_event$currentTarget$","_event$currentTarget","releasePointerCapture","call","renderResizeHandle","_jsx","classNames","onPointerCancel","onPointerDown","onPointerMove","onPointerUp","children","_jsxs","getRenderPixelRatio","viewport","dpr","window","devicePixelRatio","widthRatio","heightRatio","pixelRatio","sqrt","PdfPage","pageDescriptor","mappings","selectedId","resolveValue","onDropField","onScaleChange","page","pageNumber","canvasRef","overlayRef","useMemo","defaultMappingScale","getViewport","useEffect","canvas","renderPixelRatio","floor","renderTask","render","canvasContext","getContext","transform","_asyncToGenerator","_regeneratorRuntime","mark","_callee","wrap","_callee$","_context","prev","next","promise","t0","stop","apply","cancel","handleDrop","rect","getBoundingClientRect","xFrac","yFrac","handleDragOver","dataTransfer","dropEffect","ref","onDragOver","onDrop","_createElement","pdfjsLib","GlobalWorkerOptions","workerSrc","usePdfDocument","url","state","setState","isCancelled","pdf","loadingTask","getDocument","loadPages","sent","numPages","getPage","push","_loadingTask$destroy","_pdf","_pdf$destroy","destroy","Canvas","templateUrl","onPageScaleChange","_useTranslation","useTranslation","t","_usePdfDocument","mappingsByPage","reduce","groupedMappings","pageMappings","get","set","Map","Spinner","Typography","ToggleButton","isActive","onClick","rest","_objectWithoutProperties","_excluded","type","EmptyState","withT","Folder","size","weight","renderFontOptionLabel","_ref3","sanitizeFontSize","FieldPanel","_ref4","onRemove","Select","formatOptionLabel","isSearchable","options","strategy","option","Input","target","ColorPicker","showHexValue","_ref5","hex","LeftAlign","CenterAlign","RightAlign","Button","fullWidth","Delete","FieldCard","field","onPlace","onDragStart","onDragEnd","Icon","handleDragStart","effectAllowed","setData","draggable","Drag","Section","title","_Fragment","FieldsPanel","answerFields","systemFields","onDragStartField","onDragEndField","searchTerm","setSearchTerm","query","trim","toLowerCase","matches","includes","filteredAnswers","filter","filteredSystem","renderField","source","lineHeight","autoFocus","placeholder","prefix","Search","sanitizeForPdf","text","replace","hexToRgbComponents","full","split","char","join","int","parseInt","r","g","b","standardFontName","variants","Helvetica","triggerBlobDownload","bytes","fileName","blob","Blob","URL","createObjectURL","link","document","createElement","href","download","body","appendChild","click","remove","revokeObjectURL","downloadFilledPdf","_callee2","valueFor","pdfLibModule","PDFDocument","StandardFonts","rgb","response","pdfDoc","fontNames","embeddedFonts","_callee2$","_context2","fetch","ok","Error","status","arrayBuffer","load","ignoreEncryption","getPages","_toConsumableArray","Set","Promise","all","name","embedFont","t1","abrupt","_x2","forEach","_page$getSize","getSize","pageWidth","pageHeight","_hexToRgbComponents","boxLeft","boxWidth","textWidth","widthOfTextAtSize","drawText","lineY","drawLine","start","end","thickness","t2","save","t3","t4","_x","usePdfDownload","pdfDocument","previewRecord","isDownloading","setIsDownloading","downloadPdf","_pdfDocument$template","templateFile","buildOutputFilename","logger","Toastr","finish","usePdfEditorDocument","apiBaseUrl","documentId","ownerId","_useFetchPdfDocument","useFetchPdfDocument","documentResponse","data","isDocumentLoading","_useUpdatePdfDocument","useUpdatePdfDocument","onSuccess","success","onError","getPdfDocumentApiErrorMessage","saveMappings","mutate","isSaving","isPending","_useUpdatePdfDocument2","renameDocument","saveDocumentMappings","payload","renamePdfDocument","trimmedName","outputFilename","buildOutputFilenameTemplate","documentName","htmlToPlainText","element","innerHTML","textContent","innerText","generateId","_window$crypto","_window$crypto$random","crypto","randomUUID","Date","now","random","buildAnswerFields","fields","slug","recordId","typeLabel","buildMapping","_field$recordId","fieldSlug","usePdfMappingsState","setMappings","_useState3","_useState4","setSelectedId","_useState5","_useState6","pageScales","setPageScales","_useState7","_useState8","isDirty","setIsDirty","draggedFieldRef","initializedRef","selectedMapping","findById","mutateMappings","updater","handleAddField","append","handleDropField","handleChangeMapping","handlePageScaleChange","nextPageScales","handleRemoveMapping","removeById","handleDragEndField","handleDragStartField","usePreviewPagination","controlledMode","onModeChange","onPreviewPageChange","previewPage","localPreviewPage","setLocalPreviewPage","localMode","setLocalMode","currentPreviewPage","setPreviewPage","handleModeChange","nextMode","PreviewPager","total","onPrev","onNext","disabled","Left","Right","coerceToText","Array","isArray","Boolean","_typeof","String","resolvePreviewValue","_ref$responsesBySlug","responsesBySlug","form","submission","createdAt","dateFormat","dateTime","buildResponsesBySlug","responses","acc","TopBar","onRename","canManage","homeUrl","onZoomIn","onZoomOut","onDownload","canDownload","onSave","onBack","headerLinks","to","rightActionBlock","Minus","Plus","Download","loading","tooltipProps","content","NavigationHeader","leftActionBlock","LeftActionBlock","homeButtonProps","LeftArrow","tooltip","position","renameProps","navigationLinks","NavigationLinks","maxVisibleLinks","FullScreenSpinner","PdfEditorPage","_ref$canManage","_ref$fields","_ref$ownerRecord","ownerRecord","_ref$previewTotal","previewTotal","_ref$previewPage","_ref$isPreviewLoading","isPreviewLoading","setZoom","_usePdfEditorDocument","_usePdfMappingsState","_usePreviewPagination","_usePdfDownload","handleSave","createPortal"],"mappings":"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"}
1
+ {"version":3,"file":"PdfEditorPage.js","sources":["../../app/javascript/src/components/PdfDocuments/Editor/constants.js","../../app/javascript/src/components/PdfDocuments/Editor/CanvasUtilities.js","../../app/javascript/src/components/PdfDocuments/Editor/Canvas/PlacedField.jsx","../../app/javascript/src/components/PdfDocuments/Editor/Canvas/PdfPage.jsx","../../app/javascript/src/components/PdfDocuments/Editor/hooks/usePdfDocument.js","../../app/javascript/src/components/PdfDocuments/Editor/Canvas/index.jsx","../../app/javascript/src/components/PdfDocuments/Editor/FieldPanel.jsx","../../app/javascript/src/components/PdfDocuments/Editor/FieldCard.jsx","../../app/javascript/src/components/PdfDocuments/Editor/FieldsPanel.jsx","../../app/javascript/src/components/PdfDocuments/Editor/PdfDownloadUtilities.js","../../app/javascript/src/components/PdfDocuments/Editor/hooks/usePdfDownload.js","../../app/javascript/src/components/PdfDocuments/Editor/hooks/usePdfEditorDocument.js","../../app/javascript/src/components/PdfDocuments/Editor/MappingUtilities.js","../../app/javascript/src/components/PdfDocuments/Editor/hooks/usePdfMappingsState.js","../../app/javascript/src/components/PdfDocuments/Editor/hooks/usePreviewPagination.js","../../app/javascript/src/components/PdfDocuments/Editor/PreviewPager.jsx","../../app/javascript/src/components/PdfDocuments/Editor/PreviewValueUtilities.js","../../app/javascript/src/components/PdfDocuments/Editor/TopBar.jsx","../../app/javascript/src/components/PdfDocuments/Editor/index.jsx"],"sourcesContent":["import { Calendar, Hash, TextLines } from \"neetoicons\";\n\nimport pdfMappingSchema from \"../../../../../../config/neeto_pdf_engine/pdf_mapping_schema.json\";\n\nconst mappingDefaults = pdfMappingSchema.defaults;\n\n// CSS pixels per PDF point (96dpi / 72dpi). `renderScale = CSS_PX_PER_PT * zoom`\n// maps a page's intrinsic point dimensions to on-screen pixels, and font sizes\n// (stored in points) to pixels. Keeping geometry in point-fractions keeps\n// mappings resolution independent.\nexport const CSS_PX_PER_PT = 96 / 72;\n\nexport const ZOOM = { MIN: 0.5, MAX: 2, STEP: 0.1, DEFAULT: 1 };\n\nexport const PDF_CANVAS = {\n MAX_DISPLAY_SIZE: 1400,\n MAX_RENDER_SIZE: 8192,\n MAX_RENDER_PIXELS: 16_000_000,\n};\n\nexport const EDITOR_MODES = { MAP: \"map\", PREVIEW: \"preview\" };\n\nexport const PDF_LOAD_INITIAL_STATE = {\n pages: [],\n isLoading: true,\n error: null,\n};\n\nexport const EMPTY_MAPPINGS = [];\n\nexport const FIELD_SOURCES = {\n ANSWER: pdfMappingSchema.enums.sources[0],\n SYSTEM: pdfMappingSchema.enums.sources[1],\n};\n\nexport const DRAG_KINDS = { MOVE: \"move\", RESIZE: \"resize\" };\n\nexport const ALIGNMENTS = {\n LEFT: pdfMappingSchema.enums.alignments[0],\n CENTER: pdfMappingSchema.enums.alignments[1],\n RIGHT: pdfMappingSchema.enums.alignments[2],\n};\n\nexport const FORM_THEME_COLOR =\n \"rgb(var(--neeto-form-answer-color, var(--neeto-ui-primary-500)))\";\n\nexport const FORM_THEME_BACKGROUND =\n \"rgba(var(--neeto-form-answer-color, var(--neeto-ui-primary-500)), 0.08)\";\n\nexport const RESIZE_HANDLES = [\n {\n key: \"top-left\",\n x: \"left\",\n y: \"top\",\n className: \"-left-1.5 -top-1.5 cursor-nwse-resize\",\n },\n {\n key: \"top-right\",\n x: \"right\",\n y: \"top\",\n className: \"-right-1.5 -top-1.5 cursor-nesw-resize\",\n },\n {\n key: \"bottom-left\",\n x: \"left\",\n y: \"bottom\",\n className: \"-left-1.5 -bottom-1.5 cursor-nesw-resize\",\n },\n {\n key: \"bottom-right\",\n x: \"right\",\n y: \"bottom\",\n className: \"-right-1.5 -bottom-1.5 cursor-nwse-resize\",\n },\n];\n\n// Curated, PDF/web-safe fonts. The JSON schema also supplies the server-side\n// variants so client/server rendering cannot drift when the list changes.\nexport const FONTS = pdfMappingSchema.fonts.map(({ label, stack, value }) => ({\n value,\n label,\n stack,\n}));\n\n// Maps a curated font to pdf-lib StandardFont variant names, indexed by\n// (bold ? 1 : 0) + (italic ? 2 : 0).\nexport const STANDARD_FONT_VARIANTS = Object.fromEntries(\n pdfMappingSchema.fonts.map(({ client_variants: clientVariants, value }) => [\n value,\n clientVariants,\n ])\n);\n\nexport const DEFAULT_FONT_SIZE = mappingDefaults.style.font_size;\n\nexport const DEFAULT_DISPLAY_FONT_SIZE = DEFAULT_FONT_SIZE * CSS_PX_PER_PT;\n\nexport const FONT_SIZE_LIMITS = pdfMappingSchema.ranges.font_size;\n\nexport const DEFAULT_STYLE = {\n font: mappingDefaults.style.font,\n fontSize: DEFAULT_FONT_SIZE,\n color: mappingDefaults.style.color,\n bold: mappingDefaults.style.bold,\n italic: mappingDefaults.style.italic,\n underline: mappingDefaults.style.underline,\n align: mappingDefaults.style.align,\n};\n\n// Default placement box as a fraction of the page (top-left origin).\nexport const DEFAULT_BOX = mappingDefaults.box;\n\nexport const MIN_BOX = { width: 0.03, height: 0.012 };\n\nexport const SYSTEM_FIELD_KEYS = {\n FORM_NAME: \"form_name\",\n SUBMISSION_ID: \"submission_id\",\n SUBMISSION_DATE: \"submission_date\",\n};\n\n// System fields are not form questions; they resolve from submission metadata.\nexport const SYSTEM_FIELDS = [\n {\n key: SYSTEM_FIELD_KEYS.FORM_NAME,\n labelKey: \"neetoPdf.pdfDocuments.editor.systemFields.formName\",\n icon: TextLines,\n },\n {\n key: SYSTEM_FIELD_KEYS.SUBMISSION_ID,\n labelKey: \"neetoPdf.pdfDocuments.editor.systemFields.submissionId\",\n icon: Hash,\n },\n {\n key: SYSTEM_FIELD_KEYS.SUBMISSION_DATE,\n labelKey: \"neetoPdf.pdfDocuments.editor.systemFields.submissionDate\",\n icon: Calendar,\n },\n];\n","import { findBy } from \"neetocist\";\n\nimport {\n CSS_PX_PER_PT,\n DEFAULT_DISPLAY_FONT_SIZE,\n DEFAULT_STYLE,\n FONT_SIZE_LIMITS,\n FONTS,\n PDF_CANVAS,\n} from \"./constants\";\n\nexport const clamp = (value, min, max) => Math.min(Math.max(value, min), max);\n\nexport const getPdfPageDisplayScale = ({ heightPt, rawScale, widthPt }) => {\n const maxPageSize = Math.max(widthPt, heightPt);\n if (!maxPageSize) return rawScale;\n\n const zoom = rawScale / CSS_PX_PER_PT;\n const baseScale = Math.min(\n CSS_PX_PER_PT,\n PDF_CANVAS.MAX_DISPLAY_SIZE / maxPageSize\n );\n\n return baseScale * zoom;\n};\n\nexport const getDefaultFontSizeForScale = scale => {\n if (!scale || Number.isNaN(scale)) return DEFAULT_STYLE.fontSize;\n\n return clamp(\n Math.round(DEFAULT_DISPLAY_FONT_SIZE / scale),\n FONT_SIZE_LIMITS.min,\n FONT_SIZE_LIMITS.max\n );\n};\n\nexport const getFontStack = font =>\n findBy({ value: font }, FONTS)?.stack || FONTS[0].stack;\n","import { useRef, useState } from \"react\";\n\nimport classNames from \"classnames\";\n\nimport { clamp, getFontStack } from \"../CanvasUtilities\";\nimport {\n DRAG_KINDS,\n EDITOR_MODES,\n FORM_THEME_BACKGROUND,\n FORM_THEME_COLOR,\n MIN_BOX,\n RESIZE_HANDLES,\n} from \"../constants\";\n\nconst getJustifyContent = align => {\n if (align === \"center\") return \"center\";\n\n if (align === \"right\") return \"flex-end\";\n\n return \"flex-start\";\n};\n\nconst PlacedField = ({\n mapping,\n mode,\n isSelected,\n scale,\n pageWidthPx,\n pageHeightPx,\n previewValue,\n onSelect,\n onChange,\n}) => {\n const dragRef = useRef(null);\n const draftPatchRef = useRef(null);\n const [draftPatch, setDraftPatch] = useState(null);\n\n const isPreview = mode === EDITOR_MODES.PREVIEW;\n const displayMapping = draftPatch ? { ...mapping, ...draftPatch } : mapping;\n\n const style = {\n left: `${displayMapping.x * pageWidthPx}px`,\n top: `${displayMapping.y * pageHeightPx}px`,\n width: `${displayMapping.width * pageWidthPx}px`,\n height: `${displayMapping.height * pageHeightPx}px`,\n };\n\n const selectedStyle = isSelected\n ? {\n borderColor: FORM_THEME_COLOR,\n backgroundColor: FORM_THEME_BACKGROUND,\n }\n : {};\n\n const textStyle = {\n fontFamily: getFontStack(displayMapping.font),\n fontSize: `${displayMapping.fontSize * scale}px`,\n color: displayMapping.color,\n fontWeight: displayMapping.bold ? 700 : 400,\n fontStyle: displayMapping.italic ? \"italic\" : \"normal\",\n textDecoration: displayMapping.underline ? \"underline\" : \"none\",\n textAlign: displayMapping.align,\n justifyContent: getJustifyContent(displayMapping.align),\n };\n\n const getResizePatch = ({ drag, dxFrac, dyFrac }) => {\n const patch = {};\n const originRight = drag.originX + drag.originWidth;\n const originBottom = drag.originY + drag.originHeight;\n\n if (drag.handle.x === \"left\") {\n const x = clamp(drag.originX + dxFrac, 0, originRight - MIN_BOX.width);\n patch.x = x;\n patch.width = originRight - x;\n } else {\n patch.width = clamp(\n drag.originWidth + dxFrac,\n MIN_BOX.width,\n 1 - drag.originX\n );\n }\n\n if (drag.handle.y === \"top\") {\n const y = clamp(drag.originY + dyFrac, 0, originBottom - MIN_BOX.height);\n patch.y = y;\n patch.height = originBottom - y;\n } else {\n patch.height = clamp(\n drag.originHeight + dyFrac,\n MIN_BOX.height,\n 1 - drag.originY\n );\n }\n\n return patch;\n };\n\n const handlePointerMove = event => {\n const drag = dragRef.current;\n if (!drag) return;\n\n const dxFrac = (event.clientX - drag.startX) / pageWidthPx;\n const dyFrac = (event.clientY - drag.startY) / pageHeightPx;\n\n const patch =\n drag.kind === DRAG_KINDS.MOVE\n ? {\n x: clamp(drag.originX + dxFrac, 0, 1 - mapping.width),\n y: clamp(drag.originY + dyFrac, 0, 1 - mapping.height),\n }\n : getResizePatch({ drag, dxFrac, dyFrac });\n\n draftPatchRef.current = patch;\n setDraftPatch(patch);\n };\n\n const startDrag = (event, kind, handle = null) => {\n if (isPreview) return;\n event.stopPropagation();\n event.preventDefault();\n onSelect(mapping.id);\n event.currentTarget.setPointerCapture(event.pointerId);\n dragRef.current = {\n kind,\n handle,\n startX: event.clientX,\n startY: event.clientY,\n originX: mapping.x,\n originY: mapping.y,\n originWidth: mapping.width,\n originHeight: mapping.height,\n };\n draftPatchRef.current = null;\n setDraftPatch(null);\n };\n\n const endDrag = event => {\n if (!dragRef.current) return;\n event.currentTarget.releasePointerCapture?.(event.pointerId);\n dragRef.current = null;\n if (draftPatchRef.current) onChange(mapping.id, draftPatchRef.current);\n draftPatchRef.current = null;\n setDraftPatch(null);\n };\n\n const renderResizeHandle = handle => (\n <span\n key={handle.key}\n style={{ backgroundColor: FORM_THEME_COLOR }}\n className={classNames(\n \"neeto-ui-rounded-full neeto-ui-border-white absolute h-3 w-3 border-2\",\n handle.className\n )}\n onPointerCancel={endDrag}\n onPointerDown={event => startDrag(event, DRAG_KINDS.RESIZE, handle)}\n onPointerMove={handlePointerMove}\n onPointerUp={endDrag}\n />\n );\n\n if (isPreview) {\n return (\n <div\n {...{ style }}\n className=\"pointer-events-none absolute flex items-center\"\n >\n <span\n className=\"w-full overflow-hidden leading-tight whitespace-pre-wrap\"\n style={textStyle}\n >\n {previewValue}\n </span>\n </div>\n );\n }\n\n return (\n <div\n style={{ ...style, ...selectedStyle }}\n className={classNames(\n \"neeto-ui-rounded-sm absolute flex cursor-move items-center border transition-colors select-none\",\n {\n \"z-10\": isSelected,\n \"neeto-ui-border-gray-400 bg-opacity-40 neeto-ui-bg-white border-dashed\":\n !isSelected,\n }\n )}\n onPointerCancel={endDrag}\n onPointerDown={event => startDrag(event, DRAG_KINDS.MOVE)}\n onPointerMove={handlePointerMove}\n onPointerUp={endDrag}\n >\n <span\n className=\"flex w-full items-center gap-1 overflow-hidden px-1 leading-tight\"\n style={textStyle}\n >\n <span className=\"truncate\">{displayMapping.label}</span>\n </span>\n {isSelected && RESIZE_HANDLES.map(renderResizeHandle)}\n </div>\n );\n};\n\nexport default PlacedField;\n","import { useEffect, useMemo, useRef } from \"react\";\n\nimport PlacedField from \"./PlacedField\";\n\nimport { clamp, getPdfPageDisplayScale } from \"../CanvasUtilities\";\nimport { CSS_PX_PER_PT, EDITOR_MODES, PDF_CANVAS } from \"../constants\";\n\nconst getRenderPixelRatio = viewport => {\n const dpr = window.devicePixelRatio || 1;\n const widthRatio = PDF_CANVAS.MAX_RENDER_SIZE / viewport.width;\n const heightRatio = PDF_CANVAS.MAX_RENDER_SIZE / viewport.height;\n const pixelRatio = Math.sqrt(\n PDF_CANVAS.MAX_RENDER_PIXELS / (viewport.width * viewport.height)\n );\n\n return Math.min(dpr, widthRatio, heightRatio, pixelRatio);\n};\n\nconst PdfPage = ({\n pageDescriptor,\n scale: rawScale,\n mappings,\n selectedId,\n mode,\n resolveValue,\n onSelect,\n onChange,\n onDropField,\n onScaleChange,\n}) => {\n const { page, pageNumber, widthPt, heightPt } = pageDescriptor;\n const canvasRef = useRef(null);\n const overlayRef = useRef(null);\n const scale = useMemo(\n () => getPdfPageDisplayScale({ heightPt, rawScale, widthPt }),\n [heightPt, rawScale, widthPt]\n );\n\n const defaultMappingScale = useMemo(\n () =>\n getPdfPageDisplayScale({\n heightPt,\n rawScale: CSS_PX_PER_PT,\n widthPt,\n }),\n [heightPt, widthPt]\n );\n const viewport = useMemo(() => page.getViewport({ scale }), [page, scale]);\n const pageWidthPx = viewport.width;\n const pageHeightPx = viewport.height;\n\n useEffect(() => {\n onScaleChange(pageNumber, defaultMappingScale);\n }, [defaultMappingScale, onScaleChange, pageNumber]);\n\n useEffect(() => {\n const canvas = canvasRef.current;\n if (!canvas) return undefined;\n\n const renderPixelRatio = getRenderPixelRatio(viewport);\n canvas.width = Math.floor(viewport.width * renderPixelRatio);\n canvas.height = Math.floor(viewport.height * renderPixelRatio);\n canvas.style.width = `${viewport.width}px`;\n canvas.style.height = `${viewport.height}px`;\n\n const renderTask = page.render({\n canvasContext: canvas.getContext(\"2d\"),\n viewport,\n transform:\n renderPixelRatio !== 1\n ? [renderPixelRatio, 0, 0, renderPixelRatio, 0, 0]\n : undefined,\n });\n\n const render = async () => {\n try {\n await renderTask.promise;\n } catch {\n // Ignore RenderingCancelledException thrown when scale/page changes.\n }\n };\n render();\n\n return () => renderTask.cancel();\n }, [page, scale, viewport]);\n\n const handleDrop = event => {\n event.preventDefault();\n const rect = overlayRef.current.getBoundingClientRect();\n const xFrac = clamp((event.clientX - rect.left) / rect.width, 0, 1);\n const yFrac = clamp((event.clientY - rect.top) / rect.height, 0, 1);\n onDropField({ pageNumber, scale: defaultMappingScale, x: xFrac, y: yFrac });\n };\n\n const handleDragOver = event => {\n event.preventDefault();\n event.dataTransfer.dropEffect = \"copy\";\n };\n\n return (\n <div\n className=\"neeto-ui-shadow-md neeto-ui-bg-white relative\"\n style={{ width: `${pageWidthPx}px`, height: `${pageHeightPx}px` }}\n >\n <canvas ref={canvasRef} />\n <div\n className=\"absolute inset-0\"\n ref={overlayRef}\n onDragOver={handleDragOver}\n onDrop={handleDrop}\n onPointerDown={() => onSelect(null)}\n >\n {mappings.map(mapping => (\n <PlacedField\n {...{\n mapping,\n mode,\n onChange,\n onSelect,\n pageHeightPx,\n pageWidthPx,\n scale,\n }}\n isSelected={mapping.id === selectedId}\n key={mapping.id}\n previewValue={\n mode === EDITOR_MODES.PREVIEW ? resolveValue(mapping) : null\n }\n />\n ))}\n </div>\n </div>\n );\n};\n\nexport default PdfPage;\n","import { useEffect, useState } from \"react\";\n\nimport * as pdfjsLib from \"pdfjs-dist\";\n\nimport { PDF_LOAD_INITIAL_STATE } from \"../constants\";\n\n// The worker is vendored into public/ (see the sync:pdf-worker script) so it is\n// served as a static asset with a JS MIME type. pdf.js always loads it as a\n// module worker. Its version must stay in sync with pdfjs-dist.\npdfjsLib.GlobalWorkerOptions.workerSrc = \"/pdf.worker.min.js\";\n\n// Loads a PDF via pdf.js and returns one descriptor per page:\n// { pageNumber, page (PDFPageProxy), widthPt, heightPt }. Dimensions are in PDF\n// points (viewport scale 1), which the canvas scales by CSS_PX_PER_PT * zoom.\nconst usePdfDocument = url => {\n const [state, setState] = useState(PDF_LOAD_INITIAL_STATE);\n\n useEffect(() => {\n if (!url) return undefined;\n\n let isCancelled = false;\n let pdf;\n setState(PDF_LOAD_INITIAL_STATE);\n\n const loadingTask = pdfjsLib.getDocument({ url });\n\n const loadPages = async () => {\n try {\n pdf = await loadingTask.promise;\n const pages = [];\n\n for (let pageNumber = 1; pageNumber <= pdf.numPages; pageNumber += 1) {\n const page = await pdf.getPage(pageNumber);\n const viewport = page.getViewport({ scale: 1 });\n pages.push({\n pageNumber,\n page,\n widthPt: viewport.width,\n heightPt: viewport.height,\n });\n }\n\n if (!isCancelled) setState({ pages, isLoading: false, error: null });\n } catch (error) {\n if (!isCancelled) setState({ pages: [], isLoading: false, error });\n }\n };\n\n loadPages();\n\n return () => {\n isCancelled = true;\n loadingTask.destroy?.();\n pdf?.destroy?.();\n };\n }, [url]);\n\n return state;\n};\n\nexport default usePdfDocument;\n","import { useMemo } from \"react\";\n\nimport { Spinner, Typography } from \"neetoui\";\nimport { useTranslation } from \"react-i18next\";\n\nimport PdfPage from \"./PdfPage\";\n\nimport { CSS_PX_PER_PT, EMPTY_MAPPINGS } from \"../constants\";\nimport usePdfDocument from \"../hooks/usePdfDocument\";\n\nconst Canvas = ({\n templateUrl,\n zoom,\n mappings,\n selectedId,\n mode,\n resolveValue,\n onSelect,\n onChange,\n onDropField,\n onPageScaleChange,\n}) => {\n const { t } = useTranslation();\n const { pages, isLoading, error } = usePdfDocument(templateUrl);\n\n const scale = CSS_PX_PER_PT * zoom;\n const mappingsByPage = useMemo(\n () =>\n mappings.reduce((groupedMappings, mapping) => {\n const pageMappings = groupedMappings.get(mapping.page) || [];\n pageMappings.push(mapping);\n groupedMappings.set(mapping.page, pageMappings);\n\n return groupedMappings;\n }, new Map()),\n [mappings]\n );\n\n if (isLoading) {\n return (\n <div className=\"flex h-full w-full items-center justify-center\">\n <Spinner />\n </div>\n );\n }\n\n if (error || !templateUrl) {\n return (\n <div className=\"flex h-full w-full items-center justify-center p-8\">\n <Typography className=\"neeto-ui-text-gray-500\" style=\"body2\">\n {t(\"neetoPdf.pdfDocuments.editor.renderError\")}\n </Typography>\n </div>\n );\n }\n\n return (\n <div className=\"neeto-ui-bg-gray-200 absolute inset-0 overflow-auto\">\n <div className=\"flex min-h-full min-w-full w-max flex-col items-center gap-6 p-8\">\n {pages.map(pageDescriptor => (\n <PdfPage\n {...{\n mode,\n onChange,\n onDropField,\n\n onSelect,\n pageDescriptor,\n resolveValue,\n scale,\n selectedId,\n }}\n key={pageDescriptor.pageNumber}\n mappings={\n mappingsByPage.get(pageDescriptor.pageNumber) || EMPTY_MAPPINGS\n }\n onScaleChange={onPageScaleChange}\n />\n ))}\n </div>\n </div>\n );\n};\n\nexport default Canvas;\n","import classNames from \"classnames\";\nimport { findBy } from \"neetocist\";\nimport { withT } from \"neetocommons/react-utils\";\nimport { CenterAlign, Delete, Folder, LeftAlign, RightAlign } from \"neetoicons\";\nimport { Button, ColorPicker, Input, Select, Typography } from \"neetoui\";\n\nimport { ALIGNMENTS, FONTS, FONT_SIZE_LIMITS } from \"./constants\";\n\nconst ToggleButton = ({ isActive, onClick, className, children, ...rest }) => (\n <button\n {...{ onClick }}\n type=\"button\"\n className={classNames(\n \"neeto-ui-border-gray-300 flex h-8 items-center justify-center border text-sm first:rounded-l-md last:rounded-r-md\",\n className,\n {\n \"neeto-ui-bg-gray-800 neeto-ui-text-white\": isActive,\n \"neeto-ui-bg-white neeto-ui-text-gray-700 hover:neeto-ui-bg-gray-100\":\n !isActive,\n }\n )}\n {...rest}\n >\n {children}\n </button>\n);\n\nconst EmptyState = withT(({ t }) => (\n <div className=\"flex h-full flex-col items-center justify-center gap-2 p-8 text-center\">\n <Folder className=\"neeto-ui-text-gray-400\" size={32} />\n <Typography style=\"body2\" weight=\"medium\">\n {t(\"neetoPdf.pdfDocuments.editor.field.emptyTitle\")}\n </Typography>\n <Typography className=\"neeto-ui-text-gray-500\" style=\"body3\">\n {t(\"neetoPdf.pdfDocuments.editor.field.emptyDescription\")}\n </Typography>\n </div>\n));\n\nconst renderFontOptionLabel = ({ label, stack }) => (\n <span style={{ fontFamily: stack }}>{label}</span>\n);\n\nconst sanitizeFontSize = value => {\n const fontSize = Number(value);\n\n if (Number.isNaN(fontSize)) return FONT_SIZE_LIMITS.min;\n\n return Math.min(\n Math.max(fontSize, FONT_SIZE_LIMITS.min),\n FONT_SIZE_LIMITS.max\n );\n};\n\nconst FieldPanel = withT(({ t, mapping, onChange, onRemove }) =>\n mapping ? (\n <div className=\"neeto-ui-border-gray-200 neeto-ui-bg-white flex h-full w-72 shrink-0 flex-col overflow-y-auto border-l p-4\">\n <div className=\"mb-4 flex place-content-between items-center gap-2\">\n <Typography className=\"truncate\" data-testid=\"field-header\" style=\"h3\">\n {mapping.label}\n </Typography>\n </div>\n <div className=\"grow space-y-5\">\n <div className=\"space-y-1\">\n <Typography className=\"neeto-ui-text-gray-700\" style=\"body3\">\n {t(\"neetoPdf.pdfDocuments.editor.field.font\")}\n </Typography>\n <Select\n formatOptionLabel={renderFontOptionLabel}\n isSearchable={false}\n options={FONTS}\n size=\"small\"\n strategy=\"fixed\"\n value={findBy({ value: mapping.font }, FONTS)}\n onChange={option => onChange(mapping.id, { font: option.value })}\n />\n </div>\n <div className=\"flex gap-4\">\n <div className=\"min-w-0 flex-1 space-y-1\">\n <Typography className=\"neeto-ui-text-gray-700\" style=\"body3\">\n {t(\"neetoPdf.pdfDocuments.editor.field.size\")}\n </Typography>\n <Input\n max={FONT_SIZE_LIMITS.max}\n min={FONT_SIZE_LIMITS.min}\n size=\"small\"\n type=\"number\"\n value={mapping.fontSize}\n onChange={event =>\n onChange(mapping.id, {\n fontSize: sanitizeFontSize(event.target.value),\n })\n }\n />\n </div>\n <div className=\"space-y-1\">\n <Typography className=\"neeto-ui-text-gray-700\" style=\"body3\">\n {t(\"neetoPdf.pdfDocuments.editor.field.format\")}\n </Typography>\n <div className=\"flex\">\n <ToggleButton\n aria-label=\"bold\"\n className=\"w-9\"\n isActive={mapping.bold}\n onClick={() => onChange(mapping.id, { bold: !mapping.bold })}\n >\n <span className=\"font-bold\">B</span>\n </ToggleButton>\n <ToggleButton\n aria-label=\"italic\"\n className=\"w-9\"\n isActive={mapping.italic}\n onClick={() =>\n onChange(mapping.id, { italic: !mapping.italic })\n }\n >\n <span className=\"italic\">I</span>\n </ToggleButton>\n <ToggleButton\n aria-label=\"underline\"\n className=\"w-9\"\n isActive={mapping.underline}\n onClick={() =>\n onChange(mapping.id, { underline: !mapping.underline })\n }\n >\n <span className=\"underline\">U</span>\n </ToggleButton>\n </div>\n </div>\n </div>\n <div className=\"space-y-1\">\n <Typography className=\"neeto-ui-text-gray-700\" style=\"body3\">\n {t(\"neetoPdf.pdfDocuments.editor.field.fontColor\")}\n </Typography>\n <ColorPicker\n showHexValue\n color={mapping.color}\n size=\"small\"\n onChange={({ hex }) => onChange(mapping.id, { color: hex })}\n />\n </div>\n <div className=\"space-y-1\">\n <Typography className=\"neeto-ui-text-gray-700\" style=\"body3\">\n {t(\"neetoPdf.pdfDocuments.editor.field.alignment\")}\n </Typography>\n <div className=\"flex w-full\">\n <ToggleButton\n aria-label=\"align-left\"\n className=\"flex-1\"\n isActive={mapping.align === ALIGNMENTS.LEFT}\n onClick={() => onChange(mapping.id, { align: ALIGNMENTS.LEFT })}\n >\n <LeftAlign size={16} />\n </ToggleButton>\n <ToggleButton\n aria-label=\"align-center\"\n className=\"flex-1\"\n isActive={mapping.align === ALIGNMENTS.CENTER}\n onClick={() => onChange(mapping.id, { align: ALIGNMENTS.CENTER })}\n >\n <CenterAlign size={16} />\n </ToggleButton>\n <ToggleButton\n aria-label=\"align-right\"\n className=\"flex-1\"\n isActive={mapping.align === ALIGNMENTS.RIGHT}\n onClick={() => onChange(mapping.id, { align: ALIGNMENTS.RIGHT })}\n >\n <RightAlign size={16} />\n </ToggleButton>\n </div>\n </div>\n </div>\n <Button\n fullWidth\n className=\"mt-4\"\n icon={Delete}\n label={t(\"neetoPdf.pdfDocuments.editor.field.remove\")}\n style=\"danger\"\n onClick={() => onRemove(mapping.id)}\n />\n </div>\n ) : (\n <div className=\"neeto-ui-border-gray-200 neeto-ui-bg-white flex h-full w-72 shrink-0 flex-col border-l\">\n <EmptyState />\n </div>\n )\n);\n\nexport default FieldPanel;\n","import { Drag } from \"neetoicons\";\nimport { Typography } from \"neetoui\";\n\nconst FieldCard = ({ field, onPlace, onDragStart, onDragEnd }) => {\n const Icon = field.icon;\n\n const handleDragStart = event => {\n event.dataTransfer.effectAllowed = \"copy\";\n event.dataTransfer.setData(\"text/plain\", field.key);\n onDragStart(field);\n };\n\n return (\n <div\n {...{ onDragEnd }}\n draggable\n className=\"neeto-ui-border-gray-400 neeto-ui-bg-white hover:neeto-ui-bg-gray-200 neeto-ui-rounded-lg relative mb-2 flex h-10 cursor-pointer items-center gap-2 border p-3 transition-all duration-300 ease-in-out\"\n data-testid={`add-${field.key}-field`}\n onClick={() => onPlace(field)}\n onDragStart={handleDragStart}\n >\n <span\n className=\"absolute end-full top-1/2 me-0.5 flex-shrink-0 -translate-y-1/2 cursor-grab\"\n data-testid=\"drag-handle\"\n >\n <Drag\n className=\"neeto-ui-text-gray-400 hover:neeto-ui-text-gray-500 transition-all duration-300 ease-in-out\"\n size={16}\n />\n </span>\n <div className=\"flex flex-grow items-center gap-2 overflow-hidden\">\n {Icon && (\n <div className=\"flex-shrink-0\">\n <Icon />\n </div>\n )}\n <Typography className=\"truncate leading-4\" style=\"body2\">\n {field.label}\n </Typography>\n </div>\n </div>\n );\n};\n\nexport default FieldCard;\n","import { useState } from \"react\";\n\nimport { Search } from \"neetoicons\";\nimport { Input, Typography } from \"neetoui\";\nimport { useTranslation } from \"react-i18next\";\n\nimport FieldCard from \"./FieldCard\";\n\nconst Section = ({ title, children }) => {\n if (!children?.length) return null;\n\n return (\n <>\n <Typography className=\"mt-1 mb-3\" style=\"h3\">\n {title}\n </Typography>\n {children}\n </>\n );\n};\n\nconst FieldsPanel = ({\n answerFields,\n systemFields,\n onPlace,\n onDragStartField,\n onDragEndField,\n}) => {\n const { t } = useTranslation();\n const [searchTerm, setSearchTerm] = useState(\"\");\n\n const query = searchTerm.trim().toLowerCase();\n const matches = field => field.label.toLowerCase().includes(query);\n\n const filteredAnswers = query ? answerFields.filter(matches) : answerFields;\n const filteredSystem = query ? systemFields.filter(matches) : systemFields;\n\n const renderField = field => (\n <FieldCard\n {...{ field, onPlace }}\n key={`${field.source}-${field.key}`}\n onDragEnd={onDragEndField}\n onDragStart={onDragStartField}\n />\n );\n\n return (\n <div className=\"neeto-ui-border-gray-200 neeto-ui-bg-gray-50 flex h-full w-[360px] shrink-0 flex-col border-r\">\n <div className=\"p-6 pb-1\">\n <Typography lineHeight=\"normal\" style=\"h3\" weight=\"semibold\">\n {t(\"neetoPdf.pdfDocuments.editor.addNewElement\")}\n </Typography>\n </div>\n <div className=\"mb-1 px-6\">\n <Typography className=\"mb-3\" style=\"body3\">\n {t(\"neetoPdf.pdfDocuments.editor.addNewElementDescription\")}\n </Typography>\n <Input\n autoFocus\n data-testid=\"elements-panel-search-field\"\n placeholder={t(\"neetoPdf.pdfDocuments.editor.searchElements\")}\n prefix={<Search />}\n type=\"search\"\n value={searchTerm}\n onChange={event => setSearchTerm(event.target.value)}\n />\n </div>\n <div\n className=\"grow overflow-y-auto px-6 pb-2\"\n data-testid=\"elements-container\"\n >\n <Section title={t(\"neetoPdf.pdfDocuments.editor.answers\")}>\n {filteredAnswers.map(renderField)}\n </Section>\n <Section title={t(\"neetoPdf.pdfDocuments.editor.system\")}>\n {filteredSystem.map(renderField)}\n </Section>\n {filteredAnswers.length === 0 && filteredSystem.length === 0 ? (\n <Typography\n className=\"neeto-ui-text-gray-800 text-md flex h-full items-center justify-center\"\n weight=\"bold\"\n >\n {t(\"neetoPdf.pdfDocuments.editor.noFields\")}\n </Typography>\n ) : null}\n </div>\n </div>\n );\n};\n\nexport default FieldsPanel;\n","import { DEFAULT_STYLE, STANDARD_FONT_VARIANTS } from \"./constants\";\n\n// pdf-lib StandardFonts only support WinAnsi encoding and single-line text, so\n// collapse whitespace and drop characters they cannot encode.\nconst sanitizeForPdf = text =>\n text\n .replace(/\\s+/g, \" \")\n .trim()\n\n .replace(/[^\\x20-\\x7E\\xA0-\\xFF]/g, \"\")\n .trim();\n\nconst hexToRgbComponents = hex => {\n const value = (hex || DEFAULT_STYLE.color).replace(\"#\", \"\");\n const full =\n value.length === 3\n ? value\n .split(\"\")\n .map(char => char + char)\n .join(\"\")\n : value;\n const int = parseInt(full, 16);\n\n return {\n r: ((int >> 16) & 255) / 255,\n g: ((int >> 8) & 255) / 255,\n b: (int & 255) / 255,\n };\n};\n\nconst standardFontName = (font, bold, italic) => {\n const variants =\n STANDARD_FONT_VARIANTS[font] || STANDARD_FONT_VARIANTS.Helvetica;\n\n return variants[(bold ? 1 : 0) + (italic ? 2 : 0)];\n};\n\nconst triggerBlobDownload = (bytes, fileName) => {\n const blob = new Blob([bytes], { type: \"application/pdf\" });\n const url = URL.createObjectURL(blob);\n const link = window.document.createElement(\"a\");\n link.href = url;\n link.download = fileName;\n window.document.body.appendChild(link);\n link.click();\n link.remove();\n URL.revokeObjectURL(url);\n};\n\n// Stamp the resolved values for one submission onto the template PDF (client\n// side, via pdf-lib) and trigger a browser download. pdf-lib is imported lazily\n// so it only loads on the first download.\nexport const downloadFilledPdf = async ({\n templateUrl,\n mappings,\n valueFor,\n fileName,\n}) => {\n const pdfLibModule = await import(\"pdf-lib\");\n const { PDFDocument, StandardFonts, rgb } = pdfLibModule;\n\n const response = await fetch(templateUrl);\n if (!response.ok) {\n throw new Error(`Failed to fetch template PDF (${response.status})`);\n }\n const bytes = await response.arrayBuffer();\n\n const pdfDoc = await PDFDocument.load(bytes, { ignoreEncryption: true });\n const pages = pdfDoc.getPages();\n\n const fontNames = [\n ...new Set(\n mappings.map(mapping =>\n standardFontName(mapping.font, mapping.bold, mapping.italic)\n )\n ),\n ];\n\n const embeddedFonts = Object.fromEntries(\n await Promise.all(\n fontNames.map(async name => [\n name,\n await pdfDoc.embedFont(StandardFonts[name]),\n ])\n )\n );\n\n mappings.forEach(mapping => {\n const page = pages[mapping.page - 1];\n if (!page) return;\n\n const text = sanitizeForPdf(valueFor(mapping) || \"\");\n if (!text) return;\n\n const { width: pageWidth, height: pageHeight } = page.getSize();\n const font =\n embeddedFonts[\n standardFontName(mapping.font, mapping.bold, mapping.italic)\n ];\n const size = mapping.fontSize;\n const { r, g, b } = hexToRgbComponents(mapping.color);\n const color = rgb(r, g, b);\n\n const boxLeft = mapping.x * pageWidth;\n const boxWidth = mapping.width * pageWidth;\n const textWidth = font.widthOfTextAtSize(text, size);\n\n let x = boxLeft;\n if (mapping.align === \"center\") x = boxLeft + (boxWidth - textWidth) / 2;\n else if (mapping.align === \"right\") x = boxLeft + boxWidth - textWidth;\n\n const y = pageHeight - mapping.y * pageHeight - size;\n\n page.drawText(text, { x, y, size, font, color });\n\n if (mapping.underline) {\n const lineY = y - size * 0.1;\n page.drawLine({\n start: { x, y: lineY },\n end: { x: x + textWidth, y: lineY },\n thickness: Math.max(0.5, size * 0.06),\n color,\n });\n }\n });\n\n triggerBlobDownload(await pdfDoc.save(), fileName);\n};\n","import { useState } from \"react\";\n\nimport logger from \"js-logger\";\nimport { Toastr } from \"neetoui\";\n\nimport { buildOutputFilename } from \"../../FilenameUtilities\";\nimport { downloadFilledPdf } from \"../PdfDownloadUtilities\";\n\nconst usePdfDownload = ({\n mappings,\n pdfDocument,\n previewRecord,\n resolveValue,\n t,\n}) => {\n const [isDownloading, setIsDownloading] = useState(false);\n\n const downloadPdf = async () => {\n const templateUrl = pdfDocument?.templateFile?.url;\n if (!templateUrl || !previewRecord) return;\n\n setIsDownloading(true);\n\n try {\n await downloadFilledPdf({\n templateUrl,\n mappings,\n valueFor: resolveValue,\n fileName: buildOutputFilename(pdfDocument, previewRecord),\n });\n } catch (error) {\n logger.error(error);\n Toastr.error(t(\"neetoPdf.pdfDocuments.editor.downloadError\"));\n } finally {\n setIsDownloading(false);\n }\n };\n\n return { downloadPdf, isDownloading };\n};\n\nexport default usePdfDownload;\n","import { Toastr } from \"neetoui\";\n\nimport {\n getPdfDocumentApiErrorMessage,\n useFetchPdfDocument,\n useUpdatePdfDocument,\n} from \"src/hooks/usePdfDocumentsApi\";\n\nimport { buildOutputFilenameTemplate } from \"../../FilenameUtilities\";\n\nconst usePdfEditorDocument = ({ apiBaseUrl, documentId, ownerId, t }) => {\n const { data: documentResponse, isLoading: isDocumentLoading } =\n useFetchPdfDocument({ apiBaseUrl, ownerId, documentId });\n\n const pdfDocument = documentResponse?.document;\n\n const { mutate: saveMappings, isPending: isSaving } = useUpdatePdfDocument({\n apiBaseUrl,\n ownerId,\n options: {\n onSuccess: () =>\n Toastr.success(t(\"neetoPdf.pdfDocuments.editor.saveSuccess\")),\n onError: error =>\n Toastr.error(\n getPdfDocumentApiErrorMessage(\n error,\n t(\"neetoPdf.pdfDocuments.editor.saveError\")\n )\n ),\n },\n });\n\n const { mutate: renameDocument } = useUpdatePdfDocument({\n apiBaseUrl,\n ownerId,\n options: {\n onSuccess: () =>\n Toastr.success(t(\"neetoPdf.pdfDocuments.rename.success\")),\n onError: error =>\n Toastr.error(\n getPdfDocumentApiErrorMessage(\n error,\n t(\"neetoPdf.pdfDocuments.rename.error\")\n )\n ),\n },\n });\n\n const saveDocumentMappings = ({ mappings, onSuccess }) => {\n saveMappings({ documentId, payload: { mappings } }, { onSuccess });\n };\n\n const renamePdfDocument = name => {\n const trimmedName = name.trim();\n\n renameDocument({\n documentId,\n payload: {\n name: trimmedName,\n outputFilename: buildOutputFilenameTemplate(trimmedName),\n },\n });\n };\n\n return {\n documentName: pdfDocument?.name || \"\",\n isDocumentLoading,\n isSaving,\n pdfDocument,\n renamePdfDocument,\n saveDocumentMappings,\n templateUrl: pdfDocument?.templateFile?.url,\n };\n};\n\nexport default usePdfEditorDocument;\n","import { getDefaultFontSizeForScale } from \"./CanvasUtilities\";\nimport { DEFAULT_BOX, DEFAULT_STYLE, FIELD_SOURCES } from \"./constants\";\n\nconst htmlToPlainText = value => {\n const element = window.document.createElement(\"div\");\n element.innerHTML = value || \"\";\n\n return element.textContent || element.innerText || \"\";\n};\n\nconst generateId = () =>\n window.crypto?.randomUUID?.() || `${Date.now()}-${Math.random()}`;\n\n// Turn the form's records into the \"Answers\" list shown in the left panel.\nexport const buildAnswerFields = (fields = []) =>\n fields\n .filter(field => field)\n .map(field => ({\n source: FIELD_SOURCES.ANSWER,\n key: field.key || field.slug,\n recordId: field.recordId || field.id || null,\n slug: field.slug || field.key,\n label: htmlToPlainText(field.label || \"\"),\n kind: field.kind,\n icon: field.icon,\n typeLabel: field.typeLabel || field.kind || \"\",\n }));\n\nexport const buildMapping = ({ field, page, scale }) => ({\n id: generateId(),\n source: field.source,\n fieldSlug: field.key,\n recordId: field.recordId ?? null,\n label: field.label,\n kind: field.kind,\n page,\n ...DEFAULT_BOX,\n ...DEFAULT_STYLE,\n fontSize: getDefaultFontSizeForScale(scale),\n});\n","import { useEffect, useRef, useState } from \"react\";\n\nimport { findById, removeById } from \"neetocist\";\nimport { append } from \"ramda\";\n\nimport { clamp } from \"../CanvasUtilities\";\nimport { DEFAULT_BOX } from \"../constants\";\nimport { buildMapping } from \"../MappingUtilities\";\n\nconst usePdfMappingsState = ({ documentId, pdfDocument }) => {\n const [mappings, setMappings] = useState([]);\n const [selectedId, setSelectedId] = useState(null);\n const [pageScales, setPageScales] = useState(() => new Map());\n const [isDirty, setIsDirty] = useState(false);\n\n const draggedFieldRef = useRef(null);\n const initializedRef = useRef(null);\n\n useEffect(() => {\n if (!(pdfDocument && initializedRef.current !== documentId)) return;\n\n initializedRef.current = documentId;\n setMappings(pdfDocument.mappings || []);\n setIsDirty(false);\n }, [pdfDocument, documentId]);\n\n const selectedMapping = findById(selectedId, mappings) || null;\n\n const mutateMappings = updater => {\n setMappings(updater);\n setIsDirty(true);\n };\n\n const handleAddField = field => {\n const mapping = buildMapping({ field, page: 1, scale: pageScales.get(1) });\n mutateMappings(append(mapping));\n setSelectedId(mapping.id);\n };\n\n const handleDropField = ({ pageNumber, scale, x, y }) => {\n const field = draggedFieldRef.current;\n if (!field) return;\n\n const mapping = {\n ...buildMapping({ field, page: pageNumber, scale }),\n x: clamp(x, 0, 1 - DEFAULT_BOX.width),\n y: clamp(y, 0, 1 - DEFAULT_BOX.height),\n };\n\n mutateMappings(append(mapping));\n setSelectedId(mapping.id);\n };\n\n const handleChangeMapping = (id, patch) =>\n mutateMappings(prev =>\n prev.map(mapping =>\n mapping.id === id ? { ...mapping, ...patch } : mapping\n )\n );\n\n const handlePageScaleChange = (pageNumber, scale) => {\n setPageScales(prev => {\n if (prev.get(pageNumber) === scale) return prev;\n\n const nextPageScales = new Map(prev);\n nextPageScales.set(pageNumber, scale);\n\n return nextPageScales;\n });\n };\n\n const handleRemoveMapping = id => {\n mutateMappings(prev => removeById(id, prev));\n setSelectedId(current => (current === id ? null : current));\n };\n\n const handleDragEndField = () => {\n draggedFieldRef.current = null;\n };\n\n const handleDragStartField = field => {\n draggedFieldRef.current = field;\n };\n\n return {\n handleAddField,\n handleChangeMapping,\n handleDragEndField,\n handleDragStartField,\n handleDropField,\n handlePageScaleChange,\n handleRemoveMapping,\n isDirty,\n mappings,\n selectedId,\n selectedMapping,\n setIsDirty,\n setSelectedId,\n };\n};\n\nexport default usePdfMappingsState;\n","import { useEffect, useState } from \"react\";\n\nimport { EDITOR_MODES } from \"../constants\";\n\nconst usePreviewPagination = ({\n controlledMode,\n onModeChange,\n onPreviewPageChange,\n previewPage,\n setSelectedId,\n}) => {\n const [localPreviewPage, setLocalPreviewPage] = useState(previewPage);\n const [localMode, setLocalMode] = useState(EDITOR_MODES.MAP);\n\n const mode = controlledMode || localMode;\n const isPreview = mode === EDITOR_MODES.PREVIEW;\n const currentPreviewPage = onPreviewPageChange\n ? previewPage\n : localPreviewPage;\n\n useEffect(() => {\n if (!isPreview) return;\n\n setSelectedId(null);\n setLocalPreviewPage(1);\n onPreviewPageChange?.(1);\n }, [isPreview, onPreviewPageChange, setSelectedId]);\n\n const setPreviewPage = page => {\n setLocalPreviewPage(page);\n onPreviewPageChange?.(page);\n };\n\n const handleModeChange = nextMode => {\n setLocalMode(nextMode);\n onModeChange?.(nextMode);\n };\n\n return {\n currentPreviewPage,\n handleModeChange,\n isPreview,\n mode,\n setPreviewPage,\n };\n};\n\nexport default usePreviewPagination;\n","import { Left, Right } from \"neetoicons\";\nimport { Button, Typography } from \"neetoui\";\nimport { useTranslation } from \"react-i18next\";\n\nconst PreviewPager = ({ page, total, isLoading, onPrev, onNext }) => {\n const { t } = useTranslation();\n\n if (!isLoading && total === 0) {\n return (\n <div className=\"neeto-ui-border-gray-200 neeto-ui-bg-white neeto-ui-shadow-md neeto-ui-rounded-lg border px-3 py-1.5\">\n <Typography className=\"neeto-ui-text-gray-500\" style=\"body3\">\n {t(\"neetoPdf.pdfDocuments.editor.preview.noSubmissions\")}\n </Typography>\n </div>\n );\n }\n\n return (\n <div className=\"neeto-ui-border-gray-200 neeto-ui-bg-white neeto-ui-shadow-md neeto-ui-rounded-lg flex items-center gap-1 border px-1\">\n <Button\n disabled={page <= 1 || isLoading}\n icon={Left}\n size=\"small\"\n style=\"text\"\n onClick={onPrev}\n />\n <Typography className=\"px-1 whitespace-nowrap\" style=\"body3\">\n {t(\"neetoPdf.pdfDocuments.editor.preview.counter\", {\n page,\n total,\n })}\n </Typography>\n <Button\n disabled={page >= total || isLoading}\n icon={Right}\n size=\"small\"\n style=\"text\"\n onClick={onNext}\n />\n </div>\n );\n};\n\nexport default PreviewPager;\n","import { dateFormat } from \"neetocommons/utils\";\n\nimport { FIELD_SOURCES, SYSTEM_FIELD_KEYS } from \"./constants\";\n\nconst coerceToText = value => {\n if (value === null || value === undefined) return \"\";\n\n if (Array.isArray(value)) {\n return value.map(coerceToText).filter(Boolean).join(\", \");\n }\n\n if (typeof value === \"object\") {\n if (\"value\" in value) return coerceToText(value.value);\n\n if (\"label\" in value) return coerceToText(value.label);\n\n return \"\";\n }\n\n return String(value);\n};\n\n// Resolve the text shown for a placement in \"Preview with data\" mode. Returns\n// \"\" (rendered blank) when the current submission has no answer for the field.\nexport const resolvePreviewValue = ({\n mapping,\n responsesBySlug = {},\n form,\n submission,\n}) => {\n if (mapping.source === FIELD_SOURCES.SYSTEM) {\n switch (mapping.fieldSlug) {\n case SYSTEM_FIELD_KEYS.FORM_NAME:\n return form?.title || form?.name || \"\";\n case SYSTEM_FIELD_KEYS.SUBMISSION_ID:\n return submission?.id || \"\";\n case SYSTEM_FIELD_KEYS.SUBMISSION_DATE:\n return submission?.createdAt\n ? dateFormat.dateTime(submission.createdAt)\n : \"\";\n default:\n return \"\";\n }\n }\n\n return coerceToText(responsesBySlug[mapping.fieldSlug]);\n};\n\n// Build a slug -> value lookup from a single submission's responses array.\nexport const buildResponsesBySlug = (responses = []) =>\n responses.reduce((acc, response) => {\n if (response?.slug !== undefined) acc[response.slug] = response.value;\n\n return acc;\n }, {});\n","import { Download, LeftArrow, Minus, Plus } from \"neetoicons\";\nimport NavigationHeader from \"neetomolecules/NavigationHeader\";\nimport { Button, Typography } from \"neetoui\";\nimport { useTranslation } from \"react-i18next\";\n\nimport { EDITOR_MODES, ZOOM } from \"./constants\";\n\nconst TopBar = ({\n name,\n onRename,\n canManage,\n homeUrl,\n isPreview,\n zoom,\n onZoomIn,\n onZoomOut,\n onDownload,\n isDownloading,\n canDownload,\n onSave,\n isSaving,\n isDirty,\n onBack,\n onModeChange,\n}) => {\n const { t } = useTranslation();\n\n const headerLinks = [\n {\n key: EDITOR_MODES.MAP,\n label: t(\"neetoPdf.pdfDocuments.editor.mapFields\"),\n to: \"#map\",\n isActive: () => !isPreview,\n onClick: event => {\n event.preventDefault();\n onModeChange(EDITOR_MODES.MAP);\n },\n },\n {\n key: EDITOR_MODES.PREVIEW,\n label: t(\"neetoPdf.pdfDocuments.editor.previewWithData\"),\n to: \"#preview\",\n isActive: () => isPreview,\n onClick: event => {\n event.preventDefault();\n onModeChange(EDITOR_MODES.PREVIEW);\n },\n },\n ];\n\n const rightActionBlock = (\n <div className=\"flex w-full items-center justify-end gap-3\">\n <div className=\"flex items-center gap-1\">\n <Button\n disabled={zoom <= ZOOM.MIN}\n icon={Minus}\n size=\"small\"\n style=\"text\"\n onClick={onZoomOut}\n />\n <Typography className=\"w-10 text-center\" style=\"body3\">\n {Math.round(zoom * 100)}%\n </Typography>\n <Button\n disabled={zoom >= ZOOM.MAX}\n icon={Plus}\n size=\"small\"\n style=\"text\"\n onClick={onZoomIn}\n />\n </div>\n <Button\n disabled={!canDownload}\n icon={Download}\n label={t(\"neetoPdf.pdfDocuments.editor.downloadPdf\")}\n loading={isDownloading}\n style=\"secondary\"\n tooltipProps={{\n content: canDownload\n ? t(\"neetoPdf.pdfDocuments.editor.downloadTooltip\")\n : t(\"neetoPdf.pdfDocuments.editor.downloadHint\"),\n }}\n onClick={onDownload}\n />\n <Button\n disabled={!isDirty}\n label={t(\"neetoPdf.common.save\")}\n loading={isSaving}\n onClick={onSave}\n />\n </div>\n );\n\n return (\n <NavigationHeader\n {...{ rightActionBlock }}\n leftActionBlock={\n <NavigationHeader.LeftActionBlock\n homeUrl={homeUrl || \"#\"}\n homeButtonProps={{\n icon: <LeftArrow />,\n tooltip: {\n content: t(\"neetoPdf.pdfDocuments.editor.back\"),\n position: \"bottom\",\n },\n onClick: onBack,\n }}\n renameProps={{\n value: name,\n disabled: !canManage,\n placeholder: t(\"neetoPdf.pdfDocuments.rename.placeholder\"),\n onRename,\n }}\n />\n }\n navigationLinks={\n <NavigationHeader.NavigationLinks\n {...{ headerLinks }}\n maxVisibleLinks={2}\n />\n }\n />\n );\n};\n\nexport default TopBar;\n","import { useMemo, useState } from \"react\";\n\nimport { Spinner } from \"neetoui\";\nimport { createPortal } from \"react-dom\";\nimport { useTranslation } from \"react-i18next\";\n\nimport Canvas from \"./Canvas\";\nimport { clamp } from \"./CanvasUtilities\";\nimport { FIELD_SOURCES, SYSTEM_FIELDS, ZOOM } from \"./constants\";\nimport FieldPanel from \"./FieldPanel\";\nimport FieldsPanel from \"./FieldsPanel\";\nimport usePdfDownload from \"./hooks/usePdfDownload\";\nimport usePdfEditorDocument from \"./hooks/usePdfEditorDocument\";\nimport usePdfMappingsState from \"./hooks/usePdfMappingsState\";\nimport usePreviewPagination from \"./hooks/usePreviewPagination\";\nimport { buildAnswerFields } from \"./MappingUtilities\";\nimport PreviewPager from \"./PreviewPager\";\nimport {\n buildResponsesBySlug,\n resolvePreviewValue,\n} from \"./PreviewValueUtilities\";\nimport TopBar from \"./TopBar\";\n\nconst FullScreenSpinner = () => (\n <div className=\"neeto-ui-bg-white fixed inset-0 z-50 flex items-center justify-center\">\n <Spinner />\n </div>\n);\n\nconst PdfEditorPage = ({\n apiBaseUrl,\n ownerId,\n documentId,\n canManage = true,\n fields = [],\n ownerRecord = {},\n previewRecord,\n previewTotal = 0,\n previewPage = 1,\n isPreviewLoading = false,\n mode: controlledMode,\n homeUrl,\n onBack,\n onModeChange,\n onPreviewPageChange,\n}) => {\n const { t } = useTranslation();\n const [zoom, setZoom] = useState(ZOOM.DEFAULT);\n\n const {\n documentName,\n isDocumentLoading,\n isSaving,\n pdfDocument,\n renamePdfDocument,\n saveDocumentMappings,\n templateUrl,\n } = usePdfEditorDocument({ apiBaseUrl, documentId, ownerId, t });\n\n const {\n handleAddField,\n handleChangeMapping,\n handleDragEndField,\n handleDragStartField,\n handleDropField,\n handlePageScaleChange,\n handleRemoveMapping,\n isDirty,\n mappings,\n selectedId,\n selectedMapping,\n setIsDirty,\n setSelectedId,\n } = usePdfMappingsState({ documentId, pdfDocument });\n\n const {\n currentPreviewPage,\n handleModeChange,\n isPreview,\n mode,\n setPreviewPage,\n } = usePreviewPagination({\n controlledMode,\n onModeChange,\n onPreviewPageChange,\n previewPage,\n setSelectedId,\n });\n\n const answerFields = useMemo(() => buildAnswerFields(fields), [fields]);\n\n const systemFields = useMemo(\n () =>\n SYSTEM_FIELDS.map(({ key, labelKey, icon }) => ({\n source: FIELD_SOURCES.SYSTEM,\n key,\n label: t(labelKey),\n typeLabel: t(\"neetoPdf.pdfDocuments.editor.system\"),\n kind: key,\n icon,\n })),\n [t]\n );\n\n const responsesBySlug = useMemo(\n () => buildResponsesBySlug(previewRecord?.responses),\n [previewRecord]\n );\n\n const resolveValue = mapping =>\n resolvePreviewValue({\n mapping,\n responsesBySlug,\n form: ownerRecord,\n submission: previewRecord,\n });\n\n const { downloadPdf, isDownloading } = usePdfDownload({\n mappings,\n pdfDocument,\n previewRecord,\n resolveValue,\n t,\n });\n\n const handleSave = () =>\n saveDocumentMappings({ mappings, onSuccess: () => setIsDirty(false) });\n\n if (isDocumentLoading) return <FullScreenSpinner />;\n\n return createPortal(\n <div className=\"neeto-ui-bg-white fixed inset-0 z-50 flex flex-col\">\n <TopBar\n {...{\n canManage,\n documentId,\n homeUrl,\n isDirty,\n isDownloading,\n isPreview,\n isSaving,\n mode,\n onBack,\n zoom,\n }}\n canDownload={isPreview && Boolean(previewRecord)}\n name={documentName}\n onDownload={downloadPdf}\n onModeChange={handleModeChange}\n onRename={renamePdfDocument}\n onSave={handleSave}\n onZoomIn={() =>\n setZoom(value => clamp(value + ZOOM.STEP, ZOOM.MIN, ZOOM.MAX))\n }\n onZoomOut={() =>\n setZoom(value => clamp(value - ZOOM.STEP, ZOOM.MIN, ZOOM.MAX))\n }\n />\n <div className=\"flex min-h-0 grow overflow-hidden\">\n {!isPreview && (\n <FieldsPanel\n {...{ answerFields, systemFields }}\n onDragEndField={handleDragEndField}\n onDragStartField={handleDragStartField}\n onPlace={handleAddField}\n />\n )}\n <div className=\"relative h-full min-w-0 flex-1 overflow-hidden\">\n {isPreview && (\n <div className=\"absolute top-4 left-1/2 z-10 -translate-x-1/2\">\n <PreviewPager\n isLoading={isPreviewLoading}\n page={currentPreviewPage}\n total={previewTotal}\n onNext={() =>\n setPreviewPage(Math.min(currentPreviewPage + 1, previewTotal))\n }\n onPrev={() =>\n setPreviewPage(Math.max(currentPreviewPage - 1, 1))\n }\n />\n </div>\n )}\n <Canvas\n {...{ mappings, mode, resolveValue, selectedId, templateUrl, zoom }}\n onChange={handleChangeMapping}\n onDropField={handleDropField}\n onPageScaleChange={handlePageScaleChange}\n onSelect={setSelectedId}\n />\n </div>\n {!isPreview && (\n <FieldPanel\n mapping={selectedMapping}\n onChange={handleChangeMapping}\n onRemove={handleRemoveMapping}\n />\n )}\n </div>\n </div>,\n window.document.body\n );\n};\n\nexport default PdfEditorPage;\n"],"names":["mappingDefaults","pdfMappingSchema","defaults","CSS_PX_PER_PT","ZOOM","MIN","MAX","STEP","DEFAULT","PDF_CANVAS","MAX_DISPLAY_SIZE","MAX_RENDER_SIZE","MAX_RENDER_PIXELS","EDITOR_MODES","MAP","PREVIEW","PDF_LOAD_INITIAL_STATE","pages","isLoading","error","EMPTY_MAPPINGS","FIELD_SOURCES","ANSWER","enums","sources","SYSTEM","DRAG_KINDS","MOVE","RESIZE","ALIGNMENTS","LEFT","alignments","CENTER","RIGHT","FORM_THEME_COLOR","FORM_THEME_BACKGROUND","RESIZE_HANDLES","key","x","y","className","FONTS","fonts","map","_ref","label","stack","value","STANDARD_FONT_VARIANTS","Object","fromEntries","_ref2","clientVariants","client_variants","DEFAULT_FONT_SIZE","style","font_size","DEFAULT_DISPLAY_FONT_SIZE","FONT_SIZE_LIMITS","ranges","DEFAULT_STYLE","font","fontSize","color","bold","italic","underline","align","DEFAULT_BOX","box","MIN_BOX","width","height","SYSTEM_FIELD_KEYS","FORM_NAME","SUBMISSION_ID","SUBMISSION_DATE","SYSTEM_FIELDS","labelKey","icon","TextLines","Hash","Calendar","clamp","min","max","Math","getPdfPageDisplayScale","heightPt","rawScale","widthPt","maxPageSize","zoom","baseScale","getDefaultFontSizeForScale","scale","Number","isNaN","round","getFontStack","_findBy","findBy","getJustifyContent","PlacedField","mapping","mode","isSelected","pageWidthPx","pageHeightPx","previewValue","onSelect","onChange","dragRef","useRef","draftPatchRef","_useState","useState","_useState2","_slicedToArray","draftPatch","setDraftPatch","isPreview","displayMapping","_objectSpread","left","concat","top","selectedStyle","borderColor","backgroundColor","textStyle","fontFamily","fontWeight","fontStyle","textDecoration","textAlign","justifyContent","getResizePatch","drag","dxFrac","dyFrac","patch","originRight","originX","originWidth","originBottom","originY","originHeight","handle","handlePointerMove","event","current","clientX","startX","clientY","startY","kind","startDrag","arguments","length","undefined","stopPropagation","preventDefault","id","currentTarget","setPointerCapture","pointerId","endDrag","_event$currentTarget$","_event$currentTarget","releasePointerCapture","call","renderResizeHandle","_jsx","classNames","onPointerCancel","onPointerDown","onPointerMove","onPointerUp","children","_jsxs","getRenderPixelRatio","viewport","dpr","window","devicePixelRatio","widthRatio","heightRatio","pixelRatio","sqrt","PdfPage","pageDescriptor","mappings","selectedId","resolveValue","onDropField","onScaleChange","page","pageNumber","canvasRef","overlayRef","useMemo","defaultMappingScale","getViewport","useEffect","canvas","renderPixelRatio","floor","renderTask","render","canvasContext","getContext","transform","_asyncToGenerator","_regeneratorRuntime","mark","_callee","wrap","_callee$","_context","prev","next","promise","t0","stop","apply","cancel","handleDrop","rect","getBoundingClientRect","xFrac","yFrac","handleDragOver","dataTransfer","dropEffect","ref","onDragOver","onDrop","_createElement","pdfjsLib","GlobalWorkerOptions","workerSrc","usePdfDocument","url","state","setState","isCancelled","pdf","loadingTask","getDocument","loadPages","sent","numPages","getPage","push","_loadingTask$destroy","_pdf","_pdf$destroy","destroy","Canvas","templateUrl","onPageScaleChange","_useTranslation","useTranslation","t","_usePdfDocument","mappingsByPage","reduce","groupedMappings","pageMappings","get","set","Map","Spinner","Typography","ToggleButton","isActive","onClick","rest","_objectWithoutProperties","_excluded","type","EmptyState","withT","Folder","size","weight","renderFontOptionLabel","_ref3","sanitizeFontSize","FieldPanel","_ref4","onRemove","Select","formatOptionLabel","isSearchable","options","strategy","option","Input","target","ColorPicker","showHexValue","_ref5","hex","LeftAlign","CenterAlign","RightAlign","Button","fullWidth","Delete","FieldCard","field","onPlace","onDragStart","onDragEnd","Icon","handleDragStart","effectAllowed","setData","draggable","Drag","Section","title","_Fragment","FieldsPanel","answerFields","systemFields","onDragStartField","onDragEndField","searchTerm","setSearchTerm","query","trim","toLowerCase","matches","includes","filteredAnswers","filter","filteredSystem","renderField","source","lineHeight","autoFocus","placeholder","prefix","Search","sanitizeForPdf","text","replace","hexToRgbComponents","full","split","char","join","int","parseInt","r","g","b","standardFontName","variants","Helvetica","triggerBlobDownload","bytes","fileName","blob","Blob","URL","createObjectURL","link","document","createElement","href","download","body","appendChild","click","remove","revokeObjectURL","downloadFilledPdf","_callee2","valueFor","pdfLibModule","PDFDocument","StandardFonts","rgb","response","pdfDoc","fontNames","embeddedFonts","_callee2$","_context2","fetch","ok","Error","status","arrayBuffer","load","ignoreEncryption","getPages","_toConsumableArray","Set","Promise","all","name","embedFont","t1","abrupt","_x2","forEach","_page$getSize","getSize","pageWidth","pageHeight","_hexToRgbComponents","boxLeft","boxWidth","textWidth","widthOfTextAtSize","drawText","lineY","drawLine","start","end","thickness","t2","save","t3","t4","_x","usePdfDownload","pdfDocument","previewRecord","isDownloading","setIsDownloading","downloadPdf","_pdfDocument$template","templateFile","buildOutputFilename","logger","Toastr","finish","usePdfEditorDocument","apiBaseUrl","documentId","ownerId","_useFetchPdfDocument","useFetchPdfDocument","documentResponse","data","isDocumentLoading","_useUpdatePdfDocument","useUpdatePdfDocument","onSuccess","success","onError","getPdfDocumentApiErrorMessage","saveMappings","mutate","isSaving","isPending","_useUpdatePdfDocument2","renameDocument","saveDocumentMappings","payload","renamePdfDocument","trimmedName","outputFilename","buildOutputFilenameTemplate","documentName","htmlToPlainText","element","innerHTML","textContent","innerText","generateId","_window$crypto","_window$crypto$random","crypto","randomUUID","Date","now","random","buildAnswerFields","fields","slug","recordId","typeLabel","buildMapping","_field$recordId","fieldSlug","usePdfMappingsState","setMappings","_useState3","_useState4","setSelectedId","_useState5","_useState6","pageScales","setPageScales","_useState7","_useState8","isDirty","setIsDirty","draggedFieldRef","initializedRef","selectedMapping","findById","mutateMappings","updater","handleAddField","append","handleDropField","handleChangeMapping","handlePageScaleChange","nextPageScales","handleRemoveMapping","removeById","handleDragEndField","handleDragStartField","usePreviewPagination","controlledMode","onModeChange","onPreviewPageChange","previewPage","localPreviewPage","setLocalPreviewPage","localMode","setLocalMode","currentPreviewPage","setPreviewPage","handleModeChange","nextMode","PreviewPager","total","onPrev","onNext","disabled","Left","Right","coerceToText","Array","isArray","Boolean","_typeof","String","resolvePreviewValue","_ref$responsesBySlug","responsesBySlug","form","submission","createdAt","dateFormat","dateTime","buildResponsesBySlug","responses","acc","TopBar","onRename","canManage","homeUrl","onZoomIn","onZoomOut","onDownload","canDownload","onSave","onBack","headerLinks","to","rightActionBlock","Minus","Plus","Download","loading","tooltipProps","content","NavigationHeader","leftActionBlock","LeftActionBlock","homeButtonProps","LeftArrow","tooltip","position","renameProps","navigationLinks","NavigationLinks","maxVisibleLinks","FullScreenSpinner","PdfEditorPage","_ref$canManage","_ref$fields","_ref$ownerRecord","ownerRecord","_ref$previewTotal","previewTotal","_ref$previewPage","_ref$isPreviewLoading","isPreviewLoading","setZoom","_usePdfEditorDocument","_usePdfMappingsState","_usePreviewPagination","_usePdfDownload","handleSave","createPortal"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAIA,IAAMA,eAAe,GAAGC,mCAAgB,CAACC,QAAQ;;AAEjD;AACA;AACA;AACA;AACO,IAAMC,aAAa,GAAG,EAAE,GAAG,EAAE;AAE7B,IAAMC,IAAI,GAAG;AAAEC,EAAAA,GAAG,EAAE,GAAG;AAAEC,EAAAA,GAAG,EAAE,CAAC;AAAEC,EAAAA,IAAI,EAAE,GAAG;AAAEC,EAAAA,OAAO,EAAE;AAAE,CAAC;AAExD,IAAMC,UAAU,GAAG;AACxBC,EAAAA,gBAAgB,EAAE,IAAI;AACtBC,EAAAA,eAAe,EAAE,IAAI;AACrBC,EAAAA,iBAAiB,EAAE;AACrB,CAAC;AAEM,IAAMC,YAAY,GAAG;AAAEC,EAAAA,GAAG,EAAE,KAAK;AAAEC,EAAAA,OAAO,EAAE;AAAU,CAAC;AAEvD,IAAMC,sBAAsB,GAAG;AACpCC,EAAAA,KAAK,EAAE,EAAE;AACTC,EAAAA,SAAS,EAAE,IAAI;AACfC,EAAAA,KAAK,EAAE;AACT,CAAC;AAEM,IAAMC,cAAc,GAAG,EAAE;AAEzB,IAAMC,aAAa,GAAG;EAC3BC,MAAM,EAAErB,mCAAgB,CAACsB,KAAK,CAACC,OAAO,CAAC,CAAC,CAAC;AACzCC,EAAAA,MAAM,EAAExB,mCAAgB,CAACsB,KAAK,CAACC,OAAO,CAAC,CAAC;AAC1C,CAAC;AAEM,IAAME,UAAU,GAAG;AAAEC,EAAAA,IAAI,EAAE,MAAM;AAAEC,EAAAA,MAAM,EAAE;AAAS,CAAC;AAErD,IAAMC,UAAU,GAAG;EACxBC,IAAI,EAAE7B,mCAAgB,CAACsB,KAAK,CAACQ,UAAU,CAAC,CAAC,CAAC;EAC1CC,MAAM,EAAE/B,mCAAgB,CAACsB,KAAK,CAACQ,UAAU,CAAC,CAAC,CAAC;AAC5CE,EAAAA,KAAK,EAAEhC,mCAAgB,CAACsB,KAAK,CAACQ,UAAU,CAAC,CAAC;AAC5C,CAAC;AAEM,IAAMG,gBAAgB,GAC3B,kEAAkE;AAE7D,IAAMC,qBAAqB,GAChC,yEAAyE;AAEpE,IAAMC,cAAc,GAAG,CAC5B;AACEC,EAAAA,GAAG,EAAE,UAAU;AACfC,EAAAA,CAAC,EAAE,MAAM;AACTC,EAAAA,CAAC,EAAE,KAAK;AACRC,EAAAA,SAAS,EAAE;AACb,CAAC,EACD;AACEH,EAAAA,GAAG,EAAE,WAAW;AAChBC,EAAAA,CAAC,EAAE,OAAO;AACVC,EAAAA,CAAC,EAAE,KAAK;AACRC,EAAAA,SAAS,EAAE;AACb,CAAC,EACD;AACEH,EAAAA,GAAG,EAAE,aAAa;AAClBC,EAAAA,CAAC,EAAE,MAAM;AACTC,EAAAA,CAAC,EAAE,QAAQ;AACXC,EAAAA,SAAS,EAAE;AACb,CAAC,EACD;AACEH,EAAAA,GAAG,EAAE,cAAc;AACnBC,EAAAA,CAAC,EAAE,OAAO;AACVC,EAAAA,CAAC,EAAE,QAAQ;AACXC,EAAAA,SAAS,EAAE;AACb,CAAC,CACF;;AAED;AACA;AACO,IAAMC,KAAK,GAAGxC,mCAAgB,CAACyC,KAAK,CAACC,GAAG,CAAC,UAAAC,IAAA,EAAA;AAAA,EAAA,IAAGC,KAAK,GAAAD,IAAA,CAALC,KAAK;IAAEC,KAAK,GAAAF,IAAA,CAALE,KAAK;IAAEC,KAAK,GAAAH,IAAA,CAALG,KAAK;EAAA,OAAQ;AAC5EA,IAAAA,KAAK,EAALA,KAAK;AACLF,IAAAA,KAAK,EAALA,KAAK;AACLC,IAAAA,KAAK,EAALA;GACD;AAAA,CAAC,CAAC;;AAEH;AACA;AACO,IAAME,sBAAsB,GAAGC,MAAM,CAACC,WAAW,CACtDjD,mCAAgB,CAACyC,KAAK,CAACC,GAAG,CAAC,UAAAQ,KAAA,EAAA;AAAA,EAAA,IAAoBC,cAAc,GAAAD,KAAA,CAA/BE,eAAe;IAAkBN,KAAK,GAAAI,KAAA,CAALJ,KAAK;AAAA,EAAA,OAAO,CACzEA,KAAK,EACLK,cAAc,CACf;AAAA,CAAA,CACH,CAAC;AAEM,IAAME,iBAAiB,GAAGtD,eAAe,CAACuD,KAAK,CAACC,SAAS;AAEzD,IAAMC,yBAAyB,GAAGH,iBAAiB,GAAGnD,aAAa;AAEnE,IAAMuD,gBAAgB,GAAGzD,mCAAgB,CAAC0D,MAAM,CAACH,SAAS;AAE1D,IAAMI,aAAa,GAAG;AAC3BC,EAAAA,IAAI,EAAE7D,eAAe,CAACuD,KAAK,CAACM,IAAI;AAChCC,EAAAA,QAAQ,EAAER,iBAAiB;AAC3BS,EAAAA,KAAK,EAAE/D,eAAe,CAACuD,KAAK,CAACQ,KAAK;AAClCC,EAAAA,IAAI,EAAEhE,eAAe,CAACuD,KAAK,CAACS,IAAI;AAChCC,EAAAA,MAAM,EAAEjE,eAAe,CAACuD,KAAK,CAACU,MAAM;AACpCC,EAAAA,SAAS,EAAElE,eAAe,CAACuD,KAAK,CAACW,SAAS;AAC1CC,EAAAA,KAAK,EAAEnE,eAAe,CAACuD,KAAK,CAACY;AAC/B,CAAC;;AAED;AACO,IAAMC,WAAW,GAAGpE,eAAe,CAACqE,GAAG;AAEvC,IAAMC,OAAO,GAAG;AAAEC,EAAAA,KAAK,EAAE,IAAI;AAAEC,EAAAA,MAAM,EAAE;AAAM,CAAC;AAE9C,IAAMC,iBAAiB,GAAG;AAC/BC,EAAAA,SAAS,EAAE,WAAW;AACtBC,EAAAA,aAAa,EAAE,eAAe;AAC9BC,EAAAA,eAAe,EAAE;AACnB,CAAC;;AAED;AACO,IAAMC,aAAa,GAAG,CAC3B;EACExC,GAAG,EAAEoC,iBAAiB,CAACC,SAAS;AAChCI,EAAAA,QAAQ,EAAE,oDAAoD;AAC9DC,EAAAA,IAAI,EAAEC;AACR,CAAC,EACD;EACE3C,GAAG,EAAEoC,iBAAiB,CAACE,aAAa;AACpCG,EAAAA,QAAQ,EAAE,wDAAwD;AAClEC,EAAAA,IAAI,EAAEE;AACR,CAAC,EACD;EACE5C,GAAG,EAAEoC,iBAAiB,CAACG,eAAe;AACtCE,EAAAA,QAAQ,EAAE,0DAA0D;AACpEC,EAAAA,IAAI,EAAEG;AACR,CAAC,CACF;;AC9HM,IAAMC,KAAK,GAAG,SAARA,KAAKA,CAAIpC,KAAK,EAAEqC,GAAG,EAAEC,GAAG,EAAA;AAAA,EAAA,OAAKC,IAAI,CAACF,GAAG,CAACE,IAAI,CAACD,GAAG,CAACtC,KAAK,EAAEqC,GAAG,CAAC,EAAEC,GAAG,CAAC;AAAA,CAAA;AAEtE,IAAME,sBAAsB,GAAG,SAAzBA,sBAAsBA,CAAA3C,IAAA,EAAwC;AAAA,EAAA,IAAlC4C,QAAQ,GAAA5C,IAAA,CAAR4C,QAAQ;IAAEC,QAAQ,GAAA7C,IAAA,CAAR6C,QAAQ;IAAEC,OAAO,GAAA9C,IAAA,CAAP8C,OAAO;EAClE,IAAMC,WAAW,GAAGL,IAAI,CAACD,GAAG,CAACK,OAAO,EAAEF,QAAQ,CAAC;AAC/C,EAAA,IAAI,CAACG,WAAW,EAAE,OAAOF,QAAQ;AAEjC,EAAA,IAAMG,IAAI,GAAGH,QAAQ,GAAGtF,aAAa;AACrC,EAAA,IAAM0F,SAAS,GAAGP,IAAI,CAACF,GAAG,CACxBjF,aAAa,EACbM,UAAU,CAACC,gBAAgB,GAAGiF,WAChC,CAAC;EAED,OAAOE,SAAS,GAAGD,IAAI;AACzB,CAAC;AAEM,IAAME,0BAA0B,GAAG,SAA7BA,0BAA0BA,CAAGC,KAAK,EAAI;AACjD,EAAA,IAAI,CAACA,KAAK,IAAIC,MAAM,CAACC,KAAK,CAACF,KAAK,CAAC,EAAE,OAAOnC,aAAa,CAACE,QAAQ;AAEhE,EAAA,OAAOqB,KAAK,CACVG,IAAI,CAACY,KAAK,CAACzC,yBAAyB,GAAGsC,KAAK,CAAC,EAC7CrC,gBAAgB,CAAC0B,GAAG,EACpB1B,gBAAgB,CAAC2B,GACnB,CAAC;AACH,CAAC;AAEM,IAAMc,YAAY,GAAG,SAAfA,YAAYA,CAAGtC,IAAI,EAAA;AAAA,EAAA,IAAAuC,OAAA;AAAA,EAAA,OAC9B,CAAA,CAAAA,OAAA,GAAAC,gBAAM,CAAC;AAAEtD,IAAAA,KAAK,EAAEc;AAAK,GAAC,EAAEpB,KAAK,CAAC,MAAA,IAAA,IAAA2D,OAAA,KAAA,MAAA,GAAA,MAAA,GAA9BA,OAAA,CAAgCtD,KAAK,KAAIL,KAAK,CAAC,CAAC,CAAC,CAACK,KAAK;AAAA,CAAA;;;;ACvBzD,IAAMwD,iBAAiB,GAAG,SAApBA,iBAAiBA,CAAGnC,KAAK,EAAI;AACjC,EAAA,IAAIA,KAAK,KAAK,QAAQ,EAAE,OAAO,QAAQ;AAEvC,EAAA,IAAIA,KAAK,KAAK,OAAO,EAAE,OAAO,UAAU;AAExC,EAAA,OAAO,YAAY;AACrB,CAAC;AAED,IAAMoC,WAAW,GAAG,SAAdA,WAAWA,CAAA3D,IAAA,EAUX;AAAA,EAAA,IATJ4D,OAAO,GAAA5D,IAAA,CAAP4D,OAAO;IACPC,IAAI,GAAA7D,IAAA,CAAJ6D,IAAI;IACJC,UAAU,GAAA9D,IAAA,CAAV8D,UAAU;IACVX,KAAK,GAAAnD,IAAA,CAALmD,KAAK;IACLY,WAAW,GAAA/D,IAAA,CAAX+D,WAAW;IACXC,YAAY,GAAAhE,IAAA,CAAZgE,YAAY;IACZC,YAAY,GAAAjE,IAAA,CAAZiE,YAAY;IACZC,QAAQ,GAAAlE,IAAA,CAARkE,QAAQ;IACRC,QAAQ,GAAAnE,IAAA,CAARmE,QAAQ;AAER,EAAA,IAAMC,OAAO,GAAGC,YAAM,CAAC,IAAI,CAAC;AAC5B,EAAA,IAAMC,aAAa,GAAGD,YAAM,CAAC,IAAI,CAAC;AAClC,EAAA,IAAAE,SAAA,GAAoCC,cAAQ,CAAC,IAAI,CAAC;IAAAC,UAAA,GAAAC,cAAA,CAAAH,SAAA,EAAA,CAAA,CAAA;AAA3CI,IAAAA,UAAU,GAAAF,UAAA,CAAA,CAAA,CAAA;AAAEG,IAAAA,aAAa,GAAAH,UAAA,CAAA,CAAA,CAAA;AAEhC,EAAA,IAAMI,SAAS,GAAGhB,IAAI,KAAK5F,YAAY,CAACE,OAAO;AAC/C,EAAA,IAAM2G,cAAc,GAAGH,UAAU,GAAAI,eAAA,CAAAA,eAAA,CAAA,EAAA,EAAQnB,OAAO,CAAA,EAAKe,UAAU,CAAA,GAAKf,OAAO;AAE3E,EAAA,IAAMjD,KAAK,GAAG;IACZqE,IAAI,EAAA,EAAA,CAAAC,MAAA,CAAKH,cAAc,CAACpF,CAAC,GAAGqE,WAAW,EAAA,IAAA,CAAI;IAC3CmB,GAAG,EAAA,EAAA,CAAAD,MAAA,CAAKH,cAAc,CAACnF,CAAC,GAAGqE,YAAY,EAAA,IAAA,CAAI;IAC3CrC,KAAK,EAAA,EAAA,CAAAsD,MAAA,CAAKH,cAAc,CAACnD,KAAK,GAAGoC,WAAW,EAAA,IAAA,CAAI;AAChDnC,IAAAA,MAAM,KAAAqD,MAAA,CAAKH,cAAc,CAAClD,MAAM,GAAGoC,YAAY,EAAA,IAAA;GAChD;EAED,IAAMmB,aAAa,GAAGrB,UAAU,GAC5B;AACEsB,IAAAA,WAAW,EAAE9F,gBAAgB;AAC7B+F,IAAAA,eAAe,EAAE9F;GAClB,GACD,EAAE;AAEN,EAAA,IAAM+F,SAAS,GAAG;AAChBC,IAAAA,UAAU,EAAEhC,YAAY,CAACuB,cAAc,CAAC7D,IAAI,CAAC;IAC7CC,QAAQ,EAAA,EAAA,CAAA+D,MAAA,CAAKH,cAAc,CAAC5D,QAAQ,GAAGiC,KAAK,EAAA,IAAA,CAAI;IAChDhC,KAAK,EAAE2D,cAAc,CAAC3D,KAAK;AAC3BqE,IAAAA,UAAU,EAAEV,cAAc,CAAC1D,IAAI,GAAG,GAAG,GAAG,GAAG;AAC3CqE,IAAAA,SAAS,EAAEX,cAAc,CAACzD,MAAM,GAAG,QAAQ,GAAG,QAAQ;AACtDqE,IAAAA,cAAc,EAAEZ,cAAc,CAACxD,SAAS,GAAG,WAAW,GAAG,MAAM;IAC/DqE,SAAS,EAAEb,cAAc,CAACvD,KAAK;AAC/BqE,IAAAA,cAAc,EAAElC,iBAAiB,CAACoB,cAAc,CAACvD,KAAK;GACvD;AAED,EAAA,IAAMsE,cAAc,GAAG,SAAjBA,cAAcA,CAAAtF,KAAA,EAAiC;AAAA,IAAA,IAA3BuF,IAAI,GAAAvF,KAAA,CAAJuF,IAAI;MAAEC,MAAM,GAAAxF,KAAA,CAANwF,MAAM;MAAEC,MAAM,GAAAzF,KAAA,CAANyF,MAAM;IAC5C,IAAMC,KAAK,GAAG,EAAE;IAChB,IAAMC,WAAW,GAAGJ,IAAI,CAACK,OAAO,GAAGL,IAAI,CAACM,WAAW;IACnD,IAAMC,YAAY,GAAGP,IAAI,CAACQ,OAAO,GAAGR,IAAI,CAACS,YAAY;AAErD,IAAA,IAAIT,IAAI,CAACU,MAAM,CAAC9G,CAAC,KAAK,MAAM,EAAE;AAC5B,MAAA,IAAMA,CAAC,GAAG6C,KAAK,CAACuD,IAAI,CAACK,OAAO,GAAGJ,MAAM,EAAE,CAAC,EAAEG,WAAW,GAAGxE,OAAO,CAACC,KAAK,CAAC;MACtEsE,KAAK,CAACvG,CAAC,GAAGA,CAAC;AACXuG,MAAAA,KAAK,CAACtE,KAAK,GAAGuE,WAAW,GAAGxG,CAAC;AAC/B,IAAA,CAAC,MAAM;MACLuG,KAAK,CAACtE,KAAK,GAAGY,KAAK,CACjBuD,IAAI,CAACM,WAAW,GAAGL,MAAM,EACzBrE,OAAO,CAACC,KAAK,EACb,CAAC,GAAGmE,IAAI,CAACK,OACX,CAAC;AACH,IAAA;AAEA,IAAA,IAAIL,IAAI,CAACU,MAAM,CAAC7G,CAAC,KAAK,KAAK,EAAE;AAC3B,MAAA,IAAMA,CAAC,GAAG4C,KAAK,CAACuD,IAAI,CAACQ,OAAO,GAAGN,MAAM,EAAE,CAAC,EAAEK,YAAY,GAAG3E,OAAO,CAACE,MAAM,CAAC;MACxEqE,KAAK,CAACtG,CAAC,GAAGA,CAAC;AACXsG,MAAAA,KAAK,CAACrE,MAAM,GAAGyE,YAAY,GAAG1G,CAAC;AACjC,IAAA,CAAC,MAAM;MACLsG,KAAK,CAACrE,MAAM,GAAGW,KAAK,CAClBuD,IAAI,CAACS,YAAY,GAAGP,MAAM,EAC1BtE,OAAO,CAACE,MAAM,EACd,CAAC,GAAGkE,IAAI,CAACQ,OACX,CAAC;AACH,IAAA;AAEA,IAAA,OAAOL,KAAK;EACd,CAAC;AAED,EAAA,IAAMQ,iBAAiB,GAAG,SAApBA,iBAAiBA,CAAGC,KAAK,EAAI;AACjC,IAAA,IAAMZ,IAAI,GAAG1B,OAAO,CAACuC,OAAO;IAC5B,IAAI,CAACb,IAAI,EAAE;IAEX,IAAMC,MAAM,GAAG,CAACW,KAAK,CAACE,OAAO,GAAGd,IAAI,CAACe,MAAM,IAAI9C,WAAW;IAC1D,IAAMiC,MAAM,GAAG,CAACU,KAAK,CAACI,OAAO,GAAGhB,IAAI,CAACiB,MAAM,IAAI/C,YAAY;IAE3D,IAAMiC,KAAK,GACTH,IAAI,CAACkB,IAAI,KAAKlI,UAAU,CAACC,IAAI,GACzB;AACEW,MAAAA,CAAC,EAAE6C,KAAK,CAACuD,IAAI,CAACK,OAAO,GAAGJ,MAAM,EAAE,CAAC,EAAE,CAAC,GAAGnC,OAAO,CAACjC,KAAK,CAAC;AACrDhC,MAAAA,CAAC,EAAE4C,KAAK,CAACuD,IAAI,CAACQ,OAAO,GAAGN,MAAM,EAAE,CAAC,EAAE,CAAC,GAAGpC,OAAO,CAAChC,MAAM;KACtD,GACDiE,cAAc,CAAC;AAAEC,MAAAA,IAAI,EAAJA,IAAI;AAAEC,MAAAA,MAAM,EAANA,MAAM;AAAEC,MAAAA,MAAM,EAANA;AAAO,KAAC,CAAC;IAE9C1B,aAAa,CAACqC,OAAO,GAAGV,KAAK;IAC7BrB,aAAa,CAACqB,KAAK,CAAC;EACtB,CAAC;EAED,IAAMgB,SAAS,GAAG,SAAZA,SAASA,CAAIP,KAAK,EAAEM,IAAI,EAAoB;AAAA,IAAA,IAAlBR,MAAM,GAAAU,SAAA,CAAAC,MAAA,GAAA,CAAA,IAAAD,SAAA,CAAA,CAAA,CAAA,KAAAE,SAAA,GAAAF,SAAA,CAAA,CAAA,CAAA,GAAG,IAAI;AAC3C,IAAA,IAAIrC,SAAS,EAAE;IACf6B,KAAK,CAACW,eAAe,EAAE;IACvBX,KAAK,CAACY,cAAc,EAAE;AACtBpD,IAAAA,QAAQ,CAACN,OAAO,CAAC2D,EAAE,CAAC;IACpBb,KAAK,CAACc,aAAa,CAACC,iBAAiB,CAACf,KAAK,CAACgB,SAAS,CAAC;IACtDtD,OAAO,CAACuC,OAAO,GAAG;AAChBK,MAAAA,IAAI,EAAJA,IAAI;AACJR,MAAAA,MAAM,EAANA,MAAM;MACNK,MAAM,EAAEH,KAAK,CAACE,OAAO;MACrBG,MAAM,EAAEL,KAAK,CAACI,OAAO;MACrBX,OAAO,EAAEvC,OAAO,CAAClE,CAAC;MAClB4G,OAAO,EAAE1C,OAAO,CAACjE,CAAC;MAClByG,WAAW,EAAExC,OAAO,CAACjC,KAAK;MAC1B4E,YAAY,EAAE3C,OAAO,CAAChC;KACvB;IACD0C,aAAa,CAACqC,OAAO,GAAG,IAAI;IAC5B/B,aAAa,CAAC,IAAI,CAAC;EACrB,CAAC;AAED,EAAA,IAAM+C,OAAO,GAAG,SAAVA,OAAOA,CAAGjB,KAAK,EAAI;IAAA,IAAAkB,qBAAA,EAAAC,oBAAA;AACvB,IAAA,IAAI,CAACzD,OAAO,CAACuC,OAAO,EAAE;IACtB,CAAAiB,qBAAA,IAAAC,oBAAA,GAAAnB,KAAK,CAACc,aAAa,EAACM,qBAAqB,MAAA,IAAA,IAAAF,qBAAA,KAAA,MAAA,IAAzCA,qBAAA,CAAAG,IAAA,CAAAF,oBAAA,EAA4CnB,KAAK,CAACgB,SAAS,CAAC;IAC5DtD,OAAO,CAACuC,OAAO,GAAG,IAAI;AACtB,IAAA,IAAIrC,aAAa,CAACqC,OAAO,EAAExC,QAAQ,CAACP,OAAO,CAAC2D,EAAE,EAAEjD,aAAa,CAACqC,OAAO,CAAC;IACtErC,aAAa,CAACqC,OAAO,GAAG,IAAI;IAC5B/B,aAAa,CAAC,IAAI,CAAC;EACrB,CAAC;AAED,EAAA,IAAMoD,kBAAkB,GAAG,SAArBA,kBAAkBA,CAAGxB,MAAM,EAAA;AAAA,IAAA,oBAC/ByB,cAAA,CAAA,MAAA,EAAA;AAEEtH,MAAAA,KAAK,EAAE;AAAE0E,QAAAA,eAAe,EAAE/F;OAAmB;MAC7CM,SAAS,EAAEsI,UAAU,CACnB,uEAAuE,EACvE1B,MAAM,CAAC5G,SACT,CAAE;AACFuI,MAAAA,eAAe,EAAER,OAAQ;AACzBS,MAAAA,aAAa,EAAE,SAAfA,aAAaA,CAAE1B,KAAK,EAAA;QAAA,OAAIO,SAAS,CAACP,KAAK,EAAE5H,UAAU,CAACE,MAAM,EAAEwH,MAAM,CAAC;MAAA,CAAC;AACpE6B,MAAAA,aAAa,EAAE5B,iBAAkB;AACjC6B,MAAAA,WAAW,EAAEX;KAAQ,EAThBnB,MAAM,CAAC/G,GAUb,CAAC;EAAA,CACH;AAED,EAAA,IAAIoF,SAAS,EAAE;AACb,IAAA,oBACEoD,cAAA,CAAA,KAAA,EAAA;AACQtH,MAAAA,KAAK,EAALA,KAAK;AACXf,MAAAA,SAAS,EAAC,gDAAgD;AAAA2I,MAAAA,QAAA,eAE1DN,cAAA,CAAA,MAAA,EAAA;AACErI,QAAAA,SAAS,EAAC,0DAA0D;AACpEe,QAAAA,KAAK,EAAE2E,SAAU;AAAAiD,QAAAA,QAAA,EAEhBtE;OACG;AAAC,KACJ,CAAC;AAEV,EAAA;AAEA,EAAA,oBACEuE,eAAA,CAAA,KAAA,EAAA;IACE7H,KAAK,EAAAoE,eAAA,CAAAA,eAAA,KAAOpE,KAAK,CAAA,EAAKwE,aAAa,CAAG;AACtCvF,IAAAA,SAAS,EAAEsI,UAAU,CACnB,iGAAiG,EACjG;AACE,MAAA,MAAM,EAAEpE,UAAU;AAClB,MAAA,wEAAwE,EACtE,CAACA;AACL,KACF,CAAE;AACFqE,IAAAA,eAAe,EAAER,OAAQ;AACzBS,IAAAA,aAAa,EAAE,SAAfA,aAAaA,CAAE1B,KAAK,EAAA;AAAA,MAAA,OAAIO,SAAS,CAACP,KAAK,EAAE5H,UAAU,CAACC,IAAI,CAAC;IAAA,CAAC;AAC1DsJ,IAAAA,aAAa,EAAE5B,iBAAkB;AACjC6B,IAAAA,WAAW,EAAEX,OAAQ;AAAAY,IAAAA,QAAA,gBAErBN,cAAA,CAAA,MAAA,EAAA;AACErI,MAAAA,SAAS,EAAC,mEAAmE;AAC7Ee,MAAAA,KAAK,EAAE2E,SAAU;AAAAiD,MAAAA,QAAA,eAEjBN,cAAA,CAAA,MAAA,EAAA;AAAMrI,QAAAA,SAAS,EAAC,UAAU;QAAA2I,QAAA,EAAEzD,cAAc,CAAC7E;OAAY;KACnD,CAAC,EACN6D,UAAU,IAAItE,cAAc,CAACO,GAAG,CAACiI,kBAAkB,CAAC;AAAA,GAClD,CAAC;AAEV,CAAC;;AClMD,IAAMS,mBAAmB,GAAG,SAAtBA,mBAAmBA,CAAGC,QAAQ,EAAI;AACtC,EAAA,IAAMC,GAAG,GAAGC,MAAM,CAACC,gBAAgB,IAAI,CAAC;EACxC,IAAMC,UAAU,GAAGjL,UAAU,CAACE,eAAe,GAAG2K,QAAQ,CAAC/G,KAAK;EAC9D,IAAMoH,WAAW,GAAGlL,UAAU,CAACE,eAAe,GAAG2K,QAAQ,CAAC9G,MAAM;AAChE,EAAA,IAAMoH,UAAU,GAAGtG,IAAI,CAACuG,IAAI,CAC1BpL,UAAU,CAACG,iBAAiB,IAAI0K,QAAQ,CAAC/G,KAAK,GAAG+G,QAAQ,CAAC9G,MAAM,CAClE,CAAC;EAED,OAAOc,IAAI,CAACF,GAAG,CAACmG,GAAG,EAAEG,UAAU,EAAEC,WAAW,EAAEC,UAAU,CAAC;AAC3D,CAAC;AAED,IAAME,OAAO,GAAG,SAAVA,OAAOA,CAAAlJ,IAAA,EAWP;AAAA,EAAA,IAVJmJ,cAAc,GAAAnJ,IAAA,CAAdmJ,cAAc;IACPtG,QAAQ,GAAA7C,IAAA,CAAfmD,KAAK;IACLiG,QAAQ,GAAApJ,IAAA,CAARoJ,QAAQ;IACRC,UAAU,GAAArJ,IAAA,CAAVqJ,UAAU;IACVxF,IAAI,GAAA7D,IAAA,CAAJ6D,IAAI;IACJyF,YAAY,GAAAtJ,IAAA,CAAZsJ,YAAY;IACZpF,QAAQ,GAAAlE,IAAA,CAARkE,QAAQ;IACRC,QAAQ,GAAAnE,IAAA,CAARmE,QAAQ;IACRoF,WAAW,GAAAvJ,IAAA,CAAXuJ,WAAW;IACXC,aAAa,GAAAxJ,IAAA,CAAbwJ,aAAa;AAEb,EAAA,IAAQC,IAAI,GAAoCN,cAAc,CAAtDM,IAAI;IAAEC,UAAU,GAAwBP,cAAc,CAAhDO,UAAU;IAAE5G,OAAO,GAAeqG,cAAc,CAApCrG,OAAO;IAAEF,QAAQ,GAAKuG,cAAc,CAA3BvG,QAAQ;AAC3C,EAAA,IAAM+G,SAAS,GAAGtF,YAAM,CAAC,IAAI,CAAC;AAC9B,EAAA,IAAMuF,UAAU,GAAGvF,YAAM,CAAC,IAAI,CAAC;EAC/B,IAAMlB,KAAK,GAAG0G,aAAO,CACnB,YAAA;AAAA,IAAA,OAAMlH,sBAAsB,CAAC;AAAEC,MAAAA,QAAQ,EAARA,QAAQ;AAAEC,MAAAA,QAAQ,EAARA,QAAQ;AAAEC,MAAAA,OAAO,EAAPA;AAAQ,KAAC,CAAC;AAAA,EAAA,CAAA,EAC7D,CAACF,QAAQ,EAAEC,QAAQ,EAAEC,OAAO,CAC9B,CAAC;EAED,IAAMgH,mBAAmB,GAAGD,aAAO,CACjC,YAAA;AAAA,IAAA,OACElH,sBAAsB,CAAC;AACrBC,MAAAA,QAAQ,EAARA,QAAQ;AACRC,MAAAA,QAAQ,EAAEtF,aAAa;AACvBuF,MAAAA,OAAO,EAAPA;AACF,KAAC,CAAC;AAAA,EAAA,CAAA,EACJ,CAACF,QAAQ,EAAEE,OAAO,CACpB,CAAC;EACD,IAAM4F,QAAQ,GAAGmB,aAAO,CAAC,YAAA;IAAA,OAAMJ,IAAI,CAACM,WAAW,CAAC;AAAE5G,MAAAA,KAAK,EAALA;AAAM,KAAC,CAAC;AAAA,EAAA,CAAA,EAAE,CAACsG,IAAI,EAAEtG,KAAK,CAAC,CAAC;AAC1E,EAAA,IAAMY,WAAW,GAAG2E,QAAQ,CAAC/G,KAAK;AAClC,EAAA,IAAMqC,YAAY,GAAG0E,QAAQ,CAAC9G,MAAM;AAEpCoI,EAAAA,eAAS,CAAC,YAAM;AACdR,IAAAA,aAAa,CAACE,UAAU,EAAEI,mBAAmB,CAAC;EAChD,CAAC,EAAE,CAACA,mBAAmB,EAAEN,aAAa,EAAEE,UAAU,CAAC,CAAC;AAEpDM,EAAAA,eAAS,CAAC,YAAM;AACd,IAAA,IAAMC,MAAM,GAAGN,SAAS,CAAChD,OAAO;AAChC,IAAA,IAAI,CAACsD,MAAM,EAAE,OAAO7C,SAAS;AAE7B,IAAA,IAAM8C,gBAAgB,GAAGzB,mBAAmB,CAACC,QAAQ,CAAC;AACtDuB,IAAAA,MAAM,CAACtI,KAAK,GAAGe,IAAI,CAACyH,KAAK,CAACzB,QAAQ,CAAC/G,KAAK,GAAGuI,gBAAgB,CAAC;AAC5DD,IAAAA,MAAM,CAACrI,MAAM,GAAGc,IAAI,CAACyH,KAAK,CAACzB,QAAQ,CAAC9G,MAAM,GAAGsI,gBAAgB,CAAC;IAC9DD,MAAM,CAACtJ,KAAK,CAACgB,KAAK,GAAA,EAAA,CAAAsD,MAAA,CAAMyD,QAAQ,CAAC/G,KAAK,EAAA,IAAA,CAAI;IAC1CsI,MAAM,CAACtJ,KAAK,CAACiB,MAAM,GAAA,EAAA,CAAAqD,MAAA,CAAMyD,QAAQ,CAAC9G,MAAM,EAAA,IAAA,CAAI;AAE5C,IAAA,IAAMwI,UAAU,GAAGX,IAAI,CAACY,MAAM,CAAC;AAC7BC,MAAAA,aAAa,EAAEL,MAAM,CAACM,UAAU,CAAC,IAAI,CAAC;AACtC7B,MAAAA,QAAQ,EAARA,QAAQ;AACR8B,MAAAA,SAAS,EACPN,gBAAgB,KAAK,CAAC,GAClB,CAACA,gBAAgB,EAAE,CAAC,EAAE,CAAC,EAAEA,gBAAgB,EAAE,CAAC,EAAE,CAAC,CAAC,GAChD9C;AACR,KAAC,CAAC;AAEF,IAAA,IAAMiD,MAAM,gBAAA,YAAA;MAAA,IAAA9J,KAAA,GAAAkK,iBAAA,cAAAC,mBAAA,CAAAC,IAAA,CAAG,SAAAC,OAAAA,GAAA;AAAA,QAAA,OAAAF,mBAAA,CAAAG,IAAA,CAAA,SAAAC,SAAAC,QAAA,EAAA;AAAA,UAAA,OAAA,CAAA,EAAA,QAAAA,QAAA,CAAAC,IAAA,GAAAD,QAAA,CAAAE,IAAA;AAAA,YAAA,KAAA,CAAA;AAAAF,cAAAA,QAAA,CAAAC,IAAA,GAAA,CAAA;AAAAD,cAAAA,QAAA,CAAAE,IAAA,GAAA,CAAA;cAAA,OAELb,UAAU,CAACc,OAAO;AAAA,YAAA,KAAA,CAAA;AAAAH,cAAAA,QAAA,CAAAE,IAAA,GAAA,CAAA;AAAA,cAAA;AAAA,YAAA,KAAA,CAAA;AAAAF,cAAAA,QAAA,CAAAC,IAAA,GAAA,CAAA;cAAAD,QAAA,CAAAI,EAAA,GAAAJ,QAAA,CAAA,OAAA,CAAA,CAAA,CAAA,CAAA;AAAA,YAAA,KAAA,CAAA;AAAA,YAAA,KAAA,KAAA;cAAA,OAAAA,QAAA,CAAAK,IAAA,EAAA;AAAA;AAAA,QAAA,CAAA,EAAAR,OAAA,EAAA,IAAA,EAAA,CAAA,CAAA,CAAA,EAAA,CAAA,CAAA,CAAA,CAAA;MAAA,CAI3B,CAAA,CAAA;AAAA,MAAA,OAAA,SANKP,MAAMA,GAAA;AAAA,QAAA,OAAA9J,KAAA,CAAA8K,KAAA,CAAA,IAAA,EAAAnE,SAAA,CAAA;AAAA,MAAA,CAAA;IAAA,CAAA,EAMX;AACDmD,IAAAA,MAAM,EAAE;IAER,OAAO,YAAA;AAAA,MAAA,OAAMD,UAAU,CAACkB,MAAM,EAAE;AAAA,IAAA,CAAA;EAClC,CAAC,EAAE,CAAC7B,IAAI,EAAEtG,KAAK,EAAEuF,QAAQ,CAAC,CAAC;AAE3B,EAAA,IAAM6C,UAAU,GAAG,SAAbA,UAAUA,CAAG7E,KAAK,EAAI;IAC1BA,KAAK,CAACY,cAAc,EAAE;IACtB,IAAMkE,IAAI,GAAG5B,UAAU,CAACjD,OAAO,CAAC8E,qBAAqB,EAAE;IACvD,IAAMC,KAAK,GAAGnJ,KAAK,CAAC,CAACmE,KAAK,CAACE,OAAO,GAAG4E,IAAI,CAACxG,IAAI,IAAIwG,IAAI,CAAC7J,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC;IACnE,IAAMgK,KAAK,GAAGpJ,KAAK,CAAC,CAACmE,KAAK,CAACI,OAAO,GAAG0E,IAAI,CAACtG,GAAG,IAAIsG,IAAI,CAAC5J,MAAM,EAAE,CAAC,EAAE,CAAC,CAAC;AACnE2H,IAAAA,WAAW,CAAC;AAAEG,MAAAA,UAAU,EAAVA,UAAU;AAAEvG,MAAAA,KAAK,EAAE2G,mBAAmB;AAAEpK,MAAAA,CAAC,EAAEgM,KAAK;AAAE/L,MAAAA,CAAC,EAAEgM;AAAM,KAAC,CAAC;EAC7E,CAAC;AAED,EAAA,IAAMC,cAAc,GAAG,SAAjBA,cAAcA,CAAGlF,KAAK,EAAI;IAC9BA,KAAK,CAACY,cAAc,EAAE;AACtBZ,IAAAA,KAAK,CAACmF,YAAY,CAACC,UAAU,GAAG,MAAM;EACxC,CAAC;AAED,EAAA,oBACEtD,eAAA,CAAA,KAAA,EAAA;AACE5I,IAAAA,SAAS,EAAC,+CAA+C;AACzDe,IAAAA,KAAK,EAAE;AAAEgB,MAAAA,KAAK,EAAA,EAAA,CAAAsD,MAAA,CAAKlB,WAAW,EAAA,IAAA,CAAI;MAAEnC,MAAM,EAAA,EAAA,CAAAqD,MAAA,CAAKjB,YAAY,EAAA,IAAA;KAAO;AAAAuE,IAAAA,QAAA,gBAElEN,cAAA,CAAA,QAAA,EAAA;AAAQ8D,MAAAA,GAAG,EAAEpC;KAAY,CAAC,eAC1B1B,cAAA,CAAA,KAAA,EAAA;AACErI,MAAAA,SAAS,EAAC,kBAAkB;AAC5BmM,MAAAA,GAAG,EAAEnC,UAAW;AAChBoC,MAAAA,UAAU,EAAEJ,cAAe;AAC3BK,MAAAA,MAAM,EAAEV,UAAW;MACnBnD,aAAa,EAAE,SAAfA,aAAaA,GAAA;QAAA,OAAQlE,QAAQ,CAAC,IAAI,CAAC;MAAA,CAAC;AAAAqE,MAAAA,QAAA,EAEnCa,QAAQ,CAACrJ,GAAG,CAAC,UAAA6D,OAAO,EAAA;QAAA,oBACnBsI,mBAAA,CAACvI,WAAW,EAAA;AAERC,UAAAA,OAAO,EAAPA,OAAO;AACPC,UAAAA,IAAI,EAAJA,IAAI;AACJM,UAAAA,QAAQ,EAARA,QAAQ;AACRD,UAAAA,QAAQ,EAARA,QAAQ;AACRF,UAAAA,YAAY,EAAZA,YAAY;AACZD,UAAAA,WAAW,EAAXA,WAAW;AACXZ,UAAAA,KAAK,EAALA,KAAK;AAEPW,UAAAA,UAAU,EAAEF,OAAO,CAAC2D,EAAE,KAAK8B,UAAW;UACtC5J,GAAG,EAAEmE,OAAO,CAAC2D,EAAG;UAChBtD,YAAY,EACVJ,IAAI,KAAK5F,YAAY,CAACE,OAAO,GAAGmL,YAAY,CAAC1F,OAAO,CAAC,GAAG;AACzD,SACF,CAAC;MAAA,CACH;AAAC,KACC,CAAC;AAAA,GACH,CAAC;AAEV,CAAC;;AC/HD;AACA;AACA;AACAuI,mBAAQ,CAACC,mBAAmB,CAACC,SAAS,GAAG,oBAAoB;;AAE7D;AACA;AACA;AACA,IAAMC,cAAc,GAAG,SAAjBA,cAAcA,CAAGC,GAAG,EAAI;AAC5B,EAAA,IAAAhI,SAAA,GAA0BC,cAAQ,CAACpG,sBAAsB,CAAC;IAAAqG,UAAA,GAAAC,cAAA,CAAAH,SAAA,EAAA,CAAA,CAAA;AAAnDiI,IAAAA,KAAK,GAAA/H,UAAA,CAAA,CAAA,CAAA;AAAEgI,IAAAA,QAAQ,GAAAhI,UAAA,CAAA,CAAA,CAAA;AAEtBuF,EAAAA,eAAS,CAAC,YAAM;AACd,IAAA,IAAI,CAACuC,GAAG,EAAE,OAAOnF,SAAS;IAE1B,IAAIsF,WAAW,GAAG,KAAK;AACvB,IAAA,IAAIC,GAAG;IACPF,QAAQ,CAACrO,sBAAsB,CAAC;AAEhC,IAAA,IAAMwO,WAAW,GAAGT,mBAAQ,CAACU,WAAW,CAAC;AAAEN,MAAAA,GAAG,EAAHA;AAAI,KAAC,CAAC;AAEjD,IAAA,IAAMO,SAAS,gBAAA,YAAA;MAAA,IAAA9M,IAAA,GAAAyK,iBAAA,cAAAC,mBAAA,CAAAC,IAAA,CAAG,SAAAC,OAAAA,GAAA;AAAA,QAAA,IAAAvM,KAAA,EAAAqL,UAAA,EAAAD,IAAA,EAAAf,QAAA;AAAA,QAAA,OAAAgC,mBAAA,CAAAG,IAAA,CAAA,SAAAC,SAAAC,QAAA,EAAA;AAAA,UAAA,OAAA,CAAA,EAAA,QAAAA,QAAA,CAAAC,IAAA,GAAAD,QAAA,CAAAE,IAAA;AAAA,YAAA,KAAA,CAAA;AAAAF,cAAAA,QAAA,CAAAC,IAAA,GAAA,CAAA;AAAAD,cAAAA,QAAA,CAAAE,IAAA,GAAA,CAAA;cAAA,OAEF2B,WAAW,CAAC1B,OAAO;AAAA,YAAA,KAAA,CAAA;cAA/ByB,GAAG,GAAA5B,QAAA,CAAAgC,IAAA;AACG1O,cAAAA,KAAK,GAAG,EAAE;AAEPqL,cAAAA,UAAU,GAAG,CAAC;AAAA,YAAA,KAAA,CAAA;AAAA,cAAA,IAAA,EAAEA,UAAU,IAAIiD,GAAG,CAACK,QAAQ,CAAA,EAAA;AAAAjC,gBAAAA,QAAA,CAAAE,IAAA,GAAA,EAAA;AAAA,gBAAA;AAAA,cAAA;AAAAF,cAAAA,QAAA,CAAAE,IAAA,GAAA,CAAA;AAAA,cAAA,OAC9B0B,GAAG,CAACM,OAAO,CAACvD,UAAU,CAAC;AAAA,YAAA,KAAA,CAAA;cAApCD,IAAI,GAAAsB,QAAA,CAAAgC,IAAA;AACJrE,cAAAA,QAAQ,GAAGe,IAAI,CAACM,WAAW,CAAC;AAAE5G,gBAAAA,KAAK,EAAE;AAAE,eAAC,CAAC;cAC/C9E,KAAK,CAAC6O,IAAI,CAAC;AACTxD,gBAAAA,UAAU,EAAVA,UAAU;AACVD,gBAAAA,IAAI,EAAJA,IAAI;gBACJ3G,OAAO,EAAE4F,QAAQ,CAAC/G,KAAK;gBACvBiB,QAAQ,EAAE8F,QAAQ,CAAC9G;AACrB,eAAC,CAAC;AAAC,YAAA,KAAA,EAAA;AARgD8H,cAAAA,UAAU,IAAI,CAAC;AAAAqB,cAAAA,QAAA,CAAAE,IAAA,GAAA,CAAA;AAAA,cAAA;AAAA,YAAA,KAAA,EAAA;AAWpE,cAAA,IAAI,CAACyB,WAAW,EAAED,QAAQ,CAAC;AAAEpO,gBAAAA,KAAK,EAALA,KAAK;AAAEC,gBAAAA,SAAS,EAAE,KAAK;AAAEC,gBAAAA,KAAK,EAAE;AAAK,eAAC,CAAC;AAACwM,cAAAA,QAAA,CAAAE,IAAA,GAAA,EAAA;AAAA,cAAA;AAAA,YAAA,KAAA,EAAA;AAAAF,cAAAA,QAAA,CAAAC,IAAA,GAAA,EAAA;cAAAD,QAAA,CAAAI,EAAA,GAAAJ,QAAA,CAAA,OAAA,CAAA,CAAA,CAAA,CAAA;AAErE,cAAA,IAAI,CAAC2B,WAAW,EAAED,QAAQ,CAAC;AAAEpO,gBAAAA,KAAK,EAAE,EAAE;AAAEC,gBAAAA,SAAS,EAAE,KAAK;gBAAEC,KAAK,EAAAwM,QAAA,CAAAI;AAAC,eAAC,CAAC;AAAC,YAAA,KAAA,EAAA;AAAA,YAAA,KAAA,KAAA;cAAA,OAAAJ,QAAA,CAAAK,IAAA,EAAA;AAAA;AAAA,QAAA,CAAA,EAAAR,OAAA,EAAA,IAAA,EAAA,CAAA,CAAA,CAAA,EAAA,EAAA,CAAA,CAAA,CAAA;MAAA,CAEtE,CAAA,CAAA;AAAA,MAAA,OAAA,SApBKkC,SAASA,GAAA;AAAA,QAAA,OAAA9M,IAAA,CAAAqL,KAAA,CAAA,IAAA,EAAAnE,SAAA,CAAA;AAAA,MAAA,CAAA;IAAA,CAAA,EAoBd;AAED4F,IAAAA,SAAS,EAAE;AAEX,IAAA,OAAO,YAAM;AAAA,MAAA,IAAAK,oBAAA,EAAAC,IAAA,EAAAC,YAAA;AACXX,MAAAA,WAAW,GAAG,IAAI;AAClB,MAAA,CAAAS,oBAAA,GAAAP,WAAW,CAACU,OAAO,MAAA,IAAA,IAAAH,oBAAA,KAAA,MAAA,IAAnBA,oBAAA,CAAApF,IAAA,CAAA6E,WAAsB,CAAC;AACvB,MAAA,CAAAQ,IAAA,GAAAT,GAAG,cAAAS,IAAA,KAAA,MAAA,IAAA,CAAAC,YAAA,GAAHD,IAAA,CAAKE,OAAO,MAAA,IAAA,IAAAD,YAAA,KAAA,MAAA,IAAZA,YAAA,CAAAtF,IAAA,CAAAqF,IAAe,CAAC;IAClB,CAAC;AACH,EAAA,CAAC,EAAE,CAACb,GAAG,CAAC,CAAC;AAET,EAAA,OAAOC,KAAK;AACd,CAAC;;AChDD,IAAMe,MAAM,GAAG,SAATA,MAAMA,CAAAvN,IAAA,EAWN;AAAA,EAAA,IAVJwN,WAAW,GAAAxN,IAAA,CAAXwN,WAAW;IACXxK,IAAI,GAAAhD,IAAA,CAAJgD,IAAI;IACJoG,QAAQ,GAAApJ,IAAA,CAARoJ,QAAQ;IACRC,UAAU,GAAArJ,IAAA,CAAVqJ,UAAU;IACVxF,IAAI,GAAA7D,IAAA,CAAJ6D,IAAI;IACJyF,YAAY,GAAAtJ,IAAA,CAAZsJ,YAAY;IACZpF,QAAQ,GAAAlE,IAAA,CAARkE,QAAQ;IACRC,QAAQ,GAAAnE,IAAA,CAARmE,QAAQ;IACRoF,WAAW,GAAAvJ,IAAA,CAAXuJ,WAAW;IACXkE,iBAAiB,GAAAzN,IAAA,CAAjByN,iBAAiB;AAEjB,EAAA,IAAAC,eAAA,GAAcC,2BAAc,EAAE;IAAtBC,CAAC,GAAAF,eAAA,CAADE,CAAC;AACT,EAAA,IAAAC,eAAA,GAAoCvB,cAAc,CAACkB,WAAW,CAAC;IAAvDnP,KAAK,GAAAwP,eAAA,CAALxP,KAAK;IAAEC,SAAS,GAAAuP,eAAA,CAATvP,SAAS;IAAEC,KAAK,GAAAsP,eAAA,CAALtP,KAAK;AAE/B,EAAA,IAAM4E,KAAK,GAAG5F,aAAa,GAAGyF,IAAI;EAClC,IAAM8K,cAAc,GAAGjE,aAAO,CAC5B,YAAA;IAAA,OACET,QAAQ,CAAC2E,MAAM,CAAC,UAACC,eAAe,EAAEpK,OAAO,EAAK;MAC5C,IAAMqK,YAAY,GAAGD,eAAe,CAACE,GAAG,CAACtK,OAAO,CAAC6F,IAAI,CAAC,IAAI,EAAE;AAC5DwE,MAAAA,YAAY,CAACf,IAAI,CAACtJ,OAAO,CAAC;MAC1BoK,eAAe,CAACG,GAAG,CAACvK,OAAO,CAAC6F,IAAI,EAAEwE,YAAY,CAAC;AAE/C,MAAA,OAAOD,eAAe;AACxB,IAAA,CAAC,EAAE,IAAII,GAAG,EAAE,CAAC;EAAA,CAAA,EACf,CAAChF,QAAQ,CACX,CAAC;AAED,EAAA,IAAI9K,SAAS,EAAE;AACb,IAAA,oBACE2J,cAAA,CAAA,KAAA,EAAA;AAAKrI,MAAAA,SAAS,EAAC,gDAAgD;AAAA2I,MAAAA,QAAA,eAC7DN,cAAA,CAACoG,OAAO,EAAA,EAAE;AAAC,KACR,CAAC;AAEV,EAAA;AAEA,EAAA,IAAI9P,KAAK,IAAI,CAACiP,WAAW,EAAE;AACzB,IAAA,oBACEvF,cAAA,CAAA,KAAA,EAAA;AAAKrI,MAAAA,SAAS,EAAC,oDAAoD;MAAA2I,QAAA,eACjEN,cAAA,CAACqG,UAAU,EAAA;AAAC1O,QAAAA,SAAS,EAAC,wBAAwB;AAACe,QAAAA,KAAK,EAAC,OAAO;QAAA4H,QAAA,EACzDqF,CAAC,CAAC,0CAA0C;OACnC;AAAC,KACV,CAAC;AAEV,EAAA;AAEA,EAAA,oBACE3F,cAAA,CAAA,KAAA,EAAA;AAAKrI,IAAAA,SAAS,EAAC,qDAAqD;AAAA2I,IAAAA,QAAA,eAClEN,cAAA,CAAA,KAAA,EAAA;AAAKrI,MAAAA,SAAS,EAAC,kEAAkE;AAAA2I,MAAAA,QAAA,EAC9ElK,KAAK,CAAC0B,GAAG,CAAC,UAAAoJ,cAAc,EAAA;QAAA,oBACvB+C,mBAAA,CAAChD,OAAO,EAAA;AAEJrF,UAAAA,IAAI,EAAJA,IAAI;AACJM,UAAAA,QAAQ,EAARA,QAAQ;AACRoF,UAAAA,WAAW,EAAXA,WAAW;AAEXrF,UAAAA,QAAQ,EAARA,QAAQ;AACRiF,UAAAA,cAAc,EAAdA,cAAc;AACdG,UAAAA,YAAY,EAAZA,YAAY;AACZnG,UAAAA,KAAK,EAALA,KAAK;AACLkG,UAAAA,UAAU,EAAVA,UAAU;UAEZ5J,GAAG,EAAE0J,cAAc,CAACO,UAAW;UAC/BN,QAAQ,EACN0E,cAAc,CAACI,GAAG,CAAC/E,cAAc,CAACO,UAAU,CAAC,IAAIlL,cAClD;AACDgL,UAAAA,aAAa,EAAEiE;AAAkB,SAClC,CAAC;MAAA,CACH;KACE;AAAC,GACH,CAAC;AAEV,CAAC;;;;;AC1ED,IAAMc,YAAY,GAAG,SAAfA,YAAYA,CAAAvO,IAAA,EAAA;AAAA,EAAA,IAAMwO,QAAQ,GAAAxO,IAAA,CAARwO,QAAQ;IAAEC,OAAO,GAAAzO,IAAA,CAAPyO,OAAO;IAAE7O,SAAS,GAAAI,IAAA,CAATJ,SAAS;IAAE2I,QAAQ,GAAAvI,IAAA,CAARuI,QAAQ;AAAKmG,IAAAA,IAAI,GAAAC,wBAAA,CAAA3O,IAAA,EAAA4O,SAAA,CAAA;AAAA,EAAA,oBACrE3G,cAAA,CAAA,QAAA,EAAAlD,eAAA,CAAAA,eAAA,CAAA;AACQ0J,IAAAA,OAAO,EAAPA,OAAO;AACbI,IAAAA,IAAI,EAAC,QAAQ;AACbjP,IAAAA,SAAS,EAAEsI,UAAU,CACnB,mHAAmH,EACnHtI,SAAS,EACT;AACE,MAAA,0CAA0C,EAAE4O,QAAQ;AACpD,MAAA,qEAAqE,EACnE,CAACA;KAEP;AAAE,GAAA,EACEE,IAAI,CAAA,EAAA,EAAA,EAAA;AAAAnG,IAAAA,QAAA,EAEPA;AAAQ,GAAA,CACH,CAAC;AAAA,CACV;AAED,IAAMuG,UAAU,GAAGC,gBAAK,CAAC,UAAAxO,KAAA,EAAA;AAAA,EAAA,IAAGqN,CAAC,GAAArN,KAAA,CAADqN,CAAC;AAAA,EAAA,oBAC3BpF,eAAA,CAAA,KAAA,EAAA;AAAK5I,IAAAA,SAAS,EAAC,wEAAwE;IAAA2I,QAAA,EAAA,cACrFN,cAAA,CAAC+G,MAAM,EAAA;AAACpP,MAAAA,SAAS,EAAC,wBAAwB;AAACqP,MAAAA,IAAI,EAAE;AAAG,KAAE,CAAC,eACvDhH,cAAA,CAACqG,UAAU,EAAA;AAAC3N,MAAAA,KAAK,EAAC,OAAO;AAACuO,MAAAA,MAAM,EAAC,QAAQ;MAAA3G,QAAA,EACtCqF,CAAC,CAAC,+CAA+C;AAAC,KACzC,CAAC,eACb3F,cAAA,CAACqG,UAAU,EAAA;AAAC1O,MAAAA,SAAS,EAAC,wBAAwB;AAACe,MAAAA,KAAK,EAAC,OAAO;MAAA4H,QAAA,EACzDqF,CAAC,CAAC,qDAAqD;AAAC,KAC/C,CAAC;AAAA,GACV,CAAC;AAAA,CACP,CAAC;AAEF,IAAMuB,qBAAqB,GAAG,SAAxBA,qBAAqBA,CAAAC,KAAA,EAAA;AAAA,EAAA,IAAMnP,KAAK,GAAAmP,KAAA,CAALnP,KAAK;IAAEC,KAAK,GAAAkP,KAAA,CAALlP,KAAK;AAAA,EAAA,oBAC3C+H,cAAA,CAAA,MAAA,EAAA;AAAMtH,IAAAA,KAAK,EAAE;AAAE4E,MAAAA,UAAU,EAAErF;KAAQ;AAAAqI,IAAAA,QAAA,EAAEtI;AAAK,GAAO,CAAC;AAAA,CACnD;AAED,IAAMoP,gBAAgB,GAAG,SAAnBA,gBAAgBA,CAAGlP,KAAK,EAAI;AAChC,EAAA,IAAMe,QAAQ,GAAGkC,MAAM,CAACjD,KAAK,CAAC;EAE9B,IAAIiD,MAAM,CAACC,KAAK,CAACnC,QAAQ,CAAC,EAAE,OAAOJ,gBAAgB,CAAC0B,GAAG;AAEvD,EAAA,OAAOE,IAAI,CAACF,GAAG,CACbE,IAAI,CAACD,GAAG,CAACvB,QAAQ,EAAEJ,gBAAgB,CAAC0B,GAAG,CAAC,EACxC1B,gBAAgB,CAAC2B,GACnB,CAAC;AACH,CAAC;AAED,IAAM6M,UAAU,GAAGP,gBAAK,CAAC,UAAAQ,KAAA,EAAA;AAAA,EAAA,IAAG3B,CAAC,GAAA2B,KAAA,CAAD3B,CAAC;IAAEhK,OAAO,GAAA2L,KAAA,CAAP3L,OAAO;IAAEO,SAAQ,GAAAoL,KAAA,CAARpL,QAAQ;IAAEqL,QAAQ,GAAAD,KAAA,CAARC,QAAQ;EAAA,OACxD5L,OAAO,gBACL4E,eAAA,CAAA,KAAA,EAAA;AAAK5I,IAAAA,SAAS,EAAC,4GAA4G;AAAA2I,IAAAA,QAAA,gBACzHN,cAAA,CAAA,KAAA,EAAA;AAAKrI,MAAAA,SAAS,EAAC,oDAAoD;MAAA2I,QAAA,eACjEN,cAAA,CAACqG,UAAU,EAAA;AAAC1O,QAAAA,SAAS,EAAC,UAAU;AAAC,QAAA,aAAA,EAAY,cAAc;AAACe,QAAAA,KAAK,EAAC,IAAI;QAAA4H,QAAA,EACnE3E,OAAO,CAAC3D;OACC;KACT,CAAC,eACNuI,eAAA,CAAA,KAAA,EAAA;AAAK5I,MAAAA,SAAS,EAAC,gBAAgB;AAAA2I,MAAAA,QAAA,gBAC7BC,eAAA,CAAA,KAAA,EAAA;AAAK5I,QAAAA,SAAS,EAAC,WAAW;QAAA2I,QAAA,EAAA,cACxBN,cAAA,CAACqG,UAAU,EAAA;AAAC1O,UAAAA,SAAS,EAAC,wBAAwB;AAACe,UAAAA,KAAK,EAAC,OAAO;UAAA4H,QAAA,EACzDqF,CAAC,CAAC,yCAAyC;AAAC,SACnC,CAAC,eACb3F,cAAA,CAACwH,MAAM,EAAA;AACLC,UAAAA,iBAAiB,EAAEP,qBAAsB;AACzCQ,UAAAA,YAAY,EAAE,KAAM;AACpBC,UAAAA,OAAO,EAAE/P,KAAM;AACfoP,UAAAA,IAAI,EAAC,OAAO;AACZY,UAAAA,QAAQ,EAAC,OAAO;UAChB1P,KAAK,EAAEsD,gBAAM,CAAC;YAAEtD,KAAK,EAAEyD,OAAO,CAAC3C;WAAM,EAAEpB,KAAK,CAAE;AAC9CsE,UAAAA,QAAQ,EAAE,SAAVA,QAAQA,CAAE2L,MAAM,EAAA;AAAA,YAAA,OAAI3L,SAAQ,CAACP,OAAO,CAAC2D,EAAE,EAAE;cAAEtG,IAAI,EAAE6O,MAAM,CAAC3P;AAAM,aAAC,CAAC;AAAA,UAAA;AAAC,SAClE,CAAC;OACC,CAAC,eACNqI,eAAA,CAAA,KAAA,EAAA;AAAK5I,QAAAA,SAAS,EAAC,YAAY;AAAA2I,QAAAA,QAAA,gBACzBC,eAAA,CAAA,KAAA,EAAA;AAAK5I,UAAAA,SAAS,EAAC,0BAA0B;UAAA2I,QAAA,EAAA,cACvCN,cAAA,CAACqG,UAAU,EAAA;AAAC1O,YAAAA,SAAS,EAAC,wBAAwB;AAACe,YAAAA,KAAK,EAAC,OAAO;YAAA4H,QAAA,EACzDqF,CAAC,CAAC,yCAAyC;AAAC,WACnC,CAAC,eACb3F,cAAA,CAAC8H,KAAK,EAAA;YACJtN,GAAG,EAAE3B,gBAAgB,CAAC2B,GAAI;YAC1BD,GAAG,EAAE1B,gBAAgB,CAAC0B,GAAI;AAC1ByM,YAAAA,IAAI,EAAC,OAAO;AACZJ,YAAAA,IAAI,EAAC,QAAQ;YACb1O,KAAK,EAAEyD,OAAO,CAAC1C,QAAS;AACxBiD,YAAAA,QAAQ,EAAE,SAAVA,QAAQA,CAAEuC,KAAK,EAAA;AAAA,cAAA,OACbvC,SAAQ,CAACP,OAAO,CAAC2D,EAAE,EAAE;AACnBrG,gBAAAA,QAAQ,EAAEmO,gBAAgB,CAAC3I,KAAK,CAACsJ,MAAM,CAAC7P,KAAK;AAC/C,eAAC,CAAC;AAAA,YAAA;AACH,WACF,CAAC;SACC,CAAC,eACNqI,eAAA,CAAA,KAAA,EAAA;AAAK5I,UAAAA,SAAS,EAAC,WAAW;UAAA2I,QAAA,EAAA,cACxBN,cAAA,CAACqG,UAAU,EAAA;AAAC1O,YAAAA,SAAS,EAAC,wBAAwB;AAACe,YAAAA,KAAK,EAAC,OAAO;YAAA4H,QAAA,EACzDqF,CAAC,CAAC,2CAA2C;WACpC,CAAC,eACbpF,eAAA,CAAA,KAAA,EAAA;AAAK5I,YAAAA,SAAS,EAAC,MAAM;YAAA2I,QAAA,EAAA,cACnBN,cAAA,CAACsG,YAAY,EAAA;AACX,cAAA,YAAA,EAAW,MAAM;AACjB3O,cAAAA,SAAS,EAAC,KAAK;cACf4O,QAAQ,EAAE5K,OAAO,CAACxC,IAAK;cACvBqN,OAAO,EAAE,SAATA,OAAOA,GAAA;AAAA,gBAAA,OAAQtK,SAAQ,CAACP,OAAO,CAAC2D,EAAE,EAAE;kBAAEnG,IAAI,EAAE,CAACwC,OAAO,CAACxC;AAAK,iBAAC,CAAC;cAAA,CAAC;AAAAmH,cAAAA,QAAA,eAE7DN,cAAA,CAAA,MAAA,EAAA;AAAMrI,gBAAAA,SAAS,EAAC,WAAW;AAAA2I,gBAAAA,QAAA,EAAC;eAAO;AAAC,aACxB,CAAC,eACfN,cAAA,CAACsG,YAAY,EAAA;AACX,cAAA,YAAA,EAAW,QAAQ;AACnB3O,cAAAA,SAAS,EAAC,KAAK;cACf4O,QAAQ,EAAE5K,OAAO,CAACvC,MAAO;cACzBoN,OAAO,EAAE,SAATA,OAAOA,GAAA;AAAA,gBAAA,OACLtK,SAAQ,CAACP,OAAO,CAAC2D,EAAE,EAAE;kBAAElG,MAAM,EAAE,CAACuC,OAAO,CAACvC;AAAO,iBAAC,CAAC;cAAA,CAClD;AAAAkH,cAAAA,QAAA,eAEDN,cAAA,CAAA,MAAA,EAAA;AAAMrI,gBAAAA,SAAS,EAAC,QAAQ;AAAA2I,gBAAAA,QAAA,EAAC;eAAO;AAAC,aACrB,CAAC,eACfN,cAAA,CAACsG,YAAY,EAAA;AACX,cAAA,YAAA,EAAW,WAAW;AACtB3O,cAAAA,SAAS,EAAC,KAAK;cACf4O,QAAQ,EAAE5K,OAAO,CAACtC,SAAU;cAC5BmN,OAAO,EAAE,SAATA,OAAOA,GAAA;AAAA,gBAAA,OACLtK,SAAQ,CAACP,OAAO,CAAC2D,EAAE,EAAE;kBAAEjG,SAAS,EAAE,CAACsC,OAAO,CAACtC;AAAU,iBAAC,CAAC;cAAA,CACxD;AAAAiH,cAAAA,QAAA,eAEDN,cAAA,CAAA,MAAA,EAAA;AAAMrI,gBAAAA,SAAS,EAAC,WAAW;AAAA2I,gBAAAA,QAAA,EAAC;eAAO;AAAC,aACxB,CAAC;AAAA,WACZ,CAAC;AAAA,SACH,CAAC;OACH,CAAC,eACNC,eAAA,CAAA,KAAA,EAAA;AAAK5I,QAAAA,SAAS,EAAC,WAAW;QAAA2I,QAAA,EAAA,cACxBN,cAAA,CAACqG,UAAU,EAAA;AAAC1O,UAAAA,SAAS,EAAC,wBAAwB;AAACe,UAAAA,KAAK,EAAC,OAAO;UAAA4H,QAAA,EACzDqF,CAAC,CAAC,8CAA8C;AAAC,SACxC,CAAC,eACb3F,cAAA,CAACgI,WAAW,EAAA;UACVC,YAAY,EAAA,IAAA;UACZ/O,KAAK,EAAEyC,OAAO,CAACzC,KAAM;AACrB8N,UAAAA,IAAI,EAAC,OAAO;AACZ9K,UAAAA,QAAQ,EAAE,SAAVA,QAAQA,CAAAgM,KAAA,EAAA;AAAA,YAAA,IAAKC,GAAG,GAAAD,KAAA,CAAHC,GAAG;AAAA,YAAA,OAAOjM,SAAQ,CAACP,OAAO,CAAC2D,EAAE,EAAE;AAAEpG,cAAAA,KAAK,EAAEiP;AAAI,aAAC,CAAC;AAAA,UAAA;AAAC,SAC7D,CAAC;OACC,CAAC,eACN5H,eAAA,CAAA,KAAA,EAAA;AAAK5I,QAAAA,SAAS,EAAC,WAAW;QAAA2I,QAAA,EAAA,cACxBN,cAAA,CAACqG,UAAU,EAAA;AAAC1O,UAAAA,SAAS,EAAC,wBAAwB;AAACe,UAAAA,KAAK,EAAC,OAAO;UAAA4H,QAAA,EACzDqF,CAAC,CAAC,8CAA8C;SACvC,CAAC,eACbpF,eAAA,CAAA,KAAA,EAAA;AAAK5I,UAAAA,SAAS,EAAC,aAAa;UAAA2I,QAAA,EAAA,cAC1BN,cAAA,CAACsG,YAAY,EAAA;AACX,YAAA,YAAA,EAAW,YAAY;AACvB3O,YAAAA,SAAS,EAAC,QAAQ;AAClB4O,YAAAA,QAAQ,EAAE5K,OAAO,CAACrC,KAAK,KAAKtC,UAAU,CAACC,IAAK;YAC5CuP,OAAO,EAAE,SAATA,OAAOA,GAAA;AAAA,cAAA,OAAQtK,SAAQ,CAACP,OAAO,CAAC2D,EAAE,EAAE;gBAAEhG,KAAK,EAAEtC,UAAU,CAACC;AAAK,eAAC,CAAC;YAAA,CAAC;YAAAqJ,QAAA,eAEhEN,cAAA,CAACoI,SAAS,EAAA;AAACpB,cAAAA,IAAI,EAAE;aAAK;AAAC,WACX,CAAC,eACfhH,cAAA,CAACsG,YAAY,EAAA;AACX,YAAA,YAAA,EAAW,cAAc;AACzB3O,YAAAA,SAAS,EAAC,QAAQ;AAClB4O,YAAAA,QAAQ,EAAE5K,OAAO,CAACrC,KAAK,KAAKtC,UAAU,CAACG,MAAO;YAC9CqP,OAAO,EAAE,SAATA,OAAOA,GAAA;AAAA,cAAA,OAAQtK,SAAQ,CAACP,OAAO,CAAC2D,EAAE,EAAE;gBAAEhG,KAAK,EAAEtC,UAAU,CAACG;AAAO,eAAC,CAAC;YAAA,CAAC;YAAAmJ,QAAA,eAElEN,cAAA,CAACqI,WAAW,EAAA;AAACrB,cAAAA,IAAI,EAAE;aAAK;AAAC,WACb,CAAC,eACfhH,cAAA,CAACsG,YAAY,EAAA;AACX,YAAA,YAAA,EAAW,aAAa;AACxB3O,YAAAA,SAAS,EAAC,QAAQ;AAClB4O,YAAAA,QAAQ,EAAE5K,OAAO,CAACrC,KAAK,KAAKtC,UAAU,CAACI,KAAM;YAC7CoP,OAAO,EAAE,SAATA,OAAOA,GAAA;AAAA,cAAA,OAAQtK,SAAQ,CAACP,OAAO,CAAC2D,EAAE,EAAE;gBAAEhG,KAAK,EAAEtC,UAAU,CAACI;AAAM,eAAC,CAAC;YAAA,CAAC;YAAAkJ,QAAA,eAEjEN,cAAA,CAACsI,UAAU,EAAA;AAACtB,cAAAA,IAAI,EAAE;aAAK;AAAC,WACZ,CAAC;AAAA,SACZ,CAAC;AAAA,OACH,CAAC;AAAA,KACH,CAAC,eACNhH,cAAA,CAACuI,MAAM,EAAA;MACLC,SAAS,EAAA,IAAA;AACT7Q,MAAAA,SAAS,EAAC,MAAM;AAChBuC,MAAAA,IAAI,EAAEuO,MAAO;AACbzQ,MAAAA,KAAK,EAAE2N,CAAC,CAAC,2CAA2C,CAAE;AACtDjN,MAAAA,KAAK,EAAC,QAAQ;MACd8N,OAAO,EAAE,SAATA,OAAOA,GAAA;AAAA,QAAA,OAAQe,QAAQ,CAAC5L,OAAO,CAAC2D,EAAE,CAAC;AAAA,MAAA;AAAC,KACrC,CAAC;GACC,CAAC,gBAENU,cAAA,CAAA,KAAA,EAAA;AAAKrI,IAAAA,SAAS,EAAC,wFAAwF;AAAA2I,IAAAA,QAAA,eACrGN,cAAA,CAAC6G,UAAU,EAAA,EAAE;AAAC,GACX,CACN;AAAA,CACH,CAAC;;ACzLD,IAAM6B,SAAS,GAAG,SAAZA,SAASA,CAAA3Q,IAAA,EAAmD;AAAA,EAAA,IAA7C4Q,KAAK,GAAA5Q,IAAA,CAAL4Q,KAAK;IAAEC,OAAO,GAAA7Q,IAAA,CAAP6Q,OAAO;IAAEC,WAAW,GAAA9Q,IAAA,CAAX8Q,WAAW;IAAEC,SAAS,GAAA/Q,IAAA,CAAT+Q,SAAS;AACzD,EAAA,IAAMC,IAAI,GAAGJ,KAAK,CAACzO,IAAI;AAEvB,EAAA,IAAM8O,eAAe,GAAG,SAAlBA,eAAeA,CAAGvK,KAAK,EAAI;AAC/BA,IAAAA,KAAK,CAACmF,YAAY,CAACqF,aAAa,GAAG,MAAM;IACzCxK,KAAK,CAACmF,YAAY,CAACsF,OAAO,CAAC,YAAY,EAAEP,KAAK,CAACnR,GAAG,CAAC;IACnDqR,WAAW,CAACF,KAAK,CAAC;EACpB,CAAC;AAED,EAAA,oBACEpI,eAAA,CAAA,KAAA,EAAA;AACQuI,IAAAA,SAAS,EAATA,SAAS;IACfK,SAAS,EAAA,IAAA;AACTxR,IAAAA,SAAS,EAAC,wMAAwM;AAClN,IAAA,aAAA,EAAA,MAAA,CAAAqF,MAAA,CAAoB2L,KAAK,CAACnR,GAAG,EAAA,QAAA,CAAS;IACtCgP,OAAO,EAAE,SAATA,OAAOA,GAAA;MAAA,OAAQoC,OAAO,CAACD,KAAK,CAAC;IAAA,CAAC;AAC9BE,IAAAA,WAAW,EAAEG,eAAgB;AAAA1I,IAAAA,QAAA,gBAE7BN,cAAA,CAAA,MAAA,EAAA;AACErI,MAAAA,SAAS,EAAC,6EAA6E;AACvF,MAAA,aAAA,EAAY,aAAa;MAAA2I,QAAA,eAEzBN,cAAA,CAACoJ,IAAI,EAAA;AACHzR,QAAAA,SAAS,EAAC,6FAA6F;AACvGqP,QAAAA,IAAI,EAAE;OACP;KACG,CAAC,eACPzG,eAAA,CAAA,KAAA,EAAA;AAAK5I,MAAAA,SAAS,EAAC,mDAAmD;MAAA2I,QAAA,EAAA,CAC/DyI,IAAI,iBACH/I,cAAA,CAAA,KAAA,EAAA;AAAKrI,QAAAA,SAAS,EAAC,eAAe;AAAA2I,QAAAA,QAAA,eAC5BN,cAAA,CAAC+I,IAAI,EAAA,EAAE;AAAC,OACL,CACN,eACD/I,cAAA,CAACqG,UAAU,EAAA;AAAC1O,QAAAA,SAAS,EAAC,oBAAoB;AAACe,QAAAA,KAAK,EAAC,OAAO;QAAA4H,QAAA,EACrDqI,KAAK,CAAC3Q;AAAK,OACF,CAAC;AAAA,KACV,CAAC;AAAA,GACH,CAAC;AAEV,CAAC;;AClCD,IAAMqR,OAAO,GAAG,SAAVA,OAAOA,CAAAtR,IAAA,EAA4B;AAAA,EAAA,IAAtBuR,KAAK,GAAAvR,IAAA,CAALuR,KAAK;IAAEhJ,QAAQ,GAAAvI,IAAA,CAARuI,QAAQ;EAChC,IAAI,EAACA,QAAQ,KAAA,IAAA,IAARA,QAAQ,KAAA,MAAA,IAARA,QAAQ,CAAEpB,MAAM,CAAA,EAAE,OAAO,IAAI;EAElC,oBACEqB,eAAA,CAAAgJ,mBAAA,EAAA;IAAAjJ,QAAA,EAAA,cACEN,cAAA,CAACqG,UAAU,EAAA;AAAC1O,MAAAA,SAAS,EAAC,WAAW;AAACe,MAAAA,KAAK,EAAC,IAAI;AAAA4H,MAAAA,QAAA,EACzCgJ;KACS,CAAC,EACZhJ,QAAQ;AAAA,GACT,CAAC;AAEP,CAAC;AAED,IAAMkJ,WAAW,GAAG,SAAdA,WAAWA,CAAAlR,KAAA,EAMX;AAAA,EAAA,IALJmR,YAAY,GAAAnR,KAAA,CAAZmR,YAAY;IACZC,YAAY,GAAApR,KAAA,CAAZoR,YAAY;IACZd,OAAO,GAAAtQ,KAAA,CAAPsQ,OAAO;IACPe,gBAAgB,GAAArR,KAAA,CAAhBqR,gBAAgB;IAChBC,cAAc,GAAAtR,KAAA,CAAdsR,cAAc;AAEd,EAAA,IAAAnE,eAAA,GAAcC,2BAAc,EAAE;IAAtBC,CAAC,GAAAF,eAAA,CAADE,CAAC;AACT,EAAA,IAAArJ,SAAA,GAAoCC,cAAQ,CAAC,EAAE,CAAC;IAAAC,UAAA,GAAAC,cAAA,CAAAH,SAAA,EAAA,CAAA,CAAA;AAAzCuN,IAAAA,UAAU,GAAArN,UAAA,CAAA,CAAA,CAAA;AAAEsN,IAAAA,aAAa,GAAAtN,UAAA,CAAA,CAAA,CAAA;EAEhC,IAAMuN,KAAK,GAAGF,UAAU,CAACG,IAAI,EAAE,CAACC,WAAW,EAAE;AAC7C,EAAA,IAAMC,OAAO,GAAG,SAAVA,OAAOA,CAAGvB,KAAK,EAAA;IAAA,OAAIA,KAAK,CAAC3Q,KAAK,CAACiS,WAAW,EAAE,CAACE,QAAQ,CAACJ,KAAK,CAAC;AAAA,EAAA,CAAA;EAElE,IAAMK,eAAe,GAAGL,KAAK,GAAGN,YAAY,CAACY,MAAM,CAACH,OAAO,CAAC,GAAGT,YAAY;EAC3E,IAAMa,cAAc,GAAGP,KAAK,GAAGL,YAAY,CAACW,MAAM,CAACH,OAAO,CAAC,GAAGR,YAAY;AAE1E,EAAA,IAAMa,WAAW,GAAG,SAAdA,WAAWA,CAAG5B,KAAK,EAAA;IAAA,oBACvB1E,mBAAA,CAACyE,SAAS,EAAA;AACFC,MAAAA,KAAK,EAALA,KAAK;AAAEC,MAAAA,OAAO,EAAPA,OAAO;AACpBpR,MAAAA,GAAG,EAAA,EAAA,CAAAwF,MAAA,CAAK2L,KAAK,CAAC6B,MAAM,EAAA,GAAA,CAAA,CAAAxN,MAAA,CAAI2L,KAAK,CAACnR,GAAG,CAAG;AACpCsR,MAAAA,SAAS,EAAEc,cAAe;AAC1Bf,MAAAA,WAAW,EAAEc;AAAiB,KAC/B,CAAC;EAAA,CACH;AAED,EAAA,oBACEpJ,eAAA,CAAA,KAAA,EAAA;AAAK5I,IAAAA,SAAS,EAAC,+FAA+F;AAAA2I,IAAAA,QAAA,gBAC5GN,cAAA,CAAA,KAAA,EAAA;AAAKrI,MAAAA,SAAS,EAAC,UAAU;MAAA2I,QAAA,eACvBN,cAAA,CAACqG,UAAU,EAAA;AAACoE,QAAAA,UAAU,EAAC,QAAQ;AAAC/R,QAAAA,KAAK,EAAC,IAAI;AAACuO,QAAAA,MAAM,EAAC,UAAU;QAAA3G,QAAA,EACzDqF,CAAC,CAAC,4CAA4C;OACrC;KACT,CAAC,eACNpF,eAAA,CAAA,KAAA,EAAA;AAAK5I,MAAAA,SAAS,EAAC,WAAW;MAAA2I,QAAA,EAAA,cACxBN,cAAA,CAACqG,UAAU,EAAA;AAAC1O,QAAAA,SAAS,EAAC,MAAM;AAACe,QAAAA,KAAK,EAAC,OAAO;QAAA4H,QAAA,EACvCqF,CAAC,CAAC,uDAAuD;AAAC,OACjD,CAAC,eACb3F,cAAA,CAAC8H,KAAK,EAAA;QACJ4C,SAAS,EAAA,IAAA;AACT,QAAA,aAAA,EAAY,6BAA6B;AACzCC,QAAAA,WAAW,EAAEhF,CAAC,CAAC,6CAA6C,CAAE;AAC9DiF,QAAAA,MAAM,eAAE5K,cAAA,CAAC6K,MAAM,IAAE,CAAE;AACnBjE,QAAAA,IAAI,EAAC,QAAQ;AACb1O,QAAAA,KAAK,EAAE2R,UAAW;AAClB3N,QAAAA,QAAQ,EAAE,SAAVA,QAAQA,CAAEuC,KAAK,EAAA;AAAA,UAAA,OAAIqL,aAAa,CAACrL,KAAK,CAACsJ,MAAM,CAAC7P,KAAK,CAAC;AAAA,QAAA;AAAC,OACtD,CAAC;KACC,CAAC,eACNqI,eAAA,CAAA,KAAA,EAAA;AACE5I,MAAAA,SAAS,EAAC,gCAAgC;AAC1C,MAAA,aAAA,EAAY,oBAAoB;MAAA2I,QAAA,EAAA,cAEhCN,cAAA,CAACqJ,OAAO,EAAA;AAACC,QAAAA,KAAK,EAAE3D,CAAC,CAAC,sCAAsC,CAAE;AAAArF,QAAAA,QAAA,EACvD8J,eAAe,CAACtS,GAAG,CAACyS,WAAW;AAAC,OAC1B,CAAC,eACVvK,cAAA,CAACqJ,OAAO,EAAA;AAACC,QAAAA,KAAK,EAAE3D,CAAC,CAAC,qCAAqC,CAAE;AAAArF,QAAAA,QAAA,EACtDgK,cAAc,CAACxS,GAAG,CAACyS,WAAW;AAAC,OACzB,CAAC,EACTH,eAAe,CAAClL,MAAM,KAAK,CAAC,IAAIoL,cAAc,CAACpL,MAAM,KAAK,CAAC,gBAC1Dc,cAAA,CAACqG,UAAU,EAAA;AACT1O,QAAAA,SAAS,EAAC,wEAAwE;AAClFsP,QAAAA,MAAM,EAAC,MAAM;QAAA3G,QAAA,EAEZqF,CAAC,CAAC,uCAAuC;OAChC,CAAC,GACX,IAAI;AAAA,KACL,CAAC;AAAA,GACH,CAAC;AAEV,CAAC;;ACtFD;AACA;AACA,IAAMmF,cAAc,GAAG,SAAjBA,cAAcA,CAAGC,IAAI,EAAA;EAAA,OACzBA,IAAI,CACDC,OAAO,CAAC,MAAM,EAAE,GAAG,CAAC,CACpBhB,IAAI,EAAE,CAENgB,OAAO,CAAC,wBAAwB,EAAE,EAAE,CAAC,CACrChB,IAAI,EAAE;AAAA,CAAA;AAEX,IAAMiB,kBAAkB,GAAG,SAArBA,kBAAkBA,CAAG9C,GAAG,EAAI;AAChC,EAAA,IAAMjQ,KAAK,GAAG,CAACiQ,GAAG,IAAIpP,aAAa,CAACG,KAAK,EAAE8R,OAAO,CAAC,GAAG,EAAE,EAAE,CAAC;AAC3D,EAAA,IAAME,IAAI,GACRhT,KAAK,CAACgH,MAAM,KAAK,CAAC,GACdhH,KAAK,CACFiT,KAAK,CAAC,EAAE,CAAC,CACTrT,GAAG,CAAC,UAAAsT,KAAI,EAAA;IAAA,OAAIA,KAAI,GAAGA,KAAI;AAAA,EAAA,CAAA,CAAC,CACxBC,IAAI,CAAC,EAAE,CAAC,GACXnT,KAAK;AACX,EAAA,IAAMoT,IAAG,GAAGC,QAAQ,CAACL,IAAI,EAAE,EAAE,CAAC;EAE9B,OAAO;IACLM,CAAC,EAAE,CAAEF,IAAG,IAAI,EAAE,GAAI,GAAG,IAAI,GAAG;IAC5BG,CAAC,EAAE,CAAEH,IAAG,IAAI,CAAC,GAAI,GAAG,IAAI,GAAG;AAC3BI,IAAAA,CAAC,EAAE,CAACJ,IAAG,GAAG,GAAG,IAAI;GAClB;AACH,CAAC;AAED,IAAMK,gBAAgB,GAAG,SAAnBA,gBAAgBA,CAAI3S,IAAI,EAAEG,IAAI,EAAEC,MAAM,EAAK;EAC/C,IAAMwS,QAAQ,GACZzT,sBAAsB,CAACa,IAAI,CAAC,IAAIb,sBAAsB,CAAC0T,SAAS;AAElE,EAAA,OAAOD,QAAQ,CAAC,CAACzS,IAAI,GAAG,CAAC,GAAG,CAAC,KAAKC,MAAM,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;AACpD,CAAC;AAED,IAAM0S,mBAAmB,GAAG,SAAtBA,mBAAmBA,CAAIC,KAAK,EAAEC,QAAQ,EAAK;EAC/C,IAAMC,IAAI,GAAG,IAAIC,IAAI,CAAC,CAACH,KAAK,CAAC,EAAE;AAAEnF,IAAAA,IAAI,EAAE;AAAkB,GAAC,CAAC;AAC3D,EAAA,IAAMtC,GAAG,GAAG6H,GAAG,CAACC,eAAe,CAACH,IAAI,CAAC;EACrC,IAAMI,IAAI,GAAG1L,MAAM,CAAC2L,QAAQ,CAACC,aAAa,CAAC,GAAG,CAAC;EAC/CF,IAAI,CAACG,IAAI,GAAGlI,GAAG;EACf+H,IAAI,CAACI,QAAQ,GAAGT,QAAQ;EACxBrL,MAAM,CAAC2L,QAAQ,CAACI,IAAI,CAACC,WAAW,CAACN,IAAI,CAAC;EACtCA,IAAI,CAACO,KAAK,EAAE;EACZP,IAAI,CAACQ,MAAM,EAAE;AACbV,EAAAA,GAAG,CAACW,eAAe,CAACxI,GAAG,CAAC;AAC1B,CAAC;;AAED;AACA;AACA;AACO,IAAMyI,iBAAiB,gBAAA,YAAA;EAAA,IAAAzU,KAAA,GAAAkK,iBAAA,cAAAC,mBAAA,CAAAC,IAAA,CAAG,SAAAsK,QAAAA,CAAAjV,IAAA,EAAA;IAAA,IAAAwN,WAAA,EAAApE,QAAA,EAAA8L,QAAA,EAAAjB,QAAA,EAAAkB,YAAA,EAAAC,WAAA,EAAAC,aAAA,EAAAC,GAAA,EAAAC,QAAA,EAAAvB,KAAA,EAAAwB,MAAA,EAAAnX,KAAA,EAAAoX,SAAA,EAAAC,aAAA;AAAA,IAAA,OAAAhL,mBAAA,CAAAG,IAAA,CAAA,SAAA8K,UAAAC,SAAA,EAAA;AAAA,MAAA,OAAA,CAAA,EAAA,QAAAA,SAAA,CAAA5K,IAAA,GAAA4K,SAAA,CAAA3K,IAAA;AAAA,QAAA,KAAA,CAAA;UAC/BuC,WAAW,GAAAxN,IAAA,CAAXwN,WAAW,EACXpE,QAAQ,GAAApJ,IAAA,CAARoJ,QAAQ,EACR8L,QAAQ,GAAAlV,IAAA,CAARkV,QAAQ,EACRjB,QAAQ,GAAAjU,IAAA,CAARiU,QAAQ;AAAA2B,UAAAA,SAAA,CAAA3K,IAAA,GAAA,CAAA;UAAA,OAEmB,OAAO,SAAS,CAAC;AAAA,QAAA,KAAA,CAAA;UAAtCkK,YAAY,GAAAS,SAAA,CAAA7I,IAAA;AACVqI,UAAAA,WAAW,GAAyBD,YAAY,CAAhDC,WAAW,EAAEC,aAAa,GAAUF,YAAY,CAAnCE,aAAa,EAAEC,GAAG,GAAKH,YAAY,CAApBG,GAAG;AAAAM,UAAAA,SAAA,CAAA3K,IAAA,GAAA,CAAA;UAAA,OAEhB4K,KAAK,CAACrI,WAAW,CAAC;AAAA,QAAA,KAAA,CAAA;UAAnC+H,QAAQ,GAAAK,SAAA,CAAA7I,IAAA;UAAA,IACTwI,QAAQ,CAACO,EAAE,EAAA;AAAAF,YAAAA,SAAA,CAAA3K,IAAA,GAAA,EAAA;AAAA,YAAA;AAAA,UAAA;UAAA,MACR,IAAI8K,KAAK,CAAA,gCAAA,CAAA9Q,MAAA,CAAkCsQ,QAAQ,CAACS,MAAM,EAAA,GAAA,CAAG,CAAC;AAAA,QAAA,KAAA,EAAA;AAAAJ,UAAAA,SAAA,CAAA3K,IAAA,GAAA,EAAA;AAAA,UAAA,OAElDsK,QAAQ,CAACU,WAAW,EAAE;AAAA,QAAA,KAAA,EAAA;UAApCjC,KAAK,GAAA4B,SAAA,CAAA7I,IAAA;AAAA6I,UAAAA,SAAA,CAAA3K,IAAA,GAAA,EAAA;AAAA,UAAA,OAEUmK,WAAW,CAACc,IAAI,CAAClC,KAAK,EAAE;AAAEmC,YAAAA,gBAAgB,EAAE;AAAK,WAAC,CAAC;AAAA,QAAA,KAAA,EAAA;UAAlEX,MAAM,GAAAI,SAAA,CAAA7I,IAAA;AACN1O,UAAAA,KAAK,GAAGmX,MAAM,CAACY,QAAQ,EAAE;UAEzBX,SAAS,GAAAY,kBAAA,CACV,IAAIC,GAAG,CACRlN,QAAQ,CAACrJ,GAAG,CAAC,UAAA6D,OAAO,EAAA;AAAA,YAAA,OAClBgQ,gBAAgB,CAAChQ,OAAO,CAAC3C,IAAI,EAAE2C,OAAO,CAACxC,IAAI,EAAEwC,OAAO,CAACvC,MAAM,CAAC;AAAA,UAAA,CAC9D,CACF,CAAC,CAAA;UAAAuU,SAAA,CAAAzK,EAAA,GAGmB9K,MAAM;AAAAuV,UAAAA,SAAA,CAAA3K,IAAA,GAAA,EAAA;AAAA,UAAA,OACpBsL,OAAO,CAACC,GAAG,CACff,SAAS,CAAC1V,GAAG,cAAA,YAAA;YAAA,IAAAqP,KAAA,GAAA3E,iBAAA,cAAAC,mBAAA,CAAAC,IAAA,CAAC,SAAAC,OAAAA,CAAM6L,IAAI,EAAA;AAAA,cAAA,OAAA/L,mBAAA,CAAAG,IAAA,CAAA,SAAAC,SAAAC,QAAA,EAAA;AAAA,gBAAA,OAAA,CAAA,EAAA,QAAAA,QAAA,CAAAC,IAAA,GAAAD,QAAA,CAAAE,IAAA;AAAA,kBAAA,KAAA,CAAA;oBAAAF,QAAA,CAAAI,EAAA,GACtBsL,IAAI;AAAA1L,oBAAAA,QAAA,CAAAE,IAAA,GAAA,CAAA;oBAAA,OACEuK,MAAM,CAACkB,SAAS,CAACrB,aAAa,CAACoB,IAAI,CAAC,CAAC;AAAA,kBAAA,KAAA,CAAA;AAAA1L,oBAAAA,QAAA,CAAA4L,EAAA,GAAA5L,QAAA,CAAAgC,IAAA;oBAAA,OAAAhC,QAAA,CAAA6L,MAAA,CAAA,QAAA,EAAA,CAAA7L,QAAA,CAAAI,EAAA,EAAAJ,QAAA,CAAA4L,EAAA,CAAA,CAAA;AAAA,kBAAA,KAAA,CAAA;AAAA,kBAAA,KAAA,KAAA;oBAAA,OAAA5L,QAAA,CAAAK,IAAA,EAAA;AAAA;AAAA,cAAA,CAAA,EAAAR,OAAA,CAAA;YAAA,CAC5C,CAAA,CAAA;AAAA,YAAA,OAAA,UAAAiM,GAAA,EAAA;AAAA,cAAA,OAAAzH,KAAA,CAAA/D,KAAA,CAAA,IAAA,EAAAnE,SAAA,CAAA;AAAA,YAAA,CAAA;AAAA,UAAA,CAAA,EAAA,CACH,CAAC;AAAA,QAAA,KAAA,EAAA;AAAA0O,UAAAA,SAAA,CAAAe,EAAA,GAAAf,SAAA,CAAA7I,IAAA;AANG2I,UAAAA,aAAa,GAAAE,SAAA,CAAAzK,EAAA,CAAU7K,WAAW,CAAAyH,IAAA,CAAA6N,SAAA,CAAAzK,EAAA,EAAAyK,SAAA,CAAAe,EAAA,CAAA;AASxCvN,UAAAA,QAAQ,CAAC0N,OAAO,CAAC,UAAAlT,OAAO,EAAI;YAC1B,IAAM6F,IAAI,GAAGpL,KAAK,CAACuF,OAAO,CAAC6F,IAAI,GAAG,CAAC,CAAC;YACpC,IAAI,CAACA,IAAI,EAAE;YAEX,IAAMuJ,IAAI,GAAGD,cAAc,CAACmC,QAAQ,CAACtR,OAAO,CAAC,IAAI,EAAE,CAAC;YACpD,IAAI,CAACoP,IAAI,EAAE;AAEX,YAAA,IAAA+D,aAAA,GAAiDtN,IAAI,CAACuN,OAAO,EAAE;cAAhDC,SAAS,GAAAF,aAAA,CAAhBpV,KAAK;cAAqBuV,UAAU,GAAAH,aAAA,CAAlBnV,MAAM;AAChC,YAAA,IAAMX,IAAI,GACRyU,aAAa,CACX9B,gBAAgB,CAAChQ,OAAO,CAAC3C,IAAI,EAAE2C,OAAO,CAACxC,IAAI,EAAEwC,OAAO,CAACvC,MAAM,CAAC,CAC7D;AACH,YAAA,IAAM4N,IAAI,GAAGrL,OAAO,CAAC1C,QAAQ;AAC7B,YAAA,IAAAiW,mBAAA,GAAoBjE,kBAAkB,CAACtP,OAAO,CAACzC,KAAK,CAAC;cAA7CsS,CAAC,GAAA0D,mBAAA,CAAD1D,CAAC;cAAEC,CAAC,GAAAyD,mBAAA,CAADzD,CAAC;cAAEC,CAAC,GAAAwD,mBAAA,CAADxD,CAAC;YACf,IAAMxS,KAAK,GAAGmU,GAAG,CAAC7B,CAAC,EAAEC,CAAC,EAAEC,CAAC,CAAC;AAE1B,YAAA,IAAMyD,OAAO,GAAGxT,OAAO,CAAClE,CAAC,GAAGuX,SAAS;AACrC,YAAA,IAAMI,QAAQ,GAAGzT,OAAO,CAACjC,KAAK,GAAGsV,SAAS;YAC1C,IAAMK,SAAS,GAAGrW,IAAI,CAACsW,iBAAiB,CAACvE,IAAI,EAAE/D,IAAI,CAAC;YAEpD,IAAIvP,CAAC,GAAG0X,OAAO;AACf,YAAA,IAAIxT,OAAO,CAACrC,KAAK,KAAK,QAAQ,EAAE7B,CAAC,GAAG0X,OAAO,GAAG,CAACC,QAAQ,GAAGC,SAAS,IAAI,CAAC,CAAC,KACpE,IAAI1T,OAAO,CAACrC,KAAK,KAAK,OAAO,EAAE7B,CAAC,GAAG0X,OAAO,GAAGC,QAAQ,GAAGC,SAAS;YAEtE,IAAM3X,CAAC,GAAGuX,UAAU,GAAGtT,OAAO,CAACjE,CAAC,GAAGuX,UAAU,GAAGjI,IAAI;AAEpDxF,YAAAA,IAAI,CAAC+N,QAAQ,CAACxE,IAAI,EAAE;AAAEtT,cAAAA,CAAC,EAADA,CAAC;AAAEC,cAAAA,CAAC,EAADA,CAAC;AAAEsP,cAAAA,IAAI,EAAJA,IAAI;AAAEhO,cAAAA,IAAI,EAAJA,IAAI;AAAEE,cAAAA,KAAK,EAALA;AAAM,aAAC,CAAC;YAEhD,IAAIyC,OAAO,CAACtC,SAAS,EAAE;AACrB,cAAA,IAAMmW,KAAK,GAAG9X,CAAC,GAAGsP,IAAI,GAAG,GAAG;cAC5BxF,IAAI,CAACiO,QAAQ,CAAC;AACZC,gBAAAA,KAAK,EAAE;AAAEjY,kBAAAA,CAAC,EAADA,CAAC;AAAEC,kBAAAA,CAAC,EAAE8X;iBAAO;AACtBG,gBAAAA,GAAG,EAAE;kBAAElY,CAAC,EAAEA,CAAC,GAAG4X,SAAS;AAAE3X,kBAAAA,CAAC,EAAE8X;iBAAO;gBACnCI,SAAS,EAAEnV,IAAI,CAACD,GAAG,CAAC,GAAG,EAAEwM,IAAI,GAAG,IAAI,CAAC;AACrC9N,gBAAAA,KAAK,EAALA;AACF,eAAC,CAAC;AACJ,YAAA;AACF,UAAA,CAAC,CAAC;UAACyU,SAAA,CAAAkC,EAAA,GAEH/D,mBAAmB;AAAA6B,UAAAA,SAAA,CAAA3K,IAAA,GAAA,EAAA;AAAA,UAAA,OAAOuK,MAAM,CAACuC,IAAI,EAAE;AAAA,QAAA,KAAA,EAAA;AAAAnC,UAAAA,SAAA,CAAAoC,EAAA,GAAApC,SAAA,CAAA7I,IAAA;UAAA6I,SAAA,CAAAqC,EAAA,GAAEhE,QAAQ;UAAA,IAAA2B,SAAA,CAAAkC,EAAA,EAAAlC,SAAA,CAAAoC,EAAA,EAAApC,SAAA,CAAAqC,EAAA,CAAA;AAAA,QAAA,KAAA,EAAA;AAAA,QAAA,KAAA,KAAA;UAAA,OAAArC,SAAA,CAAAxK,IAAA,EAAA;AAAA;AAAA,IAAA,CAAA,EAAA6J,QAAA,CAAA;EAAA,CAClD,CAAA,CAAA;EAAA,OAAA,SA3EYD,iBAAiBA,CAAAkD,EAAA,EAAA;AAAA,IAAA,OAAA3X,KAAA,CAAA8K,KAAA,CAAA,IAAA,EAAAnE,SAAA,CAAA;AAAA,EAAA,CAAA;AAAA,CAAA,EA2E7B;;ACvHD,IAAMiR,cAAc,GAAG,SAAjBA,cAAcA,CAAAnY,IAAA,EAMd;AAAA,EAAA,IALJoJ,QAAQ,GAAApJ,IAAA,CAARoJ,QAAQ;IACRgP,WAAW,GAAApY,IAAA,CAAXoY,WAAW;IACXC,aAAa,GAAArY,IAAA,CAAbqY,aAAa;IACb/O,YAAY,GAAAtJ,IAAA,CAAZsJ,YAAY;IACZsE,CAAC,GAAA5N,IAAA,CAAD4N,CAAC;AAED,EAAA,IAAArJ,SAAA,GAA0CC,cAAQ,CAAC,KAAK,CAAC;IAAAC,UAAA,GAAAC,cAAA,CAAAH,SAAA,EAAA,CAAA,CAAA;AAAlD+T,IAAAA,aAAa,GAAA7T,UAAA,CAAA,CAAA,CAAA;AAAE8T,IAAAA,gBAAgB,GAAA9T,UAAA,CAAA,CAAA,CAAA;AAEtC,EAAA,IAAM+T,WAAW,gBAAA,YAAA;IAAA,IAAAjY,KAAA,GAAAkK,iBAAA,cAAAC,mBAAA,CAAAC,IAAA,CAAG,SAAAC,OAAAA,GAAA;AAAA,MAAA,IAAA6N,qBAAA;AAAA,MAAA,IAAAjL,WAAA;AAAA,MAAA,OAAA9C,mBAAA,CAAAG,IAAA,CAAA,SAAAC,SAAAC,QAAA,EAAA;AAAA,QAAA,OAAA,CAAA,EAAA,QAAAA,QAAA,CAAAC,IAAA,GAAAD,QAAA,CAAAE,IAAA;AAAA,UAAA,KAAA,CAAA;AACZuC,YAAAA,WAAW,GAAG4K,WAAW,KAAA,IAAA,IAAXA,WAAW,gBAAAK,qBAAA,GAAXL,WAAW,CAAEM,YAAY,MAAA,IAAA,IAAAD,qBAAA,KAAA,MAAA,GAAA,MAAA,GAAzBA,qBAAA,CAA2BlM,GAAG;AAAA,YAAA,IAAA,EAC9C,CAACiB,WAAW,IAAI,CAAC6K,aAAa,CAAA,EAAA;AAAAtN,cAAAA,QAAA,CAAAE,IAAA,GAAA,CAAA;AAAA,cAAA;AAAA,YAAA;YAAA,OAAAF,QAAA,CAAA6L,MAAA,CAAA,QAAA,CAAA;AAAA,UAAA,KAAA,CAAA;YAElC2B,gBAAgB,CAAC,IAAI,CAAC;AAACxN,YAAAA,QAAA,CAAAC,IAAA,GAAA,CAAA;AAAAD,YAAAA,QAAA,CAAAE,IAAA,GAAA,CAAA;AAAA,YAAA,OAGf+J,iBAAiB,CAAC;AACtBxH,cAAAA,WAAW,EAAXA,WAAW;AACXpE,cAAAA,QAAQ,EAARA,QAAQ;AACR8L,cAAAA,QAAQ,EAAE5L,YAAY;AACtB2K,cAAAA,QAAQ,EAAE0E,qCAAmB,CAACP,WAAW,EAAEC,aAAa;AAC1D,aAAC,CAAC;AAAA,UAAA,KAAA,CAAA;AAAAtN,YAAAA,QAAA,CAAAE,IAAA,GAAA,EAAA;AAAA,YAAA;AAAA,UAAA,KAAA,CAAA;AAAAF,YAAAA,QAAA,CAAAC,IAAA,GAAA,CAAA;YAAAD,QAAA,CAAAI,EAAA,GAAAJ,QAAA,CAAA,OAAA,CAAA,CAAA,CAAA,CAAA;AAEF6N,YAAAA,MAAM,CAACra,KAAK,CAAAwM,QAAA,CAAAI,EAAM,CAAC;AACnB0N,YAAAA,MAAM,CAACta,KAAK,CAACqP,CAAC,CAAC,4CAA4C,CAAC,CAAC;AAAC,UAAA,KAAA,EAAA;AAAA7C,YAAAA,QAAA,CAAAC,IAAA,GAAA,EAAA;YAE9DuN,gBAAgB,CAAC,KAAK,CAAC;YAAC,OAAAxN,QAAA,CAAA+N,MAAA,CAAA,EAAA,CAAA;AAAA,UAAA,KAAA,EAAA;AAAA,UAAA,KAAA,KAAA;YAAA,OAAA/N,QAAA,CAAAK,IAAA,EAAA;AAAA;AAAA,MAAA,CAAA,EAAAR,OAAA,EAAA,IAAA,EAAA,CAAA,CAAA,CAAA,EAAA,CAAA,EAAA,EAAA,EAAA,EAAA,CAAA,CAAA,CAAA;IAAA,CAE3B,CAAA,CAAA;AAAA,IAAA,OAAA,SAnBK4N,WAAWA,GAAA;AAAA,MAAA,OAAAjY,KAAA,CAAA8K,KAAA,CAAA,IAAA,EAAAnE,SAAA,CAAA;AAAA,IAAA,CAAA;EAAA,CAAA,EAmBhB;EAED,OAAO;AAAEsR,IAAAA,WAAW,EAAXA,WAAW;AAAEF,IAAAA,aAAa,EAAbA;GAAe;AACvC,CAAC;;AC7BD,IAAMS,oBAAoB,GAAG,SAAvBA,oBAAoBA,CAAA/Y,IAAA,EAA+C;AAAA,EAAA,IAAAyY,qBAAA;AAAA,EAAA,IAAzCO,UAAU,GAAAhZ,IAAA,CAAVgZ,UAAU;IAAEC,UAAU,GAAAjZ,IAAA,CAAViZ,UAAU;IAAEC,OAAO,GAAAlZ,IAAA,CAAPkZ,OAAO;IAAEtL,CAAC,GAAA5N,IAAA,CAAD4N,CAAC;EAChE,IAAAuL,oBAAA,GACEC,qCAAmB,CAAC;AAAEJ,MAAAA,UAAU,EAAVA,UAAU;AAAEE,MAAAA,OAAO,EAAPA,OAAO;AAAED,MAAAA,UAAU,EAAVA;AAAW,KAAC,CAAC;IAD5CI,gBAAgB,GAAAF,oBAAA,CAAtBG,IAAI;IAA+BC,iBAAiB,GAAAJ,oBAAA,CAA5B7a,SAAS;EAGzC,IAAM8Z,WAAW,GAAGiB,gBAAgB,KAAA,IAAA,IAAhBA,gBAAgB,KAAA,MAAA,GAAA,MAAA,GAAhBA,gBAAgB,CAAE9E,QAAQ;EAE9C,IAAAiF,qBAAA,GAAsDC,sCAAoB,CAAC;AACzET,MAAAA,UAAU,EAAVA,UAAU;AACVE,MAAAA,OAAO,EAAPA,OAAO;AACPtJ,MAAAA,OAAO,EAAE;QACP8J,SAAS,EAAE,SAAXA,SAASA,GAAA;UAAA,OACPb,MAAM,CAACc,OAAO,CAAC/L,CAAC,CAAC,0CAA0C,CAAC,CAAC;AAAA,QAAA,CAAA;AAC/DgM,QAAAA,OAAO,EAAE,SAATA,OAAOA,CAAErb,KAAK,EAAA;AAAA,UAAA,OACZsa,MAAM,CAACta,KAAK,CACVsb,+CAA6B,CAC3Btb,KAAK,EACLqP,CAAC,CAAC,wCAAwC,CAC5C,CACF,CAAC;AAAA,QAAA;AACL;AACF,KAAC,CAAC;IAdckM,YAAY,GAAAN,qBAAA,CAApBO,MAAM;IAA2BC,QAAQ,GAAAR,qBAAA,CAAnBS,SAAS;EAgBvC,IAAAC,sBAAA,GAAmCT,sCAAoB,CAAC;AACtDT,MAAAA,UAAU,EAAVA,UAAU;AACVE,MAAAA,OAAO,EAAPA,OAAO;AACPtJ,MAAAA,OAAO,EAAE;QACP8J,SAAS,EAAE,SAAXA,SAASA,GAAA;UAAA,OACPb,MAAM,CAACc,OAAO,CAAC/L,CAAC,CAAC,sCAAsC,CAAC,CAAC;AAAA,QAAA,CAAA;AAC3DgM,QAAAA,OAAO,EAAE,SAATA,OAAOA,CAAErb,KAAK,EAAA;AAAA,UAAA,OACZsa,MAAM,CAACta,KAAK,CACVsb,+CAA6B,CAC3Btb,KAAK,EACLqP,CAAC,CAAC,oCAAoC,CACxC,CACF,CAAC;AAAA,QAAA;AACL;AACF,KAAC,CAAC;IAdcuM,cAAc,GAAAD,sBAAA,CAAtBH,MAAM;AAgBd,EAAA,IAAMK,oBAAoB,GAAG,SAAvBA,oBAAoBA,CAAA7Z,KAAA,EAAgC;AAAA,IAAA,IAA1B6I,QAAQ,GAAA7I,KAAA,CAAR6I,QAAQ;MAAEsQ,SAAS,GAAAnZ,KAAA,CAATmZ,SAAS;AACjDI,IAAAA,YAAY,CAAC;AAAEb,MAAAA,UAAU,EAAVA,UAAU;AAAEoB,MAAAA,OAAO,EAAE;AAAEjR,QAAAA,QAAQ,EAARA;AAAS;AAAE,KAAC,EAAE;AAAEsQ,MAAAA,SAAS,EAATA;AAAU,KAAC,CAAC;EACpE,CAAC;AAED,EAAA,IAAMY,iBAAiB,GAAG,SAApBA,iBAAiBA,CAAG7D,IAAI,EAAI;AAChC,IAAA,IAAM8D,WAAW,GAAG9D,IAAI,CAACxE,IAAI,EAAE;AAE/BkI,IAAAA,cAAc,CAAC;AACblB,MAAAA,UAAU,EAAVA,UAAU;AACVoB,MAAAA,OAAO,EAAE;AACP5D,QAAAA,IAAI,EAAE8D,WAAW;QACjBC,cAAc,EAAEC,6CAA2B,CAACF,WAAW;AACzD;AACF,KAAC,CAAC;EACJ,CAAC;EAED,OAAO;IACLG,YAAY,EAAE,CAAAtC,WAAW,KAAA,IAAA,IAAXA,WAAW,uBAAXA,WAAW,CAAE3B,IAAI,KAAI,EAAE;AACrC8C,IAAAA,iBAAiB,EAAjBA,iBAAiB;AACjBS,IAAAA,QAAQ,EAARA,QAAQ;AACR5B,IAAAA,WAAW,EAAXA,WAAW;AACXkC,IAAAA,iBAAiB,EAAjBA,iBAAiB;AACjBF,IAAAA,oBAAoB,EAApBA,oBAAoB;AACpB5M,IAAAA,WAAW,EAAE4K,WAAW,KAAA,IAAA,IAAXA,WAAW,gBAAAK,qBAAA,GAAXL,WAAW,CAAEM,YAAY,MAAA,IAAA,IAAAD,qBAAA,KAAA,MAAA,GAAA,MAAA,GAAzBA,qBAAA,CAA2BlM;GACzC;AACH,CAAC;;;;ACtED,IAAMoO,eAAe,GAAG,SAAlBA,eAAeA,CAAGxa,KAAK,EAAI;EAC/B,IAAMya,OAAO,GAAGhS,MAAM,CAAC2L,QAAQ,CAACC,aAAa,CAAC,KAAK,CAAC;AACpDoG,EAAAA,OAAO,CAACC,SAAS,GAAG1a,KAAK,IAAI,EAAE;EAE/B,OAAOya,OAAO,CAACE,WAAW,IAAIF,OAAO,CAACG,SAAS,IAAI,EAAE;AACvD,CAAC;AAED,IAAMC,UAAU,GAAG,SAAbA,UAAUA,GAAA;EAAA,IAAAC,cAAA,EAAAC,qBAAA;AAAA,EAAA,OACd,EAAAD,cAAA,GAAArS,MAAM,CAACuS,MAAM,MAAA,IAAA,IAAAF,cAAA,KAAA,MAAA,IAAA,CAAAC,qBAAA,GAAbD,cAAA,CAAeG,UAAU,MAAA,IAAA,IAAAF,qBAAA,uBAAzBA,qBAAA,CAAAnT,IAAA,CAAAkT,cAA4B,CAAC,KAAA,EAAA,CAAAhW,MAAA,CAAOoW,IAAI,CAACC,GAAG,EAAE,EAAA,GAAA,CAAA,CAAArW,MAAA,CAAIvC,IAAI,CAAC6Y,MAAM,EAAE,CAAE;AAAA,CAAA;;AAEnE;AACO,IAAMC,iBAAiB,GAAG,SAApBA,iBAAiBA,GAAA;AAAA,EAAA,IAAIC,MAAM,GAAAvU,SAAA,CAAAC,MAAA,GAAA,CAAA,IAAAD,SAAA,CAAA,CAAA,CAAA,KAAAE,SAAA,GAAAF,SAAA,CAAA,CAAA,CAAA,GAAG,EAAE;AAAA,EAAA,OAC3CuU,MAAM,CACHnJ,MAAM,CAAC,UAAA1B,KAAK,EAAA;AAAA,IAAA,OAAIA,KAAK;AAAA,EAAA,CAAA,CAAC,CACtB7Q,GAAG,CAAC,UAAA6Q,KAAK,EAAA;IAAA,OAAK;MACb6B,MAAM,EAAEhU,aAAa,CAACC,MAAM;AAC5Be,MAAAA,GAAG,EAAEmR,KAAK,CAACnR,GAAG,IAAImR,KAAK,CAAC8K,IAAI;MAC5BC,QAAQ,EAAE/K,KAAK,CAAC+K,QAAQ,IAAI/K,KAAK,CAACrJ,EAAE,IAAI,IAAI;AAC5CmU,MAAAA,IAAI,EAAE9K,KAAK,CAAC8K,IAAI,IAAI9K,KAAK,CAACnR,GAAG;MAC7BQ,KAAK,EAAE0a,eAAe,CAAC/J,KAAK,CAAC3Q,KAAK,IAAI,EAAE,CAAC;MACzC+G,IAAI,EAAE4J,KAAK,CAAC5J,IAAI;MAChB7E,IAAI,EAAEyO,KAAK,CAACzO,IAAI;MAChByZ,SAAS,EAAEhL,KAAK,CAACgL,SAAS,IAAIhL,KAAK,CAAC5J,IAAI,IAAI;KAC7C;AAAA,EAAA,CAAC,CAAC;AAAA,CAAA;AAEA,IAAM6U,YAAY,GAAG,SAAfA,YAAYA,CAAA7b,IAAA,EAAA;AAAA,EAAA,IAAA8b,eAAA;AAAA,EAAA,IAAMlL,KAAK,GAAA5Q,IAAA,CAAL4Q,KAAK;IAAEnH,IAAI,GAAAzJ,IAAA,CAAJyJ,IAAI;IAAEtG,KAAK,GAAAnD,IAAA,CAALmD,KAAK;AAAA,EAAA,OAAA4B,eAAA,CAAAA,eAAA,CAAAA,eAAA,CAAA;IAC/CwC,EAAE,EAAEyT,UAAU,EAAE;IAChBvI,MAAM,EAAE7B,KAAK,CAAC6B,MAAM;IACpBsJ,SAAS,EAAEnL,KAAK,CAACnR,GAAG;IACpBkc,QAAQ,EAAA,CAAAG,eAAA,GAAElL,KAAK,CAAC+K,QAAQ,MAAA,IAAA,IAAAG,eAAA,KAAA,MAAA,GAAAA,eAAA,GAAI,IAAI;IAChC7b,KAAK,EAAE2Q,KAAK,CAAC3Q,KAAK;IAClB+G,IAAI,EAAE4J,KAAK,CAAC5J,IAAI;AAChByC,IAAAA,IAAI,EAAJA;GAAI,EACDjI,WAAW,GACXR,aAAa,CAAA,EAAA,EAAA,EAAA;IAChBE,QAAQ,EAAEgC,0BAA0B,CAACC,KAAK;AAAC,GAAA,CAAA;AAAA,CAC3C;;;;AC9BF,IAAM6Y,mBAAmB,GAAG,SAAtBA,mBAAmBA,CAAAhc,IAAA,EAAoC;AAAA,EAAA,IAA9BiZ,UAAU,GAAAjZ,IAAA,CAAViZ,UAAU;IAAEb,WAAW,GAAApY,IAAA,CAAXoY,WAAW;AACpD,EAAA,IAAA7T,SAAA,GAAgCC,cAAQ,CAAC,EAAE,CAAC;IAAAC,UAAA,GAAAC,cAAA,CAAAH,SAAA,EAAA,CAAA,CAAA;AAArC6E,IAAAA,QAAQ,GAAA3E,UAAA,CAAA,CAAA,CAAA;AAAEwX,IAAAA,WAAW,GAAAxX,UAAA,CAAA,CAAA,CAAA;AAC5B,EAAA,IAAAyX,UAAA,GAAoC1X,cAAQ,CAAC,IAAI,CAAC;IAAA2X,UAAA,GAAAzX,cAAA,CAAAwX,UAAA,EAAA,CAAA,CAAA;AAA3C7S,IAAAA,UAAU,GAAA8S,UAAA,CAAA,CAAA,CAAA;AAAEC,IAAAA,aAAa,GAAAD,UAAA,CAAA,CAAA,CAAA;EAChC,IAAAE,UAAA,GAAoC7X,cAAQ,CAAC,YAAA;MAAA,OAAM,IAAI4J,GAAG,EAAE;IAAA,CAAA,CAAC;IAAAkO,UAAA,GAAA5X,cAAA,CAAA2X,UAAA,EAAA,CAAA,CAAA;AAAtDE,IAAAA,UAAU,GAAAD,UAAA,CAAA,CAAA,CAAA;AAAEE,IAAAA,aAAa,GAAAF,UAAA,CAAA,CAAA,CAAA;AAChC,EAAA,IAAAG,UAAA,GAA8BjY,cAAQ,CAAC,KAAK,CAAC;IAAAkY,UAAA,GAAAhY,cAAA,CAAA+X,UAAA,EAAA,CAAA,CAAA;AAAtCE,IAAAA,OAAO,GAAAD,UAAA,CAAA,CAAA,CAAA;AAAEE,IAAAA,UAAU,GAAAF,UAAA,CAAA,CAAA,CAAA;AAE1B,EAAA,IAAMG,eAAe,GAAGxY,YAAM,CAAC,IAAI,CAAC;AACpC,EAAA,IAAMyY,cAAc,GAAGzY,YAAM,CAAC,IAAI,CAAC;AAEnC2F,EAAAA,eAAS,CAAC,YAAM;IACd,IAAI,EAAEoO,WAAW,IAAI0E,cAAc,CAACnW,OAAO,KAAKsS,UAAU,CAAC,EAAE;IAE7D6D,cAAc,CAACnW,OAAO,GAAGsS,UAAU;AACnCgD,IAAAA,WAAW,CAAC7D,WAAW,CAAChP,QAAQ,IAAI,EAAE,CAAC;IACvCwT,UAAU,CAAC,KAAK,CAAC;AACnB,EAAA,CAAC,EAAE,CAACxE,WAAW,EAAEa,UAAU,CAAC,CAAC;EAE7B,IAAM8D,eAAe,GAAGC,kBAAQ,CAAC3T,UAAU,EAAED,QAAQ,CAAC,IAAI,IAAI;AAE9D,EAAA,IAAM6T,cAAc,GAAG,SAAjBA,cAAcA,CAAGC,OAAO,EAAI;IAChCjB,WAAW,CAACiB,OAAO,CAAC;IACpBN,UAAU,CAAC,IAAI,CAAC;EAClB,CAAC;AAED,EAAA,IAAMO,cAAc,GAAG,SAAjBA,cAAcA,CAAGvM,KAAK,EAAI;IAC9B,IAAMhN,OAAO,GAAGiY,YAAY,CAAC;AAAEjL,MAAAA,KAAK,EAALA,KAAK;AAAEnH,MAAAA,IAAI,EAAE,CAAC;AAAEtG,MAAAA,KAAK,EAAEoZ,UAAU,CAACrO,GAAG,CAAC,CAAC;AAAE,KAAC,CAAC;AAC1E+O,IAAAA,cAAc,CAACG,YAAM,CAACxZ,OAAO,CAAC,CAAC;AAC/BwY,IAAAA,aAAa,CAACxY,OAAO,CAAC2D,EAAE,CAAC;EAC3B,CAAC;AAED,EAAA,IAAM8V,eAAe,GAAG,SAAlBA,eAAeA,CAAA9c,KAAA,EAAoC;AAAA,IAAA,IAA9BmJ,UAAU,GAAAnJ,KAAA,CAAVmJ,UAAU;MAAEvG,KAAK,GAAA5C,KAAA,CAAL4C,KAAK;MAAEzD,CAAC,GAAAa,KAAA,CAADb,CAAC;MAAEC,CAAC,GAAAY,KAAA,CAADZ,CAAC;AAChD,IAAA,IAAMiR,KAAK,GAAGiM,eAAe,CAAClW,OAAO;IACrC,IAAI,CAACiK,KAAK,EAAE;AAEZ,IAAA,IAAMhN,OAAO,GAAAmB,aAAA,CAAAA,aAAA,CAAA,EAAA,EACR8W,YAAY,CAAC;AAAEjL,MAAAA,KAAK,EAALA,KAAK;AAAEnH,MAAAA,IAAI,EAAEC,UAAU;AAAEvG,MAAAA,KAAK,EAALA;AAAM,KAAC,CAAC,CAAA,EAAA,EAAA,EAAA;AACnDzD,MAAAA,CAAC,EAAE6C,KAAK,CAAC7C,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG8B,WAAW,CAACG,KAAK,CAAC;MACrChC,CAAC,EAAE4C,KAAK,CAAC5C,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG6B,WAAW,CAACI,MAAM;KAAC,CACvC;AAEDqb,IAAAA,cAAc,CAACG,YAAM,CAACxZ,OAAO,CAAC,CAAC;AAC/BwY,IAAAA,aAAa,CAACxY,OAAO,CAAC2D,EAAE,CAAC;EAC3B,CAAC;AAED,EAAA,IAAM+V,mBAAmB,GAAG,SAAtBA,mBAAmBA,CAAI/V,EAAE,EAAEtB,KAAK,EAAA;IAAA,OACpCgX,cAAc,CAAC,UAAAjS,IAAI,EAAA;AAAA,MAAA,OACjBA,IAAI,CAACjL,GAAG,CAAC,UAAA6D,OAAO,EAAA;AAAA,QAAA,OACdA,OAAO,CAAC2D,EAAE,KAAKA,EAAE,GAAAxC,aAAA,CAAAA,aAAA,CAAA,EAAA,EAAQnB,OAAO,CAAA,EAAKqC,KAAK,IAAKrC,OAAO;AAAA,MAAA,CACxD,CAAC;AAAA,IAAA,CACH,CAAC;AAAA,EAAA,CAAA;EAEH,IAAM2Z,qBAAqB,GAAG,SAAxBA,qBAAqBA,CAAI7T,UAAU,EAAEvG,KAAK,EAAK;IACnDqZ,aAAa,CAAC,UAAAxR,IAAI,EAAI;MACpB,IAAIA,IAAI,CAACkD,GAAG,CAACxE,UAAU,CAAC,KAAKvG,KAAK,EAAE,OAAO6H,IAAI;AAE/C,MAAA,IAAMwS,cAAc,GAAG,IAAIpP,GAAG,CAACpD,IAAI,CAAC;AACpCwS,MAAAA,cAAc,CAACrP,GAAG,CAACzE,UAAU,EAAEvG,KAAK,CAAC;AAErC,MAAA,OAAOqa,cAAc;AACvB,IAAA,CAAC,CAAC;EACJ,CAAC;AAED,EAAA,IAAMC,mBAAmB,GAAG,SAAtBA,mBAAmBA,CAAGlW,EAAE,EAAI;IAChC0V,cAAc,CAAC,UAAAjS,IAAI,EAAA;AAAA,MAAA,OAAI0S,oBAAU,CAACnW,EAAE,EAAEyD,IAAI,CAAC;IAAA,CAAA,CAAC;IAC5CoR,aAAa,CAAC,UAAAzV,OAAO,EAAA;AAAA,MAAA,OAAKA,OAAO,KAAKY,EAAE,GAAG,IAAI,GAAGZ,OAAO;AAAA,IAAA,CAAC,CAAC;EAC7D,CAAC;AAED,EAAA,IAAMgX,kBAAkB,GAAG,SAArBA,kBAAkBA,GAAS;IAC/Bd,eAAe,CAAClW,OAAO,GAAG,IAAI;EAChC,CAAC;AAED,EAAA,IAAMiX,oBAAoB,GAAG,SAAvBA,oBAAoBA,CAAGhN,KAAK,EAAI;IACpCiM,eAAe,CAAClW,OAAO,GAAGiK,KAAK;EACjC,CAAC;EAED,OAAO;AACLuM,IAAAA,cAAc,EAAdA,cAAc;AACdG,IAAAA,mBAAmB,EAAnBA,mBAAmB;AACnBK,IAAAA,kBAAkB,EAAlBA,kBAAkB;AAClBC,IAAAA,oBAAoB,EAApBA,oBAAoB;AACpBP,IAAAA,eAAe,EAAfA,eAAe;AACfE,IAAAA,qBAAqB,EAArBA,qBAAqB;AACrBE,IAAAA,mBAAmB,EAAnBA,mBAAmB;AACnBd,IAAAA,OAAO,EAAPA,OAAO;AACPvT,IAAAA,QAAQ,EAARA,QAAQ;AACRC,IAAAA,UAAU,EAAVA,UAAU;AACV0T,IAAAA,eAAe,EAAfA,eAAe;AACfH,IAAAA,UAAU,EAAVA,UAAU;AACVR,IAAAA,aAAa,EAAbA;GACD;AACH,CAAC;;AC/FD,IAAMyB,oBAAoB,GAAG,SAAvBA,oBAAoBA,CAAA7d,IAAA,EAMpB;AAAA,EAAA,IALJ8d,cAAc,GAAA9d,IAAA,CAAd8d,cAAc;IACdC,YAAY,GAAA/d,IAAA,CAAZ+d,YAAY;IACZC,mBAAmB,GAAAhe,IAAA,CAAnBge,mBAAmB;IACnBC,WAAW,GAAAje,IAAA,CAAXie,WAAW;IACX7B,aAAa,GAAApc,IAAA,CAAboc,aAAa;AAEb,EAAA,IAAA7X,SAAA,GAAgDC,cAAQ,CAACyZ,WAAW,CAAC;IAAAxZ,UAAA,GAAAC,cAAA,CAAAH,SAAA,EAAA,CAAA,CAAA;AAA9D2Z,IAAAA,gBAAgB,GAAAzZ,UAAA,CAAA,CAAA,CAAA;AAAE0Z,IAAAA,mBAAmB,GAAA1Z,UAAA,CAAA,CAAA,CAAA;AAC5C,EAAA,IAAAyX,UAAA,GAAkC1X,cAAQ,CAACvG,YAAY,CAACC,GAAG,CAAC;IAAAie,UAAA,GAAAzX,cAAA,CAAAwX,UAAA,EAAA,CAAA,CAAA;AAArDkC,IAAAA,SAAS,GAAAjC,UAAA,CAAA,CAAA,CAAA;AAAEkC,IAAAA,YAAY,GAAAlC,UAAA,CAAA,CAAA,CAAA;AAE9B,EAAA,IAAMtY,IAAI,GAAGia,cAAc,IAAIM,SAAS;AACxC,EAAA,IAAMvZ,SAAS,GAAGhB,IAAI,KAAK5F,YAAY,CAACE,OAAO;AAC/C,EAAA,IAAMmgB,kBAAkB,GAAGN,mBAAmB,GAC1CC,WAAW,GACXC,gBAAgB;AAEpBlU,EAAAA,eAAS,CAAC,YAAM;IACd,IAAI,CAACnF,SAAS,EAAE;IAEhBuX,aAAa,CAAC,IAAI,CAAC;IACnB+B,mBAAmB,CAAC,CAAC,CAAC;AACtBH,IAAAA,mBAAmB,aAAnBA,mBAAmB,KAAA,MAAA,IAAnBA,mBAAmB,CAAG,CAAC,CAAC;EAC1B,CAAC,EAAE,CAACnZ,SAAS,EAAEmZ,mBAAmB,EAAE5B,aAAa,CAAC,CAAC;AAEnD,EAAA,IAAMmC,cAAc,GAAG,SAAjBA,cAAcA,CAAG9U,IAAI,EAAI;IAC7B0U,mBAAmB,CAAC1U,IAAI,CAAC;AACzBuU,IAAAA,mBAAmB,aAAnBA,mBAAmB,KAAA,MAAA,IAAnBA,mBAAmB,CAAGvU,IAAI,CAAC;EAC7B,CAAC;AAED,EAAA,IAAM+U,gBAAgB,GAAG,SAAnBA,gBAAgBA,CAAGC,QAAQ,EAAI;IACnCJ,YAAY,CAACI,QAAQ,CAAC;AACtBV,IAAAA,YAAY,aAAZA,YAAY,KAAA,MAAA,IAAZA,YAAY,CAAGU,QAAQ,CAAC;EAC1B,CAAC;EAED,OAAO;AACLH,IAAAA,kBAAkB,EAAlBA,kBAAkB;AAClBE,IAAAA,gBAAgB,EAAhBA,gBAAgB;AAChB3Z,IAAAA,SAAS,EAATA,SAAS;AACThB,IAAAA,IAAI,EAAJA,IAAI;AACJ0a,IAAAA,cAAc,EAAdA;GACD;AACH,CAAC;;ACzCD,IAAMG,YAAY,GAAG,SAAfA,YAAYA,CAAA1e,IAAA,EAAmD;AAAA,EAAA,IAA7CyJ,IAAI,GAAAzJ,IAAA,CAAJyJ,IAAI;IAAEkV,KAAK,GAAA3e,IAAA,CAAL2e,KAAK;IAAErgB,SAAS,GAAA0B,IAAA,CAAT1B,SAAS;IAAEsgB,MAAM,GAAA5e,IAAA,CAAN4e,MAAM;IAAEC,MAAM,GAAA7e,IAAA,CAAN6e,MAAM;AAC5D,EAAA,IAAAnR,eAAA,GAAcC,2BAAc,EAAE;IAAtBC,CAAC,GAAAF,eAAA,CAADE,CAAC;AAET,EAAA,IAAI,CAACtP,SAAS,IAAIqgB,KAAK,KAAK,CAAC,EAAE;AAC7B,IAAA,oBACE1W,cAAA,CAAA,KAAA,EAAA;AAAKrI,MAAAA,SAAS,EAAC,sGAAsG;MAAA2I,QAAA,eACnHN,cAAA,CAACqG,UAAU,EAAA;AAAC1O,QAAAA,SAAS,EAAC,wBAAwB;AAACe,QAAAA,KAAK,EAAC,OAAO;QAAA4H,QAAA,EACzDqF,CAAC,CAAC,oDAAoD;OAC7C;AAAC,KACV,CAAC;AAEV,EAAA;AAEA,EAAA,oBACEpF,eAAA,CAAA,KAAA,EAAA;AAAK5I,IAAAA,SAAS,EAAC,uHAAuH;IAAA2I,QAAA,EAAA,cACpIN,cAAA,CAACuI,MAAM,EAAA;AACLsO,MAAAA,QAAQ,EAAErV,IAAI,IAAI,CAAC,IAAInL,SAAU;AACjC6D,MAAAA,IAAI,EAAE4c,IAAK;AACX9P,MAAAA,IAAI,EAAC,OAAO;AACZtO,MAAAA,KAAK,EAAC,MAAM;AACZ8N,MAAAA,OAAO,EAAEmQ;AAAO,KACjB,CAAC,eACF3W,cAAA,CAACqG,UAAU,EAAA;AAAC1O,MAAAA,SAAS,EAAC,wBAAwB;AAACe,MAAAA,KAAK,EAAC,OAAO;AAAA4H,MAAAA,QAAA,EACzDqF,CAAC,CAAC,8CAA8C,EAAE;AACjDnE,QAAAA,IAAI,EAAJA,IAAI;AACJkV,QAAAA,KAAK,EAALA;OACD;AAAC,KACQ,CAAC,eACb1W,cAAA,CAACuI,MAAM,EAAA;AACLsO,MAAAA,QAAQ,EAAErV,IAAI,IAAIkV,KAAK,IAAIrgB,SAAU;AACrC6D,MAAAA,IAAI,EAAE6c,KAAM;AACZ/P,MAAAA,IAAI,EAAC,OAAO;AACZtO,MAAAA,KAAK,EAAC,MAAM;AACZ8N,MAAAA,OAAO,EAAEoQ;AAAO,KACjB,CAAC;AAAA,GACC,CAAC;AAEV,CAAC;;ACrCD,IAAMI,aAAY,GAAG,SAAfA,YAAYA,CAAG9e,KAAK,EAAI;EAC5B,IAAIA,KAAK,KAAK,IAAI,IAAIA,KAAK,KAAKiH,SAAS,EAAE,OAAO,EAAE;AAEpD,EAAA,IAAI8X,KAAK,CAACC,OAAO,CAAChf,KAAK,CAAC,EAAE;AACxB,IAAA,OAAOA,KAAK,CAACJ,GAAG,CAACkf,aAAY,CAAC,CAAC3M,MAAM,CAAC8M,OAAO,CAAC,CAAC9L,IAAI,CAAC,IAAI,CAAC;AAC3D,EAAA;AAEA,EAAA,IAAI+L,OAAA,CAAOlf,KAAK,CAAA,KAAK,QAAQ,EAAE;IAC7B,IAAI,OAAO,IAAIA,KAAK,EAAE,OAAO8e,aAAY,CAAC9e,KAAK,CAACA,KAAK,CAAC;IAEtD,IAAI,OAAO,IAAIA,KAAK,EAAE,OAAO8e,aAAY,CAAC9e,KAAK,CAACF,KAAK,CAAC;AAEtD,IAAA,OAAO,EAAE;AACX,EAAA;EAEA,OAAOqf,MAAM,CAACnf,KAAK,CAAC;AACtB,CAAC;;AAED;AACA;AACO,IAAMof,mBAAmB,GAAG,SAAtBA,mBAAmBA,CAAAvf,IAAA,EAK1B;AAAA,EAAA,IAJJ4D,OAAO,GAAA5D,IAAA,CAAP4D,OAAO;IAAA4b,oBAAA,GAAAxf,IAAA,CACPyf,eAAe;AAAfA,IAAAA,eAAe,GAAAD,oBAAA,KAAA,MAAA,GAAG,EAAE,GAAAA,oBAAA;IACpBE,IAAI,GAAA1f,IAAA,CAAJ0f,IAAI;IACJC,UAAU,GAAA3f,IAAA,CAAV2f,UAAU;AAEV,EAAA,IAAI/b,OAAO,CAAC6O,MAAM,KAAKhU,aAAa,CAACI,MAAM,EAAE;IAC3C,QAAQ+E,OAAO,CAACmY,SAAS;MACvB,KAAKla,iBAAiB,CAACC,SAAS;AAC9B,QAAA,OAAO,CAAA4d,IAAI,KAAA,IAAA,IAAJA,IAAI,KAAA,MAAA,GAAA,MAAA,GAAJA,IAAI,CAAEnO,KAAK,MAAImO,IAAI,aAAJA,IAAI,KAAA,MAAA,GAAA,MAAA,GAAJA,IAAI,CAAEjJ,IAAI,KAAI,EAAE;MACxC,KAAK5U,iBAAiB,CAACE,aAAa;QAClC,OAAO,CAAA4d,UAAU,KAAA,IAAA,IAAVA,UAAU,uBAAVA,UAAU,CAAEpY,EAAE,KAAI,EAAE;MAC7B,KAAK1F,iBAAiB,CAACG,eAAe;AACpC,QAAA,OAAO2d,UAAU,KAAA,IAAA,IAAVA,UAAU,KAAA,MAAA,IAAVA,UAAU,CAAEC,SAAS,GACxBC,gBAAU,CAACC,QAAQ,CAACH,UAAU,CAACC,SAAS,CAAC,GACzC,EAAE;AACR,MAAA;AACE,QAAA,OAAO,EAAE;AACb;AACF,EAAA;EAEA,OAAOX,aAAY,CAACQ,eAAe,CAAC7b,OAAO,CAACmY,SAAS,CAAC,CAAC;AACzD,CAAC;;AAED;AACO,IAAMgE,oBAAoB,GAAG,SAAvBA,oBAAoBA,GAAA;AAAA,EAAA,IAAIC,SAAS,GAAA9Y,SAAA,CAAAC,MAAA,GAAA,CAAA,IAAAD,SAAA,CAAA,CAAA,CAAA,KAAAE,SAAA,GAAAF,SAAA,CAAA,CAAA,CAAA,GAAG,EAAE;EAAA,OACjD8Y,SAAS,CAACjS,MAAM,CAAC,UAACkS,GAAG,EAAE1K,QAAQ,EAAK;IAClC,IAAI,CAAAA,QAAQ,KAAA,IAAA,IAARA,QAAQ,uBAARA,QAAQ,CAAEmG,IAAI,MAAKtU,SAAS,EAAE6Y,GAAG,CAAC1K,QAAQ,CAACmG,IAAI,CAAC,GAAGnG,QAAQ,CAACpV,KAAK;AAErE,IAAA,OAAO8f,GAAG;EACZ,CAAC,EAAE,EAAE,CAAC;AAAA,CAAA;;AC/CR,IAAMC,MAAM,GAAG,SAATA,MAAMA,CAAAlgB,IAAA,EAiBN;AAAA,EAAA,IAhBJyW,IAAI,GAAAzW,IAAA,CAAJyW,IAAI;IACJ0J,QAAQ,GAAAngB,IAAA,CAARmgB,QAAQ;IACRC,SAAS,GAAApgB,IAAA,CAATogB,SAAS;IACTC,OAAO,GAAArgB,IAAA,CAAPqgB,OAAO;IACPxb,SAAS,GAAA7E,IAAA,CAAT6E,SAAS;IACT7B,IAAI,GAAAhD,IAAA,CAAJgD,IAAI;IACJsd,QAAQ,GAAAtgB,IAAA,CAARsgB,QAAQ;IACRC,SAAS,GAAAvgB,IAAA,CAATugB,SAAS;IACTC,UAAU,GAAAxgB,IAAA,CAAVwgB,UAAU;IACVlI,aAAa,GAAAtY,IAAA,CAAbsY,aAAa;IACbmI,WAAW,GAAAzgB,IAAA,CAAXygB,WAAW;IACXC,MAAM,GAAA1gB,IAAA,CAAN0gB,MAAM;IACN1G,QAAQ,GAAAha,IAAA,CAARga,QAAQ;IACR2C,OAAO,GAAA3c,IAAA,CAAP2c,OAAO;IACPgE,MAAM,GAAA3gB,IAAA,CAAN2gB,MAAM;IACN5C,YAAY,GAAA/d,IAAA,CAAZ+d,YAAY;AAEZ,EAAA,IAAArQ,eAAA,GAAcC,2BAAc,EAAE;IAAtBC,CAAC,GAAAF,eAAA,CAADE,CAAC;EAET,IAAMgT,WAAW,GAAG,CAClB;IACEnhB,GAAG,EAAExB,YAAY,CAACC,GAAG;AACrB+B,IAAAA,KAAK,EAAE2N,CAAC,CAAC,wCAAwC,CAAC;AAClDiT,IAAAA,EAAE,EAAE,MAAM;IACVrS,QAAQ,EAAE,SAAVA,QAAQA,GAAA;AAAA,MAAA,OAAQ,CAAC3J,SAAS;AAAA,IAAA,CAAA;AAC1B4J,IAAAA,OAAO,EAAE,SAATA,OAAOA,CAAE/H,KAAK,EAAI;MAChBA,KAAK,CAACY,cAAc,EAAE;AACtByW,MAAAA,YAAY,CAAC9f,YAAY,CAACC,GAAG,CAAC;AAChC,IAAA;AACF,GAAC,EACD;IACEuB,GAAG,EAAExB,YAAY,CAACE,OAAO;AACzB8B,IAAAA,KAAK,EAAE2N,CAAC,CAAC,8CAA8C,CAAC;AACxDiT,IAAAA,EAAE,EAAE,UAAU;IACdrS,QAAQ,EAAE,SAAVA,QAAQA,GAAA;AAAA,MAAA,OAAQ3J,SAAS;AAAA,IAAA,CAAA;AACzB4J,IAAAA,OAAO,EAAE,SAATA,OAAOA,CAAE/H,KAAK,EAAI;MAChBA,KAAK,CAACY,cAAc,EAAE;AACtByW,MAAAA,YAAY,CAAC9f,YAAY,CAACE,OAAO,CAAC;AACpC,IAAA;AACF,GAAC,CACF;EAED,IAAM2iB,gBAAgB,gBACpBtY,eAAA,CAAA,KAAA,EAAA;AAAK5I,IAAAA,SAAS,EAAC,4CAA4C;AAAA2I,IAAAA,QAAA,gBACzDC,eAAA,CAAA,KAAA,EAAA;AAAK5I,MAAAA,SAAS,EAAC,yBAAyB;MAAA2I,QAAA,EAAA,cACtCN,cAAA,CAACuI,MAAM,EAAA;AACLsO,QAAAA,QAAQ,EAAE9b,IAAI,IAAIxF,IAAI,CAACC,GAAI;AAC3B0E,QAAAA,IAAI,EAAE4e,KAAM;AACZ9R,QAAAA,IAAI,EAAC,OAAO;AACZtO,QAAAA,KAAK,EAAC,MAAM;AACZ8N,QAAAA,OAAO,EAAE8R;AAAU,OACpB,CAAC,eACF/X,eAAA,CAAC8F,UAAU,EAAA;AAAC1O,QAAAA,SAAS,EAAC,kBAAkB;AAACe,QAAAA,KAAK,EAAC,OAAO;QAAA4H,QAAA,EAAA,CACnD7F,IAAI,CAACY,KAAK,CAACN,IAAI,GAAG,GAAG,CAAC,EAAC,GAC1B;AAAA,OAAY,CAAC,eACbiF,cAAA,CAACuI,MAAM,EAAA;AACLsO,QAAAA,QAAQ,EAAE9b,IAAI,IAAIxF,IAAI,CAACE,GAAI;AAC3ByE,QAAAA,IAAI,EAAE6e,IAAK;AACX/R,QAAAA,IAAI,EAAC,OAAO;AACZtO,QAAAA,KAAK,EAAC,MAAM;AACZ8N,QAAAA,OAAO,EAAE6R;AAAS,OACnB,CAAC;AAAA,KACC,CAAC,eACNrY,cAAA,CAACuI,MAAM,EAAA;MACLsO,QAAQ,EAAE,CAAC2B,WAAY;AACvBte,MAAAA,IAAI,EAAE8e,QAAS;AACfhhB,MAAAA,KAAK,EAAE2N,CAAC,CAAC,0CAA0C,CAAE;AACrDsT,MAAAA,OAAO,EAAE5I,aAAc;AACvB3X,MAAAA,KAAK,EAAC,WAAW;AACjBwgB,MAAAA,YAAY,EAAE;QACZC,OAAO,EAAEX,WAAW,GAChB7S,CAAC,CAAC,8CAA8C,CAAC,GACjDA,CAAC,CAAC,2CAA2C;OACjD;AACFa,MAAAA,OAAO,EAAE+R;AAAW,KACrB,CAAC,eACFvY,cAAA,CAACuI,MAAM,EAAA;MACLsO,QAAQ,EAAE,CAACnC,OAAQ;AACnB1c,MAAAA,KAAK,EAAE2N,CAAC,CAAC,sBAAsB,CAAE;AACjCsT,MAAAA,OAAO,EAAElH,QAAS;AAClBvL,MAAAA,OAAO,EAAEiS;AAAO,KACjB,CAAC;AAAA,GACC,CACN;EAED,oBACEzY,cAAA,CAACoZ,gBAAgB,EAAA;AACTP,IAAAA,gBAAgB,EAAhBA,gBAAgB;AACtBQ,IAAAA,eAAe,eACbrZ,cAAA,CAACoZ,gBAAgB,CAACE,eAAe,EAAA;MAC/BlB,OAAO,EAAEA,OAAO,IAAI,GAAI;AACxBmB,MAAAA,eAAe,EAAE;AACfrf,QAAAA,IAAI,eAAE8F,cAAA,CAACwZ,SAAS,IAAE,CAAC;AACnBC,QAAAA,OAAO,EAAE;AACPN,UAAAA,OAAO,EAAExT,CAAC,CAAC,mCAAmC,CAAC;AAC/C+T,UAAAA,QAAQ,EAAE;SACX;AACDlT,QAAAA,OAAO,EAAEkS;OACT;AACFiB,MAAAA,WAAW,EAAE;AACXzhB,QAAAA,KAAK,EAAEsW,IAAI;QACXqI,QAAQ,EAAE,CAACsB,SAAS;AACpBxN,QAAAA,WAAW,EAAEhF,CAAC,CAAC,0CAA0C,CAAC;AAC1DuS,QAAAA,QAAQ,EAARA;AACF;AAAE,KACH,CACF;AACD0B,IAAAA,eAAe,eACb5Z,cAAA,CAACoZ,gBAAgB,CAACS,eAAe,EAAA;AACzBlB,MAAAA,WAAW,EAAXA,WAAW;AACjBmB,MAAAA,eAAe,EAAE;KAClB;AACF,GACF,CAAC;AAEN,CAAC;;ACpGD,IAAMC,iBAAiB,GAAG,SAApBA,iBAAiBA,GAAA;AAAA,EAAA,oBACrB/Z,cAAA,CAAA,KAAA,EAAA;AAAKrI,IAAAA,SAAS,EAAC,uEAAuE;AAAA2I,IAAAA,QAAA,eACpFN,cAAA,CAACoG,OAAO,EAAA,EAAE;AAAC,GACR,CAAC;AAAA,CACP;AAED,IAAM4T,aAAa,GAAG,SAAhBA,aAAaA,CAAAjiB,IAAA,EAgBb;AAAA,EAAA,IAfJgZ,UAAU,GAAAhZ,IAAA,CAAVgZ,UAAU;IACVE,OAAO,GAAAlZ,IAAA,CAAPkZ,OAAO;IACPD,UAAU,GAAAjZ,IAAA,CAAViZ,UAAU;IAAAiJ,cAAA,GAAAliB,IAAA,CACVogB,SAAS;AAATA,IAAAA,SAAS,GAAA8B,cAAA,KAAA,MAAA,GAAG,IAAI,GAAAA,cAAA;IAAAC,WAAA,GAAAniB,IAAA,CAChByb,MAAM;AAANA,IAAAA,MAAM,GAAA0G,WAAA,KAAA,MAAA,GAAG,EAAE,GAAAA,WAAA;IAAAC,gBAAA,GAAApiB,IAAA,CACXqiB,WAAW;AAAXA,IAAAA,WAAW,GAAAD,gBAAA,KAAA,MAAA,GAAG,EAAE,GAAAA,gBAAA;IAChB/J,aAAa,GAAArY,IAAA,CAAbqY,aAAa;IAAAiK,iBAAA,GAAAtiB,IAAA,CACbuiB,YAAY;AAAZA,IAAAA,YAAY,GAAAD,iBAAA,KAAA,MAAA,GAAG,CAAC,GAAAA,iBAAA;IAAAE,gBAAA,GAAAxiB,IAAA,CAChBie,WAAW;AAAXA,IAAAA,WAAW,GAAAuE,gBAAA,KAAA,MAAA,GAAG,CAAC,GAAAA,gBAAA;IAAAC,qBAAA,GAAAziB,IAAA,CACf0iB,gBAAgB;AAAhBA,IAAAA,gBAAgB,GAAAD,qBAAA,KAAA,MAAA,GAAG,KAAK,GAAAA,qBAAA;IAClB3E,cAAc,GAAA9d,IAAA,CAApB6D,IAAI;IACJwc,OAAO,GAAArgB,IAAA,CAAPqgB,OAAO;IACPM,MAAM,GAAA3gB,IAAA,CAAN2gB,MAAM;IACN5C,YAAY,GAAA/d,IAAA,CAAZ+d,YAAY;IACZC,mBAAmB,GAAAhe,IAAA,CAAnBge,mBAAmB;AAEnB,EAAA,IAAAtQ,eAAA,GAAcC,2BAAc,EAAE;IAAtBC,CAAC,GAAAF,eAAA,CAADE,CAAC;AACT,EAAA,IAAArJ,SAAA,GAAwBC,cAAQ,CAAChH,IAAI,CAACI,OAAO,CAAC;IAAA6G,UAAA,GAAAC,cAAA,CAAAH,SAAA,EAAA,CAAA,CAAA;AAAvCvB,IAAAA,IAAI,GAAAyB,UAAA,CAAA,CAAA,CAAA;AAAEke,IAAAA,OAAO,GAAAle,UAAA,CAAA,CAAA,CAAA;EAEpB,IAAAme,qBAAA,GAQI7J,oBAAoB,CAAC;AAAEC,MAAAA,UAAU,EAAVA,UAAU;AAAEC,MAAAA,UAAU,EAAVA,UAAU;AAAEC,MAAAA,OAAO,EAAPA,OAAO;AAAEtL,MAAAA,CAAC,EAADA;AAAE,KAAC,CAAC;IAP9D8M,YAAY,GAAAkI,qBAAA,CAAZlI,YAAY;IACZnB,iBAAiB,GAAAqJ,qBAAA,CAAjBrJ,iBAAiB;IACjBS,QAAQ,GAAA4I,qBAAA,CAAR5I,QAAQ;IACR5B,WAAW,GAAAwK,qBAAA,CAAXxK,WAAW;IACXkC,iBAAiB,GAAAsI,qBAAA,CAAjBtI,iBAAiB;IACjBF,oBAAoB,GAAAwI,qBAAA,CAApBxI,oBAAoB;IACpB5M,WAAW,GAAAoV,qBAAA,CAAXpV,WAAW;EAGb,IAAAqV,oBAAA,GAcI7G,mBAAmB,CAAC;AAAE/C,MAAAA,UAAU,EAAVA,UAAU;AAAEb,MAAAA,WAAW,EAAXA;AAAY,KAAC,CAAC;IAblD+E,cAAc,GAAA0F,oBAAA,CAAd1F,cAAc;IACdG,mBAAmB,GAAAuF,oBAAA,CAAnBvF,mBAAmB;IACnBK,kBAAkB,GAAAkF,oBAAA,CAAlBlF,kBAAkB;IAClBC,oBAAoB,GAAAiF,oBAAA,CAApBjF,oBAAoB;IACpBP,eAAe,GAAAwF,oBAAA,CAAfxF,eAAe;IACfE,qBAAqB,GAAAsF,oBAAA,CAArBtF,qBAAqB;IACrBE,mBAAmB,GAAAoF,oBAAA,CAAnBpF,mBAAmB;IACnBd,OAAO,GAAAkG,oBAAA,CAAPlG,OAAO;IACPvT,QAAQ,GAAAyZ,oBAAA,CAARzZ,QAAQ;IACRC,UAAU,GAAAwZ,oBAAA,CAAVxZ,UAAU;IACV0T,eAAe,GAAA8F,oBAAA,CAAf9F,eAAe;IACfH,UAAU,GAAAiG,oBAAA,CAAVjG,UAAU;IACVR,aAAa,GAAAyG,oBAAA,CAAbzG,aAAa;EAGf,IAAA0G,qBAAA,GAMIjF,oBAAoB,CAAC;AACvBC,MAAAA,cAAc,EAAdA,cAAc;AACdC,MAAAA,YAAY,EAAZA,YAAY;AACZC,MAAAA,mBAAmB,EAAnBA,mBAAmB;AACnBC,MAAAA,WAAW,EAAXA,WAAW;AACX7B,MAAAA,aAAa,EAAbA;AACF,KAAC,CAAC;IAXAkC,kBAAkB,GAAAwE,qBAAA,CAAlBxE,kBAAkB;IAClBE,gBAAgB,GAAAsE,qBAAA,CAAhBtE,gBAAgB;IAChB3Z,SAAS,GAAAie,qBAAA,CAATje,SAAS;IACThB,IAAI,GAAAif,qBAAA,CAAJjf,IAAI;IACJ0a,cAAc,GAAAuE,qBAAA,CAAdvE,cAAc;EAShB,IAAM7M,YAAY,GAAG7H,aAAO,CAAC,YAAA;IAAA,OAAM2R,iBAAiB,CAACC,MAAM,CAAC;EAAA,CAAA,EAAE,CAACA,MAAM,CAAC,CAAC;EAEvE,IAAM9J,YAAY,GAAG9H,aAAO,CAC1B,YAAA;AAAA,IAAA,OACE5H,aAAa,CAAClC,GAAG,CAAC,UAAAQ,KAAA,EAAA;AAAA,MAAA,IAAGd,GAAG,GAAAc,KAAA,CAAHd,GAAG;QAAEyC,QAAQ,GAAA3B,KAAA,CAAR2B,QAAQ;QAAEC,IAAI,GAAA5B,KAAA,CAAJ4B,IAAI;MAAA,OAAQ;QAC9CsQ,MAAM,EAAEhU,aAAa,CAACI,MAAM;AAC5BY,QAAAA,GAAG,EAAHA,GAAG;AACHQ,QAAAA,KAAK,EAAE2N,CAAC,CAAC1L,QAAQ,CAAC;AAClB0Z,QAAAA,SAAS,EAAEhO,CAAC,CAAC,qCAAqC,CAAC;AACnD5G,QAAAA,IAAI,EAAEvH,GAAG;AACT0C,QAAAA,IAAI,EAAJA;OACD;AAAA,IAAA,CAAC,CAAC;EAAA,CAAA,EACL,CAACyL,CAAC,CACJ,CAAC;EAED,IAAM6R,eAAe,GAAG5V,aAAO,CAC7B,YAAA;IAAA,OAAMkW,oBAAoB,CAAC1H,aAAa,KAAA,IAAA,IAAbA,aAAa,KAAA,MAAA,GAAA,MAAA,GAAbA,aAAa,CAAE2H,SAAS,CAAC;EAAA,CAAA,EACpD,CAAC3H,aAAa,CAChB,CAAC;AAED,EAAA,IAAM/O,YAAY,GAAG,SAAfA,YAAYA,CAAG1F,OAAO,EAAA;AAAA,IAAA,OAC1B2b,mBAAmB,CAAC;AAClB3b,MAAAA,OAAO,EAAPA,OAAO;AACP6b,MAAAA,eAAe,EAAfA,eAAe;AACfC,MAAAA,IAAI,EAAE2C,WAAW;AACjB1C,MAAAA,UAAU,EAAEtH;AACd,KAAC,CAAC;AAAA,EAAA,CAAA;EAEJ,IAAA0K,eAAA,GAAuC5K,cAAc,CAAC;AACpD/O,MAAAA,QAAQ,EAARA,QAAQ;AACRgP,MAAAA,WAAW,EAAXA,WAAW;AACXC,MAAAA,aAAa,EAAbA,aAAa;AACb/O,MAAAA,YAAY,EAAZA,YAAY;AACZsE,MAAAA,CAAC,EAADA;AACF,KAAC,CAAC;IANM4K,WAAW,GAAAuK,eAAA,CAAXvK,WAAW;IAAEF,aAAa,GAAAyK,eAAA,CAAbzK,aAAa;AAQlC,EAAA,IAAM0K,UAAU,GAAG,SAAbA,UAAUA,GAAA;AAAA,IAAA,OACd5I,oBAAoB,CAAC;AAAEhR,MAAAA,QAAQ,EAARA,QAAQ;MAAEsQ,SAAS,EAAE,SAAXA,SAASA,GAAA;QAAA,OAAQkD,UAAU,CAAC,KAAK,CAAC;AAAA,MAAA;AAAC,KAAC,CAAC;AAAA,EAAA,CAAA;AAExE,EAAA,IAAIrD,iBAAiB,EAAE,oBAAOtR,cAAA,CAAC+Z,iBAAiB,IAAE,CAAC;EAEnD,oBAAOiB,qBAAY,cACjBza,eAAA,CAAA,KAAA,EAAA;AAAK5I,IAAAA,SAAS,EAAC,oDAAoD;IAAA2I,QAAA,EAAA,cACjEN,cAAA,CAACiY,MAAM,EAAA;AAEHE,MAAAA,SAAS,EAATA,SAAS;AACTnH,MAAAA,UAAU,EAAVA,UAAU;AACVoH,MAAAA,OAAO,EAAPA,OAAO;AACP1D,MAAAA,OAAO,EAAPA,OAAO;AACPrE,MAAAA,aAAa,EAAbA,aAAa;AACbzT,MAAAA,SAAS,EAATA,SAAS;AACTmV,MAAAA,QAAQ,EAARA,QAAQ;AACRnW,MAAAA,IAAI,EAAJA,IAAI;AACJ8c,MAAAA,MAAM,EAANA,MAAM;AACN3d,MAAAA,IAAI,EAAJA,IAAI;AAENyd,MAAAA,WAAW,EAAE5b,SAAS,IAAIua,OAAO,CAAC/G,aAAa,CAAE;AACjD5B,MAAAA,IAAI,EAAEiE,YAAa;AACnB8F,MAAAA,UAAU,EAAEhI,WAAY;AACxBuF,MAAAA,YAAY,EAAES,gBAAiB;AAC/B2B,MAAAA,QAAQ,EAAE7F,iBAAkB;AAC5BoG,MAAAA,MAAM,EAAEsC,UAAW;MACnB1C,QAAQ,EAAE,SAAVA,QAAQA,GAAA;QAAA,OACNqC,OAAO,CAAC,UAAAxiB,KAAK,EAAA;AAAA,UAAA,OAAIoC,KAAK,CAACpC,KAAK,GAAG3C,IAAI,CAACG,IAAI,EAAEH,IAAI,CAACC,GAAG,EAAED,IAAI,CAACE,GAAG,CAAC;QAAA,CAAA,CAAC;MAAA,CAC/D;MACD6iB,SAAS,EAAE,SAAXA,SAASA,GAAA;QAAA,OACPoC,OAAO,CAAC,UAAAxiB,KAAK,EAAA;AAAA,UAAA,OAAIoC,KAAK,CAACpC,KAAK,GAAG3C,IAAI,CAACG,IAAI,EAAEH,IAAI,CAACC,GAAG,EAAED,IAAI,CAACE,GAAG,CAAC;QAAA,CAAA,CAAC;AAAA,MAAA;KAEjE,CAAC,eACF8K,eAAA,CAAA,KAAA,EAAA;AAAK5I,MAAAA,SAAS,EAAC,mCAAmC;AAAA2I,MAAAA,QAAA,GAC/C,CAAC1D,SAAS,iBACToD,cAAA,CAACwJ,WAAW,EAAA;AACJC,QAAAA,YAAY,EAAZA,YAAY;AAAEC,QAAAA,YAAY,EAAZA,YAAY;AAChCE,QAAAA,cAAc,EAAE8L,kBAAmB;AACnC/L,QAAAA,gBAAgB,EAAEgM,oBAAqB;AACvC/M,QAAAA,OAAO,EAAEsM;OACV,CACF,eACD3U,eAAA,CAAA,KAAA,EAAA;AAAK5I,QAAAA,SAAS,EAAC,gDAAgD;QAAA2I,QAAA,EAAA,CAC5D1D,SAAS,iBACRoD,cAAA,CAAA,KAAA,EAAA;AAAKrI,UAAAA,SAAS,EAAC,+CAA+C;UAAA2I,QAAA,eAC5DN,cAAA,CAACyW,YAAY,EAAA;AACXpgB,YAAAA,SAAS,EAAEokB,gBAAiB;AAC5BjZ,YAAAA,IAAI,EAAE6U,kBAAmB;AACzBK,YAAAA,KAAK,EAAE4D,YAAa;YACpB1D,MAAM,EAAE,SAARA,MAAMA,GAAA;AAAA,cAAA,OACJN,cAAc,CAAC7b,IAAI,CAACF,GAAG,CAAC8b,kBAAkB,GAAG,CAAC,EAAEiE,YAAY,CAAC,CAAC;YAAA,CAC/D;YACD3D,MAAM,EAAE,SAARA,MAAMA,GAAA;AAAA,cAAA,OACJL,cAAc,CAAC7b,IAAI,CAACD,GAAG,CAAC6b,kBAAkB,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC;AAAA,YAAA;WAEtD;AAAC,SACC,CACN,eACDrW,cAAA,CAACsF,MAAM,EAAA;AACCnE,UAAAA,QAAQ,EAARA,QAAQ;AAAEvF,UAAAA,IAAI,EAAJA,IAAI;AAAEyF,UAAAA,YAAY,EAAZA,YAAY;AAAED,UAAAA,UAAU,EAAVA,UAAU;AAAEmE,UAAAA,WAAW,EAAXA,WAAW;AAAExK,UAAAA,IAAI,EAAJA,IAAI;AACjEmB,UAAAA,QAAQ,EAAEmZ,mBAAoB;AAC9B/T,UAAAA,WAAW,EAAE8T,eAAgB;AAC7B5P,UAAAA,iBAAiB,EAAE8P,qBAAsB;AACzCrZ,UAAAA,QAAQ,EAAEkY;AAAc,SACzB,CAAC;AAAA,OACC,CAAC,EACL,CAACvX,SAAS,iBACToD,cAAA,CAACqH,UAAU,EAAA;AACT1L,QAAAA,OAAO,EAAEmZ,eAAgB;AACzB5Y,QAAAA,QAAQ,EAAEmZ,mBAAoB;AAC9B9N,QAAAA,QAAQ,EAAEiO;AAAoB,OAC/B,CACF;AAAA,KACE,CAAC;AAAA,GACH,CAAC,EACN7U,MAAM,CAAC2L,QAAQ,CAACI,IAClB,CAAC;AACH;;;;"}