seeder-st2110-components 1.5.10 → 1.6.1
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.
- package/dist/index.css +1 -1
- package/dist/index.esm.js +2744 -2269
- package/dist/index.esm.js.map +1 -1
- package/dist/index.js +2140 -1663
- package/dist/index.js.map +1 -1
- package/package.json +1 -1
- package/src/styles/index.less +89 -16
package/dist/index.esm.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.esm.js","sources":["../src/componnets/UsageItem.jsx","../src/hooks/useHardwareWebSocket.js","../src/hooks/useHardwareUsage.js","../src/componnets/AuthorizationModal.jsx","../src/hooks/useAuth.js","../src/hooks/useUpgrade.js","../src/hooks/useSystemOperations.js","../src/componnets/UpgradeManager.jsx","../node_modules/react-is/cjs/react-is.production.min.js","../node_modules/react-is/cjs/react-is.development.js","../node_modules/react-is/index.js","../node_modules/object-assign/index.js","../node_modules/prop-types/lib/ReactPropTypesSecret.js","../node_modules/prop-types/lib/has.js","../node_modules/prop-types/checkPropTypes.js","../node_modules/prop-types/factoryWithTypeCheckers.js","../node_modules/prop-types/factoryWithThrowingShims.js","../node_modules/prop-types/index.js","../src/componnets/SystemOperations.jsx","../src/componnets/PtpModal.jsx","../src/componnets/NetworkSettingsModal.jsx","../src/componnets/PresetModal.component.jsx","../src/componnets/PresetModal.jsx"],"sourcesContent":["import { memo } from \"react\";\r\nimport { Tooltip, Space } from \"antd\";\r\n\r\n// 格式化字节大小为更易读的形式\r\nconst formatBytes = (bytes, decimals = 1) => {\r\n if (bytes === 0 || !bytes || bytes < 0) return '0 Bytes';\r\n const k = 1024;\r\n const dm = decimals < 0 ? 0 : decimals;\r\n const sizes = ['Bytes', 'KB', 'MB', 'GB', 'TB'];\r\n const i = Math.floor(Math.log(bytes) / Math.log(k));\r\n return parseFloat((bytes / Math.pow(k, i)).toFixed(dm)) + ' ' + sizes[i];\r\n};\r\n\r\nconst UsageItem = memo(({ title, iconClass, children, memTotal }) => {\r\n return (\r\n <Tooltip \r\n title={\r\n <>\r\n <div>{title}</div>\r\n {title === 'Memory Usage' && memTotal !== undefined && (\r\n <div>Total Memory: {formatBytes(memTotal)}</div>\r\n )}\r\n </>\r\n } \r\n destroyOnHidden={false}\r\n >\r\n <Space size={4}>\r\n <i className={`seeder-iconfont ${iconClass} text-xl`} />\r\n <span className=\"inline-block w-10 text-center\">{children}</span>\r\n </Space>\r\n </Tooltip>\r\n );\r\n});\r\n\r\nexport default UsageItem;","import { useEffect, useState, useCallback } from 'react';\r\nimport { useWebSocket } from 'ahooks';\r\n\r\nconst useHardwareWebSocket = (socketUrl) => {\r\n const [systemStatus, setSystemStatus] = useState();\r\n\r\n const handleMessage = useCallback((message) => {\r\n try {\r\n if (message) {\r\n setSystemStatus(prev => ({\r\n ...prev,\r\n ...message,\r\n // lastUpdated: Date.now() // 添加更新时间戳\r\n }));\r\n }\r\n } catch (error) {\r\n console.error('Message processing error:', error);\r\n }\r\n }, []);\r\n\r\n // ## 获取系统资源使用情况\r\n const { latestMessage } = useWebSocket(socketUrl, {\r\n onMessage: (event) => {\r\n // 处理实时消息\r\n try {\r\n const parsedMessage = JSON.parse(event.data);\r\n handleMessage(parsedMessage);\r\n } catch (error) {\r\n console.error('Message parsing error:', error);\r\n console.debug('Raw message:', event.data);\r\n }\r\n }\r\n });\r\n\r\n // // 监听消息 latestMessage 只用于非实时需求\r\n // useEffect(() => {\r\n // if (!latestMessage?.data) return;\r\n\r\n // try {\r\n // const parsedMessage = JSON.parse(latestMessage.data);\r\n // handleMessage(parsedMessage);\r\n // } catch (error) {\r\n // console.error('Message parsing error:', error);\r\n // console.debug('Raw message:', latestMessage.data);\r\n // }\r\n // }, [latestMessage?.data, handleMessage]);\r\n\r\n return { ps_status: systemStatus }\r\n}\r\n\r\nexport default useHardwareWebSocket ;","import { useMemo } from \"react\";\r\nimport { Divider, Flex } from \"antd\";\r\nimport UsageItem from \"../componnets/UsageItem.jsx\";\r\nimport useHardwareWebSocket from './useHardwareWebSocket.js';\r\n\r\n// 获取网卡最高温度(支持动态字段检查)\r\nconst getMaxNicTemp = (sensors, priorityFields = [\"i350bb\", \"r8169_0_8300:00\"]) => {\r\n const temps = priorityFields\r\n .flatMap(field => sensors?.[field]?.map(item => item.current) || [])\r\n .filter((temp) => typeof temp === 'number');\r\n return temps.length ? Math.max(...temps) : null;\r\n};\r\n\r\n// 获取数组类型传感器最高温度(如内存、硬盘)\r\nconst getMaxSensorTemp = (sensorData) => {\r\n const temps = (sensorData || [])\r\n .map(item => item.current)\r\n .filter((temp) => typeof temp === 'number');\r\n return temps.length ? Math.max(...temps) : null;\r\n};\r\n\r\nconst getDetail = (status = {}) => {\r\n const { cpu_percent, mem, sensors_temperatures, gpu_stats } = status;\r\n\r\n return {\r\n cpu_usage: cpu_percent ?? null,\r\n cpu_temp: sensors_temperatures?.coretemp?.[0]?.current ?? null,\r\n mem_total: mem?.total ?? null,\r\n mem_usage: mem?.percent ?? null,\r\n mem_temp: getMaxSensorTemp(sensors_temperatures?.spd5118),\r\n nic_temp: getMaxNicTemp(sensors_temperatures) ?? null,\r\n hd_temp: getMaxSensorTemp(sensors_temperatures?.nvme),\r\n gpu_usage: gpu_stats?.[0]?.[\"utilization.gpu\"] ?? null,\r\n gpu_temp: gpu_stats?.[0]?.[\"temperature.gpu\"] ?? null,\r\n };\r\n};\r\n\r\n// 提取公共逻辑\r\nconst createMetricItem = (\r\n title,\r\n iconClass,\r\n value,\r\n unit\r\n) => {\r\n const numValue = typeof value === 'string' ? parseFloat(value) : value;\r\n\r\n return {\r\n title,\r\n iconClass,\r\n valueString: `${numValue}${unit}`,\r\n value: numValue,\r\n };\r\n};\r\n\r\nconst getItems = (details) => {\r\n const items = [];\r\n\r\n if (details.cpu_usage !== null && details.cpu_usage !== undefined) {\r\n items.push(createMetricItem('CPU Usage', 'seeder-icon-CPU', details.cpu_usage, '%'));\r\n }\r\n\r\n if (details.cpu_temp !== null && details.cpu_temp !== undefined) {\r\n items.push(createMetricItem('CPU Temperature', 'seeder-icon-CPUwendu', details.cpu_temp, '℃'));\r\n }\r\n\r\n if (details.mem_usage !== null && details.mem_usage !== undefined) {\r\n items.push({\r\n ...createMetricItem('Memory Usage', 'seeder-icon-shiyongshuai', details.mem_usage, '%'),\r\n memTotal: details.mem_total,\r\n });\r\n }\r\n\r\n if (details.mem_temp !== null && details.mem_temp !== undefined) {\r\n items.push(createMetricItem('Memory Temperature', 'seeder-icon-wendu', details.mem_temp, '℃'));\r\n }\r\n\r\n if (details.nic_temp !== null && details.nic_temp !== undefined) {\r\n items.push(createMetricItem('NIC Temperature', 'seeder-icon-wuliwangka', details.nic_temp, '℃'));\r\n }\r\n\r\n if (details.hd_temp !== null && details.hd_temp !== undefined) {\r\n items.push(createMetricItem('Disk Temperature', 'seeder-icon-yingpan', details.hd_temp, '℃'));\r\n }\r\n\r\n if (details.gpu_usage !== null && details.gpu_usage !== undefined) {\r\n items.push(createMetricItem('GPU Usage', 'seeder-icon-gpufuwu', details.gpu_usage, '%'));\r\n }\r\n\r\n if (details.gpu_temp !== null && details.gpu_temp !== undefined) {\r\n items.push(createMetricItem('GPU Temperature', 'seeder-icon-CPUwendu', details.gpu_temp, '℃'));\r\n }\r\n\r\n return items;\r\n};\r\n\r\nconst useHardwareUsage = (socketUrl) => {\r\n const { ps_status } = useHardwareWebSocket(socketUrl);\r\n\r\n return useMemo(() => {\r\n if (!ps_status || typeof ps_status !== 'object') return null;\r\n\r\n const statusItems = getItems(getDetail(ps_status));\r\n\r\n return (\r\n <div className=\"flex\">\r\n {statusItems.map((item, index) => (\r\n <Flex align=\"center\" key={item.title}>\r\n <UsageItem \r\n title={item.title}\r\n iconClass={item.iconClass} \r\n memTotal={item.memTotal}\r\n >\r\n {item.valueString}\r\n </UsageItem>\r\n {index < statusItems.length - 1 && <Divider type=\"vertical\" />}\r\n </Flex>\r\n ))}\r\n </div>\r\n )\r\n }, [ps_status]);\r\n}\r\n\r\nexport default useHardwareUsage;","import { useState } from 'react';\r\nimport { Modal, Form, Input, Alert, App } from 'antd';\r\n\r\nconst AuthorizationModal = ({\r\n onCancel,\r\n onOk,\r\n authData,\r\n title = 'Register License',\r\n okText,\r\n cancelText = 'Ignore',\r\n width = 600\r\n}) => {\r\n const { message } = App.useApp();\r\n const [code, setCode] = useState('');\r\n\r\n const {\r\n accredit_status: isActivated,\r\n message: statusMessage = 'Unactivated',\r\n bios_id: uuid,\r\n expires_time: expiresTime\r\n } = authData || {};\r\n\r\n const handleOk = () => {\r\n const trimmedCode = code.trim();\r\n if (!trimmedCode) {\r\n message.error('License key cannot be empty');\r\n return;\r\n }\r\n onOk(trimmedCode);\r\n }\r\n \r\n const statusAlert = isActivated ? (\r\n <Alert\r\n message={`${statusMessage}, will expire on ${expiresTime}`}\r\n type=\"success\"\r\n showIcon\r\n />\r\n ) : (\r\n <Alert message={statusMessage} type=\"warning\" showIcon />\r\n );\r\n\r\n const defaultOkText = isActivated ? \"Reactivate\" : \"Activate Now\";\r\n\r\n return (\r\n <Modal\r\n title={title}\r\n open={true}\r\n onCancel={onCancel}\r\n onOk={handleOk}\r\n okText={okText || defaultOkText}\r\n cancelText={cancelText}\r\n width={width}\r\n maskClosable={false}\r\n closable={false}\r\n cancelButtonProps={{ disabled: !isActivated }}\r\n >\r\n <Form\r\n name=\"auth_form\"\r\n labelCol={{ span: 6 }}\r\n wrapperCol={{ span: 18 }}\r\n autoComplete=\"off\"\r\n >\r\n <div style={{ marginBottom: 16 }}>{statusAlert}</div>\r\n <Form.Item label=\"Machine Code\" required>\r\n <Input value={uuid} readOnly />\r\n </Form.Item>\r\n <Form.Item label=\"License Key\" required>\r\n <Input.TextArea\r\n value={code}\r\n onChange={(e) => setCode(e.target.value)}\r\n autoSize={{ minRows: 6, maxRows: 6 }}\r\n placeholder=\"Enter your license key\"\r\n />\r\n </Form.Item>\r\n </Form>\r\n </Modal>\r\n );\r\n}\r\n\r\nexport default AuthorizationModal;","import { useState, useEffect, useCallback } from 'react';\r\nimport { message } from 'antd';\r\nimport AuthorizationModal from '../componnets/AuthorizationModal.jsx';\r\n\r\nconst DEFAULT_AUTH = {\r\n accredit_status: false, // 授权状态\r\n bios_id: '', // 主机id\r\n message: 'Unactivated', // 激活信息\r\n expires_time: '' // 授权到期时间\r\n}\r\n\r\nexport const useAuth = (options) => {\r\n const {\r\n fetchAuthInfo,\r\n authorize,\r\n defaultAuthData = DEFAULT_AUTH,\r\n autoShowModal = true\r\n } = options || {};\r\n\r\n const [messageApi, contextHolder] = message.useMessage();\r\n const [showModal, setShowModal] = useState(false); // 默认隐藏\r\n const [authData, setAuthData] = useState(defaultAuthData);\r\n const [isRegistered, setIsRegistered] = useState(false);\r\n const [loading, setLoading] = useState(false);\r\n\r\n const openModal = useCallback(() => setShowModal(true), []);\r\n const closeModal = useCallback(() => setShowModal(false), []);\r\n\r\n useEffect(() => {\r\n async function loadAuthInfo() {\r\n try {\r\n setLoading(true);\r\n const result = await fetchAuthInfo();\r\n if (result?.commands) {\r\n const commands = result.commands;\r\n setAuthData(commands);\r\n setIsRegistered(commands.accredit_status);\r\n if (autoShowModal) {\r\n commands.accredit_status ? closeModal() : openModal();\r\n }\r\n }\r\n } catch (error) {\r\n console.error('Failed to fetch auth info:', error);\r\n } finally {\r\n setLoading(false);\r\n }\r\n }\r\n\r\n loadAuthInfo();\r\n }, [fetchAuthInfo, autoShowModal, openModal, closeModal]);\r\n\r\n const auth = async (code) => {\r\n try {\r\n setLoading(true);\r\n const result = await authorize({\r\n type: \"accredit_command\",\r\n commands: {\r\n id: \"LICENSE\",\r\n license_data: code\r\n }\r\n });\r\n if (result?.commands) {\r\n const commands = result.commands;\r\n // type accredit_message\r\n if (commands?.accredit_status) {\r\n setIsRegistered(true);\r\n setAuthData(commands);\r\n closeModal();\r\n } else {\r\n messageApi.error(commands.ciphertext_status || 'Authorization failed');\r\n }\r\n }\r\n } catch (error) {\r\n console.error('Authorization error:', error);\r\n } finally {\r\n setLoading(false);\r\n }\r\n };\r\n\r\n const modal = showModal && (\r\n <>\r\n <AuthorizationModal\r\n onOk={auth}\r\n onCancel={closeModal}\r\n authData={authData}\r\n />\r\n {contextHolder}\r\n </>\r\n );\r\n\r\n return {\r\n AuthModal: modal,\r\n openAuthModal: openModal,\r\n closeAuthModal: closeModal,\r\n isRegistered,\r\n authData,\r\n loading\r\n };\r\n};","import { useRef, useState, useEffect, useMemo } from \"react\";\r\nimport { Spin, message, Dropdown } from \"antd\";\r\nimport { LoadingOutlined } from '@ant-design/icons';\r\nimport { useInterval } from \"ahooks\";\r\nimport axios from 'axios';\r\n\r\nconst useUpgrade = ({\r\n menuItems = [],\r\n onMenuClick,\r\n downloadFiles,\r\n upgradeExecute,\r\n upgradeStatus,\r\n acceptFileTypes = \"application/octet-stream\",\r\n uploadCompleteDelay = 3000,\r\n statusPollingInterval = 1000\r\n}) => {\r\n const [isSpinning, setIsSpinning] = useState(false);\r\n const [interval, setInterval] = useState(undefined); // 间隔时间,当设置值为 undefined 时会停止计时器\r\n const inputRef = useRef(null);\r\n const [currentStatus, setCurrentStatus] = useState('idle'); // 'idle' | 'uploading' | 'upgrading'\r\n const isUploadCompleteRef = useRef(false); // 安装包上传是否完成\r\n const [uploadProgress, setUploadProgress] = useState(0);\r\n\r\n // 分别创建独立的取消令牌\r\n const uploadCancelToken = useRef(axios.CancelToken.source());\r\n const statusCancelToken = useRef(axios.CancelToken.source());\r\n\r\n const showLoader = () => setIsSpinning(true);\r\n const hideLoader = () => setIsSpinning(false);\r\n\r\n // 构建菜单项 - 确保至少包含download和upload\r\n // 构建菜单项 - 最终完美版本\r\n const finalMenuItems = useMemo(() => {\r\n const hasDownload = menuItems.some(item => item.key === 'download');\r\n const hasUpload = menuItems.some(item => item.key === 'upload');\r\n \r\n if (hasDownload && hasUpload) {\r\n return menuItems;\r\n }\r\n \r\n const licenseIndex = menuItems.findIndex(item => item.key === 'license');\r\n \r\n // 如果没有license,在末尾添加\r\n if (licenseIndex === -1) {\r\n const itemsToAdd = [];\r\n if (menuItems.length > 0) itemsToAdd.push({ type: 'divider' });\r\n if (!hasDownload) itemsToAdd.push({ key: \"download\", label: \"Download Config File\" });\r\n if (!hasUpload) itemsToAdd.push({ key: \"upload\", label: \"Software Update\" });\r\n return [...menuItems, ...itemsToAdd];\r\n }\r\n \r\n // 有license,在license前面插入\r\n const beforeLicense = menuItems.slice(0, licenseIndex);\r\n const licenseItem = menuItems[licenseIndex];\r\n const afterLicense = menuItems.slice(licenseIndex + 1);\r\n \r\n const itemsToInsert = [];\r\n \r\n // 1. 前面的分隔符(如果beforeLicense不为空且最后一项不是分隔符)\r\n if (beforeLicense.length > 0 && beforeLicense[beforeLicense.length - 1].type !== 'divider') {\r\n itemsToInsert.push({ type: 'divider' });\r\n }\r\n \r\n // 2. 添加缺少的项\r\n if (!hasDownload) itemsToInsert.push({ key: \"download\", label: \"Download Config File\" });\r\n if (!hasUpload) itemsToInsert.push({ key: \"upload\", label: \"Software Update\" });\r\n \r\n // 3. 后面的分隔符(与license之间)\r\n itemsToInsert.push({ type: 'divider' });\r\n \r\n return [...beforeLicense, ...itemsToInsert, licenseItem, ...afterLicense];\r\n }, [menuItems]);\r\n\r\n const handleMenuClick = ({ key }) => {\r\n switch (key) {\r\n case 'download':\r\n onDownload();\r\n return;\r\n case 'upload':\r\n onUpload();\r\n return;\r\n default:\r\n // 其他菜单项交给外部回调处理\r\n if (onMenuClick) {\r\n onMenuClick(key);\r\n } else {\r\n console.warn(`Unknown menu key: ${key} and no onMenuClick provided`);\r\n }\r\n }\r\n };\r\n\r\n const onDownload = async () => {\r\n if (!downloadFiles) {\r\n console.error('downloadFiles function is required for download operation');\r\n message.error('Download functionality not configured');\r\n return;\r\n }\r\n\r\n try {\r\n const res = await downloadFiles();\r\n\r\n if (res.status !== 200) {\r\n throw new Error(`Unexpected status code: ${res.status}`);\r\n }\r\n\r\n // 默认值,兼容接口响应头没有定义文件名\r\n let fileName = 'config.tar.gz';\r\n const contentDisposition = res.headers['content-disposition'] || '';\r\n\r\n // 获取接口响应的content-disposition字段值,以便获取到文件名\r\n if (contentDisposition) {\r\n const filenameMatch = contentDisposition.match(/filename\\s*=\\s*\"?([^\";]+)\"?/i);\r\n if (filenameMatch?.[1]) {\r\n fileName = decodeURIComponent(filenameMatch[1]); // 处理编码后的文件名(如 %20 转空格)\r\n }\r\n }\r\n\r\n // 创建并下载文件\r\n const blob = new Blob([res.data], { type: 'application/octet-stream' });\r\n const url = window.URL.createObjectURL(blob);\r\n\r\n // 下面就是创建一个a标签并触发click事件,来下载该文件\r\n const link = document.createElement('a');\r\n link.style.display = 'none';\r\n link.href = url;\r\n link.target = '_blank';\r\n link.download = fileName;\r\n document.body.appendChild(link);\r\n link.click();\r\n\r\n // 最后移除a标签并删除创建的ObjectURL对象,防止内存泄漏\r\n link.parentNode.removeChild(link);\r\n window.URL.revokeObjectURL(url);\r\n } catch (error) {\r\n console.error('Download failed:', error);\r\n message.error('Download failed');\r\n }\r\n }\r\n\r\n const onUpload = () => {\r\n if (inputRef?.current) {\r\n inputRef.current.click();\r\n }\r\n }\r\n\r\n const updatePackage = async (event) => {\r\n if (!upgradeExecute) {\r\n console.error('upgradeExecute function is required for upload operation');\r\n message.error('Upload functionality not configured');\r\n return;\r\n }\r\n\r\n try {\r\n const file = event.target.files?.[0];\r\n if (!file) return;\r\n\r\n showLoader();\r\n setCurrentStatus('Uploading...');\r\n setUploadProgress(0); // 重置进度\r\n\r\n const formData = new FormData();\r\n formData.append('file', file);\r\n\r\n isUploadCompleteRef.current = false;\r\n\r\n // 上传文件(不等待响应)\r\n upgradeExecute(formData, {\r\n onUploadProgress: (progressEvent) => {\r\n const percentCompleted = Math.round(\r\n (progressEvent.loaded * 100) / progressEvent.total\r\n );\r\n setUploadProgress(percentCompleted); // 更新进度状态\r\n\r\n if (percentCompleted === 100) {\r\n isUploadCompleteRef.current = true;\r\n // 等待3秒 开始状态轮询\r\n setTimeout(() => {\r\n setInterval(statusPollingInterval);\r\n setCurrentStatus('Upgrading...');\r\n }, uploadCompleteDelay);\r\n }\r\n },\r\n cancelToken: uploadCancelToken.current.token\r\n });\r\n\r\n // 清除文件选择\r\n if (inputRef.current) inputRef.current.value = \"\";\r\n } catch (error) {\r\n if (!axios.isCancel(error)) {\r\n console.error(\"Upload error:\", error);\r\n message.error('Upload failed');\r\n }\r\n cancelRequest();\r\n }\r\n }\r\n\r\n const fetchUpgradeStatus = async () => {\r\n if (!upgradeStatus) {\r\n console.error('upgradeStatus function is required for status checking');\r\n cancelRequest();\r\n return;\r\n }\r\n\r\n try {\r\n const response = await upgradeStatus({\r\n cancelToken: statusCancelToken.current.token\r\n });\r\n\r\n if (response?.status === 200) {\r\n const { code, message: statusMessage } = response.data;\r\n\r\n // 状态处理\r\n switch (code) {\r\n case 200: // 升级成功\r\n message.success(statusMessage, 2.5, () => {\r\n cancelRequest();\r\n window.location.reload();\r\n });\r\n break;\r\n \r\n case 201: // 升级中\r\n // code为201时,每隔一秒请求一次。直到请求到其他的code,直接弹出message提示。\r\n break;\r\n case 202: // 升级失败\r\n case 203: // 升级异常\r\n message.error(statusMessage);\r\n cancelRequest();\r\n break;\r\n \r\n default:\r\n break;\r\n }\r\n }\r\n } catch (error) {\r\n if (axios.isCancel(error)) {\r\n console.log('Status polling canceled');\r\n } else {\r\n console.error('Status check failed:', error);\r\n // 网络错误时自动重试\r\n }\r\n }\r\n }\r\n\r\n const cancelRequest = () => {\r\n // 取消状态轮询\r\n uploadCancelToken.current.cancel('Operation canceled');\r\n statusCancelToken.current.cancel('Operation canceled');\r\n \r\n uploadCancelToken.current = axios.CancelToken.source();\r\n statusCancelToken.current = axios.CancelToken.source();\r\n \r\n // 重置所有状态\r\n setInterval(undefined);\r\n setCurrentStatus('idle');\r\n hideLoader();\r\n };\r\n\r\n // 轮询状态\r\n useInterval(fetchUpgradeStatus, interval);\r\n\r\n // 组件卸载时清理\r\n useEffect(() => {\r\n return () => {\r\n uploadCancelToken.current.cancel();\r\n statusCancelToken.current.cancel();\r\n };\r\n }, []);\r\n\r\n const upgradeElement = (\r\n <div>\r\n <Dropdown \r\n menu={{ \r\n items: finalMenuItems, \r\n onClick: handleMenuClick\r\n }} \r\n trigger={[\"hover\"]}\r\n >\r\n <a onClick={(e) => e.preventDefault()}>\r\n <i className=\"seeder-iconfont seeder-icon-liebiao2 text-xl text-neutral-400\"></i>\r\n </a>\r\n </Dropdown>\r\n <input \r\n ref={inputRef} \r\n type=\"file\" \r\n onChange={updatePackage} \r\n className=\"hidden\"\r\n accept={acceptFileTypes}\r\n />\r\n <Spin \r\n spinning={isSpinning} \r\n indicator={<LoadingOutlined style={{ fontSize: 60 }} spin />}\r\n tip={\r\n currentStatus === \"Uploading...\" \r\n ? `${currentStatus} ${uploadProgress}%` \r\n : currentStatus\r\n }\r\n size=\"large\"\r\n fullscreen\r\n />\r\n </div>\r\n )\r\n\r\n return [upgradeElement];\r\n}\r\n\r\nexport default useUpgrade;","import { useCallback } from 'react';\r\nimport { App } from \"antd\";\r\nimport { ExclamationCircleFilled } from \"@ant-design/icons\";\r\n\r\nconst useSystemOperations = ({\r\n onPowerOff,\r\n onRestart,\r\n confirmTitle = \"Confirm\",\r\n cancelText = \"No\",\r\n okText = \"Yes\",\r\n run\r\n} = {}) => {\r\n const { modal: AntdModal } = App.useApp();\r\n\r\n const doAction = useCallback((action) => {\r\n try {\r\n AntdModal.confirm({\r\n icon: <ExclamationCircleFilled />,\r\n title: `${confirmTitle} ${action}?`,\r\n cancelText,\r\n okText,\r\n onOk: () => {\r\n if (action === 'poweroff' && onPowerOff) {\r\n onPowerOff();\r\n } else if (action === 'restart' && onRestart) {\r\n onRestart();\r\n }\r\n\r\n // Call the run callback after successful operation\r\n if (typeof run === 'function') {\r\n run();\r\n }\r\n }\r\n });\r\n } catch (error) {\r\n console.error(`${action.toUpperCase()} ERROR: `, error);\r\n }\r\n }, [AntdModal, confirmTitle, cancelText, okText, onPowerOff, onRestart]);\r\n\r\n const getMenuItems = useCallback(() => [\r\n {\r\n key: \"poweroff\",\r\n label: \"Power Off\",\r\n },\r\n {\r\n key: \"restart\",\r\n label: \"Restart\",\r\n }\r\n ], []);\r\n\r\n const handleMenuClick = useCallback(({ key }) => {\r\n doAction(key);\r\n }, [doAction]);\r\n\r\n return {\r\n menuItems: getMenuItems(),\r\n handleMenuClick\r\n };\r\n};\r\n\r\nexport default useSystemOperations;","import { Dropdown } from \"antd\";\r\nimport useUpgrade from '../hooks/useUpgrade';\r\n\r\nconst UpgradeManager = ({\r\n menuItems = [],\r\n onMenuClick,\r\n downloadFiles,\r\n upgradeExecute,\r\n upgradeStatus,\r\n acceptFileTypes = \"application/octet-stream\",\r\n uploadCompleteDelay = 3000,\r\n statusPollingInterval = 1000,\r\n children,\r\n ...dropdownProps\r\n }) => {\r\n const [upgradeElement] = useUpgrade({\r\n menuItems,\r\n onMenuClick,\r\n downloadFiles,\r\n upgradeExecute,\r\n upgradeStatus,\r\n acceptFileTypes,\r\n uploadCompleteDelay,\r\n statusPollingInterval\r\n });\r\n\r\n if (children) {\r\n // 提取Dropdown组件和其menu属性\r\n const dropdownElement = upgradeElement.props.children[0];\r\n const otherElements = upgradeElement.props.children.slice(1);\r\n \r\n return (\r\n <>\r\n <Dropdown \r\n {...dropdownProps} \r\n {...dropdownElement.props} // 传递所有Dropdown的props\r\n >\r\n {children}\r\n </Dropdown>\r\n {otherElements}\r\n </>\r\n );\r\n }\r\n\r\n // 如果没有children,直接返回完整的升级元素\r\n return upgradeElement;\r\n }\r\n\r\n UpgradeManager.defaultProps = {\r\n trigger: [\"hover\"],\r\n placement: \"bottomRight\"\r\n};\r\n\r\nexport default UpgradeManager;","/** @license React v16.13.1\n * react-is.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';var b=\"function\"===typeof Symbol&&Symbol.for,c=b?Symbol.for(\"react.element\"):60103,d=b?Symbol.for(\"react.portal\"):60106,e=b?Symbol.for(\"react.fragment\"):60107,f=b?Symbol.for(\"react.strict_mode\"):60108,g=b?Symbol.for(\"react.profiler\"):60114,h=b?Symbol.for(\"react.provider\"):60109,k=b?Symbol.for(\"react.context\"):60110,l=b?Symbol.for(\"react.async_mode\"):60111,m=b?Symbol.for(\"react.concurrent_mode\"):60111,n=b?Symbol.for(\"react.forward_ref\"):60112,p=b?Symbol.for(\"react.suspense\"):60113,q=b?\nSymbol.for(\"react.suspense_list\"):60120,r=b?Symbol.for(\"react.memo\"):60115,t=b?Symbol.for(\"react.lazy\"):60116,v=b?Symbol.for(\"react.block\"):60121,w=b?Symbol.for(\"react.fundamental\"):60117,x=b?Symbol.for(\"react.responder\"):60118,y=b?Symbol.for(\"react.scope\"):60119;\nfunction z(a){if(\"object\"===typeof a&&null!==a){var u=a.$$typeof;switch(u){case c:switch(a=a.type,a){case l:case m:case e:case g:case f:case p:return a;default:switch(a=a&&a.$$typeof,a){case k:case n:case t:case r:case h:return a;default:return u}}case d:return u}}}function A(a){return z(a)===m}exports.AsyncMode=l;exports.ConcurrentMode=m;exports.ContextConsumer=k;exports.ContextProvider=h;exports.Element=c;exports.ForwardRef=n;exports.Fragment=e;exports.Lazy=t;exports.Memo=r;exports.Portal=d;\nexports.Profiler=g;exports.StrictMode=f;exports.Suspense=p;exports.isAsyncMode=function(a){return A(a)||z(a)===l};exports.isConcurrentMode=A;exports.isContextConsumer=function(a){return z(a)===k};exports.isContextProvider=function(a){return z(a)===h};exports.isElement=function(a){return\"object\"===typeof a&&null!==a&&a.$$typeof===c};exports.isForwardRef=function(a){return z(a)===n};exports.isFragment=function(a){return z(a)===e};exports.isLazy=function(a){return z(a)===t};\nexports.isMemo=function(a){return z(a)===r};exports.isPortal=function(a){return z(a)===d};exports.isProfiler=function(a){return z(a)===g};exports.isStrictMode=function(a){return z(a)===f};exports.isSuspense=function(a){return z(a)===p};\nexports.isValidElementType=function(a){return\"string\"===typeof a||\"function\"===typeof a||a===e||a===m||a===g||a===f||a===p||a===q||\"object\"===typeof a&&null!==a&&(a.$$typeof===t||a.$$typeof===r||a.$$typeof===h||a.$$typeof===k||a.$$typeof===n||a.$$typeof===w||a.$$typeof===x||a.$$typeof===y||a.$$typeof===v)};exports.typeOf=z;\n","/** @license React v16.13.1\n * react-is.development.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\n\n\nif (process.env.NODE_ENV !== \"production\") {\n (function() {\n'use strict';\n\n// The Symbol used to tag the ReactElement-like types. If there is no native Symbol\n// nor polyfill, then a plain number is used for performance.\nvar hasSymbol = typeof Symbol === 'function' && Symbol.for;\nvar REACT_ELEMENT_TYPE = hasSymbol ? Symbol.for('react.element') : 0xeac7;\nvar REACT_PORTAL_TYPE = hasSymbol ? Symbol.for('react.portal') : 0xeaca;\nvar REACT_FRAGMENT_TYPE = hasSymbol ? Symbol.for('react.fragment') : 0xeacb;\nvar REACT_STRICT_MODE_TYPE = hasSymbol ? Symbol.for('react.strict_mode') : 0xeacc;\nvar REACT_PROFILER_TYPE = hasSymbol ? Symbol.for('react.profiler') : 0xead2;\nvar REACT_PROVIDER_TYPE = hasSymbol ? Symbol.for('react.provider') : 0xeacd;\nvar REACT_CONTEXT_TYPE = hasSymbol ? Symbol.for('react.context') : 0xeace; // TODO: We don't use AsyncMode or ConcurrentMode anymore. They were temporary\n// (unstable) APIs that have been removed. Can we remove the symbols?\n\nvar REACT_ASYNC_MODE_TYPE = hasSymbol ? Symbol.for('react.async_mode') : 0xeacf;\nvar REACT_CONCURRENT_MODE_TYPE = hasSymbol ? Symbol.for('react.concurrent_mode') : 0xeacf;\nvar REACT_FORWARD_REF_TYPE = hasSymbol ? Symbol.for('react.forward_ref') : 0xead0;\nvar REACT_SUSPENSE_TYPE = hasSymbol ? Symbol.for('react.suspense') : 0xead1;\nvar REACT_SUSPENSE_LIST_TYPE = hasSymbol ? Symbol.for('react.suspense_list') : 0xead8;\nvar REACT_MEMO_TYPE = hasSymbol ? Symbol.for('react.memo') : 0xead3;\nvar REACT_LAZY_TYPE = hasSymbol ? Symbol.for('react.lazy') : 0xead4;\nvar REACT_BLOCK_TYPE = hasSymbol ? Symbol.for('react.block') : 0xead9;\nvar REACT_FUNDAMENTAL_TYPE = hasSymbol ? Symbol.for('react.fundamental') : 0xead5;\nvar REACT_RESPONDER_TYPE = hasSymbol ? Symbol.for('react.responder') : 0xead6;\nvar REACT_SCOPE_TYPE = hasSymbol ? Symbol.for('react.scope') : 0xead7;\n\nfunction isValidElementType(type) {\n return typeof type === 'string' || typeof type === 'function' || // Note: its typeof might be other than 'symbol' or 'number' if it's a polyfill.\n type === REACT_FRAGMENT_TYPE || type === REACT_CONCURRENT_MODE_TYPE || type === REACT_PROFILER_TYPE || type === REACT_STRICT_MODE_TYPE || type === REACT_SUSPENSE_TYPE || type === REACT_SUSPENSE_LIST_TYPE || typeof type === 'object' && type !== null && (type.$$typeof === REACT_LAZY_TYPE || type.$$typeof === REACT_MEMO_TYPE || type.$$typeof === REACT_PROVIDER_TYPE || type.$$typeof === REACT_CONTEXT_TYPE || type.$$typeof === REACT_FORWARD_REF_TYPE || type.$$typeof === REACT_FUNDAMENTAL_TYPE || type.$$typeof === REACT_RESPONDER_TYPE || type.$$typeof === REACT_SCOPE_TYPE || type.$$typeof === REACT_BLOCK_TYPE);\n}\n\nfunction typeOf(object) {\n if (typeof object === 'object' && object !== null) {\n var $$typeof = object.$$typeof;\n\n switch ($$typeof) {\n case REACT_ELEMENT_TYPE:\n var type = object.type;\n\n switch (type) {\n case REACT_ASYNC_MODE_TYPE:\n case REACT_CONCURRENT_MODE_TYPE:\n case REACT_FRAGMENT_TYPE:\n case REACT_PROFILER_TYPE:\n case REACT_STRICT_MODE_TYPE:\n case REACT_SUSPENSE_TYPE:\n return type;\n\n default:\n var $$typeofType = type && type.$$typeof;\n\n switch ($$typeofType) {\n case REACT_CONTEXT_TYPE:\n case REACT_FORWARD_REF_TYPE:\n case REACT_LAZY_TYPE:\n case REACT_MEMO_TYPE:\n case REACT_PROVIDER_TYPE:\n return $$typeofType;\n\n default:\n return $$typeof;\n }\n\n }\n\n case REACT_PORTAL_TYPE:\n return $$typeof;\n }\n }\n\n return undefined;\n} // AsyncMode is deprecated along with isAsyncMode\n\nvar AsyncMode = REACT_ASYNC_MODE_TYPE;\nvar ConcurrentMode = REACT_CONCURRENT_MODE_TYPE;\nvar ContextConsumer = REACT_CONTEXT_TYPE;\nvar ContextProvider = REACT_PROVIDER_TYPE;\nvar Element = REACT_ELEMENT_TYPE;\nvar ForwardRef = REACT_FORWARD_REF_TYPE;\nvar Fragment = REACT_FRAGMENT_TYPE;\nvar Lazy = REACT_LAZY_TYPE;\nvar Memo = REACT_MEMO_TYPE;\nvar Portal = REACT_PORTAL_TYPE;\nvar Profiler = REACT_PROFILER_TYPE;\nvar StrictMode = REACT_STRICT_MODE_TYPE;\nvar Suspense = REACT_SUSPENSE_TYPE;\nvar hasWarnedAboutDeprecatedIsAsyncMode = false; // AsyncMode should be deprecated\n\nfunction isAsyncMode(object) {\n {\n if (!hasWarnedAboutDeprecatedIsAsyncMode) {\n hasWarnedAboutDeprecatedIsAsyncMode = true; // Using console['warn'] to evade Babel and ESLint\n\n console['warn']('The ReactIs.isAsyncMode() alias has been deprecated, ' + 'and will be removed in React 17+. Update your code to use ' + 'ReactIs.isConcurrentMode() instead. It has the exact same API.');\n }\n }\n\n return isConcurrentMode(object) || typeOf(object) === REACT_ASYNC_MODE_TYPE;\n}\nfunction isConcurrentMode(object) {\n return typeOf(object) === REACT_CONCURRENT_MODE_TYPE;\n}\nfunction isContextConsumer(object) {\n return typeOf(object) === REACT_CONTEXT_TYPE;\n}\nfunction isContextProvider(object) {\n return typeOf(object) === REACT_PROVIDER_TYPE;\n}\nfunction isElement(object) {\n return typeof object === 'object' && object !== null && object.$$typeof === REACT_ELEMENT_TYPE;\n}\nfunction isForwardRef(object) {\n return typeOf(object) === REACT_FORWARD_REF_TYPE;\n}\nfunction isFragment(object) {\n return typeOf(object) === REACT_FRAGMENT_TYPE;\n}\nfunction isLazy(object) {\n return typeOf(object) === REACT_LAZY_TYPE;\n}\nfunction isMemo(object) {\n return typeOf(object) === REACT_MEMO_TYPE;\n}\nfunction isPortal(object) {\n return typeOf(object) === REACT_PORTAL_TYPE;\n}\nfunction isProfiler(object) {\n return typeOf(object) === REACT_PROFILER_TYPE;\n}\nfunction isStrictMode(object) {\n return typeOf(object) === REACT_STRICT_MODE_TYPE;\n}\nfunction isSuspense(object) {\n return typeOf(object) === REACT_SUSPENSE_TYPE;\n}\n\nexports.AsyncMode = AsyncMode;\nexports.ConcurrentMode = ConcurrentMode;\nexports.ContextConsumer = ContextConsumer;\nexports.ContextProvider = ContextProvider;\nexports.Element = Element;\nexports.ForwardRef = ForwardRef;\nexports.Fragment = Fragment;\nexports.Lazy = Lazy;\nexports.Memo = Memo;\nexports.Portal = Portal;\nexports.Profiler = Profiler;\nexports.StrictMode = StrictMode;\nexports.Suspense = Suspense;\nexports.isAsyncMode = isAsyncMode;\nexports.isConcurrentMode = isConcurrentMode;\nexports.isContextConsumer = isContextConsumer;\nexports.isContextProvider = isContextProvider;\nexports.isElement = isElement;\nexports.isForwardRef = isForwardRef;\nexports.isFragment = isFragment;\nexports.isLazy = isLazy;\nexports.isMemo = isMemo;\nexports.isPortal = isPortal;\nexports.isProfiler = isProfiler;\nexports.isStrictMode = isStrictMode;\nexports.isSuspense = isSuspense;\nexports.isValidElementType = isValidElementType;\nexports.typeOf = typeOf;\n })();\n}\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/react-is.production.min.js');\n} else {\n module.exports = require('./cjs/react-is.development.js');\n}\n","/*\nobject-assign\n(c) Sindre Sorhus\n@license MIT\n*/\n\n'use strict';\n/* eslint-disable no-unused-vars */\nvar getOwnPropertySymbols = Object.getOwnPropertySymbols;\nvar hasOwnProperty = Object.prototype.hasOwnProperty;\nvar propIsEnumerable = Object.prototype.propertyIsEnumerable;\n\nfunction toObject(val) {\n\tif (val === null || val === undefined) {\n\t\tthrow new TypeError('Object.assign cannot be called with null or undefined');\n\t}\n\n\treturn Object(val);\n}\n\nfunction shouldUseNative() {\n\ttry {\n\t\tif (!Object.assign) {\n\t\t\treturn false;\n\t\t}\n\n\t\t// Detect buggy property enumeration order in older V8 versions.\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=4118\n\t\tvar test1 = new String('abc'); // eslint-disable-line no-new-wrappers\n\t\ttest1[5] = 'de';\n\t\tif (Object.getOwnPropertyNames(test1)[0] === '5') {\n\t\t\treturn false;\n\t\t}\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=3056\n\t\tvar test2 = {};\n\t\tfor (var i = 0; i < 10; i++) {\n\t\t\ttest2['_' + String.fromCharCode(i)] = i;\n\t\t}\n\t\tvar order2 = Object.getOwnPropertyNames(test2).map(function (n) {\n\t\t\treturn test2[n];\n\t\t});\n\t\tif (order2.join('') !== '0123456789') {\n\t\t\treturn false;\n\t\t}\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=3056\n\t\tvar test3 = {};\n\t\t'abcdefghijklmnopqrst'.split('').forEach(function (letter) {\n\t\t\ttest3[letter] = letter;\n\t\t});\n\t\tif (Object.keys(Object.assign({}, test3)).join('') !==\n\t\t\t\t'abcdefghijklmnopqrst') {\n\t\t\treturn false;\n\t\t}\n\n\t\treturn true;\n\t} catch (err) {\n\t\t// We don't expect any of the above to throw, but better to be safe.\n\t\treturn false;\n\t}\n}\n\nmodule.exports = shouldUseNative() ? Object.assign : function (target, source) {\n\tvar from;\n\tvar to = toObject(target);\n\tvar symbols;\n\n\tfor (var s = 1; s < arguments.length; s++) {\n\t\tfrom = Object(arguments[s]);\n\n\t\tfor (var key in from) {\n\t\t\tif (hasOwnProperty.call(from, key)) {\n\t\t\t\tto[key] = from[key];\n\t\t\t}\n\t\t}\n\n\t\tif (getOwnPropertySymbols) {\n\t\t\tsymbols = getOwnPropertySymbols(from);\n\t\t\tfor (var i = 0; i < symbols.length; i++) {\n\t\t\t\tif (propIsEnumerable.call(from, symbols[i])) {\n\t\t\t\t\tto[symbols[i]] = from[symbols[i]];\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\treturn to;\n};\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nvar ReactPropTypesSecret = 'SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED';\n\nmodule.exports = ReactPropTypesSecret;\n","module.exports = Function.call.bind(Object.prototype.hasOwnProperty);\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nvar printWarning = function() {};\n\nif (process.env.NODE_ENV !== 'production') {\n var ReactPropTypesSecret = require('./lib/ReactPropTypesSecret');\n var loggedTypeFailures = {};\n var has = require('./lib/has');\n\n printWarning = function(text) {\n var message = 'Warning: ' + text;\n if (typeof console !== 'undefined') {\n console.error(message);\n }\n try {\n // --- Welcome to debugging React ---\n // This error was thrown as a convenience so that you can use this stack\n // to find the callsite that caused this warning to fire.\n throw new Error(message);\n } catch (x) { /**/ }\n };\n}\n\n/**\n * Assert that the values match with the type specs.\n * Error messages are memorized and will only be shown once.\n *\n * @param {object} typeSpecs Map of name to a ReactPropType\n * @param {object} values Runtime values that need to be type-checked\n * @param {string} location e.g. \"prop\", \"context\", \"child context\"\n * @param {string} componentName Name of the component for error messages.\n * @param {?Function} getStack Returns the component stack.\n * @private\n */\nfunction checkPropTypes(typeSpecs, values, location, componentName, getStack) {\n if (process.env.NODE_ENV !== 'production') {\n for (var typeSpecName in typeSpecs) {\n if (has(typeSpecs, typeSpecName)) {\n var error;\n // Prop type validation may throw. In case they do, we don't want to\n // fail the render phase where it didn't fail before. So we log it.\n // After these have been cleaned up, we'll let them throw.\n try {\n // This is intentionally an invariant that gets caught. It's the same\n // behavior as without this statement except with a better message.\n if (typeof typeSpecs[typeSpecName] !== 'function') {\n var err = Error(\n (componentName || 'React class') + ': ' + location + ' type `' + typeSpecName + '` is invalid; ' +\n 'it must be a function, usually from the `prop-types` package, but received `' + typeof typeSpecs[typeSpecName] + '`.' +\n 'This often happens because of typos such as `PropTypes.function` instead of `PropTypes.func`.'\n );\n err.name = 'Invariant Violation';\n throw err;\n }\n error = typeSpecs[typeSpecName](values, typeSpecName, componentName, location, null, ReactPropTypesSecret);\n } catch (ex) {\n error = ex;\n }\n if (error && !(error instanceof Error)) {\n printWarning(\n (componentName || 'React class') + ': type specification of ' +\n location + ' `' + typeSpecName + '` is invalid; the type checker ' +\n 'function must return `null` or an `Error` but returned a ' + typeof error + '. ' +\n 'You may have forgotten to pass an argument to the type checker ' +\n 'creator (arrayOf, instanceOf, objectOf, oneOf, oneOfType, and ' +\n 'shape all require an argument).'\n );\n }\n if (error instanceof Error && !(error.message in loggedTypeFailures)) {\n // Only monitor this failure once because there tends to be a lot of the\n // same error.\n loggedTypeFailures[error.message] = true;\n\n var stack = getStack ? getStack() : '';\n\n printWarning(\n 'Failed ' + location + ' type: ' + error.message + (stack != null ? stack : '')\n );\n }\n }\n }\n }\n}\n\n/**\n * Resets warning cache when testing.\n *\n * @private\n */\ncheckPropTypes.resetWarningCache = function() {\n if (process.env.NODE_ENV !== 'production') {\n loggedTypeFailures = {};\n }\n}\n\nmodule.exports = checkPropTypes;\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nvar ReactIs = require('react-is');\nvar assign = require('object-assign');\n\nvar ReactPropTypesSecret = require('./lib/ReactPropTypesSecret');\nvar has = require('./lib/has');\nvar checkPropTypes = require('./checkPropTypes');\n\nvar printWarning = function() {};\n\nif (process.env.NODE_ENV !== 'production') {\n printWarning = function(text) {\n var message = 'Warning: ' + text;\n if (typeof console !== 'undefined') {\n console.error(message);\n }\n try {\n // --- Welcome to debugging React ---\n // This error was thrown as a convenience so that you can use this stack\n // to find the callsite that caused this warning to fire.\n throw new Error(message);\n } catch (x) {}\n };\n}\n\nfunction emptyFunctionThatReturnsNull() {\n return null;\n}\n\nmodule.exports = function(isValidElement, throwOnDirectAccess) {\n /* global Symbol */\n var ITERATOR_SYMBOL = typeof Symbol === 'function' && Symbol.iterator;\n var FAUX_ITERATOR_SYMBOL = '@@iterator'; // Before Symbol spec.\n\n /**\n * Returns the iterator method function contained on the iterable object.\n *\n * Be sure to invoke the function with the iterable as context:\n *\n * var iteratorFn = getIteratorFn(myIterable);\n * if (iteratorFn) {\n * var iterator = iteratorFn.call(myIterable);\n * ...\n * }\n *\n * @param {?object} maybeIterable\n * @return {?function}\n */\n function getIteratorFn(maybeIterable) {\n var iteratorFn = maybeIterable && (ITERATOR_SYMBOL && maybeIterable[ITERATOR_SYMBOL] || maybeIterable[FAUX_ITERATOR_SYMBOL]);\n if (typeof iteratorFn === 'function') {\n return iteratorFn;\n }\n }\n\n /**\n * Collection of methods that allow declaration and validation of props that are\n * supplied to React components. Example usage:\n *\n * var Props = require('ReactPropTypes');\n * var MyArticle = React.createClass({\n * propTypes: {\n * // An optional string prop named \"description\".\n * description: Props.string,\n *\n * // A required enum prop named \"category\".\n * category: Props.oneOf(['News','Photos']).isRequired,\n *\n * // A prop named \"dialog\" that requires an instance of Dialog.\n * dialog: Props.instanceOf(Dialog).isRequired\n * },\n * render: function() { ... }\n * });\n *\n * A more formal specification of how these methods are used:\n *\n * type := array|bool|func|object|number|string|oneOf([...])|instanceOf(...)\n * decl := ReactPropTypes.{type}(.isRequired)?\n *\n * Each and every declaration produces a function with the same signature. This\n * allows the creation of custom validation functions. For example:\n *\n * var MyLink = React.createClass({\n * propTypes: {\n * // An optional string or URI prop named \"href\".\n * href: function(props, propName, componentName) {\n * var propValue = props[propName];\n * if (propValue != null && typeof propValue !== 'string' &&\n * !(propValue instanceof URI)) {\n * return new Error(\n * 'Expected a string or an URI for ' + propName + ' in ' +\n * componentName\n * );\n * }\n * }\n * },\n * render: function() {...}\n * });\n *\n * @internal\n */\n\n var ANONYMOUS = '<<anonymous>>';\n\n // Important!\n // Keep this list in sync with production version in `./factoryWithThrowingShims.js`.\n var ReactPropTypes = {\n array: createPrimitiveTypeChecker('array'),\n bigint: createPrimitiveTypeChecker('bigint'),\n bool: createPrimitiveTypeChecker('boolean'),\n func: createPrimitiveTypeChecker('function'),\n number: createPrimitiveTypeChecker('number'),\n object: createPrimitiveTypeChecker('object'),\n string: createPrimitiveTypeChecker('string'),\n symbol: createPrimitiveTypeChecker('symbol'),\n\n any: createAnyTypeChecker(),\n arrayOf: createArrayOfTypeChecker,\n element: createElementTypeChecker(),\n elementType: createElementTypeTypeChecker(),\n instanceOf: createInstanceTypeChecker,\n node: createNodeChecker(),\n objectOf: createObjectOfTypeChecker,\n oneOf: createEnumTypeChecker,\n oneOfType: createUnionTypeChecker,\n shape: createShapeTypeChecker,\n exact: createStrictShapeTypeChecker,\n };\n\n /**\n * inlined Object.is polyfill to avoid requiring consumers ship their own\n * https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/is\n */\n /*eslint-disable no-self-compare*/\n function is(x, y) {\n // SameValue algorithm\n if (x === y) {\n // Steps 1-5, 7-10\n // Steps 6.b-6.e: +0 != -0\n return x !== 0 || 1 / x === 1 / y;\n } else {\n // Step 6.a: NaN == NaN\n return x !== x && y !== y;\n }\n }\n /*eslint-enable no-self-compare*/\n\n /**\n * We use an Error-like object for backward compatibility as people may call\n * PropTypes directly and inspect their output. However, we don't use real\n * Errors anymore. We don't inspect their stack anyway, and creating them\n * is prohibitively expensive if they are created too often, such as what\n * happens in oneOfType() for any type before the one that matched.\n */\n function PropTypeError(message, data) {\n this.message = message;\n this.data = data && typeof data === 'object' ? data: {};\n this.stack = '';\n }\n // Make `instanceof Error` still work for returned errors.\n PropTypeError.prototype = Error.prototype;\n\n function createChainableTypeChecker(validate) {\n if (process.env.NODE_ENV !== 'production') {\n var manualPropTypeCallCache = {};\n var manualPropTypeWarningCount = 0;\n }\n function checkType(isRequired, props, propName, componentName, location, propFullName, secret) {\n componentName = componentName || ANONYMOUS;\n propFullName = propFullName || propName;\n\n if (secret !== ReactPropTypesSecret) {\n if (throwOnDirectAccess) {\n // New behavior only for users of `prop-types` package\n var err = new Error(\n 'Calling PropTypes validators directly is not supported by the `prop-types` package. ' +\n 'Use `PropTypes.checkPropTypes()` to call them. ' +\n 'Read more at http://fb.me/use-check-prop-types'\n );\n err.name = 'Invariant Violation';\n throw err;\n } else if (process.env.NODE_ENV !== 'production' && typeof console !== 'undefined') {\n // Old behavior for people using React.PropTypes\n var cacheKey = componentName + ':' + propName;\n if (\n !manualPropTypeCallCache[cacheKey] &&\n // Avoid spamming the console because they are often not actionable except for lib authors\n manualPropTypeWarningCount < 3\n ) {\n printWarning(\n 'You are manually calling a React.PropTypes validation ' +\n 'function for the `' + propFullName + '` prop on `' + componentName + '`. This is deprecated ' +\n 'and will throw in the standalone `prop-types` package. ' +\n 'You may be seeing this warning due to a third-party PropTypes ' +\n 'library. See https://fb.me/react-warning-dont-call-proptypes ' + 'for details.'\n );\n manualPropTypeCallCache[cacheKey] = true;\n manualPropTypeWarningCount++;\n }\n }\n }\n if (props[propName] == null) {\n if (isRequired) {\n if (props[propName] === null) {\n return new PropTypeError('The ' + location + ' `' + propFullName + '` is marked as required ' + ('in `' + componentName + '`, but its value is `null`.'));\n }\n return new PropTypeError('The ' + location + ' `' + propFullName + '` is marked as required in ' + ('`' + componentName + '`, but its value is `undefined`.'));\n }\n return null;\n } else {\n return validate(props, propName, componentName, location, propFullName);\n }\n }\n\n var chainedCheckType = checkType.bind(null, false);\n chainedCheckType.isRequired = checkType.bind(null, true);\n\n return chainedCheckType;\n }\n\n function createPrimitiveTypeChecker(expectedType) {\n function validate(props, propName, componentName, location, propFullName, secret) {\n var propValue = props[propName];\n var propType = getPropType(propValue);\n if (propType !== expectedType) {\n // `propValue` being instance of, say, date/regexp, pass the 'object'\n // check, but we can offer a more precise error message here rather than\n // 'of type `object`'.\n var preciseType = getPreciseType(propValue);\n\n return new PropTypeError(\n 'Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + preciseType + '` supplied to `' + componentName + '`, expected ') + ('`' + expectedType + '`.'),\n {expectedType: expectedType}\n );\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createAnyTypeChecker() {\n return createChainableTypeChecker(emptyFunctionThatReturnsNull);\n }\n\n function createArrayOfTypeChecker(typeChecker) {\n function validate(props, propName, componentName, location, propFullName) {\n if (typeof typeChecker !== 'function') {\n return new PropTypeError('Property `' + propFullName + '` of component `' + componentName + '` has invalid PropType notation inside arrayOf.');\n }\n var propValue = props[propName];\n if (!Array.isArray(propValue)) {\n var propType = getPropType(propValue);\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected an array.'));\n }\n for (var i = 0; i < propValue.length; i++) {\n var error = typeChecker(propValue, i, componentName, location, propFullName + '[' + i + ']', ReactPropTypesSecret);\n if (error instanceof Error) {\n return error;\n }\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createElementTypeChecker() {\n function validate(props, propName, componentName, location, propFullName) {\n var propValue = props[propName];\n if (!isValidElement(propValue)) {\n var propType = getPropType(propValue);\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected a single ReactElement.'));\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createElementTypeTypeChecker() {\n function validate(props, propName, componentName, location, propFullName) {\n var propValue = props[propName];\n if (!ReactIs.isValidElementType(propValue)) {\n var propType = getPropType(propValue);\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected a single ReactElement type.'));\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createInstanceTypeChecker(expectedClass) {\n function validate(props, propName, componentName, location, propFullName) {\n if (!(props[propName] instanceof expectedClass)) {\n var expectedClassName = expectedClass.name || ANONYMOUS;\n var actualClassName = getClassName(props[propName]);\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + actualClassName + '` supplied to `' + componentName + '`, expected ') + ('instance of `' + expectedClassName + '`.'));\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createEnumTypeChecker(expectedValues) {\n if (!Array.isArray(expectedValues)) {\n if (process.env.NODE_ENV !== 'production') {\n if (arguments.length > 1) {\n printWarning(\n 'Invalid arguments supplied to oneOf, expected an array, got ' + arguments.length + ' arguments. ' +\n 'A common mistake is to write oneOf(x, y, z) instead of oneOf([x, y, z]).'\n );\n } else {\n printWarning('Invalid argument supplied to oneOf, expected an array.');\n }\n }\n return emptyFunctionThatReturnsNull;\n }\n\n function validate(props, propName, componentName, location, propFullName) {\n var propValue = props[propName];\n for (var i = 0; i < expectedValues.length; i++) {\n if (is(propValue, expectedValues[i])) {\n return null;\n }\n }\n\n var valuesString = JSON.stringify(expectedValues, function replacer(key, value) {\n var type = getPreciseType(value);\n if (type === 'symbol') {\n return String(value);\n }\n return value;\n });\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of value `' + String(propValue) + '` ' + ('supplied to `' + componentName + '`, expected one of ' + valuesString + '.'));\n }\n return createChainableTypeChecker(validate);\n }\n\n function createObjectOfTypeChecker(typeChecker) {\n function validate(props, propName, componentName, location, propFullName) {\n if (typeof typeChecker !== 'function') {\n return new PropTypeError('Property `' + propFullName + '` of component `' + componentName + '` has invalid PropType notation inside objectOf.');\n }\n var propValue = props[propName];\n var propType = getPropType(propValue);\n if (propType !== 'object') {\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected an object.'));\n }\n for (var key in propValue) {\n if (has(propValue, key)) {\n var error = typeChecker(propValue, key, componentName, location, propFullName + '.' + key, ReactPropTypesSecret);\n if (error instanceof Error) {\n return error;\n }\n }\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createUnionTypeChecker(arrayOfTypeCheckers) {\n if (!Array.isArray(arrayOfTypeCheckers)) {\n process.env.NODE_ENV !== 'production' ? printWarning('Invalid argument supplied to oneOfType, expected an instance of array.') : void 0;\n return emptyFunctionThatReturnsNull;\n }\n\n for (var i = 0; i < arrayOfTypeCheckers.length; i++) {\n var checker = arrayOfTypeCheckers[i];\n if (typeof checker !== 'function') {\n printWarning(\n 'Invalid argument supplied to oneOfType. Expected an array of check functions, but ' +\n 'received ' + getPostfixForTypeWarning(checker) + ' at index ' + i + '.'\n );\n return emptyFunctionThatReturnsNull;\n }\n }\n\n function validate(props, propName, componentName, location, propFullName) {\n var expectedTypes = [];\n for (var i = 0; i < arrayOfTypeCheckers.length; i++) {\n var checker = arrayOfTypeCheckers[i];\n var checkerResult = checker(props, propName, componentName, location, propFullName, ReactPropTypesSecret);\n if (checkerResult == null) {\n return null;\n }\n if (checkerResult.data && has(checkerResult.data, 'expectedType')) {\n expectedTypes.push(checkerResult.data.expectedType);\n }\n }\n var expectedTypesMessage = (expectedTypes.length > 0) ? ', expected one of type [' + expectedTypes.join(', ') + ']': '';\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` supplied to ' + ('`' + componentName + '`' + expectedTypesMessage + '.'));\n }\n return createChainableTypeChecker(validate);\n }\n\n function createNodeChecker() {\n function validate(props, propName, componentName, location, propFullName) {\n if (!isNode(props[propName])) {\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` supplied to ' + ('`' + componentName + '`, expected a ReactNode.'));\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function invalidValidatorError(componentName, location, propFullName, key, type) {\n return new PropTypeError(\n (componentName || 'React class') + ': ' + location + ' type `' + propFullName + '.' + key + '` is invalid; ' +\n 'it must be a function, usually from the `prop-types` package, but received `' + type + '`.'\n );\n }\n\n function createShapeTypeChecker(shapeTypes) {\n function validate(props, propName, componentName, location, propFullName) {\n var propValue = props[propName];\n var propType = getPropType(propValue);\n if (propType !== 'object') {\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type `' + propType + '` ' + ('supplied to `' + componentName + '`, expected `object`.'));\n }\n for (var key in shapeTypes) {\n var checker = shapeTypes[key];\n if (typeof checker !== 'function') {\n return invalidValidatorError(componentName, location, propFullName, key, getPreciseType(checker));\n }\n var error = checker(propValue, key, componentName, location, propFullName + '.' + key, ReactPropTypesSecret);\n if (error) {\n return error;\n }\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createStrictShapeTypeChecker(shapeTypes) {\n function validate(props, propName, componentName, location, propFullName) {\n var propValue = props[propName];\n var propType = getPropType(propValue);\n if (propType !== 'object') {\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type `' + propType + '` ' + ('supplied to `' + componentName + '`, expected `object`.'));\n }\n // We need to check all keys in case some are required but missing from props.\n var allKeys = assign({}, props[propName], shapeTypes);\n for (var key in allKeys) {\n var checker = shapeTypes[key];\n if (has(shapeTypes, key) && typeof checker !== 'function') {\n return invalidValidatorError(componentName, location, propFullName, key, getPreciseType(checker));\n }\n if (!checker) {\n return new PropTypeError(\n 'Invalid ' + location + ' `' + propFullName + '` key `' + key + '` supplied to `' + componentName + '`.' +\n '\\nBad object: ' + JSON.stringify(props[propName], null, ' ') +\n '\\nValid keys: ' + JSON.stringify(Object.keys(shapeTypes), null, ' ')\n );\n }\n var error = checker(propValue, key, componentName, location, propFullName + '.' + key, ReactPropTypesSecret);\n if (error) {\n return error;\n }\n }\n return null;\n }\n\n return createChainableTypeChecker(validate);\n }\n\n function isNode(propValue) {\n switch (typeof propValue) {\n case 'number':\n case 'string':\n case 'undefined':\n return true;\n case 'boolean':\n return !propValue;\n case 'object':\n if (Array.isArray(propValue)) {\n return propValue.every(isNode);\n }\n if (propValue === null || isValidElement(propValue)) {\n return true;\n }\n\n var iteratorFn = getIteratorFn(propValue);\n if (iteratorFn) {\n var iterator = iteratorFn.call(propValue);\n var step;\n if (iteratorFn !== propValue.entries) {\n while (!(step = iterator.next()).done) {\n if (!isNode(step.value)) {\n return false;\n }\n }\n } else {\n // Iterator will provide entry [k,v] tuples rather than values.\n while (!(step = iterator.next()).done) {\n var entry = step.value;\n if (entry) {\n if (!isNode(entry[1])) {\n return false;\n }\n }\n }\n }\n } else {\n return false;\n }\n\n return true;\n default:\n return false;\n }\n }\n\n function isSymbol(propType, propValue) {\n // Native Symbol.\n if (propType === 'symbol') {\n return true;\n }\n\n // falsy value can't be a Symbol\n if (!propValue) {\n return false;\n }\n\n // 19.4.3.5 Symbol.prototype[@@toStringTag] === 'Symbol'\n if (propValue['@@toStringTag'] === 'Symbol') {\n return true;\n }\n\n // Fallback for non-spec compliant Symbols which are polyfilled.\n if (typeof Symbol === 'function' && propValue instanceof Symbol) {\n return true;\n }\n\n return false;\n }\n\n // Equivalent of `typeof` but with special handling for array and regexp.\n function getPropType(propValue) {\n var propType = typeof propValue;\n if (Array.isArray(propValue)) {\n return 'array';\n }\n if (propValue instanceof RegExp) {\n // Old webkits (at least until Android 4.0) return 'function' rather than\n // 'object' for typeof a RegExp. We'll normalize this here so that /bla/\n // passes PropTypes.object.\n return 'object';\n }\n if (isSymbol(propType, propValue)) {\n return 'symbol';\n }\n return propType;\n }\n\n // This handles more types than `getPropType`. Only used for error messages.\n // See `createPrimitiveTypeChecker`.\n function getPreciseType(propValue) {\n if (typeof propValue === 'undefined' || propValue === null) {\n return '' + propValue;\n }\n var propType = getPropType(propValue);\n if (propType === 'object') {\n if (propValue instanceof Date) {\n return 'date';\n } else if (propValue instanceof RegExp) {\n return 'regexp';\n }\n }\n return propType;\n }\n\n // Returns a string that is postfixed to a warning about an invalid type.\n // For example, \"undefined\" or \"of type array\"\n function getPostfixForTypeWarning(value) {\n var type = getPreciseType(value);\n switch (type) {\n case 'array':\n case 'object':\n return 'an ' + type;\n case 'boolean':\n case 'date':\n case 'regexp':\n return 'a ' + type;\n default:\n return type;\n }\n }\n\n // Returns class name of the object, if any.\n function getClassName(propValue) {\n if (!propValue.constructor || !propValue.constructor.name) {\n return ANONYMOUS;\n }\n return propValue.constructor.name;\n }\n\n ReactPropTypes.checkPropTypes = checkPropTypes;\n ReactPropTypes.resetWarningCache = checkPropTypes.resetWarningCache;\n ReactPropTypes.PropTypes = ReactPropTypes;\n\n return ReactPropTypes;\n};\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nvar ReactPropTypesSecret = require('./lib/ReactPropTypesSecret');\n\nfunction emptyFunction() {}\nfunction emptyFunctionWithReset() {}\nemptyFunctionWithReset.resetWarningCache = emptyFunction;\n\nmodule.exports = function() {\n function shim(props, propName, componentName, location, propFullName, secret) {\n if (secret === ReactPropTypesSecret) {\n // It is still safe when called from React.\n return;\n }\n var err = new Error(\n 'Calling PropTypes validators directly is not supported by the `prop-types` package. ' +\n 'Use PropTypes.checkPropTypes() to call them. ' +\n 'Read more at http://fb.me/use-check-prop-types'\n );\n err.name = 'Invariant Violation';\n throw err;\n };\n shim.isRequired = shim;\n function getShim() {\n return shim;\n };\n // Important!\n // Keep this list in sync with production version in `./factoryWithTypeCheckers.js`.\n var ReactPropTypes = {\n array: shim,\n bigint: shim,\n bool: shim,\n func: shim,\n number: shim,\n object: shim,\n string: shim,\n symbol: shim,\n\n any: shim,\n arrayOf: getShim,\n element: shim,\n elementType: shim,\n instanceOf: getShim,\n node: shim,\n objectOf: getShim,\n oneOf: getShim,\n oneOfType: getShim,\n shape: getShim,\n exact: getShim,\n\n checkPropTypes: emptyFunctionWithReset,\n resetWarningCache: emptyFunction\n };\n\n ReactPropTypes.PropTypes = ReactPropTypes;\n\n return ReactPropTypes;\n};\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nif (process.env.NODE_ENV !== 'production') {\n var ReactIs = require('react-is');\n\n // By explicitly using `prop-types` you are opting into new development behavior.\n // http://fb.me/prop-types-in-prod\n var throwOnDirectAccess = true;\n module.exports = require('./factoryWithTypeCheckers')(ReactIs.isElement, throwOnDirectAccess);\n} else {\n // By explicitly using `prop-types` you are opting into new production behavior.\n // http://fb.me/prop-types-in-prod\n module.exports = require('./factoryWithThrowingShims')();\n}\n","import { Dropdown, App } from \"antd\";\r\nimport { ExclamationCircleFilled } from \"@ant-design/icons\";\r\nimport PropTypes from 'prop-types';\r\n\r\nconst SystemOperations = ({ \r\n onPowerOff, \r\n onRestart,\r\n powerOffLabel = \"Power Off\",\r\n restartLabel = \"Restart\",\r\n iconClassName = \"seeder-iconfont seeder-icon-guanji1 text-xl text-neutral-400\",\r\n confirmTitle = \"Confirm\",\r\n cancelText = \"No\",\r\n okText = \"Yes\",\r\n run\r\n}) => {\r\n const { modal: AntdModal } = App.useApp();\r\n\r\n const menuItems = [\r\n {\r\n key: \"poweroff\",\r\n label: powerOffLabel,\r\n },\r\n // {\r\n // key: \"reboot\",\r\n // label: rebootLabel, // 硬重启 物理重启\r\n // },\r\n {\r\n key: \"restart\",\r\n label: restartLabel, // 软重启 服务重启\r\n }\r\n ];\r\n\r\n const doAction = (action) => {\r\n try {\r\n AntdModal.confirm({\r\n icon: <ExclamationCircleFilled />,\r\n title: `${confirmTitle} ${action}?`,\r\n cancelText,\r\n okText,\r\n onOk: () => {\r\n if (action === 'poweroff' && onPowerOff) {\r\n onPowerOff();\r\n } else if (action === 'restart' && onRestart) {\r\n onRestart();\r\n }\r\n\r\n // Call the run callback after successful operation\r\n if (typeof run === 'function') {\r\n run();\r\n }\r\n }\r\n });\r\n } catch (error) {\r\n console.error(`${action.toUpperCase()} ERROR: `, error);\r\n }\r\n }\r\n\r\n const handleMenuClick = ({ key }) => {\r\n doAction(key);\r\n }\r\n\r\n return (\r\n <Dropdown menu={{ items: menuItems, onClick: handleMenuClick }} trigger={[\"hover\"]}>\r\n <a onClick={(e) => e.preventDefault()}>\r\n <i className={iconClassName}></i>\r\n </a>\r\n </Dropdown>\r\n );\r\n};\r\n\r\nSystemOperations.propTypes = {\r\n onPowerOff: PropTypes.func,\r\n onRestart: PropTypes.func,\r\n powerOffLabel: PropTypes.string,\r\n restartLabel: PropTypes.string,\r\n iconClassName: PropTypes.string,\r\n confirmTitle: PropTypes.string,\r\n cancelText: PropTypes.string,\r\n okText: PropTypes.string,\r\n run: PropTypes.func\r\n};\r\n\r\nexport default SystemOperations;","import { memo, useEffect, useMemo, useState } from \"react\";\r\nimport { Modal, Select, Switch, Input, Badge, Form, ConfigProvider, InputNumber, App } from \"antd\";\r\n\r\n// 默认字段配置\r\nconst defaultFieldConfigs = {\r\n clock_class: {\r\n label: 'Clock Class',\r\n formType: 'select',\r\n options: [\r\n { value: 6, label: 'Atomic Clock (6)' },\r\n { value: 7, label: 'GPS (7)' },\r\n { value: 248, label: 'Slave-Only (248)' }\r\n ],\r\n readOnly: true\r\n },\r\n clock_accuracy: {\r\n label: 'Clock Accuracy',\r\n formType: 'number',\r\n readOnly: true\r\n },\r\n offset_scaled_log_variance: {\r\n label: 'Offset Scaled Log Variance',\r\n formType: 'number',\r\n readOnly: true\r\n },\r\n grandmaster_priority1: {\r\n label: 'Priority 1',\r\n formType: 'number',\r\n readOnly: true\r\n },\r\n grandmaster_priority2: {\r\n label: 'Priority 2',\r\n formType: 'number',\r\n readOnly: true\r\n },\r\n grandmaster_identity: {\r\n label: 'Grandmaster Identity',\r\n formType: 'text',\r\n readOnly: true\r\n },\r\n master_port_id: {\r\n label: 'Port Identity',\r\n formType: 'text',\r\n readOnly: true\r\n },\r\n t1_domain_number: {\r\n label: 'Domain',\r\n formType: 'number',\r\n min: 0,\r\n max: 127,\r\n readOnly: false\r\n },\r\n master_utc_offset: {\r\n label: 'UTC Offset',\r\n formType: 'number',\r\n readOnly: true\r\n },\r\n is_connected: {\r\n label: 'Connected Status',\r\n formType: 'badge',\r\n statusMap: {\r\n 0: { text: 'Disconnected', color: 'red' },\r\n 1: { text: 'Connected', color: 'green' }\r\n }\r\n },\r\n is_locked: {\r\n label: 'Locked Status',\r\n formType: 'badge',\r\n statusMap: {\r\n 0: { text: 'Unlocked', color: 'red' },\r\n 1: { text: 'Locked', color: 'green' }\r\n }\r\n }\r\n};\r\n\r\n// 默认字段顺序\r\nconst defaultFieldOrder = [\r\n 't1_domain_number',\r\n 'grandmaster_priority1',\r\n 'grandmaster_priority2',\r\n 'grandmaster_identity',\r\n 'master_port_id',\r\n 'clock_class',\r\n 'clock_accuracy',\r\n 'offset_scaled_log_variance',\r\n 'master_utc_offset',\r\n 'is_connected',\r\n 'is_locked'\r\n];\r\n\r\n/**\r\n * 转换PTP状态为表单字段数组\r\n * @param {Object} ptpStatus PTP状态对象\r\n * @param {Object} fieldConfigs 字段配置\r\n * @param {Array} fieldOrder 字段顺序\r\n * @returns {Array} 表单字段数组\r\n */\r\nfunction convertPtpStatusToArray(ptpStatus, fieldConfigs, fieldOrder) {\r\n return fieldOrder\r\n .filter(key => key in ptpStatus)\r\n .map(key => {\r\n const config = fieldConfigs[key] || { label: key, formType: 'text' };\r\n const value = ptpStatus[key];\r\n \r\n return {\r\n key,\r\n value,\r\n ...config,\r\n rawData: ptpStatus,\r\n };\r\n });\r\n}\r\n\r\nconst PtpModal = ({\r\n open, \r\n onClose, \r\n getPtpInfo, \r\n updatePtpInfo, \r\n fieldConfigs = defaultFieldConfigs,\r\n fieldOrder = defaultFieldOrder,\r\n modalProps = {},\r\n formProps = {}\r\n}) => {\r\n const [ptpStatus, setPtpStatus] = useState(null);\r\n const [form] = Form.useForm();\r\n const { message } = App.useApp();\r\n\r\n useEffect(() => {\r\n if (open) {\r\n getPtpInfo().then(data => {\r\n if (data?.[0]) {\r\n setPtpStatus(data[0]);\r\n form.setFieldsValue(data[0]);\r\n }\r\n });\r\n }\r\n }, [open, form, getPtpInfo])\r\n\r\n const ptpStatusArray = useMemo(() => {\r\n if (!ptpStatus) return[];\r\n return convertPtpStatusToArray(ptpStatus, fieldConfigs, fieldOrder);\r\n }, [ptpStatus])\r\n\r\n const handleValueChange = (changedValues) => {\r\n if ('t1_domain_number' in changedValues) {\r\n setPtpStatus(prev => ({\r\n ...prev,\r\n t1_domain_number: changedValues.t1_domain_number\r\n }));\r\n }\r\n };\r\n\r\n const handleSubmit = async () => {\r\n try {\r\n const values = await form.validateFields();\r\n\r\n const response = await updatePtpInfo(values);\r\n if (response) {\r\n message.success('Success');\r\n setTimeout(() => {\r\n onClose();\r\n }, 1500);\r\n }\r\n } catch (error) {\r\n console.error('Update failed:', error);\r\n }\r\n };\r\n\r\n\r\n const renderFormItem = (item) => {\r\n switch (item.formType) {\r\n case 'select':\r\n return <Select options={item.options} disabled={item.readOnly} />;\r\n case 'switch':\r\n return <Switch />;\r\n case 'badge':\r\n const normalizedValue = typeof item.value === 'boolean' \r\n ? (item.value ? 1 : 0)\r\n : item.value;\r\n const status = item.statusMap?.[normalizedValue] || { text: 'Unknown', color: 'gray' };\r\n return (\r\n <ConfigProvider theme={{ components: { Badge: { statusSize: 10 } } }}>\r\n <Badge color={status.color} text={status.text} />\r\n </ConfigProvider>\r\n );\r\n case 'number':\r\n return (\r\n <InputNumber\r\n disabled={item.readOnly} \r\n controls={false} \r\n keyboard={false} \r\n min={item.min ?? Number.MIN_SAFE_INTEGER} \r\n max={item.max ?? Number.MAX_SAFE_INTEGER}\r\n />\r\n )\r\n default:\r\n return <Input disabled={item.readOnly} />;\r\n }\r\n };\r\n \r\n if (!open || !ptpStatus) return null;\r\n\r\n // 合并默认模态框属性和传入的属性\r\n const mergedModalProps = {\r\n title: \"PTP\",\r\n width: 650,\r\n open,\r\n okText: \"Apply\",\r\n cancelText: \"Close\",\r\n onCancel: onClose,\r\n onOk: handleSubmit,\r\n ...modalProps\r\n };\r\n\r\n // 合并默认表单属性和传入的属性\r\n const mergedFormProps = {\r\n form: form,\r\n name: \"ptpForm\",\r\n labelCol: { span: 8 },\r\n wrapperCol: { span: 16 },\r\n autoComplete: \"off\",\r\n onValuesChange: handleValueChange,\r\n ...formProps\r\n };\r\n\r\n return (\r\n <Modal {...mergedModalProps}>\r\n <Form {...mergedFormProps}>\r\n {ptpStatusArray.map(item => (\r\n <Form.Item \r\n label={item.label} \r\n name={item.key} \r\n key={item.key}\r\n initialValue={item.value}\r\n >\r\n {renderFormItem(item)}\r\n </Form.Item>\r\n ))}\r\n </Form>\r\n </Modal>\r\n )\r\n}\r\n\r\nexport default memo(PtpModal);","import { memo, useEffect, useMemo, useState, useCallback, useRef } from 'react';\r\nimport { Modal, Form, App, Typography, Divider, Input } from 'antd';\r\nimport { ExclamationCircleFilled } from \"@ant-design/icons\";\r\n\r\nconst NetworkFieldGroup = ({ prefix, interfaces, fieldConfig = {} }) => {\r\n // 默认字段配置\r\n const defaultFieldConfig = {\r\n name: { label: \"Name\", enabled: true },\r\n ip: { label: \"IP Address\", enabled: true },\r\n netmask: { label: \"Netmask\", enabled: true }\r\n };\r\n \r\n const mergedFieldConfig = {\r\n ...defaultFieldConfig,\r\n ...fieldConfig,\r\n netmask: {\r\n label: \"Netmask\",\r\n enabled: fieldConfig.netmask?.enabled ?? defaultFieldConfig.netmask.enabled, // 合并 enabled\r\n }\r\n };\r\n \r\n return (\r\n <>\r\n <Typography.Title\r\n level={5}\r\n style={{\r\n display: 'flex',\r\n justifyContent: 'space-between',\r\n alignItems: 'center',\r\n marginBottom: 16\r\n }}\r\n >\r\n {prefix}\r\n </Typography.Title>\r\n {interfaces.map((iface, index) => (\r\n <div key={iface.id || index}>\r\n {mergedFieldConfig.name.enabled && (\r\n <Form.Item\r\n label={mergedFieldConfig.name.label}\r\n name={[prefix, index, \"display_name\"]}\r\n >\r\n <Input disabled />\r\n </Form.Item>\r\n )}\r\n\r\n {mergedFieldConfig.ip.enabled && (\r\n <Form.Item\r\n label={mergedFieldConfig.ip.label}\r\n name={[prefix, index, \"ip_address\"]}\r\n >\r\n <Input />\r\n </Form.Item>\r\n )}\r\n\r\n {mergedFieldConfig.netmask.enabled && (\r\n <Form.Item\r\n label={mergedFieldConfig.netmask.label}\r\n name={[prefix, index, \"netmask\"]}\r\n >\r\n <Input />\r\n </Form.Item>\r\n )}\r\n\r\n {index < interfaces.length - 1 && <Divider style={{ marginBlock: 16 }} />}\r\n </div>\r\n ))}\r\n </>\r\n )\r\n};\r\n\r\nconst NetworkSettingsModal = ({\r\n open, \r\n onClose, \r\n getLanConfig, // 可选 - 单独获取LAN配置的函数\r\n getSysConfig, // 可选 - 单独获取QSFP配置的函数\r\n getConfig, // 可选 - 统一获取配置的函数\r\n updateLanConfig, \r\n updateSysConfig, \r\n restart,\r\n modalProps = {},\r\n formProps = {},\r\n fieldConfig = {},\r\n sections = ['LAN', 'QSFP'],\r\n showNetmask = { LAN: true, QSFP: false },\r\n restartRemark\r\n}) => {\r\n const { message, modal } = App.useApp();\r\n const [form] = Form.useForm();\r\n\r\n const [st2110Interfaces, setSt2110Interfaces] = useState([]);\r\n const [lanConfigs, setLanConfigs] = useState([]);\r\n const [submitLoading, setSubmitLoading] = useState(false);\r\n const [isInitialized, setIsInitialized] = useState(false);\r\n\r\n const initializationStatus = useRef({\r\n hasFetched: false,\r\n hasInitialized: false\r\n });\r\n\r\n const preparedFieldConfig = useMemo(() => {\r\n const config = { ...fieldConfig };\r\n \r\n // 确保LAN和QSFP的配置存在\r\n config.LAN = config.LAN || {};\r\n config.QSFP = config.QSFP || {};\r\n\r\n if (sections.includes('LAN')) {\r\n config.LAN.netmask = {\r\n ...(config.LAN.netmask || {}),\r\n enabled: showNetmask.LAN\r\n };\r\n }\r\n \r\n if (sections.includes('QSFP')) {\r\n config.QSFP.netmask = {\r\n ...(config.QSFP.netmask || {}),\r\n enabled: showNetmask.QSFP\r\n };\r\n }\r\n\r\n return config;\r\n }, [fieldConfig, showNetmask, sections]);\r\n\r\n useEffect(() => {\r\n if (!open) return;\r\n \r\n const fetchData = async () => {\r\n if (initializationStatus.current.hasFetched) return;\r\n \r\n try {\r\n initializationStatus.current.hasFetched = true;\r\n\r\n if (getConfig) {\r\n // 使用统一接口获取数据\r\n const config = await getConfig();\r\n if (sections.includes('LAN') && config.lan_interfaces) {\r\n setLanConfigs(config.lan_interfaces);\r\n }\r\n if (sections.includes('QSFP') && config.interfaces) {\r\n setSt2110Interfaces(config.interfaces);\r\n }\r\n } else {\r\n const promises = [];\r\n if (sections.includes('LAN')) {\r\n promises.push(getLanConfig());\r\n }\r\n \r\n if (sections.includes('QSFP')) {\r\n promises.push(getSysConfig());\r\n }\r\n\r\n const results = await Promise.allSettled(promises);\r\n\r\n if (sections.includes('LAN') && getLanConfig) {\r\n const lanResult = results[0];\r\n if (lanResult.status === 'fulfilled') {\r\n setLanConfigs(lanResult.value || []);\r\n }\r\n }\r\n \r\n if (sections.includes('QSFP') && getSysConfig) {\r\n const sysResult = sections.includes('LAN') ? results[1] : results[0];\r\n if (sysResult.status === 'fulfilled' && sysResult.value) {\r\n setSt2110Interfaces(sysResult.value.st2110_interfaces || []);\r\n }\r\n }\r\n }\r\n \r\n setIsInitialized(true);\r\n } catch (error) {\r\n console.error('Failed to fetch data:', error);\r\n initializationStatus.current.hasFetched = false; // 出错时重置\r\n }\r\n };\r\n\r\n fetchData();\r\n }, [open, getLanConfig, getSysConfig, sections]); \r\n\r\n // 当模态框关闭时重置状态\r\n useEffect(() => {\r\n if (!open) {\r\n setIsInitialized(false);\r\n setLanConfigs([]);\r\n setSt2110Interfaces([]);\r\n form.resetFields();\r\n initializationStatus.current = { hasFetched: false, hasInitialized: false };\r\n }\r\n }, [open, form]);\r\n\r\n // 动态初始值配置\r\n const initialValues = useMemo(() => {\r\n const values = {};\r\n \r\n if (sections.includes('LAN') && lanConfigs.length > 0) {\r\n values.LAN = lanConfigs.map(config => ({\r\n connection_id: config.connection_id,\r\n display_name: config.display_name,\r\n ip_address: config.ip_address,\r\n ...(showNetmask.LAN ? { netmask: config.netmask } : {})\r\n }));\r\n }\r\n \r\n if (sections.includes('QSFP') && st2110Interfaces.length > 0) {\r\n values.QSFP = st2110Interfaces.map(iface => ({\r\n // 只有当iface中存在id字段时才包含id\r\n ...(iface.id !== undefined && { id: iface.id }),\r\n display_name: iface.display_name,\r\n ip_address: iface.ip_address || iface.ip, // 优先取ip_address,没有则取ip\r\n ...(showNetmask.QSFP ? { netmask: iface.netmask } : {})\r\n }));\r\n }\r\n \r\n return values;\r\n }, [lanConfigs, st2110Interfaces, sections, showNetmask]);\r\n\r\n // 当初始值准备好后设置表单值\r\n useEffect(() => {\r\n if (isInitialized && !initializationStatus.current.hasInitialized) {\r\n form.setFieldsValue(initialValues);\r\n initializationStatus.current.hasInitialized = true;\r\n }\r\n }, [isInitialized, form, initialValues]);\r\n\r\n const handleSuccess = useCallback(async ({\r\n messageText = 'Success',\r\n isPopup = !!restart,\r\n refresh = !restart\r\n } = {}) => {\r\n message.success(messageText);\r\n\r\n if (refresh && getConfig) {\r\n try {\r\n const newConfig = await getConfig();\r\n if (sections.includes('LAN') && newConfig.lan_interfaces) {\r\n setLanConfigs(newConfig.lan_interfaces);\r\n }\r\n if (sections.includes('QSFP') && newConfig.interfaces) {\r\n setSt2110Interfaces(newConfig.interfaces);\r\n }\r\n } catch (error) {\r\n console.error('Failed to refresh config:', error);\r\n }\r\n }\r\n\r\n // 如果有restart函数,则显示重启确认框\r\n if (isPopup && restart) {\r\n try {\r\n const updatedConfig = await getSysConfig();\r\n if (updatedConfig && updatedConfig.is_restart_required) {\r\n modal.confirm({\r\n icon: <ExclamationCircleFilled />,\r\n title: \"Configuration modified. Restart to apply changes?\",\r\n cancelText: \"No\",\r\n okText: \"Yes\",\r\n onOk: () => restart(),\r\n });\r\n }\r\n } catch (error) {\r\n console.error('Failed to check restart status:', error);\r\n }\r\n }\r\n\r\n onClose();\r\n }, [message, modal, getSysConfig, restart, getConfig, sections, onClose]);\r\n\r\n const handleSubmit = useCallback(async () => {\r\n setSubmitLoading(true);\r\n\r\n try {\r\n const values = await form.validateFields();\r\n // console.log(\"Direct form values:\", values);\r\n\r\n const updatePromises = [];\r\n\r\n // 更新LAN配置\r\n if (sections.includes('LAN') && values.LAN) {\r\n const lanData = values.LAN.map((item, index) => ({\r\n connection_id: lanConfigs[index]?.connection_id,\r\n ip_address: item.ip_address,\r\n ...(showNetmask.LAN ? { netmask: item.netmask } : {})\r\n }));\r\n updatePromises.push(updateLanConfig(lanData));\r\n }\r\n\r\n // 更新QSFP配置\r\n if (sections.includes('QSFP') && values.QSFP) {\r\n const interfacesData = values.QSFP.map((item, index) => ({\r\n // 只有当原始数据中存在id时才包含id\r\n ...(st2110Interfaces?.[index]?.id !== undefined && {\r\n id: st2110Interfaces?.[index]?.id \r\n }),\r\n ...(st2110Interfaces?.[index]?.ip !== undefined \r\n ? { ip: item.ip_address } \r\n : { ip_address: item.ip_address }\r\n ),\r\n ...(showNetmask.QSFP ? { netmask: item.netmask } : {})\r\n }));\r\n\r\n const st2110Data = st2110Interfaces.some(iface => 'id' in iface)\r\n ? { st2110_interfaces: interfacesData }\r\n : { interfaces: interfacesData };\r\n\r\n updatePromises.push(updateSysConfig(st2110Data));\r\n }\r\n\r\n const results = await Promise.allSettled(updatePromises);\r\n\r\n // 检查所有更新是否成功\r\n const allSucceeded = results.every(result => result.status === 'fulfilled');\r\n\r\n if (allSucceeded) {\r\n handleSuccess();\r\n } else {\r\n message.error('Some configurations failed to update');\r\n }\r\n } catch (error) {\r\n console.error('Failed to update configurations: ', error);\r\n message.error('Failed to update configurations');\r\n } finally {\r\n setSubmitLoading(false);\r\n }\r\n }, [\r\n form, \r\n sections, \r\n lanConfigs, \r\n st2110Interfaces, \r\n updateLanConfig, \r\n updateSysConfig, \r\n handleSuccess, \r\n message\r\n ]);\r\n\r\n // 合并默认模态框属性和传入的属性\r\n const mergedModalProps = {\r\n title: \"Network Settings\",\r\n width: 650,\r\n open,\r\n confirmLoading: submitLoading,\r\n onOk: handleSubmit,\r\n onCancel: onClose,\r\n okText: \"Apply\",\r\n cancelText: \"Close\",\r\n centered: true,\r\n destroyOnHidden: true,\r\n forceRender: true,\r\n styles: {\r\n body: { padding: \"16px 24px 8px 24px\" },\r\n ...(restartRemark !== null && { footer: { paddingBottom: 28 } })\r\n },\r\n ...modalProps\r\n };\r\n\r\n // 合并默认表单属性和传入的属性\r\n const mergedFormProps = {\r\n form: form,\r\n labelCol: { span: 6 },\r\n wrapperCol: { span: 18 },\r\n autoComplete: \"off\",\r\n ...formProps\r\n };\r\n\r\n return (\r\n <Modal {...mergedModalProps}>\r\n <Form {...mergedFormProps}>\r\n {sections.includes('LAN') && lanConfigs.length > 0 && (\r\n <>\r\n <NetworkFieldGroup\r\n prefix=\"LAN\"\r\n interfaces={lanConfigs}\r\n fieldConfig={preparedFieldConfig.LAN}\r\n />\r\n {sections.includes('QSFP') && st2110Interfaces.length > 0 && <Divider />}\r\n </>\r\n )}\r\n \r\n {sections.includes('QSFP') && st2110Interfaces.length > 0 && (\r\n <NetworkFieldGroup\r\n prefix=\"QSFP\"\r\n interfaces={st2110Interfaces}\r\n fieldConfig={preparedFieldConfig.QSFP}\r\n />\r\n )}\r\n </Form>\r\n {restartRemark}\r\n </Modal>\r\n );\r\n}\r\n\r\nexport { NetworkFieldGroup };\r\nexport default memo(NetworkSettingsModal);","import { List, Empty, Button, Space, Form, Input, Flex, Checkbox } from \"antd\";\r\nimport { memo, useEffect, useMemo, useState } from \"react\";\r\nimport { PlusOutlined } from \"@ant-design/icons\";\r\n\r\nexport const LeftList = memo(({\r\n dataSource,\r\n selectedPresetId,\r\n onSelectPreset,\r\n onAddNew,\r\n onRemove,\r\n hasPresets = dataSource.length > 0,\r\n showDescription = false,\r\n texts = {\r\n newButton: \"New Preset\",\r\n removeButton: \"Remove\"\r\n }\r\n}) => {\r\n // 动态计算列布局\r\n const gridColumns = showDescription ? \"grid-cols-3\" : \"grid-cols-2\";\r\n\r\n return (\r\n <div className=\"h-full left-list-wrapper\">\r\n <div className=\"list-container\">\r\n <List\r\n header={\r\n <div className={`grid ${gridColumns} w-full list-header`}>\r\n <div>Name</div>\r\n <div>Create Time</div>\r\n {showDescription && <div>Description</div>}\r\n </div>\r\n }\r\n dataSource={dataSource}\r\n rowKey=\"id\"\r\n renderItem={(item) => (\r\n <List.Item \r\n className={`list-item ${\r\n selectedPresetId === item.id ? 'selected' : ''\r\n }`}\r\n style={{ padding: \"9px 24px\" }}\r\n onClick={() => onSelectPreset(item)}\r\n >\r\n <div className={`grid ${gridColumns} w-full text-text-normal`}>\r\n <div title={item.name}>\r\n {item.name || \"Untitled Preset\"}\r\n </div>\r\n <div>{item.create_time}</div>\r\n {showDescription && <div>{item.description}</div>}\r\n </div>\r\n </List.Item>\r\n )}\r\n locale={{\r\n emptyText: (\r\n <div className=\"p-8\">\r\n <Empty\r\n image={Empty.PRESENTED_IMAGE_SIMPLE}\r\n description={\r\n <span className=\"text-gray-400\">\r\n <Button \r\n type=\"link\" \r\n onClick={onAddNew}\r\n className=\"p-0 h-auto\"\r\n icon={<PlusOutlined />}\r\n >\r\n Create new preset\r\n </Button>\r\n </span>\r\n }\r\n />\r\n </div>\r\n )\r\n }}\r\n />\r\n </div>\r\n\r\n {/* 底部按钮区域 */}\r\n {hasPresets && (\r\n <div className=\"p-4\" style={{ paddingInline: 24 }}>\r\n <Space size=\"middle\">\r\n <Button\r\n type=\"default\"\r\n icon={<PlusOutlined />}\r\n style={{ padding: \"20px 12px\" }}\r\n className=\"btn-gray\"\r\n onClick={onAddNew}\r\n >\r\n {texts.newButton}\r\n </Button>\r\n <Button\r\n type=\"default\"\r\n style={{ padding: \"20px 12px\" }}\r\n className=\"btn-gray\"\r\n onClick={onRemove}\r\n >\r\n {texts.removeButton}\r\n </Button>\r\n </Space>\r\n </div>\r\n )}\r\n </div>\r\n )\r\n});\r\n\r\nconst SubmitButton = ({ loading, action, children, disabled = false }) => (\r\n <div className=\"submit-btn-wrapper\">\r\n <Button className=\"btn-gray\" loading={loading} onClick={action} disabled={disabled}>\r\n {children}\r\n </Button>\r\n </div>\r\n)\r\n\r\nexport const RightDetailForm = memo(({\r\n form, \r\n onSave, \r\n onLoad,\r\n isLoading,\r\n isEditing,\r\n originalPresetData,\r\n fields = {\r\n name: {\r\n label: \"Preset Name\",\r\n placeholder: \"Enter preset name\",\r\n required: true\r\n }\r\n },\r\n texts = {\r\n loadButton: \"Load\",\r\n saveButton: \"Save\"\r\n },\r\n presetChanged\r\n}) => {\r\n const [initialSelected, setInitialSelected] = useState([]);\r\n const currentSelected = Form.useWatch('category_list', form) || [];\r\n\r\n // 检查是否包含category_list字段\r\n const hasCategoryList = fields.category_list !== null && fields.category_list !== undefined;\r\n\r\n // 初始化 category_list 的选择状态\r\n useEffect(() => {\r\n if (hasCategoryList) {\r\n const currentValue = form.getFieldValue('category_list') || [];\r\n setInitialSelected(currentValue);\r\n }\r\n }, [presetChanged, form, hasCategoryList]); // 当presetChanged变化时更新\r\n\r\n // 动态生成 checkbox 选项\r\n const checkboxOptions = useMemo(() => {\r\n if (!hasCategoryList) return [];\r\n \r\n return fields.category_list.options.map(category => {\r\n const isInitiallySelected = initialSelected.includes(category.name);\r\n const shouldDisable = isEditing ? !isInitiallySelected : false;\r\n \r\n return {\r\n ...category,\r\n disabled: shouldDisable,\r\n initiallySelected: isInitiallySelected\r\n };\r\n });\r\n }, [initialSelected, isEditing, hasCategoryList, fields.category_list]);\r\n\r\n const handleCheckboxChange = (checkedValues) => {\r\n form.setFieldsValue({ category_list: checkedValues });\r\n };\r\n\r\n const handleLoad = async () => {\r\n try {\r\n const formValues = await form.validateFields();\r\n\r\n const loadData = {\r\n id: form.getFieldValue('id'),\r\n // 优先使用表单中的 category_list,如果没有则使用原始数据\r\n name: originalPresetData.name,\r\n category_list: hasCategoryList \r\n ? (formValues.category_list || [])\r\n : (originalPresetData?.category_list || [])\r\n };\r\n await onLoad(loadData);\r\n } catch (error) {\r\n console.error('表单验证失败:', error);\r\n }\r\n };\r\n\r\n return (\r\n <Flex vertical className=\"h-full\">\r\n <Form \r\n form={form} \r\n layout=\"vertical\" \r\n autoComplete=\"off\" \r\n style={{ flex: 1, overflowY: 'auto' }}\r\n >\r\n {/* Name 字段 */}\r\n <Form.Item \r\n name=\"name\" \r\n label={fields.name.label}\r\n rules={[\r\n { \r\n required: fields.name.required,\r\n validator: async (_, value) => {\r\n if (!value || value.trim() === '') {\r\n return Promise.reject(new Error('Preset name cannot be empty or spaces only'));\r\n }\r\n }\r\n }\r\n ]}\r\n >\r\n <Input \r\n placeholder={fields.name.placeholder} \r\n disabled={isEditing} \r\n />\r\n </Form.Item>\r\n\r\n {/* Category List 字段 */}\r\n {hasCategoryList && (\r\n <Form.Item \r\n name=\"category_list\" \r\n label={fields.category_list.label}\r\n rules={[\r\n { \r\n required: fields.category_list.required,\r\n message: 'Please select at least one category',\r\n validator: (_, value) => {\r\n if (value && value.length > 0) {\r\n return Promise.resolve();\r\n }\r\n return Promise.reject(new Error('Please select at least one category'));\r\n }\r\n }\r\n ]}\r\n >\r\n <Checkbox.Group \r\n className=\"grid grid-cols-2 gap-2\"\r\n onChange={handleCheckboxChange}\r\n >\r\n {checkboxOptions.map(category => (\r\n <Checkbox \r\n key={category.name} \r\n value={category.name}\r\n disabled={category.disabled}\r\n >\r\n {category.label}\r\n </Checkbox>\r\n ))}\r\n </Checkbox.Group>\r\n </Form.Item>\r\n )}\r\n\r\n {/* Description 字段 */}\r\n {fields.description && (\r\n <Form.Item \r\n name=\"description\" \r\n label={fields.description.label}\r\n >\r\n <Input.TextArea \r\n rows={4} \r\n placeholder={fields.description.placeholder} \r\n disabled={isEditing} \r\n />\r\n </Form.Item>\r\n )}\r\n </Form>\r\n {isEditing ? (\r\n <SubmitButton\r\n action={handleLoad}\r\n {...(hasCategoryList && { disabled: !currentSelected.length })}\r\n >\r\n {texts.loadButton}\r\n </SubmitButton>\r\n ) : (\r\n <SubmitButton \r\n action={onSave} \r\n loading={isLoading}\r\n >\r\n {texts.saveButton}\r\n </SubmitButton>\r\n )}\r\n </Flex>\r\n );\r\n});","import { Modal, Form, Row, Col, Empty, App, Spin, Flex } from \"antd\";\r\nimport { ExclamationCircleFilled } from \"@ant-design/icons\";\r\nimport { memo, useState, useCallback, useEffect } from \"react\";\r\nimport { LeftList, RightDetailForm } from \"./PresetModal.component\";\r\n// import \"../styles/index.less\";\r\n\r\nconst Preset = ({\r\n open,\r\n onClose,\r\n // API 方法通过 props 传入\r\n getPresetList,\r\n savePreset,\r\n removePreset,\r\n loadPreset,\r\n onLoadSuccess, // 加载成功后的回调\r\n onLoadError, // 加载失败后的回调\r\n // 字段配置\r\n fields = {\r\n name: {\r\n label: \"Preset Name\",\r\n placeholder: \"Enter preset name\",\r\n required: true\r\n }\r\n },\r\n texts = {\r\n title: \"Preset Management\",\r\n emptyText: \"Select a preset from the list to view details\",\r\n deleteConfirm: \"Are you sure to delete preset\",\r\n loadConfirm: \"Are you sure you want to load preset\",\r\n loadText: \"Loading...\",\r\n successText: \"Success\",\r\n newButton: \"New Preset\",\r\n removeButton: \"Remove\",\r\n loadButton: \"Load\",\r\n saveButton: \"Save\"\r\n },\r\n // 样式定制\r\n width = 1000,\r\n height = 680,\r\n className = \"\"\r\n}) => {\r\n const { message: AntdMessage, modal: AntdModal } = App.useApp();\r\n const [presetList, setPresetList] = useState([]);\r\n const [selectedPreset, setSelectedPreset] = useState(null);\r\n const [loading, setLoading] = useState(false);\r\n const [presetChanged, setPresetChanged] = useState(0);\r\n const [form] = Form.useForm();\r\n\r\n // 获取预设列表\r\n useEffect(() => {\r\n fetchPresetList();\r\n }, []);\r\n\r\n const fetchPresetList = useCallback(async () => {\r\n try {\r\n const data = await getPresetList();\r\n const presets = data?.preset_list || data || [];\r\n setPresetList(presets);\r\n } catch (error) {\r\n console.error('Failed to fetch preset list:', error);\r\n }\r\n }, [getPresetList]);\r\n\r\n const handleSelectPreset = useCallback((preset) => {\r\n setSelectedPreset(preset);\r\n form.setFieldsValue(preset);\r\n setPresetChanged(prev => prev + 1); // 触发react更新\r\n }, [form]);\r\n\r\n const handleAddNew = useCallback(() => {\r\n const unsavedPreset = presetList.find(item => !item.id);\r\n\r\n if (unsavedPreset) {\r\n AntdMessage.warning('Existing unsaved preset detected.');\r\n return;\r\n }\r\n\r\n // 创建新的数据,包含所有配置的字段\r\n const newPreset = Object.keys(fields).reduce((acc, fieldName) => {\r\n acc[fieldName] = '';\r\n return acc;\r\n }, {});\r\n\r\n // 特殊处理 category_list\r\n if (fields.category_list?.options) {\r\n newPreset.category_list = fields.category_list.options.map(item => item.name);\r\n }\r\n \r\n setPresetList([...presetList, newPreset]);\r\n setSelectedPreset(newPreset);\r\n form.setFieldsValue(newPreset);\r\n }, [form, presetList, AntdMessage]);\r\n\r\n const handleRemove = useCallback(async () => {\r\n if (!selectedPreset) return;\r\n\r\n // 检查是否为新建的未保存数据(无id)\r\n const isUnsavedPreset = !selectedPreset.id;\r\n const presetName = selectedPreset.name || 'Untitled Preset';\r\n\r\n try {\r\n AntdModal.confirm({\r\n icon: <ExclamationCircleFilled />,\r\n title: 'Delete Preset',\r\n content: `${texts.deleteConfirm} \"${presetName}\"?`,\r\n cancelText: 'No',\r\n okText: 'Yes',\r\n onOk: async () => {\r\n if (!isUnsavedPreset) {\r\n await removePreset({ id: selectedPreset.id });\r\n AntdMessage.success(texts.successText);\r\n // 刷新列表\r\n await fetchPresetList();\r\n } else {\r\n setPresetList(prev => prev.filter(item => !!item.id));\r\n }\r\n\r\n // 重置表单和选择状态\r\n setSelectedPreset(null);\r\n form.resetFields();\r\n }\r\n });\r\n } catch (error) {\r\n console.error('Failed to delete preset:', error);\r\n }\r\n }, [selectedPreset, form, AntdModal, AntdMessage, fetchPresetList, texts]);\r\n\r\n const handleLoadPreset = useCallback(async (loadData) => {\r\n if (!loadData) return;\r\n\r\n // 显示确认对话框\r\n AntdModal.confirm({\r\n title: 'Load Preset',\r\n content: `${texts.loadConfirm} \"${loadData.name}\"?`,\r\n cancelText: 'No',\r\n okText: 'Yes',\r\n onOk: async () => {\r\n // 显示加载模态框\r\n const modalInstance = Modal.info({\r\n title: texts.loadText,\r\n content: <Spin size=\"large\" className=\"block mx-auto\" />,\r\n maskClosable: false,\r\n okButtonProps: { style: { display: 'none' } }\r\n });\r\n\r\n try {\r\n await loadPreset({\r\n id: loadData.id,\r\n ...(loadData.category_list && { category_list: loadData.category_list })\r\n });\r\n // 成功时延迟关闭\r\n setTimeout(() => {\r\n modalInstance.destroy();\r\n AntdMessage.success(texts.successText);\r\n\r\n // 加载成功的外部回调\r\n if (onLoadSuccess) {\r\n onLoadSuccess(loadData);\r\n }\r\n }, 1000);\r\n } catch (error) {\r\n console.error('Failed to load preset:', error);\r\n modalInstance.destroy();\r\n\r\n // 加载失败的外部回调\r\n if (onLoadError) {\r\n onLoadError(error, loadData);\r\n }\r\n }\r\n }\r\n });\r\n }, [loadPreset, texts, AntdMessage, AntdModal, onLoadSuccess, onLoadError]);\r\n\r\n const handleSave = useCallback(async () => {\r\n setLoading(true);\r\n try {\r\n const values = await form.validateFields();\r\n console.log('Form values:', values);\r\n await savePreset(values);\r\n AntdMessage.success(texts.successText);\r\n // 刷新列表\r\n await fetchPresetList();\r\n\r\n // 重置表单和选择状态\r\n setSelectedPreset(null);\r\n form.resetFields();\r\n } catch (error) {\r\n if (error.errorFields) {\r\n // 表单验证错误\r\n console.error('Form validation failed:', error.errorFields);\r\n } else {\r\n console.error('Failed to save preset:', error);\r\n }\r\n } finally {\r\n setLoading(false);\r\n }\r\n }, [form, AntdMessage, fetchPresetList, savePreset, texts]);\r\n\r\n return (\r\n <Modal\r\n title={texts.title}\r\n width={width}\r\n open={open}\r\n wrapClassName={`preset-management ${className}`}\r\n footer={null}\r\n onCancel={onClose}\r\n centered\r\n styles={{\r\n body: {\r\n height: `${height}px`\r\n }\r\n }}\r\n >\r\n <Row gutter={0} className=\"h-full w-full\">\r\n <Col span={14} className=\"h-full\">\r\n <LeftList\r\n dataSource={presetList}\r\n selectedPresetId={selectedPreset?.id}\r\n onSelectPreset={handleSelectPreset}\r\n onAddNew={handleAddNew}\r\n onRemove={handleRemove}\r\n showDescription={!!fields.description} // 根据 fields 判断是否显示 description\r\n texts={{\r\n newButton: texts.newButton,\r\n removeButton: texts.removeButton,\r\n }}\r\n />\r\n </Col>\r\n <Col span={10} className=\"h-full p-6\">\r\n {selectedPreset ? (\r\n <RightDetailForm\r\n form={form}\r\n onSave={handleSave}\r\n onLoad={handleLoadPreset}\r\n isLoading={loading}\r\n isEditing={!!selectedPreset?.id}\r\n originalPresetData={selectedPreset} // 传递原始数据\r\n fields={fields}\r\n texts={{\r\n loadButton: texts.loadButton,\r\n saveButton: texts.saveButton\r\n }}\r\n presetChanged={presetChanged}\r\n />\r\n ) : (\r\n <Flex vertical justify=\"center\" align=\"center\" className=\"h-full text-gray-400\">\r\n <Empty \r\n image={Empty.PRESENTED_IMAGE_SIMPLE} \r\n description={texts.emptyText}\r\n />\r\n </Flex>\r\n )}\r\n </Col>\r\n </Row>\r\n </Modal>\r\n );\r\n};\r\n\r\nexport default memo(Preset);"],"names":["formatBytes","bytes","decimals","arguments","length","undefined","k","dm","sizes","i","Math","floor","log","parseFloat","pow","toFixed","UsageItem","memo","_ref","title","iconClass","children","memTotal","_jsx","Tooltip","_jsxs","_Fragment","destroyOnHidden","Space","size","className","concat","useHardwareWebSocket","socketUrl","systemStatus","setSystemStatus","useState","handleMessage","useCallback","message","prev","_objectSpread","error","console","useWebSocket","onMessage","event","parsedMessage","JSON","parse","data","debug","ps_status","getMaxNicTemp","sensors","priorityFields","temps","flatMap","field","_sensors$field","map","item","current","filter","temp","max","getMaxSensorTemp","sensorData","getDetail","_sensors_temperatures","_sensors_temperatures2","_mem$total","_mem$percent","_getMaxNicTemp","_gpu_stats$0$utilizat","_gpu_stats$","_gpu_stats$0$temperat","_gpu_stats$2","status","cpu_percent","mem","sensors_temperatures","gpu_stats","cpu_usage","cpu_temp","coretemp","mem_total","total","mem_usage","percent","mem_temp","spd5118","nic_temp","hd_temp","nvme","gpu_usage","gpu_temp","createMetricItem","value","unit","numValue","valueString","getItems","details","items","push","useHardwareUsage","useMemo","statusItems","index","Flex","align","Divider","type","AuthorizationModal","onCancel","onOk","authData","okText","cancelText","width","App","useApp","code","setCode","accredit_status","isActivated","statusMessage","bios_id","uuid","expires_time","expiresTime","handleOk","trimmedCode","trim","statusAlert","Alert","showIcon","defaultOkText","Modal","open","maskClosable","closable","cancelButtonProps","disabled","Form","name","labelCol","span","wrapperCol","autoComplete","style","marginBottom","Item","label","required","Input","readOnly","TextArea","onChange","e","target","autoSize","minRows","maxRows","placeholder","DEFAULT_AUTH","useAuth","options","fetchAuthInfo","authorize","defaultAuthData","autoShowModal","messageApi","contextHolder","useMessage","showModal","setShowModal","setAuthData","isRegistered","setIsRegistered","loading","setLoading","openModal","closeModal","useEffect","loadAuthInfo","result","commands","auth","id","license_data","ciphertext_status","modal","AuthModal","openAuthModal","closeAuthModal","useUpgrade","menuItems","onMenuClick","downloadFiles","upgradeExecute","upgradeStatus","acceptFileTypes","uploadCompleteDelay","statusPollingInterval","isSpinning","setIsSpinning","interval","setInterval","inputRef","useRef","currentStatus","setCurrentStatus","isUploadCompleteRef","uploadProgress","setUploadProgress","uploadCancelToken","axios","CancelToken","source","statusCancelToken","showLoader","hideLoader","finalMenuItems","hasDownload","some","key","hasUpload","licenseIndex","findIndex","itemsToAdd","beforeLicense","slice","licenseItem","afterLicense","itemsToInsert","handleMenuClick","_ref2","onDownload","onUpload","warn","res","Error","fileName","contentDisposition","headers","filenameMatch","match","decodeURIComponent","blob","Blob","url","window","URL","createObjectURL","link","document","createElement","display","href","download","body","appendChild","click","parentNode","removeChild","revokeObjectURL","updatePackage","_event$target$files","file","files","formData","FormData","append","onUploadProgress","progressEvent","percentCompleted","round","loaded","setTimeout","cancelToken","token","isCancel","cancelRequest","fetchUpgradeStatus","response","success","location","reload","cancel","useInterval","upgradeElement","Dropdown","menu","onClick","trigger","preventDefault","ref","accept","Spin","spinning","indicator","LoadingOutlined","fontSize","spin","tip","fullscreen","useSystemOperations","onPowerOff","onRestart","confirmTitle","run","AntdModal","doAction","action","confirm","icon","ExclamationCircleFilled","toUpperCase","getMenuItems","UpgradeManager","dropdownProps","_objectWithoutProperties","_excluded","dropdownElement","props","otherElements","defaultProps","placement","reactIsModule","require$$0","require$$1","require$$2","require$$3","require$$4","propTypesModule","SystemOperations","powerOffLabel","restartLabel","iconClassName","propTypes","PropTypes","func","string","defaultFieldConfigs","clock_class","formType","clock_accuracy","offset_scaled_log_variance","grandmaster_priority1","grandmaster_priority2","grandmaster_identity","master_port_id","t1_domain_number","min","master_utc_offset","is_connected","statusMap","text","color","is_locked","defaultFieldOrder","convertPtpStatusToArray","ptpStatus","fieldConfigs","fieldOrder","config","rawData","PtpModal","onClose","getPtpInfo","updatePtpInfo","modalProps","formProps","setPtpStatus","form","useForm","then","setFieldsValue","ptpStatusArray","handleValueChange","changedValues","handleSubmit","values","validateFields","renderFormItem","_item$statusMap","_item$min","_item$max","Select","Switch","normalizedValue","ConfigProvider","theme","components","Badge","statusSize","InputNumber","controls","keyboard","Number","MIN_SAFE_INTEGER","MAX_SAFE_INTEGER","mergedModalProps","mergedFormProps","onValuesChange","initialValue","NetworkFieldGroup","_fieldConfig$netmask$","_fieldConfig$netmask","prefix","interfaces","fieldConfig","defaultFieldConfig","enabled","ip","netmask","mergedFieldConfig","Typography","Title","level","justifyContent","alignItems","iface","marginBlock","NetworkSettingsModal","getLanConfig","getSysConfig","getConfig","updateLanConfig","updateSysConfig","restart","sections","showNetmask","LAN","QSFP","restartRemark","st2110Interfaces","setSt2110Interfaces","lanConfigs","setLanConfigs","submitLoading","setSubmitLoading","isInitialized","setIsInitialized","initializationStatus","hasFetched","hasInitialized","preparedFieldConfig","includes","fetchData","lan_interfaces","promises","results","Promise","allSettled","lanResult","sysResult","st2110_interfaces","resetFields","initialValues","connection_id","display_name","ip_address","handleSuccess","messageText","isPopup","refresh","newConfig","updatedConfig","is_restart_required","updatePromises","lanData","_lanConfigs$index","interfacesData","_st2110Interfaces$ind","_st2110Interfaces$ind2","_st2110Interfaces$ind3","st2110Data","allSucceeded","every","confirmLoading","centered","forceRender","styles","padding","footer","paddingBottom","LeftList","dataSource","selectedPresetId","onSelectPreset","onAddNew","onRemove","hasPresets","showDescription","texts","newButton","removeButton","gridColumns","List","header","rowKey","renderItem","create_time","description","locale","emptyText","Empty","image","PRESENTED_IMAGE_SIMPLE","Button","PlusOutlined","paddingInline","SubmitButton","RightDetailForm","_ref3","onSave","onLoad","isLoading","isEditing","originalPresetData","fields","loadButton","saveButton","presetChanged","initialSelected","setInitialSelected","currentSelected","useWatch","hasCategoryList","category_list","currentValue","getFieldValue","checkboxOptions","category","isInitiallySelected","shouldDisable","initiallySelected","handleCheckboxChange","checkedValues","handleLoad","formValues","loadData","vertical","layout","flex","overflowY","rules","validator","_","reject","resolve","Checkbox","Group","rows","Preset","getPresetList","savePreset","removePreset","loadPreset","onLoadSuccess","onLoadError","deleteConfirm","loadConfirm","loadText","successText","height","AntdMessage","presetList","setPresetList","selectedPreset","setSelectedPreset","setPresetChanged","fetchPresetList","presets","preset_list","handleSelectPreset","preset","handleAddNew","_fields$category_list","unsavedPreset","find","warning","newPreset","Object","keys","reduce","acc","fieldName","handleRemove","isUnsavedPreset","presetName","content","handleLoadPreset","modalInstance","info","okButtonProps","destroy","handleSave","errorFields","wrapClassName","Row","gutter","Col","justify"],"mappings":"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","x_google_ignoreList":[8,9,10,11,12,13,14,15,16,17]}
|
|
1
|
+
{"version":3,"file":"index.esm.js","sources":["../src/componnets/UsageItem.jsx","../src/hooks/useHardwareWebSocket.js","../src/hooks/useHardwareUsage.js","../src/componnets/AuthorizationModal.jsx","../src/hooks/useAuth.js","../src/hooks/useUpgrade.js","../src/hooks/useSystemOperations.js","../src/componnets/NetworkSettingsModal.jsx","../src/componnets/PtpModal.jsx","../src/componnets/PresetModal.component.jsx","../src/componnets/PresetModal.jsx","../src/componnets/UpgradeManager.jsx","../node_modules/react-is/cjs/react-is.production.min.js","../node_modules/react-is/cjs/react-is.development.js","../node_modules/react-is/index.js","../node_modules/object-assign/index.js","../node_modules/prop-types/lib/ReactPropTypesSecret.js","../node_modules/prop-types/lib/has.js","../node_modules/prop-types/checkPropTypes.js","../node_modules/prop-types/factoryWithTypeCheckers.js","../node_modules/prop-types/factoryWithThrowingShims.js","../node_modules/prop-types/index.js","../src/componnets/SystemOperations.jsx","../src/hooks/useSpaLogo.js","../src/componnets/CommonHeader.jsx","../src/componnets/draggable-number-input.js"],"sourcesContent":["import { memo } from \"react\";\r\nimport { Tooltip } from \"antd\";\r\n\r\n// 格式化字节大小为更易读的形式\r\nconst formatBytes = (bytes, decimals = 1) => {\r\n if (bytes === 0 || !bytes || bytes < 0) return '0 Bytes';\r\n const k = 1024;\r\n const dm = decimals < 0 ? 0 : decimals;\r\n const sizes = ['Bytes', 'KB', 'MB', 'GB', 'TB'];\r\n const i = Math.floor(Math.log(bytes) / Math.log(k));\r\n return parseFloat((bytes / Math.pow(k, i)).toFixed(dm)) + ' ' + sizes[i];\r\n};\r\n\r\nconst UsageItem = memo(({ title, iconClass, children, memTotal }) => {\r\n return (\r\n <Tooltip \r\n title={\r\n <>\r\n <div>{title}</div>\r\n {title === 'Memory Usage' && memTotal !== undefined && (\r\n <div>Total Memory: {formatBytes(memTotal)}</div>\r\n )}\r\n </>\r\n } \r\n destroyOnHidden={false}\r\n >\r\n <div className=\"usage-item\">\r\n <i className={`seeder-iconfont ${iconClass} text-xl`} />\r\n <span className=\"usage-value\">{children}</span>\r\n </div>\r\n </Tooltip>\r\n );\r\n});\r\n\r\nexport default UsageItem;","import { useEffect, useState, useCallback } from 'react';\r\nimport { useWebSocket } from 'ahooks';\r\n\r\nconst useHardwareWebSocket = (socketUrl) => {\r\n const [systemStatus, setSystemStatus] = useState();\r\n\r\n const handleMessage = useCallback((message) => {\r\n try {\r\n if (message) {\r\n setSystemStatus(prev => ({\r\n ...prev,\r\n ...message,\r\n // lastUpdated: Date.now() // 添加更新时间戳\r\n }));\r\n }\r\n } catch (error) {\r\n console.error('Message processing error:', error);\r\n }\r\n }, []);\r\n\r\n // ## 获取系统资源使用情况\r\n const { latestMessage } = useWebSocket(socketUrl, {\r\n onMessage: (event) => {\r\n // 处理实时消息\r\n try {\r\n const parsedMessage = JSON.parse(event.data);\r\n handleMessage(parsedMessage);\r\n } catch (error) {\r\n console.error('Message parsing error:', error);\r\n console.debug('Raw message:', event.data);\r\n }\r\n }\r\n });\r\n\r\n // // 监听消息 latestMessage 只用于非实时需求\r\n // useEffect(() => {\r\n // if (!latestMessage?.data) return;\r\n\r\n // try {\r\n // const parsedMessage = JSON.parse(latestMessage.data);\r\n // handleMessage(parsedMessage);\r\n // } catch (error) {\r\n // console.error('Message parsing error:', error);\r\n // console.debug('Raw message:', latestMessage.data);\r\n // }\r\n // }, [latestMessage?.data, handleMessage]);\r\n\r\n return { ps_status: systemStatus }\r\n}\r\n\r\nexport default useHardwareWebSocket ;","import { useMemo } from \"react\";\r\nimport UsageItem from \"../componnets/UsageItem.jsx\";\r\nimport useHardwareWebSocket from './useHardwareWebSocket.js';\r\n\r\n// 获取网卡最高温度(支持动态字段检查)\r\nconst getMaxNicTemp = (sensors, priorityFields = [\"i350bb\", \"r8169_0_8300:00\"]) => {\r\n const temps = priorityFields\r\n .flatMap(field => sensors?.[field]?.map(item => item.current) || [])\r\n .filter((temp) => typeof temp === 'number');\r\n return temps.length ? Math.max(...temps) : null;\r\n};\r\n\r\n// 获取数组类型传感器最高温度(如内存、硬盘)\r\nconst getMaxSensorTemp = (sensorData) => {\r\n const temps = (sensorData || [])\r\n .map(item => item.current)\r\n .filter((temp) => typeof temp === 'number');\r\n return temps.length ? Math.max(...temps) : null;\r\n};\r\n\r\nconst getDetail = (status = {}) => {\r\n const { cpu_percent, mem, sensors_temperatures, gpu_stats } = status;\r\n\r\n return {\r\n cpu_usage: cpu_percent ?? null,\r\n cpu_temp: sensors_temperatures?.coretemp?.[0]?.current ?? null,\r\n mem_total: mem?.total ?? null,\r\n mem_usage: mem?.percent ?? null,\r\n mem_temp: getMaxSensorTemp(sensors_temperatures?.spd5118),\r\n nic_temp: getMaxNicTemp(sensors_temperatures) ?? null,\r\n hd_temp: getMaxSensorTemp(sensors_temperatures?.nvme),\r\n gpu_usage: gpu_stats?.[0]?.[\"utilization.gpu\"] ?? null,\r\n gpu_temp: gpu_stats?.[0]?.[\"temperature.gpu\"] ?? null,\r\n };\r\n};\r\n\r\n// 提取公共逻辑\r\nconst createMetricItem = (\r\n title,\r\n iconClass,\r\n value,\r\n unit\r\n) => {\r\n const numValue = typeof value === 'string' ? parseFloat(value) : value;\r\n\r\n return {\r\n title,\r\n iconClass,\r\n valueString: `${numValue}${unit}`,\r\n value: numValue,\r\n };\r\n};\r\n\r\nconst getItems = (details) => {\r\n const items = [];\r\n\r\n if (details.cpu_usage !== null && details.cpu_usage !== undefined) {\r\n items.push(createMetricItem('CPU Usage', 'seeder-icon-CPU', details.cpu_usage, '%'));\r\n }\r\n\r\n if (details.cpu_temp !== null && details.cpu_temp !== undefined) {\r\n items.push(createMetricItem('CPU Temperature', 'seeder-icon-CPUwendu', details.cpu_temp, '℃'));\r\n }\r\n\r\n if (details.mem_usage !== null && details.mem_usage !== undefined) {\r\n items.push({\r\n ...createMetricItem('Memory Usage', 'seeder-icon-shiyongshuai', details.mem_usage, '%'),\r\n memTotal: details.mem_total,\r\n });\r\n }\r\n\r\n if (details.mem_temp !== null && details.mem_temp !== undefined) {\r\n items.push(createMetricItem('Memory Temperature', 'seeder-icon-wendu', details.mem_temp, '℃'));\r\n }\r\n\r\n if (details.nic_temp !== null && details.nic_temp !== undefined) {\r\n items.push(createMetricItem('NIC Temperature', 'seeder-icon-wuliwangka', details.nic_temp, '℃'));\r\n }\r\n\r\n if (details.hd_temp !== null && details.hd_temp !== undefined) {\r\n items.push(createMetricItem('Disk Temperature', 'seeder-icon-yingpan', details.hd_temp, '℃'));\r\n }\r\n\r\n if (details.gpu_usage !== null && details.gpu_usage !== undefined) {\r\n items.push(createMetricItem('GPU Usage', 'seeder-icon-gpufuwu', details.gpu_usage, '%'));\r\n }\r\n\r\n if (details.gpu_temp !== null && details.gpu_temp !== undefined) {\r\n items.push(createMetricItem('GPU Temperature', 'seeder-icon-CPUwendu', details.gpu_temp, '℃'));\r\n }\r\n\r\n return items;\r\n};\r\n\r\nconst useHardwareUsage = (socketUrl) => {\r\n const { ps_status } = useHardwareWebSocket(socketUrl);\r\n\r\n return useMemo(() => {\r\n if (!ps_status || typeof ps_status !== 'object') return null;\r\n\r\n const statusItems = getItems(getDetail(ps_status));\r\n\r\n return (\r\n <div className=\"usage-container\">\r\n {statusItems.map((item, index) => (\r\n <div key={item.title} className=\"usage-item-wrapper\">\r\n <UsageItem \r\n title={item.title}\r\n iconClass={item.iconClass} \r\n memTotal={item.memTotal}\r\n >\r\n {item.valueString}\r\n </UsageItem>\r\n {/* {index < statusItems.length - 1 && <Divider type=\"vertical\" />} */}\r\n </div>\r\n ))}\r\n </div>\r\n )\r\n }, [ps_status]);\r\n}\r\n\r\nexport default useHardwareUsage;","import { useState } from 'react';\r\nimport { Modal, Form, Input, Alert, App } from 'antd';\r\n\r\nconst AuthorizationModal = ({\r\n onCancel,\r\n onOk,\r\n authData,\r\n title = 'Register License',\r\n okText,\r\n cancelText = 'Ignore',\r\n width = 600\r\n}) => {\r\n const { message } = App.useApp();\r\n const [code, setCode] = useState('');\r\n\r\n const {\r\n accredit_status: isActivated,\r\n message: statusMessage = 'Unactivated',\r\n bios_id: uuid,\r\n expires_time: expiresTime\r\n } = authData || {};\r\n\r\n const handleOk = () => {\r\n const trimmedCode = code.trim();\r\n if (!trimmedCode) {\r\n message.error('License key cannot be empty');\r\n return;\r\n }\r\n onOk(trimmedCode);\r\n }\r\n \r\n const statusAlert = isActivated ? (\r\n <Alert\r\n message={`${statusMessage}, will expire on ${expiresTime}`}\r\n type=\"success\"\r\n showIcon\r\n />\r\n ) : (\r\n <Alert message={statusMessage} type=\"warning\" showIcon />\r\n );\r\n\r\n const defaultOkText = isActivated ? \"Reactivate\" : \"Activate Now\";\r\n\r\n return (\r\n <Modal\r\n title={title}\r\n open={true}\r\n onCancel={onCancel}\r\n onOk={handleOk}\r\n okText={okText || defaultOkText}\r\n cancelText={cancelText}\r\n width={width}\r\n maskClosable={false}\r\n closable={false}\r\n cancelButtonProps={{ disabled: !isActivated }}\r\n >\r\n <Form\r\n name=\"auth_form\"\r\n labelCol={{ span: 6 }}\r\n wrapperCol={{ span: 18 }}\r\n autoComplete=\"off\"\r\n >\r\n <div style={{ marginBottom: 16 }}>{statusAlert}</div>\r\n <Form.Item label=\"Machine Code\" required>\r\n <Input value={uuid} readOnly />\r\n </Form.Item>\r\n <Form.Item label=\"License Key\" required>\r\n <Input.TextArea\r\n value={code}\r\n onChange={(e) => setCode(e.target.value)}\r\n autoSize={{ minRows: 6, maxRows: 6 }}\r\n placeholder=\"Enter your license key\"\r\n />\r\n </Form.Item>\r\n </Form>\r\n </Modal>\r\n );\r\n}\r\n\r\nexport default AuthorizationModal;","import { useState, useEffect, useCallback } from 'react';\r\nimport { message } from 'antd';\r\nimport AuthorizationModal from '../componnets/AuthorizationModal.jsx';\r\n\r\nconst DEFAULT_AUTH = {\r\n accredit_status: false, // 授权状态\r\n bios_id: '', // 主机id\r\n message: 'Unactivated', // 激活信息\r\n expires_time: '' // 授权到期时间\r\n}\r\n\r\nexport const useAuth = (options) => {\r\n const {\r\n fetchAuthInfo,\r\n authorize,\r\n defaultAuthData = DEFAULT_AUTH,\r\n autoShowModal = true\r\n } = options || {};\r\n\r\n const [messageApi, contextHolder] = message.useMessage();\r\n const [showModal, setShowModal] = useState(false); // 默认隐藏\r\n const [authData, setAuthData] = useState(defaultAuthData);\r\n const [isRegistered, setIsRegistered] = useState(false);\r\n const [loading, setLoading] = useState(false);\r\n\r\n const openModal = useCallback(() => setShowModal(true), []);\r\n const closeModal = useCallback(() => setShowModal(false), []);\r\n\r\n useEffect(() => {\r\n async function loadAuthInfo() {\r\n try {\r\n setLoading(true);\r\n const result = await fetchAuthInfo();\r\n if (result?.commands) {\r\n const commands = result.commands;\r\n setAuthData(commands);\r\n setIsRegistered(commands.accredit_status);\r\n if (autoShowModal) {\r\n commands.accredit_status ? closeModal() : openModal();\r\n }\r\n }\r\n } catch (error) {\r\n console.error('Failed to fetch auth info:', error);\r\n } finally {\r\n setLoading(false);\r\n }\r\n }\r\n\r\n loadAuthInfo();\r\n }, [fetchAuthInfo, autoShowModal, openModal, closeModal]);\r\n\r\n const auth = async (code) => {\r\n try {\r\n setLoading(true);\r\n const result = await authorize({\r\n type: \"accredit_command\",\r\n commands: {\r\n id: \"LICENSE\",\r\n license_data: code\r\n }\r\n });\r\n if (result?.commands) {\r\n const commands = result.commands;\r\n // type accredit_message\r\n if (commands?.accredit_status) {\r\n setIsRegistered(true);\r\n setAuthData(commands);\r\n closeModal();\r\n } else {\r\n messageApi.error(commands.ciphertext_status || 'Authorization failed');\r\n }\r\n }\r\n } catch (error) {\r\n console.error('Authorization error:', error);\r\n } finally {\r\n setLoading(false);\r\n }\r\n };\r\n\r\n const modal = showModal && (\r\n <>\r\n <AuthorizationModal\r\n onOk={auth}\r\n onCancel={closeModal}\r\n authData={authData}\r\n />\r\n {contextHolder}\r\n </>\r\n );\r\n\r\n return {\r\n AuthModal: modal,\r\n openAuthModal: openModal,\r\n closeAuthModal: closeModal,\r\n isRegistered,\r\n authData,\r\n loading\r\n };\r\n};","import { useRef, useState, useEffect, useMemo } from \"react\";\r\nimport { Spin, message, Dropdown } from \"antd\";\r\nimport { LoadingOutlined } from '@ant-design/icons';\r\nimport { useInterval } from \"ahooks\";\r\nimport axios from 'axios';\r\n\r\nconst useUpgrade = ({\r\n menuItems = [],\r\n onMenuClick,\r\n downloadFiles,\r\n upgradeExecute,\r\n upgradeStatus,\r\n acceptFileTypes = \"application/octet-stream\",\r\n uploadCompleteDelay = 3000,\r\n statusPollingInterval = 1000\r\n}) => {\r\n const [isSpinning, setIsSpinning] = useState(false);\r\n const [interval, setInterval] = useState(undefined); // 间隔时间,当设置值为 undefined 时会停止计时器\r\n const inputRef = useRef(null);\r\n const [currentStatus, setCurrentStatus] = useState('idle'); // 'idle' | 'uploading' | 'upgrading'\r\n const isUploadCompleteRef = useRef(false); // 安装包上传是否完成\r\n const [uploadProgress, setUploadProgress] = useState(0);\r\n\r\n // 分别创建独立的取消令牌\r\n const uploadCancelToken = useRef(axios.CancelToken.source());\r\n const statusCancelToken = useRef(axios.CancelToken.source());\r\n\r\n const showLoader = () => setIsSpinning(true);\r\n const hideLoader = () => setIsSpinning(false);\r\n\r\n // 构建菜单项 - 确保至少包含download和upload\r\n // 构建菜单项 - 最终完美版本\r\n const finalMenuItems = useMemo(() => {\r\n const hasDownload = menuItems.some(item => item.key === 'download');\r\n const hasUpload = menuItems.some(item => item.key === 'upload');\r\n \r\n if (hasDownload && hasUpload) {\r\n return menuItems;\r\n }\r\n \r\n const licenseIndex = menuItems.findIndex(item => item.key === 'license');\r\n \r\n // 如果没有license,在末尾添加\r\n if (licenseIndex === -1) {\r\n const itemsToAdd = [];\r\n if (menuItems.length > 0) itemsToAdd.push({ type: 'divider' });\r\n if (!hasDownload) itemsToAdd.push({ key: \"download\", label: \"Download Config File\" });\r\n if (!hasUpload) itemsToAdd.push({ key: \"upload\", label: \"Software Update\" });\r\n return [...menuItems, ...itemsToAdd];\r\n }\r\n \r\n // 有license,在license前面插入\r\n const beforeLicense = menuItems.slice(0, licenseIndex);\r\n const licenseItem = menuItems[licenseIndex];\r\n const afterLicense = menuItems.slice(licenseIndex + 1);\r\n \r\n const itemsToInsert = [];\r\n \r\n // 1. 前面的分隔符(如果beforeLicense不为空且最后一项不是分隔符)\r\n if (beforeLicense.length > 0 && beforeLicense[beforeLicense.length - 1].type !== 'divider') {\r\n itemsToInsert.push({ type: 'divider' });\r\n }\r\n \r\n // 2. 添加缺少的项\r\n if (!hasDownload) itemsToInsert.push({ key: \"download\", label: \"Download Config File\" });\r\n if (!hasUpload) itemsToInsert.push({ key: \"upload\", label: \"Software Update\" });\r\n \r\n // 3. 后面的分隔符(与license之间)\r\n itemsToInsert.push({ type: 'divider' });\r\n \r\n return [...beforeLicense, ...itemsToInsert, licenseItem, ...afterLicense];\r\n }, [menuItems]);\r\n\r\n const handleMenuClick = ({ key }) => {\r\n switch (key) {\r\n case 'download':\r\n onDownload();\r\n return;\r\n case 'upload':\r\n onUpload();\r\n return;\r\n default:\r\n // 其他菜单项交给外部回调处理\r\n if (onMenuClick) {\r\n onMenuClick(key);\r\n } else {\r\n console.warn(`Unknown menu key: ${key} and no onMenuClick provided`);\r\n }\r\n }\r\n };\r\n\r\n const onDownload = async () => {\r\n if (!downloadFiles) {\r\n console.error('downloadFiles function is required for download operation');\r\n message.error('Download functionality not configured');\r\n return;\r\n }\r\n\r\n try {\r\n const res = await downloadFiles();\r\n\r\n if (res.status !== 200) {\r\n throw new Error(`Unexpected status code: ${res.status}`);\r\n }\r\n\r\n // 默认值,兼容接口响应头没有定义文件名\r\n let fileName = 'config.tar.gz';\r\n const contentDisposition = res.headers['content-disposition'] || '';\r\n\r\n // 获取接口响应的content-disposition字段值,以便获取到文件名\r\n if (contentDisposition) {\r\n const filenameMatch = contentDisposition.match(/filename\\s*=\\s*\"?([^\";]+)\"?/i);\r\n if (filenameMatch?.[1]) {\r\n fileName = decodeURIComponent(filenameMatch[1]); // 处理编码后的文件名(如 %20 转空格)\r\n }\r\n }\r\n\r\n // 创建并下载文件\r\n const blob = new Blob([res.data], { type: 'application/octet-stream' });\r\n const url = window.URL.createObjectURL(blob);\r\n\r\n // 下面就是创建一个a标签并触发click事件,来下载该文件\r\n const link = document.createElement('a');\r\n link.style.display = 'none';\r\n link.href = url;\r\n link.target = '_blank';\r\n link.download = fileName;\r\n document.body.appendChild(link);\r\n link.click();\r\n\r\n // 最后移除a标签并删除创建的ObjectURL对象,防止内存泄漏\r\n link.parentNode.removeChild(link);\r\n window.URL.revokeObjectURL(url);\r\n } catch (error) {\r\n console.error('Download failed:', error);\r\n message.error('Download failed');\r\n }\r\n }\r\n\r\n const onUpload = () => {\r\n if (inputRef?.current) {\r\n inputRef.current.click();\r\n }\r\n }\r\n\r\n const updatePackage = async (event) => {\r\n if (!upgradeExecute) {\r\n console.error('upgradeExecute function is required for upload operation');\r\n message.error('Upload functionality not configured');\r\n return;\r\n }\r\n\r\n try {\r\n const file = event.target.files?.[0];\r\n if (!file) return;\r\n\r\n showLoader();\r\n setCurrentStatus('Uploading...');\r\n setUploadProgress(0); // 重置进度\r\n\r\n const formData = new FormData();\r\n formData.append('file', file);\r\n\r\n isUploadCompleteRef.current = false;\r\n\r\n // 上传文件(不等待响应)\r\n upgradeExecute(formData, {\r\n onUploadProgress: (progressEvent) => {\r\n const percentCompleted = Math.round(\r\n (progressEvent.loaded * 100) / progressEvent.total\r\n );\r\n setUploadProgress(percentCompleted); // 更新进度状态\r\n\r\n if (percentCompleted === 100) {\r\n isUploadCompleteRef.current = true;\r\n // 等待3秒 开始状态轮询\r\n setTimeout(() => {\r\n setInterval(statusPollingInterval);\r\n setCurrentStatus('Upgrading...');\r\n }, uploadCompleteDelay);\r\n }\r\n },\r\n cancelToken: uploadCancelToken.current.token\r\n });\r\n\r\n // 清除文件选择\r\n if (inputRef.current) inputRef.current.value = \"\";\r\n } catch (error) {\r\n if (!axios.isCancel(error)) {\r\n console.error(\"Upload error:\", error);\r\n message.error('Upload failed');\r\n }\r\n cancelRequest();\r\n }\r\n }\r\n\r\n const fetchUpgradeStatus = async () => {\r\n if (!upgradeStatus) {\r\n console.error('upgradeStatus function is required for status checking');\r\n cancelRequest();\r\n return;\r\n }\r\n\r\n try {\r\n const response = await upgradeStatus({\r\n cancelToken: statusCancelToken.current.token\r\n });\r\n\r\n if (response?.status === 200) {\r\n const { code, message: statusMessage } = response.data;\r\n\r\n // 状态处理\r\n switch (code) {\r\n case 200: // 升级成功\r\n message.success(statusMessage, 2.5, () => {\r\n cancelRequest();\r\n window.location.reload();\r\n });\r\n break;\r\n \r\n case 201: // 升级中\r\n // code为201时,每隔一秒请求一次。直到请求到其他的code,直接弹出message提示。\r\n break;\r\n case 202: // 升级失败\r\n case 203: // 升级异常\r\n message.error(statusMessage);\r\n cancelRequest();\r\n break;\r\n \r\n default:\r\n break;\r\n }\r\n }\r\n } catch (error) {\r\n if (axios.isCancel(error)) {\r\n console.log('Status polling canceled');\r\n } else {\r\n console.error('Status check failed:', error);\r\n // 网络错误时自动重试\r\n }\r\n }\r\n }\r\n\r\n const cancelRequest = () => {\r\n // 取消状态轮询\r\n uploadCancelToken.current.cancel('Operation canceled');\r\n statusCancelToken.current.cancel('Operation canceled');\r\n \r\n uploadCancelToken.current = axios.CancelToken.source();\r\n statusCancelToken.current = axios.CancelToken.source();\r\n \r\n // 重置所有状态\r\n setInterval(undefined);\r\n setCurrentStatus('idle');\r\n hideLoader();\r\n };\r\n\r\n // 轮询状态\r\n useInterval(fetchUpgradeStatus, interval);\r\n\r\n // 组件卸载时清理\r\n useEffect(() => {\r\n return () => {\r\n uploadCancelToken.current.cancel();\r\n statusCancelToken.current.cancel();\r\n };\r\n }, []);\r\n\r\n const upgradeElement = (\r\n <div>\r\n <Dropdown \r\n menu={{ \r\n items: finalMenuItems, \r\n onClick: handleMenuClick\r\n }} \r\n trigger={[\"hover\"]}\r\n >\r\n <a onClick={(e) => e.preventDefault()}>\r\n <i className=\"seeder-iconfont seeder-icon-liebiao2 text-xl text-neutral-400\"></i>\r\n </a>\r\n </Dropdown>\r\n <input \r\n ref={inputRef} \r\n type=\"file\" \r\n onChange={updatePackage} \r\n className=\"hidden\"\r\n accept={acceptFileTypes}\r\n />\r\n <Spin \r\n spinning={isSpinning} \r\n indicator={<LoadingOutlined style={{ fontSize: 60 }} spin />}\r\n tip={\r\n currentStatus === \"Uploading...\" \r\n ? `${currentStatus} ${uploadProgress}%` \r\n : currentStatus\r\n }\r\n size=\"large\"\r\n fullscreen\r\n />\r\n </div>\r\n )\r\n\r\n return [upgradeElement];\r\n}\r\n\r\nexport default useUpgrade;","import { useCallback } from 'react';\r\nimport { App } from \"antd\";\r\nimport { ExclamationCircleFilled } from \"@ant-design/icons\";\r\n\r\nconst useSystemOperations = ({\r\n onPowerOff,\r\n onRestart,\r\n confirmTitle = \"Confirm\",\r\n cancelText = \"No\",\r\n okText = \"Yes\",\r\n run\r\n} = {}) => {\r\n const { modal: AntdModal } = App.useApp();\r\n\r\n const doAction = useCallback((action) => {\r\n try {\r\n AntdModal.confirm({\r\n icon: <ExclamationCircleFilled />,\r\n title: `${confirmTitle} ${action}?`,\r\n cancelText,\r\n okText,\r\n onOk: () => {\r\n if (action === 'poweroff' && onPowerOff) {\r\n onPowerOff();\r\n } else if (action === 'restart' && onRestart) {\r\n onRestart();\r\n }\r\n\r\n // Call the run callback after successful operation\r\n if (typeof run === 'function') {\r\n run();\r\n }\r\n }\r\n });\r\n } catch (error) {\r\n console.error(`${action.toUpperCase()} ERROR: `, error);\r\n }\r\n }, [AntdModal, confirmTitle, cancelText, okText, onPowerOff, onRestart]);\r\n\r\n const getMenuItems = useCallback(() => [\r\n {\r\n key: \"poweroff\",\r\n label: \"Power Off\",\r\n },\r\n {\r\n key: \"restart\",\r\n label: \"Restart\",\r\n }\r\n ], []);\r\n\r\n const handleMenuClick = useCallback(({ key }) => {\r\n doAction(key);\r\n }, [doAction]);\r\n\r\n return {\r\n menuItems: getMenuItems(),\r\n handleMenuClick\r\n };\r\n};\r\n\r\nexport default useSystemOperations;","import { memo, useEffect, useMemo, useState, useCallback, useRef } from 'react';\r\nimport { Modal, Form, App, Typography, Divider, Input } from 'antd';\r\nimport { ExclamationCircleFilled } from \"@ant-design/icons\";\r\n\r\nconst NetworkFieldGroup = ({ prefix, interfaces, fieldConfig = {} }) => {\r\n // 默认字段配置\r\n const defaultFieldConfig = {\r\n name: { label: \"Name\", enabled: true },\r\n ip: { label: \"IP Address\", enabled: true },\r\n netmask: { label: \"Netmask\", enabled: true }\r\n };\r\n \r\n const mergedFieldConfig = {\r\n ...defaultFieldConfig,\r\n ...fieldConfig,\r\n netmask: {\r\n label: \"Netmask\",\r\n enabled: fieldConfig.netmask?.enabled ?? defaultFieldConfig.netmask.enabled, // 合并 enabled\r\n }\r\n };\r\n \r\n return (\r\n <>\r\n <Typography.Title\r\n level={5}\r\n style={{\r\n display: 'flex',\r\n justifyContent: 'space-between',\r\n alignItems: 'center',\r\n marginBottom: 16\r\n }}\r\n >\r\n {prefix}\r\n </Typography.Title>\r\n {interfaces.map((iface, index) => (\r\n <div key={iface.id || index}>\r\n {mergedFieldConfig.name.enabled && (\r\n <Form.Item\r\n label={mergedFieldConfig.name.label}\r\n name={[prefix, index, \"display_name\"]}\r\n >\r\n <Input disabled />\r\n </Form.Item>\r\n )}\r\n\r\n {mergedFieldConfig.ip.enabled && (\r\n <Form.Item\r\n label={mergedFieldConfig.ip.label}\r\n name={[prefix, index, \"ip_address\"]}\r\n >\r\n <Input />\r\n </Form.Item>\r\n )}\r\n\r\n {mergedFieldConfig.netmask.enabled && (\r\n <Form.Item\r\n label={mergedFieldConfig.netmask.label}\r\n name={[prefix, index, \"netmask\"]}\r\n >\r\n <Input />\r\n </Form.Item>\r\n )}\r\n\r\n {index < interfaces.length - 1 && <Divider style={{ marginBlock: 16 }} />}\r\n </div>\r\n ))}\r\n </>\r\n )\r\n};\r\n\r\nconst NetworkSettingsModal = ({\r\n open, \r\n onClose, \r\n getLanConfig, // 可选 - 单独获取LAN配置的函数\r\n getSysConfig, // 可选 - 单独获取QSFP配置的函数\r\n getConfig, // 可选 - 统一获取配置的函数\r\n updateLanConfig, \r\n updateSysConfig, \r\n restart,\r\n modalProps = {},\r\n formProps = {},\r\n fieldConfig = {},\r\n sections = ['LAN', 'QSFP'],\r\n showNetmask = { LAN: true, QSFP: false },\r\n restartRemark\r\n}) => {\r\n const { message, modal } = App.useApp();\r\n const [form] = Form.useForm();\r\n\r\n const [st2110Interfaces, setSt2110Interfaces] = useState([]);\r\n const [lanConfigs, setLanConfigs] = useState([]);\r\n const [submitLoading, setSubmitLoading] = useState(false);\r\n const [isInitialized, setIsInitialized] = useState(false);\r\n\r\n const initializationStatus = useRef({\r\n hasFetched: false,\r\n hasInitialized: false\r\n });\r\n\r\n const preparedFieldConfig = useMemo(() => {\r\n const config = { ...fieldConfig };\r\n \r\n // 确保LAN和QSFP的配置存在\r\n config.LAN = config.LAN || {};\r\n config.QSFP = config.QSFP || {};\r\n\r\n if (sections.includes('LAN')) {\r\n config.LAN.netmask = {\r\n ...(config.LAN.netmask || {}),\r\n enabled: showNetmask.LAN\r\n };\r\n }\r\n \r\n if (sections.includes('QSFP')) {\r\n config.QSFP.netmask = {\r\n ...(config.QSFP.netmask || {}),\r\n enabled: showNetmask.QSFP\r\n };\r\n }\r\n\r\n return config;\r\n }, [fieldConfig, showNetmask, sections]);\r\n\r\n useEffect(() => {\r\n if (!open) return;\r\n \r\n const fetchData = async () => {\r\n if (initializationStatus.current.hasFetched) return;\r\n \r\n try {\r\n initializationStatus.current.hasFetched = true;\r\n\r\n if (getConfig) {\r\n // 使用统一接口获取数据\r\n const config = await getConfig();\r\n if (sections.includes('LAN') && config.lan_interfaces) {\r\n setLanConfigs(config.lan_interfaces);\r\n }\r\n if (sections.includes('QSFP') && config.interfaces) {\r\n setSt2110Interfaces(config.interfaces);\r\n }\r\n } else {\r\n const promises = [];\r\n if (sections.includes('LAN')) {\r\n promises.push(getLanConfig());\r\n }\r\n \r\n if (sections.includes('QSFP')) {\r\n promises.push(getSysConfig());\r\n }\r\n\r\n const results = await Promise.allSettled(promises);\r\n\r\n if (sections.includes('LAN') && getLanConfig) {\r\n const lanResult = results[0];\r\n if (lanResult.status === 'fulfilled') {\r\n setLanConfigs(lanResult.value || []);\r\n }\r\n }\r\n \r\n if (sections.includes('QSFP') && getSysConfig) {\r\n const sysResult = sections.includes('LAN') ? results[1] : results[0];\r\n if (sysResult.status === 'fulfilled' && sysResult.value) {\r\n setSt2110Interfaces(sysResult.value.st2110_interfaces || []);\r\n }\r\n }\r\n }\r\n \r\n setIsInitialized(true);\r\n } catch (error) {\r\n console.error('Failed to fetch data:', error);\r\n initializationStatus.current.hasFetched = false; // 出错时重置\r\n }\r\n };\r\n\r\n fetchData();\r\n }, [open, getLanConfig, getSysConfig, sections]); \r\n\r\n // 当模态框关闭时重置状态\r\n useEffect(() => {\r\n if (!open) {\r\n setIsInitialized(false);\r\n setLanConfigs([]);\r\n setSt2110Interfaces([]);\r\n form.resetFields();\r\n initializationStatus.current = { hasFetched: false, hasInitialized: false };\r\n }\r\n }, [open, form]);\r\n\r\n // 动态初始值配置\r\n const initialValues = useMemo(() => {\r\n const values = {};\r\n \r\n if (sections.includes('LAN') && lanConfigs.length > 0) {\r\n values.LAN = lanConfigs.map(config => ({\r\n connection_id: config.connection_id,\r\n display_name: config.display_name,\r\n ip_address: config.ip_address,\r\n ...(showNetmask.LAN ? { netmask: config.netmask } : {})\r\n }));\r\n }\r\n \r\n if (sections.includes('QSFP') && st2110Interfaces.length > 0) {\r\n values.QSFP = st2110Interfaces.map(iface => ({\r\n // 只有当iface中存在id字段时才包含id\r\n ...(iface.id !== undefined && { id: iface.id }),\r\n display_name: iface.display_name,\r\n ip_address: iface.ip_address || iface.ip, // 优先取ip_address,没有则取ip\r\n ...(showNetmask.QSFP ? { netmask: iface.netmask } : {})\r\n }));\r\n }\r\n \r\n return values;\r\n }, [lanConfigs, st2110Interfaces, sections, showNetmask]);\r\n\r\n // 当初始值准备好后设置表单值\r\n useEffect(() => {\r\n if (isInitialized && !initializationStatus.current.hasInitialized) {\r\n form.setFieldsValue(initialValues);\r\n initializationStatus.current.hasInitialized = true;\r\n }\r\n }, [isInitialized, form, initialValues]);\r\n\r\n const handleSuccess = useCallback(async ({\r\n messageText = 'Success',\r\n isPopup = !!restart,\r\n refresh = !restart\r\n } = {}) => {\r\n message.success(messageText);\r\n\r\n if (refresh && getConfig) {\r\n try {\r\n const newConfig = await getConfig();\r\n if (sections.includes('LAN') && newConfig.lan_interfaces) {\r\n setLanConfigs(newConfig.lan_interfaces);\r\n }\r\n if (sections.includes('QSFP') && newConfig.interfaces) {\r\n setSt2110Interfaces(newConfig.interfaces);\r\n }\r\n } catch (error) {\r\n console.error('Failed to refresh config:', error);\r\n }\r\n }\r\n\r\n // 如果有restart函数,则显示重启确认框\r\n if (isPopup && restart) {\r\n try {\r\n const updatedConfig = await getSysConfig();\r\n if (updatedConfig && updatedConfig.is_restart_required) {\r\n modal.confirm({\r\n icon: <ExclamationCircleFilled />,\r\n title: \"Configuration modified. Restart to apply changes?\",\r\n cancelText: \"No\",\r\n okText: \"Yes\",\r\n onOk: () => restart(),\r\n });\r\n }\r\n } catch (error) {\r\n console.error('Failed to check restart status:', error);\r\n }\r\n }\r\n\r\n onClose();\r\n }, [message, modal, getSysConfig, restart, getConfig, sections, onClose]);\r\n\r\n const handleSubmit = useCallback(async () => {\r\n setSubmitLoading(true);\r\n\r\n try {\r\n const values = await form.validateFields();\r\n // console.log(\"Direct form values:\", values);\r\n\r\n const updatePromises = [];\r\n\r\n // 更新LAN配置\r\n if (sections.includes('LAN') && values.LAN) {\r\n const lanData = values.LAN.map((item, index) => ({\r\n connection_id: lanConfigs[index]?.connection_id,\r\n ip_address: item.ip_address,\r\n ...(showNetmask.LAN ? { netmask: item.netmask } : {})\r\n }));\r\n updatePromises.push(updateLanConfig(lanData));\r\n }\r\n\r\n // 更新QSFP配置\r\n if (sections.includes('QSFP') && values.QSFP) {\r\n const interfacesData = values.QSFP.map((item, index) => ({\r\n // 只有当原始数据中存在id时才包含id\r\n ...(st2110Interfaces?.[index]?.id !== undefined && {\r\n id: st2110Interfaces?.[index]?.id \r\n }),\r\n ...(st2110Interfaces?.[index]?.ip !== undefined \r\n ? { ip: item.ip_address } \r\n : { ip_address: item.ip_address }\r\n ),\r\n ...(showNetmask.QSFP ? { netmask: item.netmask } : {})\r\n }));\r\n\r\n const st2110Data = st2110Interfaces.some(iface => 'id' in iface)\r\n ? { st2110_interfaces: interfacesData }\r\n : { interfaces: interfacesData };\r\n\r\n updatePromises.push(updateSysConfig(st2110Data));\r\n }\r\n\r\n const results = await Promise.allSettled(updatePromises);\r\n\r\n // 检查所有更新是否成功\r\n const allSucceeded = results.every(result => result.status === 'fulfilled');\r\n\r\n if (allSucceeded) {\r\n handleSuccess();\r\n } else {\r\n message.error('Some configurations failed to update');\r\n }\r\n } catch (error) {\r\n console.error('Failed to update configurations: ', error);\r\n message.error('Failed to update configurations');\r\n } finally {\r\n setSubmitLoading(false);\r\n }\r\n }, [\r\n form, \r\n sections, \r\n lanConfigs, \r\n st2110Interfaces, \r\n updateLanConfig, \r\n updateSysConfig, \r\n handleSuccess, \r\n message\r\n ]);\r\n\r\n // 合并默认模态框属性和传入的属性\r\n const mergedModalProps = {\r\n title: \"Network Settings\",\r\n width: 650,\r\n open,\r\n confirmLoading: submitLoading,\r\n onOk: handleSubmit,\r\n onCancel: onClose,\r\n okText: \"Apply\",\r\n cancelText: \"Close\",\r\n centered: true,\r\n destroyOnHidden: true,\r\n forceRender: true,\r\n styles: {\r\n body: { padding: \"16px 24px 8px 24px\" },\r\n ...(restartRemark !== null && { footer: { paddingBottom: 28 } })\r\n },\r\n ...modalProps\r\n };\r\n\r\n // 合并默认表单属性和传入的属性\r\n const mergedFormProps = {\r\n form: form,\r\n labelCol: { span: 6 },\r\n wrapperCol: { span: 18 },\r\n autoComplete: \"off\",\r\n ...formProps\r\n };\r\n\r\n return (\r\n <Modal {...mergedModalProps}>\r\n <Form {...mergedFormProps}>\r\n {sections.includes('LAN') && lanConfigs.length > 0 && (\r\n <>\r\n <NetworkFieldGroup\r\n prefix=\"LAN\"\r\n interfaces={lanConfigs}\r\n fieldConfig={preparedFieldConfig.LAN}\r\n />\r\n {sections.includes('QSFP') && st2110Interfaces.length > 0 && <Divider />}\r\n </>\r\n )}\r\n \r\n {sections.includes('QSFP') && st2110Interfaces.length > 0 && (\r\n <NetworkFieldGroup\r\n prefix=\"QSFP\"\r\n interfaces={st2110Interfaces}\r\n fieldConfig={preparedFieldConfig.QSFP}\r\n />\r\n )}\r\n </Form>\r\n {restartRemark}\r\n </Modal>\r\n );\r\n}\r\n\r\nexport { NetworkFieldGroup };\r\nexport default memo(NetworkSettingsModal);","import { memo, useEffect, useMemo, useState } from \"react\";\r\nimport { Modal, Select, Switch, Input, Badge, Form, ConfigProvider, InputNumber, App } from \"antd\";\r\n\r\n// 默认字段配置\r\nconst defaultFieldConfigs = {\r\n clock_class: {\r\n label: 'Clock Class',\r\n formType: 'select',\r\n options: [\r\n { value: 6, label: 'Atomic Clock (6)' },\r\n { value: 7, label: 'GPS (7)' },\r\n { value: 248, label: 'Slave-Only (248)' }\r\n ],\r\n readOnly: true\r\n },\r\n clock_accuracy: {\r\n label: 'Clock Accuracy',\r\n formType: 'number',\r\n readOnly: true\r\n },\r\n offset_scaled_log_variance: {\r\n label: 'Offset Scaled Log Variance',\r\n formType: 'number',\r\n readOnly: true\r\n },\r\n grandmaster_priority1: {\r\n label: 'Priority 1',\r\n formType: 'number',\r\n readOnly: true\r\n },\r\n grandmaster_priority2: {\r\n label: 'Priority 2',\r\n formType: 'number',\r\n readOnly: true\r\n },\r\n grandmaster_identity: {\r\n label: 'Grandmaster Identity',\r\n formType: 'text',\r\n readOnly: true\r\n },\r\n master_port_id: {\r\n label: 'Port Identity',\r\n formType: 'text',\r\n readOnly: true\r\n },\r\n t1_domain_number: {\r\n label: 'Domain',\r\n formType: 'number',\r\n min: 0,\r\n max: 127,\r\n readOnly: false\r\n },\r\n master_utc_offset: {\r\n label: 'UTC Offset',\r\n formType: 'number',\r\n readOnly: true\r\n },\r\n is_connected: {\r\n label: 'Connected Status',\r\n formType: 'badge',\r\n statusMap: {\r\n 0: { text: 'Disconnected', color: 'red' },\r\n 1: { text: 'Connected', color: 'green' }\r\n }\r\n },\r\n is_locked: {\r\n label: 'Locked Status',\r\n formType: 'badge',\r\n statusMap: {\r\n 0: { text: 'Unlocked', color: 'red' },\r\n 1: { text: 'Locked', color: 'green' }\r\n }\r\n }\r\n};\r\n\r\n// 默认字段顺序\r\nconst defaultFieldOrder = [\r\n 't1_domain_number',\r\n 'grandmaster_priority1',\r\n 'grandmaster_priority2',\r\n 'grandmaster_identity',\r\n 'master_port_id',\r\n 'clock_class',\r\n 'clock_accuracy',\r\n 'offset_scaled_log_variance',\r\n 'master_utc_offset',\r\n 'is_connected',\r\n 'is_locked'\r\n];\r\n\r\n/**\r\n * 转换PTP状态为表单字段数组\r\n * @param {Object} ptpStatus PTP状态对象\r\n * @param {Object} fieldConfigs 字段配置\r\n * @param {Array} fieldOrder 字段顺序\r\n * @returns {Array} 表单字段数组\r\n */\r\nfunction convertPtpStatusToArray(ptpStatus, fieldConfigs, fieldOrder) {\r\n return fieldOrder\r\n .filter(key => key in ptpStatus)\r\n .map(key => {\r\n const config = fieldConfigs[key] || { label: key, formType: 'text' };\r\n const value = ptpStatus[key];\r\n \r\n return {\r\n key,\r\n value,\r\n ...config,\r\n rawData: ptpStatus,\r\n };\r\n });\r\n}\r\n\r\nconst PtpModal = ({\r\n open, \r\n onClose, \r\n getPtpInfo, \r\n updatePtpInfo, \r\n fieldConfigs = defaultFieldConfigs,\r\n fieldOrder = defaultFieldOrder,\r\n modalProps = {},\r\n formProps = {}\r\n}) => {\r\n const [ptpStatus, setPtpStatus] = useState(null);\r\n const [form] = Form.useForm();\r\n const { message } = App.useApp();\r\n\r\n useEffect(() => {\r\n if (open) {\r\n getPtpInfo().then(data => {\r\n if (data?.[0]) {\r\n setPtpStatus(data[0]);\r\n form.setFieldsValue(data[0]);\r\n }\r\n });\r\n }\r\n }, [open, form, getPtpInfo])\r\n\r\n const ptpStatusArray = useMemo(() => {\r\n if (!ptpStatus) return[];\r\n return convertPtpStatusToArray(ptpStatus, fieldConfigs, fieldOrder);\r\n }, [ptpStatus])\r\n\r\n const handleValueChange = (changedValues) => {\r\n if ('t1_domain_number' in changedValues) {\r\n setPtpStatus(prev => ({\r\n ...prev,\r\n t1_domain_number: changedValues.t1_domain_number\r\n }));\r\n }\r\n };\r\n\r\n const handleSubmit = async () => {\r\n try {\r\n const values = await form.validateFields();\r\n\r\n const response = await updatePtpInfo(values);\r\n if (response) {\r\n message.success('Success');\r\n setTimeout(() => {\r\n onClose();\r\n }, 1500);\r\n }\r\n } catch (error) {\r\n console.error('Update failed:', error);\r\n }\r\n };\r\n\r\n\r\n const renderFormItem = (item) => {\r\n switch (item.formType) {\r\n case 'select':\r\n return <Select options={item.options} disabled={item.readOnly} />;\r\n case 'switch':\r\n return <Switch />;\r\n case 'badge':\r\n const normalizedValue = typeof item.value === 'boolean' \r\n ? (item.value ? 1 : 0)\r\n : item.value;\r\n const status = item.statusMap?.[normalizedValue] || { text: 'Unknown', color: 'gray' };\r\n return (\r\n <ConfigProvider theme={{ components: { Badge: { statusSize: 10 } } }}>\r\n <Badge color={status.color} text={status.text} />\r\n </ConfigProvider>\r\n );\r\n case 'number':\r\n return (\r\n <InputNumber\r\n disabled={item.readOnly} \r\n controls={false} \r\n keyboard={false} \r\n min={item.min ?? Number.MIN_SAFE_INTEGER} \r\n max={item.max ?? Number.MAX_SAFE_INTEGER}\r\n />\r\n )\r\n default:\r\n return <Input disabled={item.readOnly} />;\r\n }\r\n };\r\n \r\n if (!open || !ptpStatus) return null;\r\n\r\n // 合并默认模态框属性和传入的属性\r\n const mergedModalProps = {\r\n title: \"PTP\",\r\n width: 650,\r\n open,\r\n okText: \"Apply\",\r\n cancelText: \"Close\",\r\n onCancel: onClose,\r\n onOk: handleSubmit,\r\n ...modalProps\r\n };\r\n\r\n // 合并默认表单属性和传入的属性\r\n const mergedFormProps = {\r\n form: form,\r\n name: \"ptpForm\",\r\n labelCol: { span: 8 },\r\n wrapperCol: { span: 16 },\r\n autoComplete: \"off\",\r\n onValuesChange: handleValueChange,\r\n ...formProps\r\n };\r\n\r\n return (\r\n <Modal {...mergedModalProps}>\r\n <Form {...mergedFormProps}>\r\n {ptpStatusArray.map(item => (\r\n <Form.Item \r\n label={item.label} \r\n name={item.key} \r\n key={item.key}\r\n initialValue={item.value}\r\n >\r\n {renderFormItem(item)}\r\n </Form.Item>\r\n ))}\r\n </Form>\r\n </Modal>\r\n )\r\n}\r\n\r\nexport default memo(PtpModal);","import { List, Empty, Button, Space, Form, Input, Flex, Checkbox } from \"antd\";\r\nimport { memo, useEffect, useMemo, useState } from \"react\";\r\nimport { PlusOutlined } from \"@ant-design/icons\";\r\n\r\nexport const LeftList = memo(({\r\n dataSource,\r\n selectedPresetId,\r\n onSelectPreset,\r\n onAddNew,\r\n onRemove,\r\n hasPresets = dataSource.length > 0,\r\n showDescription = false,\r\n texts = {\r\n newButton: \"New Preset\",\r\n removeButton: \"Remove\"\r\n }\r\n}) => {\r\n // 动态计算列布局\r\n const gridColumns = showDescription ? \"grid-cols-3\" : \"grid-cols-2\";\r\n\r\n return (\r\n <div className=\"h-full left-list-wrapper\">\r\n <div className=\"list-container\">\r\n <List\r\n header={\r\n <div className={`grid ${gridColumns} w-full list-header`}>\r\n <div>Name</div>\r\n <div>Create Time</div>\r\n {showDescription && <div>Description</div>}\r\n </div>\r\n }\r\n dataSource={dataSource}\r\n rowKey=\"id\"\r\n renderItem={(item) => (\r\n <List.Item \r\n className={`list-item ${\r\n selectedPresetId === item.id ? 'selected' : ''\r\n }`}\r\n style={{ padding: \"9px 24px\" }}\r\n onClick={() => onSelectPreset(item)}\r\n >\r\n <div className={`grid ${gridColumns} w-full text-text-normal`}>\r\n <div title={item.name}>\r\n {item.name || \"Untitled Preset\"}\r\n </div>\r\n <div>{item.create_time}</div>\r\n {showDescription && <div>{item.description}</div>}\r\n </div>\r\n </List.Item>\r\n )}\r\n locale={{\r\n emptyText: (\r\n <div className=\"p-8\">\r\n <Empty\r\n image={Empty.PRESENTED_IMAGE_SIMPLE}\r\n description={\r\n <span className=\"text-gray-400\">\r\n <Button \r\n type=\"link\" \r\n onClick={onAddNew}\r\n className=\"p-0 h-auto\"\r\n icon={<PlusOutlined />}\r\n >\r\n Create new preset\r\n </Button>\r\n </span>\r\n }\r\n />\r\n </div>\r\n )\r\n }}\r\n />\r\n </div>\r\n\r\n {/* 底部按钮区域 */}\r\n {hasPresets && (\r\n <div className=\"p-4\" style={{ paddingInline: 24 }}>\r\n <Space size=\"middle\">\r\n <Button\r\n type=\"default\"\r\n icon={<PlusOutlined />}\r\n style={{ padding: \"20px 12px\" }}\r\n className=\"btn-gray\"\r\n onClick={onAddNew}\r\n >\r\n {texts.newButton}\r\n </Button>\r\n <Button\r\n type=\"default\"\r\n style={{ padding: \"20px 12px\" }}\r\n className=\"btn-gray\"\r\n onClick={onRemove}\r\n >\r\n {texts.removeButton}\r\n </Button>\r\n </Space>\r\n </div>\r\n )}\r\n </div>\r\n )\r\n});\r\n\r\nconst SubmitButton = ({ loading, action, children, disabled = false }) => (\r\n <div className=\"submit-btn-wrapper\">\r\n <Button className=\"btn-gray\" loading={loading} onClick={action} disabled={disabled}>\r\n {children}\r\n </Button>\r\n </div>\r\n)\r\n\r\nexport const RightDetailForm = memo(({\r\n form, \r\n onSave, \r\n onLoad,\r\n isLoading,\r\n isEditing,\r\n originalPresetData,\r\n fields = {\r\n name: {\r\n label: \"Preset Name\",\r\n placeholder: \"Enter preset name\",\r\n required: true\r\n }\r\n },\r\n texts = {\r\n loadButton: \"Load\",\r\n saveButton: \"Save\"\r\n },\r\n presetChanged\r\n}) => {\r\n const [initialSelected, setInitialSelected] = useState([]);\r\n const currentSelected = Form.useWatch('category_list', form) || [];\r\n\r\n // 检查是否包含category_list字段\r\n const hasCategoryList = fields.category_list !== null && fields.category_list !== undefined;\r\n\r\n // 初始化 category_list 的选择状态\r\n useEffect(() => {\r\n if (hasCategoryList) {\r\n const currentValue = form.getFieldValue('category_list') || [];\r\n setInitialSelected(currentValue);\r\n }\r\n }, [presetChanged, form, hasCategoryList]); // 当presetChanged变化时更新\r\n\r\n // 动态生成 checkbox 选项\r\n const checkboxOptions = useMemo(() => {\r\n if (!hasCategoryList) return [];\r\n \r\n return fields.category_list.options.map(category => {\r\n const isInitiallySelected = initialSelected.includes(category.name);\r\n const shouldDisable = isEditing ? !isInitiallySelected : false;\r\n \r\n return {\r\n ...category,\r\n disabled: shouldDisable,\r\n initiallySelected: isInitiallySelected\r\n };\r\n });\r\n }, [initialSelected, isEditing, hasCategoryList, fields.category_list]);\r\n\r\n const handleCheckboxChange = (checkedValues) => {\r\n form.setFieldsValue({ category_list: checkedValues });\r\n };\r\n\r\n const handleLoad = async () => {\r\n try {\r\n const formValues = await form.validateFields();\r\n\r\n const loadData = {\r\n id: form.getFieldValue('id'),\r\n // 优先使用表单中的 category_list,如果没有则使用原始数据\r\n name: originalPresetData.name,\r\n category_list: hasCategoryList \r\n ? (formValues.category_list || [])\r\n : (originalPresetData?.category_list || [])\r\n };\r\n await onLoad(loadData);\r\n } catch (error) {\r\n console.error('表单验证失败:', error);\r\n }\r\n };\r\n\r\n return (\r\n <Flex vertical className=\"h-full\">\r\n <Form \r\n form={form} \r\n layout=\"vertical\" \r\n autoComplete=\"off\" \r\n style={{ flex: 1, overflowY: 'auto' }}\r\n >\r\n {/* Name 字段 */}\r\n <Form.Item \r\n name=\"name\" \r\n label={fields.name.label}\r\n rules={[\r\n { \r\n required: fields.name.required,\r\n validator: async (_, value) => {\r\n if (!value || value.trim() === '') {\r\n return Promise.reject(new Error('Preset name cannot be empty or spaces only'));\r\n }\r\n }\r\n }\r\n ]}\r\n >\r\n <Input \r\n placeholder={fields.name.placeholder} \r\n disabled={isEditing} \r\n />\r\n </Form.Item>\r\n\r\n {/* Category List 字段 */}\r\n {hasCategoryList && (\r\n <Form.Item \r\n name=\"category_list\" \r\n label={fields.category_list.label}\r\n rules={[\r\n { \r\n required: fields.category_list.required,\r\n message: 'Please select at least one category',\r\n validator: (_, value) => {\r\n if (value && value.length > 0) {\r\n return Promise.resolve();\r\n }\r\n return Promise.reject(new Error('Please select at least one category'));\r\n }\r\n }\r\n ]}\r\n >\r\n <Checkbox.Group \r\n className=\"grid grid-cols-2 gap-2\"\r\n onChange={handleCheckboxChange}\r\n >\r\n {checkboxOptions.map(category => (\r\n <Checkbox \r\n key={category.name} \r\n value={category.name}\r\n disabled={category.disabled}\r\n >\r\n {category.label}\r\n </Checkbox>\r\n ))}\r\n </Checkbox.Group>\r\n </Form.Item>\r\n )}\r\n\r\n {/* Description 字段 */}\r\n {fields.description && (\r\n <Form.Item \r\n name=\"description\" \r\n label={fields.description.label}\r\n >\r\n <Input.TextArea \r\n rows={4} \r\n placeholder={fields.description.placeholder} \r\n disabled={isEditing} \r\n />\r\n </Form.Item>\r\n )}\r\n </Form>\r\n {isEditing ? (\r\n <SubmitButton\r\n action={handleLoad}\r\n {...(hasCategoryList && { disabled: !currentSelected.length })}\r\n >\r\n {texts.loadButton}\r\n </SubmitButton>\r\n ) : (\r\n <SubmitButton \r\n action={onSave} \r\n loading={isLoading}\r\n >\r\n {texts.saveButton}\r\n </SubmitButton>\r\n )}\r\n </Flex>\r\n );\r\n});","import { Modal, Form, Row, Col, Empty, App, Spin, Flex } from \"antd\";\r\nimport { ExclamationCircleFilled } from \"@ant-design/icons\";\r\nimport { memo, useState, useCallback, useEffect } from \"react\";\r\nimport { LeftList, RightDetailForm } from \"./PresetModal.component\";\r\n// import \"../styles/index.less\";\r\n\r\nconst Preset = ({\r\n open,\r\n onClose,\r\n // API 方法通过 props 传入\r\n getPresetList,\r\n savePreset,\r\n removePreset,\r\n loadPreset,\r\n onLoadSuccess, // 加载成功后的回调\r\n onLoadError, // 加载失败后的回调\r\n // 字段配置\r\n fields = {\r\n name: {\r\n label: \"Preset Name\",\r\n placeholder: \"Enter preset name\",\r\n required: true\r\n }\r\n },\r\n texts = {\r\n title: \"Preset Management\",\r\n emptyText: \"Select a preset from the list to view details\",\r\n deleteConfirm: \"Are you sure to delete preset\",\r\n loadConfirm: \"Are you sure you want to load preset\",\r\n loadText: \"Loading...\",\r\n successText: \"Success\",\r\n newButton: \"New Preset\",\r\n removeButton: \"Remove\",\r\n loadButton: \"Load\",\r\n saveButton: \"Save\"\r\n },\r\n // 样式定制\r\n width = 1000,\r\n height = 680,\r\n className = \"\"\r\n}) => {\r\n const { message: AntdMessage, modal: AntdModal } = App.useApp();\r\n const [presetList, setPresetList] = useState([]);\r\n const [selectedPreset, setSelectedPreset] = useState(null);\r\n const [loading, setLoading] = useState(false);\r\n const [presetChanged, setPresetChanged] = useState(0);\r\n const [form] = Form.useForm();\r\n\r\n // 获取预设列表\r\n useEffect(() => {\r\n fetchPresetList();\r\n }, []);\r\n\r\n const fetchPresetList = useCallback(async () => {\r\n try {\r\n const data = await getPresetList();\r\n const presets = data?.preset_list || data || [];\r\n setPresetList(presets);\r\n } catch (error) {\r\n console.error('Failed to fetch preset list:', error);\r\n }\r\n }, [getPresetList]);\r\n\r\n const handleSelectPreset = useCallback((preset) => {\r\n setSelectedPreset(preset);\r\n form.setFieldsValue(preset);\r\n setPresetChanged(prev => prev + 1); // 触发react更新\r\n }, [form]);\r\n\r\n const handleAddNew = useCallback(() => {\r\n const unsavedPreset = presetList.find(item => !item.id);\r\n\r\n if (unsavedPreset) {\r\n AntdMessage.warning('Existing unsaved preset detected.');\r\n return;\r\n }\r\n\r\n // 创建新的数据,包含所有配置的字段\r\n const newPreset = Object.keys(fields).reduce((acc, fieldName) => {\r\n acc[fieldName] = '';\r\n return acc;\r\n }, {});\r\n\r\n // 特殊处理 category_list\r\n if (fields.category_list?.options) {\r\n newPreset.category_list = fields.category_list.options.map(item => item.name);\r\n }\r\n \r\n setPresetList([...presetList, newPreset]);\r\n setSelectedPreset(newPreset);\r\n form.setFieldsValue(newPreset);\r\n }, [form, presetList, AntdMessage]);\r\n\r\n const handleRemove = useCallback(async () => {\r\n if (!selectedPreset) return;\r\n\r\n // 检查是否为新建的未保存数据(无id)\r\n const isUnsavedPreset = !selectedPreset.id;\r\n const presetName = selectedPreset.name || 'Untitled Preset';\r\n\r\n try {\r\n AntdModal.confirm({\r\n icon: <ExclamationCircleFilled />,\r\n title: 'Delete Preset',\r\n content: `${texts.deleteConfirm} \"${presetName}\"?`,\r\n cancelText: 'No',\r\n okText: 'Yes',\r\n onOk: async () => {\r\n if (!isUnsavedPreset) {\r\n await removePreset({ id: selectedPreset.id });\r\n AntdMessage.success(texts.successText);\r\n // 刷新列表\r\n await fetchPresetList();\r\n } else {\r\n setPresetList(prev => prev.filter(item => !!item.id));\r\n }\r\n\r\n // 重置表单和选择状态\r\n setSelectedPreset(null);\r\n form.resetFields();\r\n }\r\n });\r\n } catch (error) {\r\n console.error('Failed to delete preset:', error);\r\n }\r\n }, [selectedPreset, form, AntdModal, AntdMessage, fetchPresetList, texts]);\r\n\r\n const handleLoadPreset = useCallback(async (loadData) => {\r\n if (!loadData) return;\r\n\r\n // 显示确认对话框\r\n AntdModal.confirm({\r\n title: 'Load Preset',\r\n content: `${texts.loadConfirm} \"${loadData.name}\"?`,\r\n cancelText: 'No',\r\n okText: 'Yes',\r\n onOk: async () => {\r\n // 显示加载模态框\r\n const modalInstance = Modal.info({\r\n title: texts.loadText,\r\n content: <Spin size=\"large\" className=\"block mx-auto\" />,\r\n maskClosable: false,\r\n okButtonProps: { style: { display: 'none' } }\r\n });\r\n\r\n try {\r\n await loadPreset({\r\n id: loadData.id,\r\n ...(loadData.category_list && { category_list: loadData.category_list })\r\n });\r\n // 成功时延迟关闭\r\n setTimeout(() => {\r\n modalInstance.destroy();\r\n AntdMessage.success(texts.successText);\r\n\r\n // 加载成功的外部回调\r\n if (onLoadSuccess) {\r\n onLoadSuccess(loadData);\r\n }\r\n }, 1000);\r\n } catch (error) {\r\n console.error('Failed to load preset:', error);\r\n modalInstance.destroy();\r\n\r\n // 加载失败的外部回调\r\n if (onLoadError) {\r\n onLoadError(error, loadData);\r\n }\r\n }\r\n }\r\n });\r\n }, [loadPreset, texts, AntdMessage, AntdModal, onLoadSuccess, onLoadError]);\r\n\r\n const handleSave = useCallback(async () => {\r\n setLoading(true);\r\n try {\r\n const values = await form.validateFields();\r\n console.log('Form values:', values);\r\n await savePreset(values);\r\n AntdMessage.success(texts.successText);\r\n // 刷新列表\r\n await fetchPresetList();\r\n\r\n // 重置表单和选择状态\r\n setSelectedPreset(null);\r\n form.resetFields();\r\n } catch (error) {\r\n if (error.errorFields) {\r\n // 表单验证错误\r\n console.error('Form validation failed:', error.errorFields);\r\n } else {\r\n console.error('Failed to save preset:', error);\r\n }\r\n } finally {\r\n setLoading(false);\r\n }\r\n }, [form, AntdMessage, fetchPresetList, savePreset, texts]);\r\n\r\n return (\r\n <Modal\r\n title={texts.title}\r\n width={width}\r\n open={open}\r\n wrapClassName={`preset-management ${className}`}\r\n footer={null}\r\n onCancel={onClose}\r\n centered\r\n styles={{\r\n body: {\r\n height: `${height}px`\r\n }\r\n }}\r\n >\r\n <Row gutter={0} className=\"h-full w-full\">\r\n <Col span={14} className=\"h-full\">\r\n <LeftList\r\n dataSource={presetList}\r\n selectedPresetId={selectedPreset?.id}\r\n onSelectPreset={handleSelectPreset}\r\n onAddNew={handleAddNew}\r\n onRemove={handleRemove}\r\n showDescription={!!fields.description} // 根据 fields 判断是否显示 description\r\n texts={{\r\n newButton: texts.newButton,\r\n removeButton: texts.removeButton,\r\n }}\r\n />\r\n </Col>\r\n <Col span={10} className=\"h-full p-6\">\r\n {selectedPreset ? (\r\n <RightDetailForm\r\n form={form}\r\n onSave={handleSave}\r\n onLoad={handleLoadPreset}\r\n isLoading={loading}\r\n isEditing={!!selectedPreset?.id}\r\n originalPresetData={selectedPreset} // 传递原始数据\r\n fields={fields}\r\n texts={{\r\n loadButton: texts.loadButton,\r\n saveButton: texts.saveButton\r\n }}\r\n presetChanged={presetChanged}\r\n />\r\n ) : (\r\n <Flex vertical justify=\"center\" align=\"center\" className=\"h-full text-gray-400\">\r\n <Empty \r\n image={Empty.PRESENTED_IMAGE_SIMPLE} \r\n description={texts.emptyText}\r\n />\r\n </Flex>\r\n )}\r\n </Col>\r\n </Row>\r\n </Modal>\r\n );\r\n};\r\n\r\nexport default memo(Preset);","import { Dropdown } from \"antd\";\r\nimport useUpgrade from '../hooks/useUpgrade';\r\n\r\nconst UpgradeManager = ({\r\n menuItems = [],\r\n onMenuClick,\r\n downloadFiles,\r\n upgradeExecute,\r\n upgradeStatus,\r\n acceptFileTypes = \"application/octet-stream\",\r\n uploadCompleteDelay = 3000,\r\n statusPollingInterval = 1000,\r\n children,\r\n ...dropdownProps\r\n }) => {\r\n const [upgradeElement] = useUpgrade({\r\n menuItems,\r\n onMenuClick,\r\n downloadFiles,\r\n upgradeExecute,\r\n upgradeStatus,\r\n acceptFileTypes,\r\n uploadCompleteDelay,\r\n statusPollingInterval\r\n });\r\n\r\n if (children) {\r\n // 提取Dropdown组件和其menu属性\r\n const dropdownElement = upgradeElement.props.children[0];\r\n const otherElements = upgradeElement.props.children.slice(1);\r\n \r\n return (\r\n <>\r\n <Dropdown \r\n {...dropdownProps} \r\n {...dropdownElement.props} // 传递所有Dropdown的props\r\n >\r\n {children}\r\n </Dropdown>\r\n {otherElements}\r\n </>\r\n );\r\n }\r\n\r\n // 如果没有children,直接返回完整的升级元素\r\n return upgradeElement;\r\n }\r\n\r\n UpgradeManager.defaultProps = {\r\n trigger: [\"hover\"],\r\n placement: \"bottomRight\"\r\n};\r\n\r\nexport default UpgradeManager;","/** @license React v16.13.1\n * react-is.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';var b=\"function\"===typeof Symbol&&Symbol.for,c=b?Symbol.for(\"react.element\"):60103,d=b?Symbol.for(\"react.portal\"):60106,e=b?Symbol.for(\"react.fragment\"):60107,f=b?Symbol.for(\"react.strict_mode\"):60108,g=b?Symbol.for(\"react.profiler\"):60114,h=b?Symbol.for(\"react.provider\"):60109,k=b?Symbol.for(\"react.context\"):60110,l=b?Symbol.for(\"react.async_mode\"):60111,m=b?Symbol.for(\"react.concurrent_mode\"):60111,n=b?Symbol.for(\"react.forward_ref\"):60112,p=b?Symbol.for(\"react.suspense\"):60113,q=b?\nSymbol.for(\"react.suspense_list\"):60120,r=b?Symbol.for(\"react.memo\"):60115,t=b?Symbol.for(\"react.lazy\"):60116,v=b?Symbol.for(\"react.block\"):60121,w=b?Symbol.for(\"react.fundamental\"):60117,x=b?Symbol.for(\"react.responder\"):60118,y=b?Symbol.for(\"react.scope\"):60119;\nfunction z(a){if(\"object\"===typeof a&&null!==a){var u=a.$$typeof;switch(u){case c:switch(a=a.type,a){case l:case m:case e:case g:case f:case p:return a;default:switch(a=a&&a.$$typeof,a){case k:case n:case t:case r:case h:return a;default:return u}}case d:return u}}}function A(a){return z(a)===m}exports.AsyncMode=l;exports.ConcurrentMode=m;exports.ContextConsumer=k;exports.ContextProvider=h;exports.Element=c;exports.ForwardRef=n;exports.Fragment=e;exports.Lazy=t;exports.Memo=r;exports.Portal=d;\nexports.Profiler=g;exports.StrictMode=f;exports.Suspense=p;exports.isAsyncMode=function(a){return A(a)||z(a)===l};exports.isConcurrentMode=A;exports.isContextConsumer=function(a){return z(a)===k};exports.isContextProvider=function(a){return z(a)===h};exports.isElement=function(a){return\"object\"===typeof a&&null!==a&&a.$$typeof===c};exports.isForwardRef=function(a){return z(a)===n};exports.isFragment=function(a){return z(a)===e};exports.isLazy=function(a){return z(a)===t};\nexports.isMemo=function(a){return z(a)===r};exports.isPortal=function(a){return z(a)===d};exports.isProfiler=function(a){return z(a)===g};exports.isStrictMode=function(a){return z(a)===f};exports.isSuspense=function(a){return z(a)===p};\nexports.isValidElementType=function(a){return\"string\"===typeof a||\"function\"===typeof a||a===e||a===m||a===g||a===f||a===p||a===q||\"object\"===typeof a&&null!==a&&(a.$$typeof===t||a.$$typeof===r||a.$$typeof===h||a.$$typeof===k||a.$$typeof===n||a.$$typeof===w||a.$$typeof===x||a.$$typeof===y||a.$$typeof===v)};exports.typeOf=z;\n","/** @license React v16.13.1\n * react-is.development.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\n\n\nif (process.env.NODE_ENV !== \"production\") {\n (function() {\n'use strict';\n\n// The Symbol used to tag the ReactElement-like types. If there is no native Symbol\n// nor polyfill, then a plain number is used for performance.\nvar hasSymbol = typeof Symbol === 'function' && Symbol.for;\nvar REACT_ELEMENT_TYPE = hasSymbol ? Symbol.for('react.element') : 0xeac7;\nvar REACT_PORTAL_TYPE = hasSymbol ? Symbol.for('react.portal') : 0xeaca;\nvar REACT_FRAGMENT_TYPE = hasSymbol ? Symbol.for('react.fragment') : 0xeacb;\nvar REACT_STRICT_MODE_TYPE = hasSymbol ? Symbol.for('react.strict_mode') : 0xeacc;\nvar REACT_PROFILER_TYPE = hasSymbol ? Symbol.for('react.profiler') : 0xead2;\nvar REACT_PROVIDER_TYPE = hasSymbol ? Symbol.for('react.provider') : 0xeacd;\nvar REACT_CONTEXT_TYPE = hasSymbol ? Symbol.for('react.context') : 0xeace; // TODO: We don't use AsyncMode or ConcurrentMode anymore. They were temporary\n// (unstable) APIs that have been removed. Can we remove the symbols?\n\nvar REACT_ASYNC_MODE_TYPE = hasSymbol ? Symbol.for('react.async_mode') : 0xeacf;\nvar REACT_CONCURRENT_MODE_TYPE = hasSymbol ? Symbol.for('react.concurrent_mode') : 0xeacf;\nvar REACT_FORWARD_REF_TYPE = hasSymbol ? Symbol.for('react.forward_ref') : 0xead0;\nvar REACT_SUSPENSE_TYPE = hasSymbol ? Symbol.for('react.suspense') : 0xead1;\nvar REACT_SUSPENSE_LIST_TYPE = hasSymbol ? Symbol.for('react.suspense_list') : 0xead8;\nvar REACT_MEMO_TYPE = hasSymbol ? Symbol.for('react.memo') : 0xead3;\nvar REACT_LAZY_TYPE = hasSymbol ? Symbol.for('react.lazy') : 0xead4;\nvar REACT_BLOCK_TYPE = hasSymbol ? Symbol.for('react.block') : 0xead9;\nvar REACT_FUNDAMENTAL_TYPE = hasSymbol ? Symbol.for('react.fundamental') : 0xead5;\nvar REACT_RESPONDER_TYPE = hasSymbol ? Symbol.for('react.responder') : 0xead6;\nvar REACT_SCOPE_TYPE = hasSymbol ? Symbol.for('react.scope') : 0xead7;\n\nfunction isValidElementType(type) {\n return typeof type === 'string' || typeof type === 'function' || // Note: its typeof might be other than 'symbol' or 'number' if it's a polyfill.\n type === REACT_FRAGMENT_TYPE || type === REACT_CONCURRENT_MODE_TYPE || type === REACT_PROFILER_TYPE || type === REACT_STRICT_MODE_TYPE || type === REACT_SUSPENSE_TYPE || type === REACT_SUSPENSE_LIST_TYPE || typeof type === 'object' && type !== null && (type.$$typeof === REACT_LAZY_TYPE || type.$$typeof === REACT_MEMO_TYPE || type.$$typeof === REACT_PROVIDER_TYPE || type.$$typeof === REACT_CONTEXT_TYPE || type.$$typeof === REACT_FORWARD_REF_TYPE || type.$$typeof === REACT_FUNDAMENTAL_TYPE || type.$$typeof === REACT_RESPONDER_TYPE || type.$$typeof === REACT_SCOPE_TYPE || type.$$typeof === REACT_BLOCK_TYPE);\n}\n\nfunction typeOf(object) {\n if (typeof object === 'object' && object !== null) {\n var $$typeof = object.$$typeof;\n\n switch ($$typeof) {\n case REACT_ELEMENT_TYPE:\n var type = object.type;\n\n switch (type) {\n case REACT_ASYNC_MODE_TYPE:\n case REACT_CONCURRENT_MODE_TYPE:\n case REACT_FRAGMENT_TYPE:\n case REACT_PROFILER_TYPE:\n case REACT_STRICT_MODE_TYPE:\n case REACT_SUSPENSE_TYPE:\n return type;\n\n default:\n var $$typeofType = type && type.$$typeof;\n\n switch ($$typeofType) {\n case REACT_CONTEXT_TYPE:\n case REACT_FORWARD_REF_TYPE:\n case REACT_LAZY_TYPE:\n case REACT_MEMO_TYPE:\n case REACT_PROVIDER_TYPE:\n return $$typeofType;\n\n default:\n return $$typeof;\n }\n\n }\n\n case REACT_PORTAL_TYPE:\n return $$typeof;\n }\n }\n\n return undefined;\n} // AsyncMode is deprecated along with isAsyncMode\n\nvar AsyncMode = REACT_ASYNC_MODE_TYPE;\nvar ConcurrentMode = REACT_CONCURRENT_MODE_TYPE;\nvar ContextConsumer = REACT_CONTEXT_TYPE;\nvar ContextProvider = REACT_PROVIDER_TYPE;\nvar Element = REACT_ELEMENT_TYPE;\nvar ForwardRef = REACT_FORWARD_REF_TYPE;\nvar Fragment = REACT_FRAGMENT_TYPE;\nvar Lazy = REACT_LAZY_TYPE;\nvar Memo = REACT_MEMO_TYPE;\nvar Portal = REACT_PORTAL_TYPE;\nvar Profiler = REACT_PROFILER_TYPE;\nvar StrictMode = REACT_STRICT_MODE_TYPE;\nvar Suspense = REACT_SUSPENSE_TYPE;\nvar hasWarnedAboutDeprecatedIsAsyncMode = false; // AsyncMode should be deprecated\n\nfunction isAsyncMode(object) {\n {\n if (!hasWarnedAboutDeprecatedIsAsyncMode) {\n hasWarnedAboutDeprecatedIsAsyncMode = true; // Using console['warn'] to evade Babel and ESLint\n\n console['warn']('The ReactIs.isAsyncMode() alias has been deprecated, ' + 'and will be removed in React 17+. Update your code to use ' + 'ReactIs.isConcurrentMode() instead. It has the exact same API.');\n }\n }\n\n return isConcurrentMode(object) || typeOf(object) === REACT_ASYNC_MODE_TYPE;\n}\nfunction isConcurrentMode(object) {\n return typeOf(object) === REACT_CONCURRENT_MODE_TYPE;\n}\nfunction isContextConsumer(object) {\n return typeOf(object) === REACT_CONTEXT_TYPE;\n}\nfunction isContextProvider(object) {\n return typeOf(object) === REACT_PROVIDER_TYPE;\n}\nfunction isElement(object) {\n return typeof object === 'object' && object !== null && object.$$typeof === REACT_ELEMENT_TYPE;\n}\nfunction isForwardRef(object) {\n return typeOf(object) === REACT_FORWARD_REF_TYPE;\n}\nfunction isFragment(object) {\n return typeOf(object) === REACT_FRAGMENT_TYPE;\n}\nfunction isLazy(object) {\n return typeOf(object) === REACT_LAZY_TYPE;\n}\nfunction isMemo(object) {\n return typeOf(object) === REACT_MEMO_TYPE;\n}\nfunction isPortal(object) {\n return typeOf(object) === REACT_PORTAL_TYPE;\n}\nfunction isProfiler(object) {\n return typeOf(object) === REACT_PROFILER_TYPE;\n}\nfunction isStrictMode(object) {\n return typeOf(object) === REACT_STRICT_MODE_TYPE;\n}\nfunction isSuspense(object) {\n return typeOf(object) === REACT_SUSPENSE_TYPE;\n}\n\nexports.AsyncMode = AsyncMode;\nexports.ConcurrentMode = ConcurrentMode;\nexports.ContextConsumer = ContextConsumer;\nexports.ContextProvider = ContextProvider;\nexports.Element = Element;\nexports.ForwardRef = ForwardRef;\nexports.Fragment = Fragment;\nexports.Lazy = Lazy;\nexports.Memo = Memo;\nexports.Portal = Portal;\nexports.Profiler = Profiler;\nexports.StrictMode = StrictMode;\nexports.Suspense = Suspense;\nexports.isAsyncMode = isAsyncMode;\nexports.isConcurrentMode = isConcurrentMode;\nexports.isContextConsumer = isContextConsumer;\nexports.isContextProvider = isContextProvider;\nexports.isElement = isElement;\nexports.isForwardRef = isForwardRef;\nexports.isFragment = isFragment;\nexports.isLazy = isLazy;\nexports.isMemo = isMemo;\nexports.isPortal = isPortal;\nexports.isProfiler = isProfiler;\nexports.isStrictMode = isStrictMode;\nexports.isSuspense = isSuspense;\nexports.isValidElementType = isValidElementType;\nexports.typeOf = typeOf;\n })();\n}\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/react-is.production.min.js');\n} else {\n module.exports = require('./cjs/react-is.development.js');\n}\n","/*\nobject-assign\n(c) Sindre Sorhus\n@license MIT\n*/\n\n'use strict';\n/* eslint-disable no-unused-vars */\nvar getOwnPropertySymbols = Object.getOwnPropertySymbols;\nvar hasOwnProperty = Object.prototype.hasOwnProperty;\nvar propIsEnumerable = Object.prototype.propertyIsEnumerable;\n\nfunction toObject(val) {\n\tif (val === null || val === undefined) {\n\t\tthrow new TypeError('Object.assign cannot be called with null or undefined');\n\t}\n\n\treturn Object(val);\n}\n\nfunction shouldUseNative() {\n\ttry {\n\t\tif (!Object.assign) {\n\t\t\treturn false;\n\t\t}\n\n\t\t// Detect buggy property enumeration order in older V8 versions.\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=4118\n\t\tvar test1 = new String('abc'); // eslint-disable-line no-new-wrappers\n\t\ttest1[5] = 'de';\n\t\tif (Object.getOwnPropertyNames(test1)[0] === '5') {\n\t\t\treturn false;\n\t\t}\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=3056\n\t\tvar test2 = {};\n\t\tfor (var i = 0; i < 10; i++) {\n\t\t\ttest2['_' + String.fromCharCode(i)] = i;\n\t\t}\n\t\tvar order2 = Object.getOwnPropertyNames(test2).map(function (n) {\n\t\t\treturn test2[n];\n\t\t});\n\t\tif (order2.join('') !== '0123456789') {\n\t\t\treturn false;\n\t\t}\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=3056\n\t\tvar test3 = {};\n\t\t'abcdefghijklmnopqrst'.split('').forEach(function (letter) {\n\t\t\ttest3[letter] = letter;\n\t\t});\n\t\tif (Object.keys(Object.assign({}, test3)).join('') !==\n\t\t\t\t'abcdefghijklmnopqrst') {\n\t\t\treturn false;\n\t\t}\n\n\t\treturn true;\n\t} catch (err) {\n\t\t// We don't expect any of the above to throw, but better to be safe.\n\t\treturn false;\n\t}\n}\n\nmodule.exports = shouldUseNative() ? Object.assign : function (target, source) {\n\tvar from;\n\tvar to = toObject(target);\n\tvar symbols;\n\n\tfor (var s = 1; s < arguments.length; s++) {\n\t\tfrom = Object(arguments[s]);\n\n\t\tfor (var key in from) {\n\t\t\tif (hasOwnProperty.call(from, key)) {\n\t\t\t\tto[key] = from[key];\n\t\t\t}\n\t\t}\n\n\t\tif (getOwnPropertySymbols) {\n\t\t\tsymbols = getOwnPropertySymbols(from);\n\t\t\tfor (var i = 0; i < symbols.length; i++) {\n\t\t\t\tif (propIsEnumerable.call(from, symbols[i])) {\n\t\t\t\t\tto[symbols[i]] = from[symbols[i]];\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\treturn to;\n};\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nvar ReactPropTypesSecret = 'SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED';\n\nmodule.exports = ReactPropTypesSecret;\n","module.exports = Function.call.bind(Object.prototype.hasOwnProperty);\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nvar printWarning = function() {};\n\nif (process.env.NODE_ENV !== 'production') {\n var ReactPropTypesSecret = require('./lib/ReactPropTypesSecret');\n var loggedTypeFailures = {};\n var has = require('./lib/has');\n\n printWarning = function(text) {\n var message = 'Warning: ' + text;\n if (typeof console !== 'undefined') {\n console.error(message);\n }\n try {\n // --- Welcome to debugging React ---\n // This error was thrown as a convenience so that you can use this stack\n // to find the callsite that caused this warning to fire.\n throw new Error(message);\n } catch (x) { /**/ }\n };\n}\n\n/**\n * Assert that the values match with the type specs.\n * Error messages are memorized and will only be shown once.\n *\n * @param {object} typeSpecs Map of name to a ReactPropType\n * @param {object} values Runtime values that need to be type-checked\n * @param {string} location e.g. \"prop\", \"context\", \"child context\"\n * @param {string} componentName Name of the component for error messages.\n * @param {?Function} getStack Returns the component stack.\n * @private\n */\nfunction checkPropTypes(typeSpecs, values, location, componentName, getStack) {\n if (process.env.NODE_ENV !== 'production') {\n for (var typeSpecName in typeSpecs) {\n if (has(typeSpecs, typeSpecName)) {\n var error;\n // Prop type validation may throw. In case they do, we don't want to\n // fail the render phase where it didn't fail before. So we log it.\n // After these have been cleaned up, we'll let them throw.\n try {\n // This is intentionally an invariant that gets caught. It's the same\n // behavior as without this statement except with a better message.\n if (typeof typeSpecs[typeSpecName] !== 'function') {\n var err = Error(\n (componentName || 'React class') + ': ' + location + ' type `' + typeSpecName + '` is invalid; ' +\n 'it must be a function, usually from the `prop-types` package, but received `' + typeof typeSpecs[typeSpecName] + '`.' +\n 'This often happens because of typos such as `PropTypes.function` instead of `PropTypes.func`.'\n );\n err.name = 'Invariant Violation';\n throw err;\n }\n error = typeSpecs[typeSpecName](values, typeSpecName, componentName, location, null, ReactPropTypesSecret);\n } catch (ex) {\n error = ex;\n }\n if (error && !(error instanceof Error)) {\n printWarning(\n (componentName || 'React class') + ': type specification of ' +\n location + ' `' + typeSpecName + '` is invalid; the type checker ' +\n 'function must return `null` or an `Error` but returned a ' + typeof error + '. ' +\n 'You may have forgotten to pass an argument to the type checker ' +\n 'creator (arrayOf, instanceOf, objectOf, oneOf, oneOfType, and ' +\n 'shape all require an argument).'\n );\n }\n if (error instanceof Error && !(error.message in loggedTypeFailures)) {\n // Only monitor this failure once because there tends to be a lot of the\n // same error.\n loggedTypeFailures[error.message] = true;\n\n var stack = getStack ? getStack() : '';\n\n printWarning(\n 'Failed ' + location + ' type: ' + error.message + (stack != null ? stack : '')\n );\n }\n }\n }\n }\n}\n\n/**\n * Resets warning cache when testing.\n *\n * @private\n */\ncheckPropTypes.resetWarningCache = function() {\n if (process.env.NODE_ENV !== 'production') {\n loggedTypeFailures = {};\n }\n}\n\nmodule.exports = checkPropTypes;\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nvar ReactIs = require('react-is');\nvar assign = require('object-assign');\n\nvar ReactPropTypesSecret = require('./lib/ReactPropTypesSecret');\nvar has = require('./lib/has');\nvar checkPropTypes = require('./checkPropTypes');\n\nvar printWarning = function() {};\n\nif (process.env.NODE_ENV !== 'production') {\n printWarning = function(text) {\n var message = 'Warning: ' + text;\n if (typeof console !== 'undefined') {\n console.error(message);\n }\n try {\n // --- Welcome to debugging React ---\n // This error was thrown as a convenience so that you can use this stack\n // to find the callsite that caused this warning to fire.\n throw new Error(message);\n } catch (x) {}\n };\n}\n\nfunction emptyFunctionThatReturnsNull() {\n return null;\n}\n\nmodule.exports = function(isValidElement, throwOnDirectAccess) {\n /* global Symbol */\n var ITERATOR_SYMBOL = typeof Symbol === 'function' && Symbol.iterator;\n var FAUX_ITERATOR_SYMBOL = '@@iterator'; // Before Symbol spec.\n\n /**\n * Returns the iterator method function contained on the iterable object.\n *\n * Be sure to invoke the function with the iterable as context:\n *\n * var iteratorFn = getIteratorFn(myIterable);\n * if (iteratorFn) {\n * var iterator = iteratorFn.call(myIterable);\n * ...\n * }\n *\n * @param {?object} maybeIterable\n * @return {?function}\n */\n function getIteratorFn(maybeIterable) {\n var iteratorFn = maybeIterable && (ITERATOR_SYMBOL && maybeIterable[ITERATOR_SYMBOL] || maybeIterable[FAUX_ITERATOR_SYMBOL]);\n if (typeof iteratorFn === 'function') {\n return iteratorFn;\n }\n }\n\n /**\n * Collection of methods that allow declaration and validation of props that are\n * supplied to React components. Example usage:\n *\n * var Props = require('ReactPropTypes');\n * var MyArticle = React.createClass({\n * propTypes: {\n * // An optional string prop named \"description\".\n * description: Props.string,\n *\n * // A required enum prop named \"category\".\n * category: Props.oneOf(['News','Photos']).isRequired,\n *\n * // A prop named \"dialog\" that requires an instance of Dialog.\n * dialog: Props.instanceOf(Dialog).isRequired\n * },\n * render: function() { ... }\n * });\n *\n * A more formal specification of how these methods are used:\n *\n * type := array|bool|func|object|number|string|oneOf([...])|instanceOf(...)\n * decl := ReactPropTypes.{type}(.isRequired)?\n *\n * Each and every declaration produces a function with the same signature. This\n * allows the creation of custom validation functions. For example:\n *\n * var MyLink = React.createClass({\n * propTypes: {\n * // An optional string or URI prop named \"href\".\n * href: function(props, propName, componentName) {\n * var propValue = props[propName];\n * if (propValue != null && typeof propValue !== 'string' &&\n * !(propValue instanceof URI)) {\n * return new Error(\n * 'Expected a string or an URI for ' + propName + ' in ' +\n * componentName\n * );\n * }\n * }\n * },\n * render: function() {...}\n * });\n *\n * @internal\n */\n\n var ANONYMOUS = '<<anonymous>>';\n\n // Important!\n // Keep this list in sync with production version in `./factoryWithThrowingShims.js`.\n var ReactPropTypes = {\n array: createPrimitiveTypeChecker('array'),\n bigint: createPrimitiveTypeChecker('bigint'),\n bool: createPrimitiveTypeChecker('boolean'),\n func: createPrimitiveTypeChecker('function'),\n number: createPrimitiveTypeChecker('number'),\n object: createPrimitiveTypeChecker('object'),\n string: createPrimitiveTypeChecker('string'),\n symbol: createPrimitiveTypeChecker('symbol'),\n\n any: createAnyTypeChecker(),\n arrayOf: createArrayOfTypeChecker,\n element: createElementTypeChecker(),\n elementType: createElementTypeTypeChecker(),\n instanceOf: createInstanceTypeChecker,\n node: createNodeChecker(),\n objectOf: createObjectOfTypeChecker,\n oneOf: createEnumTypeChecker,\n oneOfType: createUnionTypeChecker,\n shape: createShapeTypeChecker,\n exact: createStrictShapeTypeChecker,\n };\n\n /**\n * inlined Object.is polyfill to avoid requiring consumers ship their own\n * https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/is\n */\n /*eslint-disable no-self-compare*/\n function is(x, y) {\n // SameValue algorithm\n if (x === y) {\n // Steps 1-5, 7-10\n // Steps 6.b-6.e: +0 != -0\n return x !== 0 || 1 / x === 1 / y;\n } else {\n // Step 6.a: NaN == NaN\n return x !== x && y !== y;\n }\n }\n /*eslint-enable no-self-compare*/\n\n /**\n * We use an Error-like object for backward compatibility as people may call\n * PropTypes directly and inspect their output. However, we don't use real\n * Errors anymore. We don't inspect their stack anyway, and creating them\n * is prohibitively expensive if they are created too often, such as what\n * happens in oneOfType() for any type before the one that matched.\n */\n function PropTypeError(message, data) {\n this.message = message;\n this.data = data && typeof data === 'object' ? data: {};\n this.stack = '';\n }\n // Make `instanceof Error` still work for returned errors.\n PropTypeError.prototype = Error.prototype;\n\n function createChainableTypeChecker(validate) {\n if (process.env.NODE_ENV !== 'production') {\n var manualPropTypeCallCache = {};\n var manualPropTypeWarningCount = 0;\n }\n function checkType(isRequired, props, propName, componentName, location, propFullName, secret) {\n componentName = componentName || ANONYMOUS;\n propFullName = propFullName || propName;\n\n if (secret !== ReactPropTypesSecret) {\n if (throwOnDirectAccess) {\n // New behavior only for users of `prop-types` package\n var err = new Error(\n 'Calling PropTypes validators directly is not supported by the `prop-types` package. ' +\n 'Use `PropTypes.checkPropTypes()` to call them. ' +\n 'Read more at http://fb.me/use-check-prop-types'\n );\n err.name = 'Invariant Violation';\n throw err;\n } else if (process.env.NODE_ENV !== 'production' && typeof console !== 'undefined') {\n // Old behavior for people using React.PropTypes\n var cacheKey = componentName + ':' + propName;\n if (\n !manualPropTypeCallCache[cacheKey] &&\n // Avoid spamming the console because they are often not actionable except for lib authors\n manualPropTypeWarningCount < 3\n ) {\n printWarning(\n 'You are manually calling a React.PropTypes validation ' +\n 'function for the `' + propFullName + '` prop on `' + componentName + '`. This is deprecated ' +\n 'and will throw in the standalone `prop-types` package. ' +\n 'You may be seeing this warning due to a third-party PropTypes ' +\n 'library. See https://fb.me/react-warning-dont-call-proptypes ' + 'for details.'\n );\n manualPropTypeCallCache[cacheKey] = true;\n manualPropTypeWarningCount++;\n }\n }\n }\n if (props[propName] == null) {\n if (isRequired) {\n if (props[propName] === null) {\n return new PropTypeError('The ' + location + ' `' + propFullName + '` is marked as required ' + ('in `' + componentName + '`, but its value is `null`.'));\n }\n return new PropTypeError('The ' + location + ' `' + propFullName + '` is marked as required in ' + ('`' + componentName + '`, but its value is `undefined`.'));\n }\n return null;\n } else {\n return validate(props, propName, componentName, location, propFullName);\n }\n }\n\n var chainedCheckType = checkType.bind(null, false);\n chainedCheckType.isRequired = checkType.bind(null, true);\n\n return chainedCheckType;\n }\n\n function createPrimitiveTypeChecker(expectedType) {\n function validate(props, propName, componentName, location, propFullName, secret) {\n var propValue = props[propName];\n var propType = getPropType(propValue);\n if (propType !== expectedType) {\n // `propValue` being instance of, say, date/regexp, pass the 'object'\n // check, but we can offer a more precise error message here rather than\n // 'of type `object`'.\n var preciseType = getPreciseType(propValue);\n\n return new PropTypeError(\n 'Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + preciseType + '` supplied to `' + componentName + '`, expected ') + ('`' + expectedType + '`.'),\n {expectedType: expectedType}\n );\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createAnyTypeChecker() {\n return createChainableTypeChecker(emptyFunctionThatReturnsNull);\n }\n\n function createArrayOfTypeChecker(typeChecker) {\n function validate(props, propName, componentName, location, propFullName) {\n if (typeof typeChecker !== 'function') {\n return new PropTypeError('Property `' + propFullName + '` of component `' + componentName + '` has invalid PropType notation inside arrayOf.');\n }\n var propValue = props[propName];\n if (!Array.isArray(propValue)) {\n var propType = getPropType(propValue);\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected an array.'));\n }\n for (var i = 0; i < propValue.length; i++) {\n var error = typeChecker(propValue, i, componentName, location, propFullName + '[' + i + ']', ReactPropTypesSecret);\n if (error instanceof Error) {\n return error;\n }\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createElementTypeChecker() {\n function validate(props, propName, componentName, location, propFullName) {\n var propValue = props[propName];\n if (!isValidElement(propValue)) {\n var propType = getPropType(propValue);\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected a single ReactElement.'));\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createElementTypeTypeChecker() {\n function validate(props, propName, componentName, location, propFullName) {\n var propValue = props[propName];\n if (!ReactIs.isValidElementType(propValue)) {\n var propType = getPropType(propValue);\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected a single ReactElement type.'));\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createInstanceTypeChecker(expectedClass) {\n function validate(props, propName, componentName, location, propFullName) {\n if (!(props[propName] instanceof expectedClass)) {\n var expectedClassName = expectedClass.name || ANONYMOUS;\n var actualClassName = getClassName(props[propName]);\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + actualClassName + '` supplied to `' + componentName + '`, expected ') + ('instance of `' + expectedClassName + '`.'));\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createEnumTypeChecker(expectedValues) {\n if (!Array.isArray(expectedValues)) {\n if (process.env.NODE_ENV !== 'production') {\n if (arguments.length > 1) {\n printWarning(\n 'Invalid arguments supplied to oneOf, expected an array, got ' + arguments.length + ' arguments. ' +\n 'A common mistake is to write oneOf(x, y, z) instead of oneOf([x, y, z]).'\n );\n } else {\n printWarning('Invalid argument supplied to oneOf, expected an array.');\n }\n }\n return emptyFunctionThatReturnsNull;\n }\n\n function validate(props, propName, componentName, location, propFullName) {\n var propValue = props[propName];\n for (var i = 0; i < expectedValues.length; i++) {\n if (is(propValue, expectedValues[i])) {\n return null;\n }\n }\n\n var valuesString = JSON.stringify(expectedValues, function replacer(key, value) {\n var type = getPreciseType(value);\n if (type === 'symbol') {\n return String(value);\n }\n return value;\n });\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of value `' + String(propValue) + '` ' + ('supplied to `' + componentName + '`, expected one of ' + valuesString + '.'));\n }\n return createChainableTypeChecker(validate);\n }\n\n function createObjectOfTypeChecker(typeChecker) {\n function validate(props, propName, componentName, location, propFullName) {\n if (typeof typeChecker !== 'function') {\n return new PropTypeError('Property `' + propFullName + '` of component `' + componentName + '` has invalid PropType notation inside objectOf.');\n }\n var propValue = props[propName];\n var propType = getPropType(propValue);\n if (propType !== 'object') {\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected an object.'));\n }\n for (var key in propValue) {\n if (has(propValue, key)) {\n var error = typeChecker(propValue, key, componentName, location, propFullName + '.' + key, ReactPropTypesSecret);\n if (error instanceof Error) {\n return error;\n }\n }\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createUnionTypeChecker(arrayOfTypeCheckers) {\n if (!Array.isArray(arrayOfTypeCheckers)) {\n process.env.NODE_ENV !== 'production' ? printWarning('Invalid argument supplied to oneOfType, expected an instance of array.') : void 0;\n return emptyFunctionThatReturnsNull;\n }\n\n for (var i = 0; i < arrayOfTypeCheckers.length; i++) {\n var checker = arrayOfTypeCheckers[i];\n if (typeof checker !== 'function') {\n printWarning(\n 'Invalid argument supplied to oneOfType. Expected an array of check functions, but ' +\n 'received ' + getPostfixForTypeWarning(checker) + ' at index ' + i + '.'\n );\n return emptyFunctionThatReturnsNull;\n }\n }\n\n function validate(props, propName, componentName, location, propFullName) {\n var expectedTypes = [];\n for (var i = 0; i < arrayOfTypeCheckers.length; i++) {\n var checker = arrayOfTypeCheckers[i];\n var checkerResult = checker(props, propName, componentName, location, propFullName, ReactPropTypesSecret);\n if (checkerResult == null) {\n return null;\n }\n if (checkerResult.data && has(checkerResult.data, 'expectedType')) {\n expectedTypes.push(checkerResult.data.expectedType);\n }\n }\n var expectedTypesMessage = (expectedTypes.length > 0) ? ', expected one of type [' + expectedTypes.join(', ') + ']': '';\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` supplied to ' + ('`' + componentName + '`' + expectedTypesMessage + '.'));\n }\n return createChainableTypeChecker(validate);\n }\n\n function createNodeChecker() {\n function validate(props, propName, componentName, location, propFullName) {\n if (!isNode(props[propName])) {\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` supplied to ' + ('`' + componentName + '`, expected a ReactNode.'));\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function invalidValidatorError(componentName, location, propFullName, key, type) {\n return new PropTypeError(\n (componentName || 'React class') + ': ' + location + ' type `' + propFullName + '.' + key + '` is invalid; ' +\n 'it must be a function, usually from the `prop-types` package, but received `' + type + '`.'\n );\n }\n\n function createShapeTypeChecker(shapeTypes) {\n function validate(props, propName, componentName, location, propFullName) {\n var propValue = props[propName];\n var propType = getPropType(propValue);\n if (propType !== 'object') {\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type `' + propType + '` ' + ('supplied to `' + componentName + '`, expected `object`.'));\n }\n for (var key in shapeTypes) {\n var checker = shapeTypes[key];\n if (typeof checker !== 'function') {\n return invalidValidatorError(componentName, location, propFullName, key, getPreciseType(checker));\n }\n var error = checker(propValue, key, componentName, location, propFullName + '.' + key, ReactPropTypesSecret);\n if (error) {\n return error;\n }\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createStrictShapeTypeChecker(shapeTypes) {\n function validate(props, propName, componentName, location, propFullName) {\n var propValue = props[propName];\n var propType = getPropType(propValue);\n if (propType !== 'object') {\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type `' + propType + '` ' + ('supplied to `' + componentName + '`, expected `object`.'));\n }\n // We need to check all keys in case some are required but missing from props.\n var allKeys = assign({}, props[propName], shapeTypes);\n for (var key in allKeys) {\n var checker = shapeTypes[key];\n if (has(shapeTypes, key) && typeof checker !== 'function') {\n return invalidValidatorError(componentName, location, propFullName, key, getPreciseType(checker));\n }\n if (!checker) {\n return new PropTypeError(\n 'Invalid ' + location + ' `' + propFullName + '` key `' + key + '` supplied to `' + componentName + '`.' +\n '\\nBad object: ' + JSON.stringify(props[propName], null, ' ') +\n '\\nValid keys: ' + JSON.stringify(Object.keys(shapeTypes), null, ' ')\n );\n }\n var error = checker(propValue, key, componentName, location, propFullName + '.' + key, ReactPropTypesSecret);\n if (error) {\n return error;\n }\n }\n return null;\n }\n\n return createChainableTypeChecker(validate);\n }\n\n function isNode(propValue) {\n switch (typeof propValue) {\n case 'number':\n case 'string':\n case 'undefined':\n return true;\n case 'boolean':\n return !propValue;\n case 'object':\n if (Array.isArray(propValue)) {\n return propValue.every(isNode);\n }\n if (propValue === null || isValidElement(propValue)) {\n return true;\n }\n\n var iteratorFn = getIteratorFn(propValue);\n if (iteratorFn) {\n var iterator = iteratorFn.call(propValue);\n var step;\n if (iteratorFn !== propValue.entries) {\n while (!(step = iterator.next()).done) {\n if (!isNode(step.value)) {\n return false;\n }\n }\n } else {\n // Iterator will provide entry [k,v] tuples rather than values.\n while (!(step = iterator.next()).done) {\n var entry = step.value;\n if (entry) {\n if (!isNode(entry[1])) {\n return false;\n }\n }\n }\n }\n } else {\n return false;\n }\n\n return true;\n default:\n return false;\n }\n }\n\n function isSymbol(propType, propValue) {\n // Native Symbol.\n if (propType === 'symbol') {\n return true;\n }\n\n // falsy value can't be a Symbol\n if (!propValue) {\n return false;\n }\n\n // 19.4.3.5 Symbol.prototype[@@toStringTag] === 'Symbol'\n if (propValue['@@toStringTag'] === 'Symbol') {\n return true;\n }\n\n // Fallback for non-spec compliant Symbols which are polyfilled.\n if (typeof Symbol === 'function' && propValue instanceof Symbol) {\n return true;\n }\n\n return false;\n }\n\n // Equivalent of `typeof` but with special handling for array and regexp.\n function getPropType(propValue) {\n var propType = typeof propValue;\n if (Array.isArray(propValue)) {\n return 'array';\n }\n if (propValue instanceof RegExp) {\n // Old webkits (at least until Android 4.0) return 'function' rather than\n // 'object' for typeof a RegExp. We'll normalize this here so that /bla/\n // passes PropTypes.object.\n return 'object';\n }\n if (isSymbol(propType, propValue)) {\n return 'symbol';\n }\n return propType;\n }\n\n // This handles more types than `getPropType`. Only used for error messages.\n // See `createPrimitiveTypeChecker`.\n function getPreciseType(propValue) {\n if (typeof propValue === 'undefined' || propValue === null) {\n return '' + propValue;\n }\n var propType = getPropType(propValue);\n if (propType === 'object') {\n if (propValue instanceof Date) {\n return 'date';\n } else if (propValue instanceof RegExp) {\n return 'regexp';\n }\n }\n return propType;\n }\n\n // Returns a string that is postfixed to a warning about an invalid type.\n // For example, \"undefined\" or \"of type array\"\n function getPostfixForTypeWarning(value) {\n var type = getPreciseType(value);\n switch (type) {\n case 'array':\n case 'object':\n return 'an ' + type;\n case 'boolean':\n case 'date':\n case 'regexp':\n return 'a ' + type;\n default:\n return type;\n }\n }\n\n // Returns class name of the object, if any.\n function getClassName(propValue) {\n if (!propValue.constructor || !propValue.constructor.name) {\n return ANONYMOUS;\n }\n return propValue.constructor.name;\n }\n\n ReactPropTypes.checkPropTypes = checkPropTypes;\n ReactPropTypes.resetWarningCache = checkPropTypes.resetWarningCache;\n ReactPropTypes.PropTypes = ReactPropTypes;\n\n return ReactPropTypes;\n};\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nvar ReactPropTypesSecret = require('./lib/ReactPropTypesSecret');\n\nfunction emptyFunction() {}\nfunction emptyFunctionWithReset() {}\nemptyFunctionWithReset.resetWarningCache = emptyFunction;\n\nmodule.exports = function() {\n function shim(props, propName, componentName, location, propFullName, secret) {\n if (secret === ReactPropTypesSecret) {\n // It is still safe when called from React.\n return;\n }\n var err = new Error(\n 'Calling PropTypes validators directly is not supported by the `prop-types` package. ' +\n 'Use PropTypes.checkPropTypes() to call them. ' +\n 'Read more at http://fb.me/use-check-prop-types'\n );\n err.name = 'Invariant Violation';\n throw err;\n };\n shim.isRequired = shim;\n function getShim() {\n return shim;\n };\n // Important!\n // Keep this list in sync with production version in `./factoryWithTypeCheckers.js`.\n var ReactPropTypes = {\n array: shim,\n bigint: shim,\n bool: shim,\n func: shim,\n number: shim,\n object: shim,\n string: shim,\n symbol: shim,\n\n any: shim,\n arrayOf: getShim,\n element: shim,\n elementType: shim,\n instanceOf: getShim,\n node: shim,\n objectOf: getShim,\n oneOf: getShim,\n oneOfType: getShim,\n shape: getShim,\n exact: getShim,\n\n checkPropTypes: emptyFunctionWithReset,\n resetWarningCache: emptyFunction\n };\n\n ReactPropTypes.PropTypes = ReactPropTypes;\n\n return ReactPropTypes;\n};\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nif (process.env.NODE_ENV !== 'production') {\n var ReactIs = require('react-is');\n\n // By explicitly using `prop-types` you are opting into new development behavior.\n // http://fb.me/prop-types-in-prod\n var throwOnDirectAccess = true;\n module.exports = require('./factoryWithTypeCheckers')(ReactIs.isElement, throwOnDirectAccess);\n} else {\n // By explicitly using `prop-types` you are opting into new production behavior.\n // http://fb.me/prop-types-in-prod\n module.exports = require('./factoryWithThrowingShims')();\n}\n","import { Dropdown, App } from \"antd\";\r\nimport { ExclamationCircleFilled } from \"@ant-design/icons\";\r\nimport PropTypes from 'prop-types';\r\n\r\nconst SystemOperations = ({ \r\n onPowerOff, \r\n onRestart,\r\n powerOffLabel = \"Power Off\",\r\n restartLabel = \"Restart\",\r\n iconClassName = \"seeder-iconfont seeder-icon-guanji1 text-xl text-neutral-400\",\r\n confirmTitle = \"Confirm\",\r\n cancelText = \"No\",\r\n okText = \"Yes\",\r\n run\r\n}) => {\r\n const { modal: AntdModal } = App.useApp();\r\n\r\n const menuItems = [\r\n {\r\n key: \"poweroff\",\r\n label: powerOffLabel,\r\n },\r\n // {\r\n // key: \"reboot\",\r\n // label: rebootLabel, // 硬重启 物理重启\r\n // },\r\n {\r\n key: \"restart\",\r\n label: restartLabel, // 软重启 服务重启\r\n }\r\n ];\r\n\r\n const doAction = (action) => {\r\n try {\r\n AntdModal.confirm({\r\n icon: <ExclamationCircleFilled />,\r\n title: `${confirmTitle} ${action}?`,\r\n cancelText,\r\n okText,\r\n onOk: () => {\r\n if (action === 'poweroff' && onPowerOff) {\r\n onPowerOff();\r\n } else if (action === 'restart' && onRestart) {\r\n onRestart();\r\n }\r\n\r\n // Call the run callback after successful operation\r\n if (typeof run === 'function') {\r\n run();\r\n }\r\n }\r\n });\r\n } catch (error) {\r\n console.error(`${action.toUpperCase()} ERROR: `, error);\r\n }\r\n }\r\n\r\n const handleMenuClick = ({ key }) => {\r\n doAction(key);\r\n }\r\n\r\n return (\r\n <Dropdown menu={{ items: menuItems, onClick: handleMenuClick }} trigger={[\"hover\"]}>\r\n <a onClick={(e) => e.preventDefault()}>\r\n <i className={iconClassName}></i>\r\n </a>\r\n </Dropdown>\r\n );\r\n};\r\n\r\nSystemOperations.propTypes = {\r\n onPowerOff: PropTypes.func,\r\n onRestart: PropTypes.func,\r\n powerOffLabel: PropTypes.string,\r\n restartLabel: PropTypes.string,\r\n iconClassName: PropTypes.string,\r\n confirmTitle: PropTypes.string,\r\n cancelText: PropTypes.string,\r\n okText: PropTypes.string,\r\n run: PropTypes.func\r\n};\r\n\r\nexport default SystemOperations;","import { Button } from 'antd';\r\nimport PropTypes from 'prop-types';\r\n\r\n// 将 logo.png 转为 base64\r\nconst logoBase64 = 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAABLAAAAGaCAYAAAAfLro4AAAACXBIWXMAAA9hAAAPYQGoP6dpAAAGj2lUWHRYTUw6Y29tLmFkb2JlLnhtcAAAAAAAPD94cGFja2V0IGJlZ2luPSLvu78iIGlkPSJXNU0wTXBDZWhpSHpyZVN6TlRjemtjOWQiPz4gPHg6eG1wbWV0YSB4bWxuczp4PSJhZG9iZTpuczptZXRhLyIgeDp4bXB0az0iQWRvYmUgWE1QIENvcmUgNi4wLWMwMDIgNzkuMTY0NDg4LCAyMDIwLzA3LzEwLTIyOjA2OjUzICAgICAgICAiPiA8cmRmOlJERiB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiPiA8cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0iIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtbG5zOnhtcE1NPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvbW0vIiB4bWxuczpzdEV2dD0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL3NUeXBlL1Jlc291cmNlRXZlbnQjIiB4bWxuczpwaG90b3Nob3A9Imh0dHA6Ly9ucy5hZG9iZS5jb20vcGhvdG9zaG9wLzEuMC8iIHhtbG5zOmRjPSJodHRwOi8vcHVybC5vcmcvZGMvZWxlbWVudHMvMS4xLyIgeG1wOkNyZWF0b3JUb29sPSJBZG9iZSBQaG90b3Nob3AgMjIuMCAoV2luZG93cykiIHhtcDpDcmVhdGVEYXRlPSIyMDI1LTA5LTA5VDEwOjU2OjU5KzA4OjAwIiB4bXA6TWV0YWRhdGFEYXRlPSIyMDI1LTA5LTA5VDEwOjU2OjU5KzA4OjAwIiB4bXA6TW9kaWZ5RGF0ZT0iMjAyNS0wOS0wOVQxMDo1Njo1OSswODowMCIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDowZjE5ZjRmMy1jZWFlLTcwNDUtYTA5OC0xMjJmNzViYjVhYmIiIHhtcE1NOkRvY3VtZW50SUQ9ImFkb2JlOmRvY2lkOnBob3Rvc2hvcDo1YmIxNjQ4OC1hYzczLWI3NGYtODczMC1hZGZiY2Y1NTk3OWYiIHhtcE1NOk9yaWdpbmFsRG9jdW1lbnRJRD0ieG1wLmRpZDo4MjdjZjIwMy0zM2IyLWU3NDItYWRhNC0wNGY2YzA5ZTYxOWIiIHBob3Rvc2hvcDpDb2xvck1vZGU9IjMiIHBob3Rvc2hvcDpJQ0NQcm9maWxlPSJzUkdCIElFQzYxOTY2LTIuMSIgZGM6Zm9ybWF0PSJpbWFnZS9wbmciPiA8eG1wTU06SGlzdG9yeT4gPHJkZjpTZXE+IDxyZGY6bGkgc3RFdnQ6YWN0aW9uPSJjcmVhdGVkIiBzdEV2dDppbnN0YW5jZUlEPSJ4bXAuaWlkOjgyN2NmMjAzLTMzYjItZTc0Mi1hZGE0LTA0ZjZjMDllNjE5YiIgc3RFdnQ6d2hlbj0iMjAyNS0wOS0wOVQxMDo1Njo1OSswODowMCIgc3RFdnQ6c29mdHdhcmVBZ2VudD0iQWRvYmUgUGhvdG9zaG9wIDIyLjAgKFdpbmRvd3MpIi8+IDxyZGY6bGkgc3RFdnQ6YWN0aW9uPSJzYXZlZCIgc3RFdnQ6aW5zdGFuY2VJRD0ieG1wLmlpZDowZjE5ZjRmMy1jZWFlLTcwNDUtYTA5OC0xMjJmNzViYjVhYmIiIHN0RXZ0OndoZW49IjIwMjUtMDktMDlUMTA6NTY6NTkrMDg6MDAiIHN0RXZ0OnNvZnR3YXJlQWdlbnQ9IkFkb2JlIFBob3Rvc2hvcCAyMi4wIChXaW5kb3dzKSIgc3RFdnQ6Y2hhbmdlZD0iLyIvPiA8L3JkZjpTZXE+IDwveG1wTU06SGlzdG9yeT4gPHBob3Rvc2hvcDpEb2N1bWVudEFuY2VzdG9ycz4gPHJkZjpCYWc+IDxyZGY6bGk+YWRvYmU6ZG9jaWQ6cGhvdG9zaG9wOmZkN2NjZDg5LTViMTQtMDI0MC04YjNhLTQzODU2ODk1YTFlZjwvcmRmOmxpPiA8L3JkZjpCYWc+IDwvcGhvdG9zaG9wOkRvY3VtZW50QW5jZXN0b3JzPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/PlgJupcAADw7SURBVHic7d15vKdz/f/xx5mNGWMsw1hKkaVQkmm1VFQSKr6VLIXIEtK++ZZIRQtJiG+K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NAssSZIkSZIkFc0CS5IkSZIkSUWzwJIkSZIkSVLRLLAkSZIkSZJUNAssSZIkSZIkFc0CS5IkSZIkSUWzwJIkSZIkSVLRLLAkSZIkSZJUNAssSZIkSZIkFc0CS5IkSZIkSUWzwJIkSZIkSVLRLLAkSZIkSZJUNAssSZIkSZIkFc0CS5IkSZIkSUWzwJIkSZIkSVLRLLAkSZIkSZJUNAssSZIkSZIkFc0CS5IkSZIkSUWzwJIkSZIkSVLRLLAkSZIkSZJUNAssSZIkSZIkFc0CS5IkSZIkSUWzwJIkSZIkSVLRLLAkSZIkSZJUNAssSZIkSZIkFc0CS5IkSZIkSUWzwJIkSZIkSVLRLLAkSZIkSZJUNAssSZIkSZIkFc0CS5IkSZIkSUWzwJIkSZIkSVLRLLAkSZIkSZJUNAssSZIkSZIkFc0CS5IkSZIkSUWzwJIkSZIkSVLRLLAkSZIkSZJUNAssSZIkSZIkFc0CS5IkSZIkSUWzwJIkSZIkSVLRLLAkSZIkSZJUNAssSZIkSZIkFc0CS5IkSZIkSUWzwJIkSZIkSVLRLLAkSZIkSZJUNAssSZIkSZIkFc0CS5IkSZIkSUWzwJIkSZIkSVLRLLAkSZIkSZJUNAssSZIkSZIkFc0CS5IkSZIkSUWzwJIkSZIkSVLRLLAkSZIkSZJUNAssSZIkSZIkFc0CS5IkSZIkSUWzwJIkSZIkSVLRLLAkSZIkSZJUNAssSZIkSZIkFc0CS5IkSZIkSUWzwJIkSZIkSVLRLLAkSZIkSZJUNAssSZIkSZIkFc0CS5IkSZIkSUWzwJIkSZIkSVLRLLAkSZIkSZJUNAssSZIkSZIkFc0CS5IkSZIkSUWzwJIkSZIkSVLRLLAkSZIkSZJUNAssSZIkSZIkFc0CS5IkSZIkSUWzwJIkSZIkSVLRLLAkSZIkSZJUNAssSZIkSZIkFc0CS5IkSZIkSUWzwJIkSZIkSVLRLLAkSZIkSZJUNAssSZIkSZIkFc0CS5IkSZIkSUWzwJIkSZIkSVLRLLAkSZIkSZJUNAssSZIkSZIkFc0CS5IkSZIkSUWzwJIkSZIkSVLRLLAkSZIkSZJUNAssSZIkSZIkFc0CS5IkSZIkSUWzwJIkSZIkSVLRLLAkSZIkSZJUNAssSZIkSZIkFc0CS5IkSZIkSUWzwJIkSZIkSVLRLLAkSZIkSZJUNAssSZIkSZIkFc0CS5IkSZIkSUWzwJIkSZIkSVLRLLAkSZIkSZJUNAssSZIkSZIkFc0CS5IkSZIkSUWzwJIkSZIkSVLR/h+CVP12K0zZoAAAAABJRU5ErkJggg==';\r\n\r\nconst defaultResetRoute = () => {\r\n window.location.href = window.location.origin;\r\n};\r\n\r\nconst useSpaLogo = (props = {}) => {\r\n const {\r\n logoUrl = logoBase64, // 使用者传入 logo URL\r\n logoWidth = 100,\r\n logoAlt = 'logo',\r\n onClick = defaultResetRoute,\r\n buttonStyle = {\r\n padding: 0,\r\n lineHeight: 1,\r\n height: 'auto',\r\n borderStyle: 'none',\r\n display: 'inline-block'\r\n }\r\n } = props;\r\n\r\n // 如果没有提供 logoUrl,返回空\r\n if (!logoUrl) {\r\n return [null];\r\n }\r\n\r\n return [\r\n <Button key=\"logo\" type=\"link\" style={buttonStyle} onClick={onClick}>\r\n <img alt={logoAlt} src={logoUrl} style={{ width: logoWidth }} />\r\n </Button>\r\n ];\r\n}\r\n\r\nuseSpaLogo.propTypes = {\r\n logoUrl: PropTypes.string,\r\n logoWidth: PropTypes.number,\r\n logoAlt: PropTypes.string,\r\n onClick: PropTypes.func\r\n};\r\n\r\nexport default useSpaLogo;","import { Space, Typography, Flex } from \"antd\";\r\nimport PropTypes from 'prop-types';\r\nimport useSpaLogo from '../hooks/useSpaLogo';\r\nimport useHardwareUsage from '../hooks/useHardwareUsage';\r\nimport SystemOperations from './SystemOperations';\r\n\r\n// 默认的获取 WebSocket URL 函数\r\nconst defaultGetSocketUrl = (url) => {\r\n if (window.location.hostname === 'localhost' || window.location.hostname === '127.0.0.1') {\r\n return `ws://127.0.0.1:${window.location.port}${url}`;\r\n }\r\n return `ws://${window.location.host}${url}`;\r\n};\r\n\r\n/**\r\n * 通用 Header 组件\r\n * @param {Object} props\r\n * @param {React.ReactNode} props.menuElement - 菜单元素\r\n * @param {Object} props.productInfo - 产品信息 { productName, version }\r\n * @param {boolean} props.showLogo - 是否显示Logo\r\n * @param {boolean} props.showProductInfo - 是否显示产品信息\r\n * @param {boolean} props.showHardwareUsage - 是否显示硬件使用情况\r\n * @param {boolean} props.showSystemOperations - 是否显示系统操作\r\n * @param {Function} props.onPowerOff - 关机函数\r\n * @param {Function} props.onRestart - 重启函数\r\n * @param {Function} props.onRun - 运行函数(用于SystemOperations)\r\n * @param {string} props.hardwareMonitorUrl - 硬件监控WebSocket地址\r\n * @param {Function} props.getSocketUrl - 获取WebSocket URL的函数\r\n * @param {Object} props.logoProps - Logo组件属性\r\n * @param {string} props.className - 自定义类名\r\n * @param {Object} props.style - 自定义样式\r\n */\r\nconst CommonHeader = ({\r\n menuElement,\r\n productInfo = {},\r\n showLogo = true,\r\n showProductInfo = true,\r\n showHardwareUsage = true,\r\n showSystemOperations = true,\r\n onPowerOff,\r\n onRestart,\r\n onRun,\r\n hardwareMonitorUrl = '/ws/psmonitor/status_update',\r\n getSocketUrl = defaultGetSocketUrl,\r\n logoProps = {},\r\n className = '',\r\n style = {},\r\n // 新增插槽\r\n leftContent, // 左侧额外内容\r\n}) => {\r\n const [logo] = useSpaLogo(logoProps);\r\n\r\n // 系统资源使用情况\r\n const usageElement = useHardwareUsage(getSocketUrl(hardwareMonitorUrl));\r\n\r\n return (\r\n <Flex justify=\"space-between\" align=\"center\" className={`common-header ${className}`} style={style}>\r\n {/* 左侧:Logo、产品信息和左侧插槽 */}\r\n <Space size={12}>\r\n {showLogo && logo}\r\n\r\n {showProductInfo && (\r\n <Flex align=\"center\" gap={8}>\r\n {productInfo.productName && (\r\n <Typography.Title level={4} style={{ marginBottom: 0 }}>\r\n {productInfo.productName}\r\n </Typography.Title>\r\n )}\r\n {productInfo.version && (\r\n <Typography.Text style={{ position: 'relative', top: 6, left: -6 }}>\r\n {productInfo.version}\r\n </Typography.Text>\r\n )}\r\n </Flex>\r\n )}\r\n\r\n {/* 左侧插槽 */}\r\n {leftContent}\r\n </Space>\r\n\r\n {/* 右侧:硬件监控和操作按钮 */}\r\n <Flex align=\"center\" gap={10}>\r\n {/* 系统资源使用情况 */}\r\n {showHardwareUsage && usageElement}\r\n\r\n <div className=\"header-controls\">\r\n {menuElement && (\r\n <div className=\"control-icon\">\r\n {menuElement}\r\n </div>\r\n )}\r\n\r\n {/* 关机、重启操作 */}\r\n {showSystemOperations && (\r\n <div className=\"control-icon\">\r\n <SystemOperations\r\n onPowerOff={onPowerOff}\r\n onRestart={onRestart}\r\n run={onRun}\r\n />\r\n </div>\r\n )}\r\n </div>\r\n </Flex>\r\n </Flex>\r\n )\r\n};\r\n\r\n// PropTypes 类型检查\r\nCommonHeader.propTypes = {\r\n menuElement: PropTypes.node,\r\n productInfo: PropTypes.shape({\r\n productName: PropTypes.string,\r\n version: PropTypes.string,\r\n }),\r\n showLogo: PropTypes.bool,\r\n showProductInfo: PropTypes.bool,\r\n showHardwareUsage: PropTypes.bool,\r\n showSystemOperations: PropTypes.bool,\r\n onPowerOff: PropTypes.func,\r\n onRestart: PropTypes.func,\r\n onRun: PropTypes.func,\r\n hardwareMonitorUrl: PropTypes.string,\r\n getSocketUrl: PropTypes.func,\r\n logoProps: PropTypes.object,\r\n className: PropTypes.string,\r\n style: PropTypes.object,\r\n};\r\n\r\nexport default CommonHeader;","// src/react/DraggableNumberInput.tsx\r\nimport React from \"react\";\r\nimport { useCallback, useEffect, useRef, useState } from \"react\";\r\n\r\n// 默认配置\r\nconst DEFAULT_DECIMAL_PLACES = 2;\r\n\r\n// src/react/defaults-and-utils.ts\r\n// eslint-disable-next-line no-var\r\nvar defaultModifiers = {\r\n default: { multiplier: 1, sensitivity: 1 },\r\n // ctrlKey: { multiplier: 1, sensitivity: 1 },\r\n // shiftKey: { multiplier: 10, sensitivity: 0.5 },\r\n // metaKey: { multiplier: 1, sensitivity: 1 },\r\n // altKey: { multiplier: 1, sensitivity: 1 }\r\n};\r\n\r\n// multiplier: 控制每次鼠标移动时数值变化的基本单位 multiplier: 1- 鼠标移动1像素,值变化1 multiplier: 10- 鼠标移动1像素,值变化10\r\n// sensitivity: 控制数值变化的灵敏度 sensitivity: 1- 正常灵敏度 sensitivity: 0.5- 减半灵敏度,需要移动2像素才能产生正常1像素的效果\r\n\r\n// 修改 formatNumber 函数,强制显示1位小数\r\nfunction formatNumber(value, decimalPlaces = DEFAULT_DECIMAL_PLACES) {\r\n return new Intl.NumberFormat(\"en-US\", {\r\n minimumFractionDigits: decimalPlaces,\r\n maximumFractionDigits: decimalPlaces,\r\n useGrouping: false\r\n }).format(value);\r\n}\r\n\r\nfunction handleArrow(e, multiplier, value) {\r\n if (e.key === \"ArrowUp\") {\r\n return value + multiplier;\r\n }\r\n if (e.key === \"ArrowDown\") {\r\n return value - multiplier;\r\n }\r\n return value;\r\n}\r\n\r\n// eslint-disable-next-line no-var\r\nvar DragCursor = ({ cursorPosition }) => /* @__PURE__ */ React.createElement(\r\n \"div\",\r\n {\r\n style: {\r\n position: \"fixed\",\r\n left: 0,\r\n top: 0,\r\n width: \"100vw\",\r\n height: \"100vh\",\r\n pointerEvents: \"none\"\r\n }\r\n },\r\n /* @__PURE__ */ React.createElement(\r\n \"svg\",\r\n {\r\n xmlns: \"http://www.w3.org/2000/svg\",\r\n width: \"24\",\r\n height: \"24\",\r\n viewBox: \"0 0 24 24\",\r\n style: {\r\n position: \"absolute\",\r\n left: cursorPosition.x,\r\n top: cursorPosition.y,\r\n transform: \"translate(-50%, -50%)\",\r\n pointerEvents: \"none\"\r\n }\r\n },\r\n /* @__PURE__ */ React.createElement(\r\n \"path\",\r\n {\r\n fill: \"#000\",\r\n stroke: \"#fff\",\r\n strokeLinejoin: \"round\",\r\n d: \"M6.5 9a.5.5 0 0 0-.8-.4l-4 3a.5.5 0 0 0 0 .8l4 3a.5.5 0 0 0 .8-.4v-1.5h11V15a.5.5 0 0 0 .8.4l4-3a.5.5 0 0 0 0-.8l-4-3a.5.5 0 0 0-.8.4v1.5h-11V9Z\",\r\n style: {\r\n filter: \"drop-shadow( 0px 2px 1px rgba(0, 0, 0, .35))\"\r\n }\r\n }\r\n )\r\n )\r\n);\r\n\r\n// eslint-disable-next-line no-var\r\nvar noop = () => {\r\n};\r\nfunction DraggableNumberInput({\r\n value,\r\n min,\r\n max,\r\n className = \"\",\r\n disablePointerLock = false,\r\n modifierKeys,\r\n decimalPlaces = DEFAULT_DECIMAL_PLACES,\r\n onChange = noop,\r\n onDragStart = noop,\r\n onDragEnd = noop,\r\n style,\r\n ...restProps\r\n}) {\r\n const inputRef = useRef(null);\r\n const [isMouseDown, setIsMouseDown] = useState(false);\r\n const [isDragging, setIsDragging] = useState(false);\r\n const [localValue, setLocalValue] = useState(() => formatNumber(value, decimalPlaces));\r\n const [cursorPosition, setCursorPosition] = useState({ x: 0, y: 0 });\r\n const totalMovement = useRef(0);\r\n const startValue = useRef(0);\r\n const startX = useRef(0);\r\n const currentMultiplier = useRef(1);\r\n\r\n // === 新增:编辑状态跟踪 ===\r\n const [isEditing, setIsEditing] = useState(false);\r\n const lastExternalValueRef = useRef(value);\r\n\r\n // 修改 formatNumber 调用,传入 decimalPlaces\r\n const formatValue = useCallback((val) => {\r\n return formatNumber(val, decimalPlaces);\r\n }, [decimalPlaces]);\r\n\r\n const constrainedOnChange = useCallback(\r\n (newValue) => {\r\n let constrainedValue = newValue;\r\n if (typeof min === \"number\") {\r\n constrainedValue = Math.max(min, constrainedValue);\r\n }\r\n if (typeof max === \"number\") {\r\n constrainedValue = Math.min(max, constrainedValue);\r\n }\r\n onChange(constrainedValue);\r\n },\r\n [onChange, min, max]\r\n );\r\n\r\n useEffect(() => {\r\n // 只有当用户不在编辑状态,且外部值真正变化时才更新\r\n if (!isEditing && lastExternalValueRef.current !== value) {\r\n const formattedValue = formatValue(value);\r\n setLocalValue(formattedValue);\r\n lastExternalValueRef.current = value;\r\n }\r\n }, [value, formatValue, isEditing]);\r\n \r\n const handleInputChange = (e) => {\r\n const val = e.target.value;\r\n\r\n // 标记为编辑状态\r\n setIsEditing(true);\r\n setLocalValue(val);\r\n\r\n // 允许输入中间状态,不立即触发onChange\r\n if (val === '' || val === '-' || val === '.' || val.endsWith('.')) {\r\n return; // 输入中,不触发onChange\r\n }\r\n\r\n const num = parseFloat(val);\r\n if (!isNaN(num)) {\r\n constrainedOnChange(num); \r\n }\r\n };\r\n\r\n const handleBlur = () => {\r\n // 退出编辑状态\r\n setIsEditing(false);\r\n\r\n const num = parseFloat(localValue);\r\n if (!isNaN(num)) {\r\n // 根据 decimalPlaces 进行四舍五入\r\n const precision = Math.pow(10, decimalPlaces);\r\n const processedValue = Math.round(num * precision) / precision;\r\n const formattedValue = formatValue(processedValue);\r\n\r\n // 更新显示值\r\n setLocalValue(formattedValue);\r\n lastExternalValueRef.current = processedValue;\r\n // 触发外部变化\r\n constrainedOnChange(processedValue);\r\n } else {\r\n // 如果输入无效,重置为当前外部值\r\n const formattedValue = formatValue(value);\r\n setLocalValue(formattedValue);\r\n }\r\n };\r\n\r\n const handleMouseDown = useCallback(\r\n (e) => {\r\n if (!inputRef.current) return;\r\n let x = 0, y = 0;\r\n if (\"clientX\" in e && \"clientY\" in e) {\r\n [x, y] = [e.clientX, e.clientY];\r\n }\r\n if (\"touches\" in e) {\r\n [x, y] = [e.touches[0].clientX, e.touches[0].clientY];\r\n }\r\n setIsMouseDown(true);\r\n startX.current = x;\r\n startValue.current = value;\r\n totalMovement.current = 0;\r\n setCursorPosition({ x, y });\r\n },\r\n [value, disablePointerLock]\r\n );\r\n\r\n const updateDelta = useCallback(\r\n (e) => {\r\n if (!isMouseDown) return;\r\n applyMovement(totalMovement.current, e);\r\n },\r\n [isMouseDown]\r\n );\r\n\r\n const getModifiers = useCallback(\r\n (e) => {\r\n const mods = { ...defaultModifiers, ...modifierKeys };\r\n for (const key in mods) {\r\n if (key !== \"default\" && e[key]) {\r\n currentMultiplier.current = mods[key].multiplier;\r\n return mods[key];\r\n }\r\n }\r\n currentMultiplier.current = mods.default.multiplier;\r\n return mods.default;\r\n },\r\n [modifierKeys]\r\n );\r\n\r\n const applyMovement = useCallback(\r\n (newMovement, e) => {\r\n const { sensitivity, multiplier } = getModifiers(e);\r\n const delta = newMovement * sensitivity * multiplier;\r\n let newValue = startValue.current + delta;\r\n // 根据 decimalPlaces 进行精度控制\r\n const precision = Math.pow(10, decimalPlaces);\r\n newValue = Math.round(newValue * precision) / precision;\r\n newValue = Object.is(newValue, -0) ? 0 : newValue;\r\n constrainedOnChange(newValue);\r\n },\r\n [constrainedOnChange, getModifiers, decimalPlaces]\r\n );\r\n\r\n const handleArrowKeyDown = (e) => {\r\n if (e.key === \"ArrowUp\" || e.key === \"ArrowDown\") {\r\n e.preventDefault();\r\n const { multiplier } = getModifiers(e);\r\n const newValue = handleArrow(e, multiplier, value);\r\n constrainedOnChange(newValue);\r\n }\r\n };\r\n\r\n const handleModifierKeyDuringDrag = useCallback(\r\n (e) => {\r\n if (e.key === \"Shift\" || e.key === \"Control\" || e.key === \"Meta\" || e.key === \"Alt\") {\r\n updateDelta(e);\r\n }\r\n },\r\n [updateDelta]\r\n );\r\n\r\n const handleMouseMove = useCallback(\r\n (e) => {\r\n if (!isMouseDown) return;\r\n if (\"touches\" in e) {\r\n e.preventDefault();\r\n }\r\n if (!disablePointerLock && document.pointerLockElement && !(\"touches\" in e)) {\r\n setCursorPosition((prev) => {\r\n const width = window.innerWidth;\r\n const height = window.innerHeight;\r\n const x2 = (prev.x + e.movementX + width) % width;\r\n const y = (prev.y + e.movementY + height) % height;\r\n return { x: x2, y };\r\n });\r\n }\r\n const x = \"touches\" in e ? e.touches[0].clientX : e.clientX;\r\n const newMovement = disablePointerLock || \"touches\" in e ? x - startX.current : totalMovement.current + e.movementX;\r\n if (!isDragging && newMovement !== 0) {\r\n if (!disablePointerLock && !(\"touches\" in e)) {\r\n inputRef.current?.requestPointerLock?.();\r\n }\r\n setIsDragging(true);\r\n document.addEventListener(\"keydown\", handleModifierKeyDuringDrag);\r\n document.addEventListener(\"keyup\", handleModifierKeyDuringDrag);\r\n onDragStart();\r\n }\r\n totalMovement.current = newMovement;\r\n applyMovement(newMovement, e);\r\n },\r\n [\r\n isMouseDown,\r\n disablePointerLock,\r\n startX,\r\n isDragging,\r\n onDragStart,\r\n applyMovement\r\n ]\r\n );\r\n\r\n const handleMouseUp = useCallback(() => {\r\n setIsMouseDown(false);\r\n totalMovement.current = 0;\r\n if (isDragging) {\r\n setIsDragging(false);\r\n document.removeEventListener(\"keydown\", handleModifierKeyDuringDrag);\r\n document.removeEventListener(\"keyup\", handleModifierKeyDuringDrag);\r\n onDragEnd();\r\n }\r\n if (document.pointerLockElement) {\r\n document.exitPointerLock();\r\n }\r\n }, [isDragging, onDragEnd, disablePointerLock]);\r\n\r\n useEffect(() => {\r\n if (isMouseDown) {\r\n document.addEventListener(\"mousemove\", handleMouseMove);\r\n document.addEventListener(\"touchmove\", handleMouseMove, {\r\n passive: false\r\n });\r\n document.addEventListener(\"mouseup\", handleMouseUp);\r\n document.addEventListener(\"touchend\", handleMouseUp);\r\n return () => {\r\n document.removeEventListener(\"mousemove\", handleMouseMove);\r\n document.removeEventListener(\"mouseup\", handleMouseUp);\r\n document.removeEventListener(\"touchmove\", handleMouseMove);\r\n document.removeEventListener(\"touchend\", handleMouseUp);\r\n };\r\n }\r\n }, [isMouseDown, handleMouseMove, handleMouseUp]);\r\n\r\n return /* @__PURE__ */ React.createElement(React.Fragment, null, /* @__PURE__ */ React.createElement(\r\n \"input\",\r\n {\r\n ref: inputRef,\r\n type: \"text\",\r\n inputMode: \"numeric\",\r\n pattern: \"-?[0-9]*\\\\.?[0-9]*\",\r\n value: localValue,\r\n onChange: handleInputChange,\r\n onBlur: handleBlur,\r\n onMouseDown: handleMouseDown,\r\n onTouchStart: handleMouseDown,\r\n onKeyDown: handleArrowKeyDown,\r\n className: `draggable-number-input ${className} ${isDragging ? \"dragging\" : \"\"}`,\r\n style: {\r\n ...{\r\n cursor: \"ew-resize\",\r\n userSelect: \"none\",\r\n caretColor: isDragging ? \"transparent\" : \"initial\"\r\n },\r\n ...style\r\n },\r\n ...restProps\r\n }\r\n ), isDragging && !disablePointerLock && /* @__PURE__ */ React.createElement(DragCursor, { cursorPosition }));\r\n}\r\n\r\nexport {\r\n DraggableNumberInput\r\n};\r\n"],"names":["formatBytes","bytes","decimals","arguments","length","undefined","k","dm","sizes","i","Math","floor","log","parseFloat","pow","toFixed","UsageItem","memo","_ref","title","iconClass","children","memTotal","_jsx","Tooltip","_jsxs","_Fragment","destroyOnHidden","className","concat","useHardwareWebSocket","socketUrl","systemStatus","setSystemStatus","useState","handleMessage","useCallback","message","prev","_objectSpread","error","console","useWebSocket","onMessage","event","parsedMessage","JSON","parse","data","debug","ps_status","getMaxNicTemp","sensors","priorityFields","temps","flatMap","field","_sensors$field","map","item","current","filter","temp","max","getMaxSensorTemp","sensorData","getDetail","_sensors_temperatures","_sensors_temperatures2","_mem$total","_mem$percent","_getMaxNicTemp","_gpu_stats$0$utilizat","_gpu_stats$","_gpu_stats$0$temperat","_gpu_stats$2","status","cpu_percent","mem","sensors_temperatures","gpu_stats","cpu_usage","cpu_temp","coretemp","mem_total","total","mem_usage","percent","mem_temp","spd5118","nic_temp","hd_temp","nvme","gpu_usage","gpu_temp","createMetricItem","value","unit","numValue","valueString","getItems","details","items","push","useHardwareUsage","useMemo","statusItems","index","AuthorizationModal","onCancel","onOk","authData","okText","cancelText","width","App","useApp","code","setCode","accredit_status","isActivated","statusMessage","bios_id","uuid","expires_time","expiresTime","handleOk","trimmedCode","trim","statusAlert","Alert","type","showIcon","defaultOkText","Modal","open","maskClosable","closable","cancelButtonProps","disabled","Form","name","labelCol","span","wrapperCol","autoComplete","style","marginBottom","Item","label","required","Input","readOnly","TextArea","onChange","e","target","autoSize","minRows","maxRows","placeholder","DEFAULT_AUTH","useAuth","options","fetchAuthInfo","authorize","defaultAuthData","autoShowModal","messageApi","contextHolder","useMessage","showModal","setShowModal","setAuthData","isRegistered","setIsRegistered","loading","setLoading","openModal","closeModal","useEffect","loadAuthInfo","result","commands","auth","id","license_data","ciphertext_status","modal","AuthModal","openAuthModal","closeAuthModal","useUpgrade","menuItems","onMenuClick","downloadFiles","upgradeExecute","upgradeStatus","acceptFileTypes","uploadCompleteDelay","statusPollingInterval","isSpinning","setIsSpinning","interval","setInterval","inputRef","useRef","currentStatus","setCurrentStatus","isUploadCompleteRef","uploadProgress","setUploadProgress","uploadCancelToken","axios","CancelToken","source","statusCancelToken","showLoader","hideLoader","finalMenuItems","hasDownload","some","key","hasUpload","licenseIndex","findIndex","itemsToAdd","beforeLicense","slice","licenseItem","afterLicense","itemsToInsert","handleMenuClick","_ref2","onDownload","onUpload","warn","res","Error","fileName","contentDisposition","headers","filenameMatch","match","decodeURIComponent","blob","Blob","url","window","URL","createObjectURL","link","document","createElement","display","href","download","body","appendChild","click","parentNode","removeChild","revokeObjectURL","updatePackage","_event$target$files","file","files","formData","FormData","append","onUploadProgress","progressEvent","percentCompleted","round","loaded","setTimeout","cancelToken","token","isCancel","cancelRequest","fetchUpgradeStatus","response","success","location","reload","cancel","useInterval","upgradeElement","Dropdown","menu","onClick","trigger","preventDefault","ref","accept","Spin","spinning","indicator","LoadingOutlined","fontSize","spin","tip","size","fullscreen","useSystemOperations","onPowerOff","onRestart","confirmTitle","run","AntdModal","doAction","action","confirm","icon","ExclamationCircleFilled","toUpperCase","getMenuItems","NetworkFieldGroup","_fieldConfig$netmask$","_fieldConfig$netmask","prefix","interfaces","fieldConfig","defaultFieldConfig","enabled","ip","netmask","mergedFieldConfig","Typography","Title","level","justifyContent","alignItems","iface","Divider","marginBlock","NetworkSettingsModal","onClose","getLanConfig","getSysConfig","getConfig","updateLanConfig","updateSysConfig","restart","modalProps","formProps","sections","showNetmask","LAN","QSFP","restartRemark","form","useForm","st2110Interfaces","setSt2110Interfaces","lanConfigs","setLanConfigs","submitLoading","setSubmitLoading","isInitialized","setIsInitialized","initializationStatus","hasFetched","hasInitialized","preparedFieldConfig","config","includes","fetchData","lan_interfaces","promises","results","Promise","allSettled","lanResult","sysResult","st2110_interfaces","resetFields","initialValues","values","connection_id","display_name","ip_address","setFieldsValue","handleSuccess","messageText","isPopup","refresh","newConfig","updatedConfig","is_restart_required","handleSubmit","validateFields","updatePromises","lanData","_lanConfigs$index","interfacesData","_st2110Interfaces$ind","_st2110Interfaces$ind2","_st2110Interfaces$ind3","st2110Data","allSucceeded","every","mergedModalProps","confirmLoading","centered","forceRender","styles","padding","footer","paddingBottom","mergedFormProps","defaultFieldConfigs","clock_class","formType","clock_accuracy","offset_scaled_log_variance","grandmaster_priority1","grandmaster_priority2","grandmaster_identity","master_port_id","t1_domain_number","min","master_utc_offset","is_connected","statusMap","text","color","is_locked","defaultFieldOrder","convertPtpStatusToArray","ptpStatus","fieldConfigs","fieldOrder","rawData","PtpModal","getPtpInfo","updatePtpInfo","setPtpStatus","then","ptpStatusArray","handleValueChange","changedValues","renderFormItem","_item$statusMap","_item$min","_item$max","Select","Switch","normalizedValue","ConfigProvider","theme","components","Badge","statusSize","InputNumber","controls","keyboard","Number","MIN_SAFE_INTEGER","MAX_SAFE_INTEGER","onValuesChange","initialValue","LeftList","dataSource","selectedPresetId","onSelectPreset","onAddNew","onRemove","hasPresets","showDescription","texts","newButton","removeButton","gridColumns","List","header","rowKey","renderItem","create_time","description","locale","emptyText","Empty","image","PRESENTED_IMAGE_SIMPLE","Button","PlusOutlined","paddingInline","Space","SubmitButton","RightDetailForm","_ref3","onSave","onLoad","isLoading","isEditing","originalPresetData","fields","loadButton","saveButton","presetChanged","initialSelected","setInitialSelected","currentSelected","useWatch","hasCategoryList","category_list","currentValue","getFieldValue","checkboxOptions","category","isInitiallySelected","shouldDisable","initiallySelected","handleCheckboxChange","checkedValues","handleLoad","formValues","loadData","Flex","vertical","layout","flex","overflowY","rules","validator","_","reject","resolve","Checkbox","Group","rows","Preset","getPresetList","savePreset","removePreset","loadPreset","onLoadSuccess","onLoadError","deleteConfirm","loadConfirm","loadText","successText","height","AntdMessage","presetList","setPresetList","selectedPreset","setSelectedPreset","setPresetChanged","fetchPresetList","presets","preset_list","handleSelectPreset","preset","handleAddNew","_fields$category_list","unsavedPreset","find","warning","newPreset","Object","keys","reduce","acc","fieldName","handleRemove","isUnsavedPreset","presetName","content","handleLoadPreset","modalInstance","info","okButtonProps","destroy","handleSave","errorFields","wrapClassName","Row","gutter","Col","justify","align","UpgradeManager","dropdownProps","_objectWithoutProperties","_excluded","dropdownElement","props","otherElements","defaultProps","placement","reactIsModule","require$$0","require$$1","require$$2","require$$3","require$$4","propTypesModule","SystemOperations","powerOffLabel","restartLabel","iconClassName","propTypes","PropTypes","func","string","logoBase64","defaultResetRoute","origin","useSpaLogo","logoUrl","logoWidth","logoAlt","buttonStyle","lineHeight","borderStyle","alt","src","number","defaultGetSocketUrl","hostname","port","host","CommonHeader","menuElement","productInfo","showLogo","showProductInfo","showHardwareUsage","showSystemOperations","onRun","hardwareMonitorUrl","getSocketUrl","logoProps","leftContent","logo","usageElement","gap","productName","version","Text","position","top","left","node","shape","bool","object","DEFAULT_DECIMAL_PLACES","defaultModifiers","default","multiplier","sensitivity","formatNumber","decimalPlaces","Intl","NumberFormat","minimumFractionDigits","maximumFractionDigits","useGrouping","format","handleArrow","DragCursor","cursorPosition","React","pointerEvents","xmlns","viewBox","x","y","transform","fill","stroke","strokeLinejoin","d","noop","DraggableNumberInput","disablePointerLock","modifierKeys","onDragStart","onDragEnd","restProps","isMouseDown","setIsMouseDown","isDragging","setIsDragging","localValue","setLocalValue","setCursorPosition","totalMovement","startValue","startX","currentMultiplier","setIsEditing","lastExternalValueRef","formatValue","val","constrainedOnChange","newValue","constrainedValue","formattedValue","handleInputChange","endsWith","num","isNaN","handleBlur","precision","processedValue","handleMouseDown","clientX","clientY","touches","updateDelta","applyMovement","getModifiers","mods","newMovement","delta","is","handleArrowKeyDown","handleModifierKeyDuringDrag","handleMouseMove","pointerLockElement","innerWidth","innerHeight","x2","movementX","movementY","_inputRef$current","_inputRef$current$req","requestPointerLock","call","addEventListener","handleMouseUp","removeEventListener","exitPointerLock","passive","Fragment","inputMode","pattern","onBlur","onMouseDown","onTouchStart","onKeyDown","cursor","userSelect","caretColor"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAIA,MAAMA,WAAW,GAAG,UAACC,KAAK,EAAmB;AAAA,EAAA,IAAjBC,QAAQ,GAAAC,SAAA,CAAAC,MAAA,GAAA,CAAA,IAAAD,SAAA,CAAA,CAAA,CAAA,KAAAE,SAAA,GAAAF,SAAA,CAAA,CAAA,CAAA,GAAG,CAAC,CAAA;AACtC,EAAA,IAAIF,KAAK,KAAK,CAAC,IAAI,CAACA,KAAK,IAAIA,KAAK,GAAG,CAAC,EAAE,OAAO,SAAS,CAAA;EACxD,MAAMK,CAAC,GAAG,IAAI,CAAA;EACd,MAAMC,EAAE,GAAGL,QAAQ,GAAG,CAAC,GAAG,CAAC,GAAGA,QAAQ,CAAA;AACtC,EAAA,MAAMM,KAAK,GAAG,CAAC,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,CAAA;AAC/C,EAAA,MAAMC,CAAC,GAAGC,IAAI,CAACC,KAAK,CAACD,IAAI,CAACE,GAAG,CAACX,KAAK,CAAC,GAAGS,IAAI,CAACE,GAAG,CAACN,CAAC,CAAC,CAAC,CAAA;EACnD,OAAOO,UAAU,CAAC,CAACZ,KAAK,GAAGS,IAAI,CAACI,GAAG,CAACR,CAAC,EAAEG,CAAC,CAAC,EAAEM,OAAO,CAACR,EAAE,CAAC,CAAC,GAAG,GAAG,GAAGC,KAAK,CAACC,CAAC,CAAC,CAAA;AAC1E,CAAC,CAAA;AAED,MAAMO,SAAS,gBAAGC,IAAI,CAACC,IAAA,IAA8C;EAAA,IAA7C;IAAEC,KAAK;IAAEC,SAAS;IAAEC,QAAQ;AAAEC,IAAAA,QAAAA;AAAS,GAAC,GAAAJ,IAAA,CAAA;EAC9D,oBACEK,GAAA,CAACC,OAAO,EAAA;IACNL,KAAK,eACHM,IAAA,CAAAC,QAAA,EAAA;AAAAL,MAAAA,QAAA,gBACEE,GAAA,CAAA,KAAA,EAAA;AAAAF,QAAAA,QAAA,EAAMF,KAAAA;OAAW,CAAC,EACjBA,KAAK,KAAK,cAAc,IAAIG,QAAQ,KAAKjB,SAAS,iBACjDoB,IAAA,CAAA,KAAA,EAAA;AAAAJ,QAAAA,QAAA,GAAK,gBAAc,EAACrB,WAAW,CAACsB,QAAQ,CAAC,CAAA;AAAA,OAAM,CAChD,CAAA;AAAA,KACD,CACH;AACDK,IAAAA,eAAe,EAAE,KAAM;AAAAN,IAAAA,QAAA,eAEvBI,IAAA,CAAA,KAAA,EAAA;AAAKG,MAAAA,SAAS,EAAC,YAAY;AAAAP,MAAAA,QAAA,gBACzBE,GAAA,CAAA,GAAA,EAAA;QAAGK,SAAS,EAAA,kBAAA,CAAAC,MAAA,CAAqBT,SAAS,EAAA,UAAA,CAAA;OAAa,CAAC,eACxDG,GAAA,CAAA,MAAA,EAAA;AAAMK,QAAAA,SAAS,EAAC,aAAa;AAAAP,QAAAA,QAAA,EAAEA,QAAAA;AAAQ,OAAO,CAAC,CAAA;KAC5C,CAAA;AAAC,GACC,CAAC,CAAA;AAEd,CAAC,CAAC,CAAA;AAEF,kBAAeL,SAAS;;AC/BxB,MAAMc,oBAAoB,GAAIC,SAAS,IAAK;EAC1C,MAAM,CAACC,YAAY,EAAEC,eAAe,CAAC,GAAGC,QAAQ,EAAE,CAAA;AAElD,EAAA,MAAMC,aAAa,GAAGC,WAAW,CAAEC,OAAO,IAAK;IAC7C,IAAI;AACF,MAAA,IAAIA,OAAO,EAAE;QACXJ,eAAe,CAACK,IAAI,IAAAC,cAAA,CAAAA,cAAA,CAAA,EAAA,EACfD,IAAI,CAAA,EACJD,OAAO,CAEV,CAAC,CAAA;AACL,OAAA;KACD,CAAC,OAAOG,KAAK,EAAE;AACdC,MAAAA,OAAO,CAACD,KAAK,CAAC,2BAA2B,EAAEA,KAAK,CAAC,CAAA;AACnD,KAAA;GACD,EAAE,EAAE,CAAC,CAAA;;AAEN;EAC0BE,YAAY,CAACX,SAAS,EAAE;IAChDY,SAAS,EAAGC,KAAK,IAAK;AACpB;MACA,IAAI;QACF,MAAMC,aAAa,GAAGC,IAAI,CAACC,KAAK,CAACH,KAAK,CAACI,IAAI,CAAC,CAAA;QAC5Cb,aAAa,CAACU,aAAa,CAAC,CAAA;OAC7B,CAAC,OAAOL,KAAK,EAAE;AACdC,QAAAA,OAAO,CAACD,KAAK,CAAC,wBAAwB,EAAEA,KAAK,CAAC,CAAA;QAC9CC,OAAO,CAACQ,KAAK,CAAC,cAAc,EAAEL,KAAK,CAACI,IAAI,CAAC,CAAA;AAC3C,OAAA;AACF,KAAA;AACF,GAAC,EAAC;;AAEF;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;EAEA,OAAO;AAAEE,IAAAA,SAAS,EAAElB,YAAAA;GAAc,CAAA;AACpC,CAAC,CAAA;AAED,6BAAeF,oBAAoB;;AC7CnC,MAAMqB,aAAa,GAAG,UAACC,OAAO,EAAqD;AAAA,EAAA,IAAnDC,cAAc,GAAAlD,SAAA,CAAAC,MAAA,QAAAD,SAAA,CAAA,CAAA,CAAA,KAAAE,SAAA,GAAAF,SAAA,CAAG,CAAA,CAAA,GAAA,CAAC,QAAQ,EAAE,iBAAiB,CAAC,CAAA;AAC5E,EAAA,MAAMmD,KAAK,GAAGD,cAAc,CACzBE,OAAO,CAACC,KAAK,IAAA;AAAA,IAAA,IAAAC,cAAA,CAAA;IAAA,OAAI,CAAAL,OAAO,KAAA,IAAA,IAAPA,OAAO,KAAA,KAAA,CAAA,IAAA,CAAAK,cAAA,GAAPL,OAAO,CAAGI,KAAK,CAAC,MAAA,IAAA,IAAAC,cAAA,KAAhBA,KAAAA,CAAAA,GAAAA,KAAAA,CAAAA,GAAAA,cAAA,CAAkBC,GAAG,CAACC,IAAI,IAAIA,IAAI,CAACC,OAAO,CAAC,KAAI,EAAE,CAAA;GAAC,CAAA,CACnEC,MAAM,CAAEC,IAAI,IAAK,OAAOA,IAAI,KAAK,QAAQ,CAAC,CAAA;AAC7C,EAAA,OAAOR,KAAK,CAAClD,MAAM,GAAGM,IAAI,CAACqD,GAAG,CAAC,GAAGT,KAAK,CAAC,GAAG,IAAI,CAAA;AACjD,CAAC,CAAA;;AAED;AACA,MAAMU,gBAAgB,GAAIC,UAAU,IAAK;EACvC,MAAMX,KAAK,GAAG,CAACW,UAAU,IAAI,EAAE,EAC5BP,GAAG,CAACC,IAAI,IAAIA,IAAI,CAACC,OAAO,CAAC,CACzBC,MAAM,CAAEC,IAAI,IAAK,OAAOA,IAAI,KAAK,QAAQ,CAAC,CAAA;AAC7C,EAAA,OAAOR,KAAK,CAAClD,MAAM,GAAGM,IAAI,CAACqD,GAAG,CAAC,GAAGT,KAAK,CAAC,GAAG,IAAI,CAAA;AACjD,CAAC,CAAA;AAED,MAAMY,SAAS,GAAG,YAAiB;AAAA,EAAA,IAAAC,qBAAA,EAAAC,sBAAA,EAAAC,UAAA,EAAAC,YAAA,EAAAC,cAAA,EAAAC,qBAAA,EAAAC,WAAA,EAAAC,qBAAA,EAAAC,YAAA,CAAA;AAAA,EAAA,IAAhBC,MAAM,GAAAzE,SAAA,CAAAC,MAAA,GAAA,CAAA,IAAAD,SAAA,CAAA,CAAA,CAAA,KAAAE,SAAA,GAAAF,SAAA,CAAA,CAAA,CAAA,GAAG,EAAE,CAAA;EAC5B,MAAM;IAAE0E,WAAW;IAAEC,GAAG;IAAEC,oBAAoB;AAAEC,IAAAA,SAAAA;AAAU,GAAC,GAAGJ,MAAM,CAAA;EAEpE,OAAO;AACLK,IAAAA,SAAS,EAAEJ,WAAW,KAAA,IAAA,IAAXA,WAAW,KAAXA,KAAAA,CAAAA,GAAAA,WAAW,GAAI,IAAI;AAC9BK,IAAAA,QAAQ,EAAAf,CAAAA,qBAAA,GAAEY,oBAAoB,aAApBA,oBAAoB,KAAA,KAAA,CAAA,IAAA,CAAAX,sBAAA,GAApBW,oBAAoB,CAAEI,QAAQ,MAAA,IAAA,IAAAf,sBAAA,KAAAA,KAAAA,CAAAA,IAAAA,CAAAA,sBAAA,GAA9BA,sBAAA,CAAiC,CAAC,CAAC,MAAA,IAAA,IAAAA,sBAAA,KAAnCA,KAAAA,CAAAA,GAAAA,KAAAA,CAAAA,GAAAA,sBAAA,CAAqCR,OAAO,MAAAO,IAAAA,IAAAA,qBAAA,KAAAA,KAAAA,CAAAA,GAAAA,qBAAA,GAAI,IAAI;AAC9DiB,IAAAA,SAAS,EAAAf,CAAAA,UAAA,GAAES,GAAG,aAAHA,GAAG,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAHA,GAAG,CAAEO,KAAK,MAAAhB,IAAAA,IAAAA,UAAA,KAAAA,KAAAA,CAAAA,GAAAA,UAAA,GAAI,IAAI;AAC7BiB,IAAAA,SAAS,EAAAhB,CAAAA,YAAA,GAAEQ,GAAG,aAAHA,GAAG,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAHA,GAAG,CAAES,OAAO,MAAAjB,IAAAA,IAAAA,YAAA,KAAAA,KAAAA,CAAAA,GAAAA,YAAA,GAAI,IAAI;IAC/BkB,QAAQ,EAAExB,gBAAgB,CAACe,oBAAoB,KAAA,IAAA,IAApBA,oBAAoB,KAApBA,KAAAA,CAAAA,GAAAA,KAAAA,CAAAA,GAAAA,oBAAoB,CAAEU,OAAO,CAAC;AACzDC,IAAAA,QAAQ,EAAAnB,CAAAA,cAAA,GAAEpB,aAAa,CAAC4B,oBAAoB,CAAC,MAAA,IAAA,IAAAR,cAAA,KAAA,KAAA,CAAA,GAAAA,cAAA,GAAI,IAAI;IACrDoB,OAAO,EAAE3B,gBAAgB,CAACe,oBAAoB,KAAA,IAAA,IAApBA,oBAAoB,KAApBA,KAAAA,CAAAA,GAAAA,KAAAA,CAAAA,GAAAA,oBAAoB,CAAEa,IAAI,CAAC;IACrDC,SAAS,EAAA,CAAArB,qBAAA,GAAEQ,SAAS,KAAA,IAAA,IAATA,SAAS,KAAAP,KAAAA,CAAAA,IAAAA,CAAAA,WAAA,GAATO,SAAS,CAAG,CAAC,CAAC,MAAAP,IAAAA,IAAAA,WAAA,KAAdA,KAAAA,CAAAA,GAAAA,KAAAA,CAAAA,GAAAA,WAAA,CAAiB,iBAAiB,CAAC,MAAA,IAAA,IAAAD,qBAAA,KAAA,KAAA,CAAA,GAAAA,qBAAA,GAAI,IAAI;IACtDsB,QAAQ,EAAA,CAAApB,qBAAA,GAAEM,SAAS,KAAA,IAAA,IAATA,SAAS,KAAAL,KAAAA,CAAAA,IAAAA,CAAAA,YAAA,GAATK,SAAS,CAAG,CAAC,CAAC,MAAAL,IAAAA,IAAAA,YAAA,KAAdA,KAAAA,CAAAA,GAAAA,KAAAA,CAAAA,GAAAA,YAAA,CAAiB,iBAAiB,CAAC,MAAAD,IAAAA,IAAAA,qBAAA,KAAAA,KAAAA,CAAAA,GAAAA,qBAAA,GAAI,IAAA;GAClD,CAAA;AACH,CAAC,CAAA;;AAED;AACA,MAAMqB,gBAAgB,GAAGA,CACvB5E,KAAK,EACLC,SAAS,EACT4E,KAAK,EACLC,IAAI,KACD;AACH,EAAA,MAAMC,QAAQ,GAAG,OAAOF,KAAK,KAAK,QAAQ,GAAGnF,UAAU,CAACmF,KAAK,CAAC,GAAGA,KAAK,CAAA;EAEtE,OAAO;IACL7E,KAAK;IACLC,SAAS;IACT+E,WAAW,EAAA,EAAA,CAAAtE,MAAA,CAAKqE,QAAQ,EAAArE,MAAA,CAAGoE,IAAI,CAAE;AACjCD,IAAAA,KAAK,EAAEE,QAAAA;GACR,CAAA;AACH,CAAC,CAAA;AAED,MAAME,QAAQ,GAAIC,OAAO,IAAK;EAC5B,MAAMC,KAAK,GAAG,EAAE,CAAA;EAEhB,IAAID,OAAO,CAACpB,SAAS,KAAK,IAAI,IAAIoB,OAAO,CAACpB,SAAS,KAAK5E,SAAS,EAAE;AACjEiG,IAAAA,KAAK,CAACC,IAAI,CAACR,gBAAgB,CAAC,WAAW,EAAE,iBAAiB,EAAEM,OAAO,CAACpB,SAAS,EAAE,GAAG,CAAC,CAAC,CAAA;AACtF,GAAA;EAEA,IAAIoB,OAAO,CAACnB,QAAQ,KAAK,IAAI,IAAImB,OAAO,CAACnB,QAAQ,KAAK7E,SAAS,EAAE;AAC/DiG,IAAAA,KAAK,CAACC,IAAI,CAACR,gBAAgB,CAAC,iBAAiB,EAAE,sBAAsB,EAAEM,OAAO,CAACnB,QAAQ,EAAE,GAAG,CAAC,CAAC,CAAA;AAChG,GAAA;EAEA,IAAImB,OAAO,CAACf,SAAS,KAAK,IAAI,IAAIe,OAAO,CAACf,SAAS,KAAKjF,SAAS,EAAE;AACjEiG,IAAAA,KAAK,CAACC,IAAI,CAAAhE,cAAA,CAAAA,cAAA,KACLwD,gBAAgB,CAAC,cAAc,EAAE,0BAA0B,EAAEM,OAAO,CAACf,SAAS,EAAE,GAAG,CAAC,CAAA,EAAA,EAAA,EAAA;MACvFhE,QAAQ,EAAE+E,OAAO,CAACjB,SAAAA;AAAS,KAAA,CAC5B,CAAC,CAAA;AACJ,GAAA;EAEA,IAAIiB,OAAO,CAACb,QAAQ,KAAK,IAAI,IAAIa,OAAO,CAACb,QAAQ,KAAKnF,SAAS,EAAE;AAC/DiG,IAAAA,KAAK,CAACC,IAAI,CAACR,gBAAgB,CAAC,oBAAoB,EAAE,mBAAmB,EAAEM,OAAO,CAACb,QAAQ,EAAE,GAAG,CAAC,CAAC,CAAA;AAChG,GAAA;EAEA,IAAIa,OAAO,CAACX,QAAQ,KAAK,IAAI,IAAIW,OAAO,CAACX,QAAQ,KAAKrF,SAAS,EAAE;AAC/DiG,IAAAA,KAAK,CAACC,IAAI,CAACR,gBAAgB,CAAC,iBAAiB,EAAE,wBAAwB,EAAEM,OAAO,CAACX,QAAQ,EAAE,GAAG,CAAC,CAAC,CAAA;AAClG,GAAA;EAEA,IAAIW,OAAO,CAACV,OAAO,KAAK,IAAI,IAAIU,OAAO,CAACV,OAAO,KAAKtF,SAAS,EAAE;AAC7DiG,IAAAA,KAAK,CAACC,IAAI,CAACR,gBAAgB,CAAC,kBAAkB,EAAE,qBAAqB,EAAEM,OAAO,CAACV,OAAO,EAAE,GAAG,CAAC,CAAC,CAAA;AAC/F,GAAA;EAEA,IAAIU,OAAO,CAACR,SAAS,KAAK,IAAI,IAAIQ,OAAO,CAACR,SAAS,KAAKxF,SAAS,EAAE;AACjEiG,IAAAA,KAAK,CAACC,IAAI,CAACR,gBAAgB,CAAC,WAAW,EAAE,qBAAqB,EAAEM,OAAO,CAACR,SAAS,EAAE,GAAG,CAAC,CAAC,CAAA;AAC1F,GAAA;EAEA,IAAIQ,OAAO,CAACP,QAAQ,KAAK,IAAI,IAAIO,OAAO,CAACP,QAAQ,KAAKzF,SAAS,EAAE;AAC/DiG,IAAAA,KAAK,CAACC,IAAI,CAACR,gBAAgB,CAAC,iBAAiB,EAAE,sBAAsB,EAAEM,OAAO,CAACP,QAAQ,EAAE,GAAG,CAAC,CAAC,CAAA;AAChG,GAAA;AAEA,EAAA,OAAOQ,KAAK,CAAA;AACd,CAAC,CAAA;AAED,MAAME,gBAAgB,GAAIzE,SAAS,IAAK;EACtC,MAAM;AAAEmB,IAAAA,SAAAA;AAAU,GAAC,GAAGpB,sBAAoB,CAACC,SAAS,CAAC,CAAA;EAErD,OAAO0E,OAAO,CAAC,MAAM;IACnB,IAAI,CAACvD,SAAS,IAAI,OAAOA,SAAS,KAAK,QAAQ,EAAE,OAAO,IAAI,CAAA;IAE5D,MAAMwD,WAAW,GAAGN,QAAQ,CAAClC,SAAS,CAAChB,SAAS,CAAC,CAAC,CAAA;AAElD,IAAA,oBACE3B,GAAA,CAAA,KAAA,EAAA;AAAKK,MAAAA,SAAS,EAAC,iBAAiB;MAAAP,QAAA,EAC7BqF,WAAW,CAAChD,GAAG,CAAC,CAACC,IAAI,EAAEgD,KAAK,kBAC3BpF,GAAA,CAAA,KAAA,EAAA;AAAsBK,QAAAA,SAAS,EAAC,oBAAoB;QAAAP,QAAA,eAClDE,GAAA,CAACP,WAAS,EAAA;UACRG,KAAK,EAAEwC,IAAI,CAACxC,KAAM;UAClBC,SAAS,EAAEuC,IAAI,CAACvC,SAAU;UAC1BE,QAAQ,EAAEqC,IAAI,CAACrC,QAAS;UAAAD,QAAA,EAEvBsC,IAAI,CAACwC,WAAAA;SACG,CAAA;OAPHxC,EAAAA,IAAI,CAACxC,KASV,CACN,CAAA;AAAC,KACC,CAAC,CAAA;AAEV,GAAC,EAAE,CAAC+B,SAAS,CAAC,CAAC,CAAA;AACjB,CAAC,CAAA;AAED,yBAAesD,gBAAgB;;ACtH/B,MAAMI,kBAAkB,GAAI1F,IAAA,IAQtB;EAAA,IARuB;IAC3B2F,QAAQ;IACRC,IAAI;IACJC,QAAQ;AACR5F,IAAAA,KAAK,GAAG,kBAAkB;IAC1B6F,MAAM;AACNC,IAAAA,UAAU,GAAG,QAAQ;AACrBC,IAAAA,KAAK,GAAG,GAAA;AACV,GAAC,GAAAhG,IAAA,CAAA;EACC,MAAM;AAAEmB,IAAAA,OAAAA;AAAQ,GAAC,GAAG8E,GAAG,CAACC,MAAM,EAAE,CAAA;EAChC,MAAM,CAACC,IAAI,EAAEC,OAAO,CAAC,GAAGpF,QAAQ,CAAC,EAAE,CAAC,CAAA;EAEpC,MAAM;AACJqF,IAAAA,eAAe,EAAEC,WAAW;IAC5BnF,OAAO,EAAEoF,aAAa,GAAG,aAAa;AACtCC,IAAAA,OAAO,EAAEC,IAAI;AACbC,IAAAA,YAAY,EAAEC,WAAAA;AAChB,GAAC,GAAGd,QAAQ,IAAI,EAAE,CAAA;EAElB,MAAMe,QAAQ,GAAGA,MAAM;AACrB,IAAA,MAAMC,WAAW,GAAGV,IAAI,CAACW,IAAI,EAAE,CAAA;IAC/B,IAAI,CAACD,WAAW,EAAE;AAChB1F,MAAAA,OAAO,CAACG,KAAK,CAAC,6BAA6B,CAAC,CAAA;AAC5C,MAAA,OAAA;AACF,KAAA;IACAsE,IAAI,CAACiB,WAAW,CAAC,CAAA;GAClB,CAAA;AAED,EAAA,MAAME,WAAW,GAAGT,WAAW,gBAC7BjG,GAAA,CAAC2G,KAAK,EAAA;IACJ7F,OAAO,EAAA,EAAA,CAAAR,MAAA,CAAK4F,aAAa,uBAAA5F,MAAA,CAAoBgG,WAAW,CAAG;AAC3DM,IAAAA,IAAI,EAAC,SAAS;IACdC,QAAQ,EAAA,IAAA;AAAA,GACT,CAAC,gBAEF7G,GAAA,CAAC2G,KAAK,EAAA;AAAC7F,IAAAA,OAAO,EAAEoF,aAAc;AAACU,IAAAA,IAAI,EAAC,SAAS;IAACC,QAAQ,EAAA,IAAA;AAAA,GAAE,CACzD,CAAA;AAED,EAAA,MAAMC,aAAa,GAAGb,WAAW,GAAG,YAAY,GAAG,cAAc,CAAA;EAEjE,oBACEjG,GAAA,CAAC+G,KAAK,EAAA;AACJnH,IAAAA,KAAK,EAAEA,KAAM;AACboH,IAAAA,IAAI,EAAE,IAAK;AACX1B,IAAAA,QAAQ,EAAEA,QAAS;AACnBC,IAAAA,IAAI,EAAEgB,QAAS;IACfd,MAAM,EAAEA,MAAM,IAAIqB,aAAc;AAChCpB,IAAAA,UAAU,EAAEA,UAAW;AACvBC,IAAAA,KAAK,EAAEA,KAAM;AACbsB,IAAAA,YAAY,EAAE,KAAM;AACpBC,IAAAA,QAAQ,EAAE,KAAM;AAChBC,IAAAA,iBAAiB,EAAE;AAAEC,MAAAA,QAAQ,EAAE,CAACnB,WAAAA;KAAc;IAAAnG,QAAA,eAE9CI,IAAA,CAACmH,IAAI,EAAA;AACHC,MAAAA,IAAI,EAAC,WAAW;AAChBC,MAAAA,QAAQ,EAAE;AAAEC,QAAAA,IAAI,EAAE,CAAA;OAAI;AACtBC,MAAAA,UAAU,EAAE;AAAED,QAAAA,IAAI,EAAE,EAAA;OAAK;AACzBE,MAAAA,YAAY,EAAC,KAAK;AAAA5H,MAAAA,QAAA,gBAElBE,GAAA,CAAA,KAAA,EAAA;AAAK2H,QAAAA,KAAK,EAAE;AAAEC,UAAAA,YAAY,EAAE,EAAA;SAAK;AAAA9H,QAAAA,QAAA,EAAE4G,WAAAA;AAAW,OAAM,CAAC,eACrD1G,GAAA,CAACqH,IAAI,CAACQ,IAAI,EAAA;AAACC,QAAAA,KAAK,EAAC,cAAc;QAACC,QAAQ,EAAA,IAAA;QAAAjI,QAAA,eACtCE,GAAA,CAACgI,KAAK,EAAA;AAACvD,UAAAA,KAAK,EAAE2B,IAAK;UAAC6B,QAAQ,EAAA,IAAA;SAAE,CAAA;AAAC,OACtB,CAAC,eACZjI,GAAA,CAACqH,IAAI,CAACQ,IAAI,EAAA;AAACC,QAAAA,KAAK,EAAC,aAAa;QAACC,QAAQ,EAAA,IAAA;AAAAjI,QAAAA,QAAA,eACrCE,GAAA,CAACgI,KAAK,CAACE,QAAQ,EAAA;AACbzD,UAAAA,KAAK,EAAEqB,IAAK;UACZqC,QAAQ,EAAGC,CAAC,IAAKrC,OAAO,CAACqC,CAAC,CAACC,MAAM,CAAC5D,KAAK,CAAE;AACzC6D,UAAAA,QAAQ,EAAE;AAAEC,YAAAA,OAAO,EAAE,CAAC;AAAEC,YAAAA,OAAO,EAAE,CAAA;WAAI;AACrCC,UAAAA,WAAW,EAAC,wBAAA;SACb,CAAA;AAAC,OACO,CAAC,CAAA;KACR,CAAA;AAAC,GACF,CAAC,CAAA;AAEZ,CAAC,CAAA;AAED,2BAAepD,kBAAkB;;AC3EjC,MAAMqD,YAAY,GAAG;AACnB1C,EAAAA,eAAe,EAAE,KAAK;AAAG;AACzBG,EAAAA,OAAO,EAAE,EAAE;AAAc;AACzBrF,EAAAA,OAAO,EAAE,aAAa;AAAG;EACzBuF,YAAY,EAAE,EAAE;AAClB,CAAC,CAAA;AAEYsC,MAAAA,OAAO,GAAIC,OAAO,IAAK;EACjC,MAAM;IACLC,aAAa;IACbC,SAAS;AACTC,IAAAA,eAAe,GAAGL,YAAY;AAC9BM,IAAAA,aAAa,GAAG,IAAA;AAClB,GAAC,GAAGJ,OAAO,IAAI,EAAE,CAAA;EAEjB,MAAM,CAACK,UAAU,EAAEC,aAAa,CAAC,GAAGpI,OAAO,CAACqI,UAAU,EAAE,CAAA;EACxD,MAAM,CAACC,SAAS,EAAEC,YAAY,CAAC,GAAG1I,QAAQ,CAAC,KAAK,CAAC,CAAC;EAClD,MAAM,CAAC6E,QAAQ,EAAE8D,WAAW,CAAC,GAAG3I,QAAQ,CAACoI,eAAe,CAAC,CAAA;EACzD,MAAM,CAACQ,YAAY,EAAEC,eAAe,CAAC,GAAG7I,QAAQ,CAAC,KAAK,CAAC,CAAA;EACvD,MAAM,CAAC8I,OAAO,EAAEC,UAAU,CAAC,GAAG/I,QAAQ,CAAC,KAAK,CAAC,CAAA;EAE7C,MAAMgJ,SAAS,GAAG9I,WAAW,CAAC,MAAMwI,YAAY,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC,CAAA;EAC3D,MAAMO,UAAU,GAAG/I,WAAW,CAAC,MAAMwI,YAAY,CAAC,KAAK,CAAC,EAAE,EAAE,CAAC,CAAA;AAE7DQ,EAAAA,SAAS,CAAC,MAAM;IACd,eAAeC,YAAYA,GAAG;MAC5B,IAAI;QACFJ,UAAU,CAAC,IAAI,CAAC,CAAA;AAChB,QAAA,MAAMK,MAAM,GAAG,MAAMlB,aAAa,EAAE,CAAA;AACpC,QAAA,IAAIkB,MAAM,KAANA,IAAAA,IAAAA,MAAM,eAANA,MAAM,CAAEC,QAAQ,EAAE;AACpB,UAAA,MAAMA,QAAQ,GAAGD,MAAM,CAACC,QAAQ,CAAA;UAChCV,WAAW,CAACU,QAAQ,CAAC,CAAA;AACrBR,UAAAA,eAAe,CAACQ,QAAQ,CAAChE,eAAe,CAAC,CAAA;AACzC,UAAA,IAAIgD,aAAa,EAAE;YACjBgB,QAAQ,CAAChE,eAAe,GAAG4D,UAAU,EAAE,GAAGD,SAAS,EAAE,CAAA;AACvD,WAAA;AACF,SAAA;OACD,CAAC,OAAO1I,KAAK,EAAE;AACdC,QAAAA,OAAO,CAACD,KAAK,CAAC,4BAA4B,EAAEA,KAAK,CAAC,CAAA;AACpD,OAAC,SAAS;QACRyI,UAAU,CAAC,KAAK,CAAC,CAAA;AACnB,OAAA;AACF,KAAA;AAEAI,IAAAA,YAAY,EAAE,CAAA;GACf,EAAE,CAACjB,aAAa,EAAEG,aAAa,EAAEW,SAAS,EAAEC,UAAU,CAAC,CAAC,CAAA;AAEzD,EAAA,MAAMK,IAAI,GAAG,MAAOnE,IAAI,IAAK;IAC3B,IAAI;MACF4D,UAAU,CAAC,IAAI,CAAC,CAAA;AAChB,MAAA,MAAMK,MAAM,GAAG,MAAMjB,SAAS,CAAC;AAC7BlC,QAAAA,IAAI,EAAE,kBAAkB;AACxBoD,QAAAA,QAAQ,EAAE;AACRE,UAAAA,EAAE,EAAE,SAAS;AACbC,UAAAA,YAAY,EAAErE,IAAAA;AAChB,SAAA;AACF,OAAC,CAAC,CAAA;AACF,MAAA,IAAIiE,MAAM,KAANA,IAAAA,IAAAA,MAAM,eAANA,MAAM,CAAEC,QAAQ,EAAE;AACpB,QAAA,MAAMA,QAAQ,GAAGD,MAAM,CAACC,QAAQ,CAAA;AAChC;AACA,QAAA,IAAIA,QAAQ,KAARA,IAAAA,IAAAA,QAAQ,eAARA,QAAQ,CAAEhE,eAAe,EAAE;UAC7BwD,eAAe,CAAC,IAAI,CAAC,CAAA;UACrBF,WAAW,CAACU,QAAQ,CAAC,CAAA;AACrBJ,UAAAA,UAAU,EAAE,CAAA;AACd,SAAC,MAAM;UACLX,UAAU,CAAChI,KAAK,CAAC+I,QAAQ,CAACI,iBAAiB,IAAI,sBAAsB,CAAC,CAAA;AACxE,SAAA;AACF,OAAA;KACD,CAAC,OAAOnJ,KAAK,EAAE;AACdC,MAAAA,OAAO,CAACD,KAAK,CAAC,sBAAsB,EAAEA,KAAK,CAAC,CAAA;AAC9C,KAAC,SAAS;MACRyI,UAAU,CAAC,KAAK,CAAC,CAAA;AACnB,KAAA;GACD,CAAA;AAED,EAAA,MAAMW,KAAK,GAAGjB,SAAS,iBACrBlJ,IAAA,CAAAC,QAAA,EAAA;IAAAL,QAAA,EAAA,cACEE,GAAA,CAACqF,oBAAkB,EAAA;AACjBE,MAAAA,IAAI,EAAE0E,IAAK;AACX3E,MAAAA,QAAQ,EAAEsE,UAAW;AACrBpE,MAAAA,QAAQ,EAAEA,QAAAA;KACX,CAAC,EACD0D,aAAa,CAAA;AAAA,GACd,CACH,CAAA;EAED,OAAO;AACLoB,IAAAA,SAAS,EAAED,KAAK;AAChBE,IAAAA,aAAa,EAAEZ,SAAS;AACxBa,IAAAA,cAAc,EAAEZ,UAAU;IAC1BL,YAAY;IACZ/D,QAAQ;AACRiE,IAAAA,OAAAA;GACD,CAAA;AACH;;AC5FA,MAAMgB,UAAU,GAAG9K,IAAA,IASb;EAAA,IATc;AAClB+K,IAAAA,SAAS,GAAG,EAAE;IACdC,WAAW;IACXC,aAAa;IACbC,cAAc;IACdC,aAAa;AACbC,IAAAA,eAAe,GAAG,0BAA0B;AAC5CC,IAAAA,mBAAmB,GAAG,IAAI;AAC1BC,IAAAA,qBAAqB,GAAG,IAAA;AAC1B,GAAC,GAAAtL,IAAA,CAAA;EACC,MAAM,CAACuL,UAAU,EAAEC,aAAa,CAAC,GAAGxK,QAAQ,CAAC,KAAK,CAAC,CAAA;EACnD,MAAM,CAACyK,QAAQ,EAAEC,WAAW,CAAC,GAAG1K,QAAQ,CAAC7B,SAAS,CAAC,CAAC;AACpD,EAAA,MAAMwM,QAAQ,GAAGC,MAAM,CAAC,IAAI,CAAC,CAAA;EAC7B,MAAM,CAACC,aAAa,EAAEC,gBAAgB,CAAC,GAAG9K,QAAQ,CAAC,MAAM,CAAC,CAAC;AAC3D,EAAA,MAAM+K,mBAAmB,GAAGH,MAAM,CAAC,KAAK,CAAC,CAAC;EAC1C,MAAM,CAACI,cAAc,EAAEC,iBAAiB,CAAC,GAAGjL,QAAQ,CAAC,CAAC,CAAC,CAAA;;AAEvD;EACA,MAAMkL,iBAAiB,GAAGN,MAAM,CAACO,KAAK,CAACC,WAAW,CAACC,MAAM,EAAE,CAAC,CAAA;EAC5D,MAAMC,iBAAiB,GAAGV,MAAM,CAACO,KAAK,CAACC,WAAW,CAACC,MAAM,EAAE,CAAC,CAAA;AAE5D,EAAA,MAAME,UAAU,GAAGA,MAAMf,aAAa,CAAC,IAAI,CAAC,CAAA;AAC5C,EAAA,MAAMgB,UAAU,GAAGA,MAAMhB,aAAa,CAAC,KAAK,CAAC,CAAA;;AAE7C;AACA;AACA,EAAA,MAAMiB,cAAc,GAAGlH,OAAO,CAAC,MAAM;AACnC,IAAA,MAAMmH,WAAW,GAAG3B,SAAS,CAAC4B,IAAI,CAAClK,IAAI,IAAIA,IAAI,CAACmK,GAAG,KAAK,UAAU,CAAC,CAAA;AACnE,IAAA,MAAMC,SAAS,GAAG9B,SAAS,CAAC4B,IAAI,CAAClK,IAAI,IAAIA,IAAI,CAACmK,GAAG,KAAK,QAAQ,CAAC,CAAA;IAE/D,IAAIF,WAAW,IAAIG,SAAS,EAAE;AAC5B,MAAA,OAAO9B,SAAS,CAAA;AAClB,KAAA;AAEA,IAAA,MAAM+B,YAAY,GAAG/B,SAAS,CAACgC,SAAS,CAACtK,IAAI,IAAIA,IAAI,CAACmK,GAAG,KAAK,SAAS,CAAC,CAAA;;AAExE;AACA,IAAA,IAAIE,YAAY,KAAK,CAAC,CAAC,EAAE;MACvB,MAAME,UAAU,GAAG,EAAE,CAAA;MACrB,IAAIjC,SAAS,CAAC7L,MAAM,GAAG,CAAC,EAAE8N,UAAU,CAAC3H,IAAI,CAAC;AAAE4B,QAAAA,IAAI,EAAE,SAAA;AAAU,OAAC,CAAC,CAAA;AAC9D,MAAA,IAAI,CAACyF,WAAW,EAAEM,UAAU,CAAC3H,IAAI,CAAC;AAAEuH,QAAAA,GAAG,EAAE,UAAU;AAAEzE,QAAAA,KAAK,EAAE,sBAAA;AAAuB,OAAC,CAAC,CAAA;AACrF,MAAA,IAAI,CAAC0E,SAAS,EAAEG,UAAU,CAAC3H,IAAI,CAAC;AAAEuH,QAAAA,GAAG,EAAE,QAAQ;AAAEzE,QAAAA,KAAK,EAAE,iBAAA;AAAkB,OAAC,CAAC,CAAA;AAC5E,MAAA,OAAO,CAAC,GAAG4C,SAAS,EAAE,GAAGiC,UAAU,CAAC,CAAA;AACtC,KAAA;;AAEA;IACA,MAAMC,aAAa,GAAGlC,SAAS,CAACmC,KAAK,CAAC,CAAC,EAAEJ,YAAY,CAAC,CAAA;AACtD,IAAA,MAAMK,WAAW,GAAGpC,SAAS,CAAC+B,YAAY,CAAC,CAAA;IAC3C,MAAMM,YAAY,GAAGrC,SAAS,CAACmC,KAAK,CAACJ,YAAY,GAAG,CAAC,CAAC,CAAA;IAEtD,MAAMO,aAAa,GAAG,EAAE,CAAA;;AAExB;AACA,IAAA,IAAIJ,aAAa,CAAC/N,MAAM,GAAG,CAAC,IAAI+N,aAAa,CAACA,aAAa,CAAC/N,MAAM,GAAG,CAAC,CAAC,CAAC+H,IAAI,KAAK,SAAS,EAAE;MAC1FoG,aAAa,CAAChI,IAAI,CAAC;AAAE4B,QAAAA,IAAI,EAAE,SAAA;AAAU,OAAC,CAAC,CAAA;AACzC,KAAA;;AAEA;AACA,IAAA,IAAI,CAACyF,WAAW,EAAEW,aAAa,CAAChI,IAAI,CAAC;AAAEuH,MAAAA,GAAG,EAAE,UAAU;AAAEzE,MAAAA,KAAK,EAAE,sBAAA;AAAuB,KAAC,CAAC,CAAA;AACxF,IAAA,IAAI,CAAC0E,SAAS,EAAEQ,aAAa,CAAChI,IAAI,CAAC;AAAEuH,MAAAA,GAAG,EAAE,QAAQ;AAAEzE,MAAAA,KAAK,EAAE,iBAAA;AAAkB,KAAC,CAAC,CAAA;;AAE/E;IACAkF,aAAa,CAAChI,IAAI,CAAC;AAAE4B,MAAAA,IAAI,EAAE,SAAA;AAAU,KAAC,CAAC,CAAA;IAEvC,OAAO,CAAC,GAAGgG,aAAa,EAAE,GAAGI,aAAa,EAAEF,WAAW,EAAE,GAAGC,YAAY,CAAC,CAAA;AAC3E,GAAC,EAAE,CAACrC,SAAS,CAAC,CAAC,CAAA;EAEf,MAAMuC,eAAe,GAAGC,KAAA,IAAa;IAAA,IAAZ;AAAEX,MAAAA,GAAAA;AAAI,KAAC,GAAAW,KAAA,CAAA;AAC9B,IAAA,QAAQX,GAAG;AACT,MAAA,KAAK,UAAU;AACbY,QAAAA,UAAU,EAAE,CAAA;AACZ,QAAA,OAAA;AACF,MAAA,KAAK,QAAQ;AACXC,QAAAA,QAAQ,EAAE,CAAA;AACV,QAAA,OAAA;AACF,MAAA;AACE;AACA,QAAA,IAAIzC,WAAW,EAAE;UACfA,WAAW,CAAC4B,GAAG,CAAC,CAAA;AAClB,SAAC,MAAM;AACLrL,UAAAA,OAAO,CAACmM,IAAI,CAAA,oBAAA,CAAA/M,MAAA,CAAsBiM,GAAG,iCAA8B,CAAC,CAAA;AACtE,SAAA;AACJ,KAAA;GACD,CAAA;AAED,EAAA,MAAMY,UAAU,GAAG,YAAY;IAC7B,IAAI,CAACvC,aAAa,EAAE;AAClB1J,MAAAA,OAAO,CAACD,KAAK,CAAC,2DAA2D,CAAC,CAAA;AAC1EH,MAAAA,OAAO,CAACG,KAAK,CAAC,uCAAuC,CAAC,CAAA;AACtD,MAAA,OAAA;AACF,KAAA;IAEA,IAAI;AACF,MAAA,MAAMqM,GAAG,GAAG,MAAM1C,aAAa,EAAE,CAAA;AAEjC,MAAA,IAAI0C,GAAG,CAACjK,MAAM,KAAK,GAAG,EAAE;QACtB,MAAM,IAAIkK,KAAK,CAAAjN,0BAAAA,CAAAA,MAAA,CAA4BgN,GAAG,CAACjK,MAAM,CAAE,CAAC,CAAA;AAC1D,OAAA;;AAEA;MACA,IAAImK,QAAQ,GAAG,eAAe,CAAA;MAC9B,MAAMC,kBAAkB,GAAGH,GAAG,CAACI,OAAO,CAAC,qBAAqB,CAAC,IAAI,EAAE,CAAA;;AAEnE;AACA,MAAA,IAAID,kBAAkB,EAAE;AACtB,QAAA,MAAME,aAAa,GAAGF,kBAAkB,CAACG,KAAK,CAAC,8BAA8B,CAAC,CAAA;QAC9E,IAAID,aAAa,aAAbA,aAAa,KAAA,KAAA,CAAA,IAAbA,aAAa,CAAG,CAAC,CAAC,EAAE;UACtBH,QAAQ,GAAGK,kBAAkB,CAACF,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC;AAClD,SAAA;AACF,OAAA;;AAEA;MACA,MAAMG,IAAI,GAAG,IAAIC,IAAI,CAAC,CAACT,GAAG,CAAC7L,IAAI,CAAC,EAAE;AAAEmF,QAAAA,IAAI,EAAE,0BAAA;AAA2B,OAAC,CAAC,CAAA;MACvE,MAAMoH,GAAG,GAAGC,MAAM,CAACC,GAAG,CAACC,eAAe,CAACL,IAAI,CAAC,CAAA;;AAE5C;AACA,MAAA,MAAMM,IAAI,GAAGC,QAAQ,CAACC,aAAa,CAAC,GAAG,CAAC,CAAA;AACxCF,MAAAA,IAAI,CAACzG,KAAK,CAAC4G,OAAO,GAAG,MAAM,CAAA;MAC3BH,IAAI,CAACI,IAAI,GAAGR,GAAG,CAAA;MACfI,IAAI,CAAC/F,MAAM,GAAG,QAAQ,CAAA;MACtB+F,IAAI,CAACK,QAAQ,GAAGjB,QAAQ,CAAA;AACxBa,MAAAA,QAAQ,CAACK,IAAI,CAACC,WAAW,CAACP,IAAI,CAAC,CAAA;MAC/BA,IAAI,CAACQ,KAAK,EAAE,CAAA;;AAEZ;AACAR,MAAAA,IAAI,CAACS,UAAU,CAACC,WAAW,CAACV,IAAI,CAAC,CAAA;AACjCH,MAAAA,MAAM,CAACC,GAAG,CAACa,eAAe,CAACf,GAAG,CAAC,CAAA;KAChC,CAAC,OAAO/M,KAAK,EAAE;AACdC,MAAAA,OAAO,CAACD,KAAK,CAAC,kBAAkB,EAAEA,KAAK,CAAC,CAAA;AACxCH,MAAAA,OAAO,CAACG,KAAK,CAAC,iBAAiB,CAAC,CAAA;AAClC,KAAA;GACD,CAAA;EAED,MAAMmM,QAAQ,GAAGA,MAAM;AACrB,IAAA,IAAI9B,QAAQ,KAARA,IAAAA,IAAAA,QAAQ,eAARA,QAAQ,CAAEjJ,OAAO,EAAE;AACrBiJ,MAAAA,QAAQ,CAACjJ,OAAO,CAACuM,KAAK,EAAE,CAAA;AAC1B,KAAA;GACD,CAAA;AAED,EAAA,MAAMI,aAAa,GAAG,MAAO3N,KAAK,IAAK;IACrC,IAAI,CAACwJ,cAAc,EAAE;AACnB3J,MAAAA,OAAO,CAACD,KAAK,CAAC,0DAA0D,CAAC,CAAA;AACzEH,MAAAA,OAAO,CAACG,KAAK,CAAC,qCAAqC,CAAC,CAAA;AACpD,MAAA,OAAA;AACF,KAAA;IAEA,IAAI;AAAA,MAAA,IAAAgO,mBAAA,CAAA;AACF,MAAA,MAAMC,IAAI,GAAA,CAAAD,mBAAA,GAAG5N,KAAK,CAACgH,MAAM,CAAC8G,KAAK,cAAAF,mBAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAlBA,mBAAA,CAAqB,CAAC,CAAC,CAAA;MACpC,IAAI,CAACC,IAAI,EAAE,OAAA;AAEXhD,MAAAA,UAAU,EAAE,CAAA;MACZT,gBAAgB,CAAC,cAAc,CAAC,CAAA;AAChCG,MAAAA,iBAAiB,CAAC,CAAC,CAAC,CAAC;;AAErB,MAAA,MAAMwD,QAAQ,GAAG,IAAIC,QAAQ,EAAE,CAAA;AAC/BD,MAAAA,QAAQ,CAACE,MAAM,CAAC,MAAM,EAAEJ,IAAI,CAAC,CAAA;MAE7BxD,mBAAmB,CAACrJ,OAAO,GAAG,KAAK,CAAA;;AAEnC;MACAwI,cAAc,CAACuE,QAAQ,EAAE;QACvBG,gBAAgB,EAAGC,aAAa,IAAK;AACnC,UAAA,MAAMC,gBAAgB,GAAGtQ,IAAI,CAACuQ,KAAK,CAChCF,aAAa,CAACG,MAAM,GAAG,GAAG,GAAIH,aAAa,CAAC1L,KAC/C,CAAC,CAAA;AACD8H,UAAAA,iBAAiB,CAAC6D,gBAAgB,CAAC,CAAC;;UAEpC,IAAIA,gBAAgB,KAAK,GAAG,EAAE;YAC5B/D,mBAAmB,CAACrJ,OAAO,GAAG,IAAI,CAAA;AAClC;AACAuN,YAAAA,UAAU,CAAC,MAAM;cACfvE,WAAW,CAACJ,qBAAqB,CAAC,CAAA;cAClCQ,gBAAgB,CAAC,cAAc,CAAC,CAAA;aACjC,EAAET,mBAAmB,CAAC,CAAA;AACzB,WAAA;SACD;AACD6E,QAAAA,WAAW,EAAEhE,iBAAiB,CAACxJ,OAAO,CAACyN,KAAAA;AACzC,OAAC,CAAC,CAAA;;AAEF;MACA,IAAIxE,QAAQ,CAACjJ,OAAO,EAAEiJ,QAAQ,CAACjJ,OAAO,CAACoC,KAAK,GAAG,EAAE,CAAA;KAClD,CAAC,OAAOxD,KAAK,EAAE;AACd,MAAA,IAAI,CAAC6K,KAAK,CAACiE,QAAQ,CAAC9O,KAAK,CAAC,EAAE;AAC1BC,QAAAA,OAAO,CAACD,KAAK,CAAC,eAAe,EAAEA,KAAK,CAAC,CAAA;AACrCH,QAAAA,OAAO,CAACG,KAAK,CAAC,eAAe,CAAC,CAAA;AAChC,OAAA;AACA+O,MAAAA,aAAa,EAAE,CAAA;AACjB,KAAA;GACD,CAAA;AAED,EAAA,MAAMC,kBAAkB,GAAG,YAAY;IACrC,IAAI,CAACnF,aAAa,EAAE;AAClB5J,MAAAA,OAAO,CAACD,KAAK,CAAC,wDAAwD,CAAC,CAAA;AACvE+O,MAAAA,aAAa,EAAE,CAAA;AACf,MAAA,OAAA;AACF,KAAA;IAEA,IAAI;AACF,MAAA,MAAME,QAAQ,GAAG,MAAMpF,aAAa,CAAC;AACnC+E,QAAAA,WAAW,EAAE5D,iBAAiB,CAAC5J,OAAO,CAACyN,KAAAA;AACzC,OAAC,CAAC,CAAA;MAEF,IAAI,CAAAI,QAAQ,KAAA,IAAA,IAARA,QAAQ,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAARA,QAAQ,CAAE7M,MAAM,MAAK,GAAG,EAAE;QAC5B,MAAM;UAAEyC,IAAI;AAAEhF,UAAAA,OAAO,EAAEoF,aAAAA;SAAe,GAAGgK,QAAQ,CAACzO,IAAI,CAAA;;AAEtD;AACA,QAAA,QAAQqE,IAAI;AACV,UAAA,KAAK,GAAG;AAAE;AACRhF,YAAAA,OAAO,CAACqP,OAAO,CAACjK,aAAa,EAAE,GAAG,EAAE,MAAM;AACxC8J,cAAAA,aAAa,EAAE,CAAA;AACf/B,cAAAA,MAAM,CAACmC,QAAQ,CAACC,MAAM,EAAE,CAAA;AAC1B,aAAC,CAAC,CAAA;AACF,YAAA,MAAA;AAEF,UAAA,KAAK,GAAG;AAAE;AACR;AACA,YAAA,MAAA;UACF,KAAK,GAAG,CAAC;AACT,UAAA,KAAK,GAAG;AAAE;AACRvP,YAAAA,OAAO,CAACG,KAAK,CAACiF,aAAa,CAAC,CAAA;AAC5B8J,YAAAA,aAAa,EAAE,CAAA;AACf,YAAA,MAAA;AAEF,UAAA;AACE,YAAA,MAAA;AACJ,SAAA;AACF,OAAA;KACD,CAAC,OAAO/O,KAAK,EAAE;AACd,MAAA,IAAI6K,KAAK,CAACiE,QAAQ,CAAC9O,KAAK,CAAC,EAAE;AACzBC,QAAAA,OAAO,CAAC7B,GAAG,CAAC,yBAAyB,CAAC,CAAA;AACxC,OAAC,MAAM;AACL6B,QAAAA,OAAO,CAACD,KAAK,CAAC,sBAAsB,EAAEA,KAAK,CAAC,CAAA;AAC5C;AACF,OAAA;AACF,KAAA;GACD,CAAA;EAED,MAAM+O,aAAa,GAAGA,MAAM;AAC1B;AACAnE,IAAAA,iBAAiB,CAACxJ,OAAO,CAACiO,MAAM,CAAC,oBAAoB,CAAC,CAAA;AACtDrE,IAAAA,iBAAiB,CAAC5J,OAAO,CAACiO,MAAM,CAAC,oBAAoB,CAAC,CAAA;IAEtDzE,iBAAiB,CAACxJ,OAAO,GAAGyJ,KAAK,CAACC,WAAW,CAACC,MAAM,EAAE,CAAA;IACtDC,iBAAiB,CAAC5J,OAAO,GAAGyJ,KAAK,CAACC,WAAW,CAACC,MAAM,EAAE,CAAA;;AAEtD;IACAX,WAAW,CAACvM,SAAS,CAAC,CAAA;IACtB2M,gBAAgB,CAAC,MAAM,CAAC,CAAA;AACxBU,IAAAA,UAAU,EAAE,CAAA;GACb,CAAA;;AAED;AACAoE,EAAAA,WAAW,CAACN,kBAAkB,EAAE7E,QAAQ,CAAC,CAAA;;AAEzC;AACAvB,EAAAA,SAAS,CAAC,MAAM;AACd,IAAA,OAAO,MAAM;AACXgC,MAAAA,iBAAiB,CAACxJ,OAAO,CAACiO,MAAM,EAAE,CAAA;AAClCrE,MAAAA,iBAAiB,CAAC5J,OAAO,CAACiO,MAAM,EAAE,CAAA;KACnC,CAAA;GACF,EAAE,EAAE,CAAC,CAAA;EAEN,MAAME,cAAc,gBAClBtQ,IAAA,CAAA,KAAA,EAAA;IAAAJ,QAAA,EAAA,cACEE,GAAA,CAACyQ,QAAQ,EAAA;AACPC,MAAAA,IAAI,EAAE;AACJ3L,QAAAA,KAAK,EAAEqH,cAAc;AACrBuE,QAAAA,OAAO,EAAE1D,eAAAA;OACT;MACF2D,OAAO,EAAE,CAAC,OAAO,CAAE;AAAA9Q,MAAAA,QAAA,eAEnBE,GAAA,CAAA,GAAA,EAAA;AAAG2Q,QAAAA,OAAO,EAAGvI,CAAC,IAAKA,CAAC,CAACyI,cAAc,EAAG;AAAA/Q,QAAAA,QAAA,eACpCE,GAAA,CAAA,GAAA,EAAA;AAAGK,UAAAA,SAAS,EAAC,+DAAA;SAAmE,CAAA;OAC/E,CAAA;KACK,CAAC,eACXL,GAAA,CAAA,OAAA,EAAA;AACE8Q,MAAAA,GAAG,EAAExF,QAAS;AACd1E,MAAAA,IAAI,EAAC,MAAM;AACXuB,MAAAA,QAAQ,EAAE6G,aAAc;AACxB3O,MAAAA,SAAS,EAAC,QAAQ;AAClB0Q,MAAAA,MAAM,EAAEhG,eAAAA;AAAgB,KACzB,CAAC,eACF/K,GAAA,CAACgR,IAAI,EAAA;AACHC,MAAAA,QAAQ,EAAE/F,UAAW;MACrBgG,SAAS,eAAElR,GAAA,CAACmR,eAAe,EAAA;AAACxJ,QAAAA,KAAK,EAAE;AAAEyJ,UAAAA,QAAQ,EAAE,EAAA;SAAK;QAACC,IAAI,EAAA,IAAA;AAAA,OAAE,CAAE;AAC7DC,MAAAA,GAAG,EACD9F,aAAa,KAAK,cAAc,GAAAlL,EAAAA,CAAAA,MAAA,CACzBkL,aAAa,EAAAlL,GAAAA,CAAAA,CAAAA,MAAA,CAAIqL,cAAc,SAClCH,aACL;AACD+F,MAAAA,IAAI,EAAC,OAAO;MACZC,UAAU,EAAA,IAAA;AAAA,KACX,CAAC,CAAA;AAAA,GACC,CACN,CAAA;EAED,OAAO,CAAChB,cAAc,CAAC,CAAA;AACzB,CAAC,CAAA;AAED,mBAAe/F,UAAU;;AC7SzB,MAAMgH,mBAAmB,GAAG,YAOjB;EAAA,IAPkB;IAC3BC,UAAU;IACVC,SAAS;AACTC,IAAAA,YAAY,GAAG,SAAS;AACxBlM,IAAAA,UAAU,GAAG,IAAI;AACjBD,IAAAA,MAAM,GAAG,KAAK;AACdoM,IAAAA,GAAAA;AACF,GAAC,GAAAjT,SAAA,CAAAC,MAAA,GAAAD,CAAAA,IAAAA,SAAA,CAAAE,CAAAA,CAAAA,KAAAA,SAAA,GAAAF,SAAA,CAAG,CAAA,CAAA,GAAA,EAAE,CAAA;EACJ,MAAM;AAAEyL,IAAAA,KAAK,EAAEyH,SAAAA;AAAU,GAAC,GAAGlM,GAAG,CAACC,MAAM,EAAE,CAAA;AAEzC,EAAA,MAAMkM,QAAQ,GAAGlR,WAAW,CAAEmR,MAAM,IAAK;IACvC,IAAI;MACFF,SAAS,CAACG,OAAO,CAAC;AAChBC,QAAAA,IAAI,eAAElS,GAAA,CAACmS,uBAAuB,IAAE,CAAC;QACjCvS,KAAK,EAAA,EAAA,CAAAU,MAAA,CAAKsR,YAAY,OAAAtR,MAAA,CAAI0R,MAAM,EAAG,GAAA,CAAA;QACnCtM,UAAU;QACVD,MAAM;QACNF,IAAI,EAAEA,MAAM;AACV,UAAA,IAAIyM,MAAM,KAAK,UAAU,IAAIN,UAAU,EAAE;AACvCA,YAAAA,UAAU,EAAE,CAAA;AACd,WAAC,MAAM,IAAIM,MAAM,KAAK,SAAS,IAAIL,SAAS,EAAE;AAC5CA,YAAAA,SAAS,EAAE,CAAA;AACb,WAAA;;AAEA;AACA,UAAA,IAAI,OAAOE,GAAG,KAAK,UAAU,EAAE;AAC7BA,YAAAA,GAAG,EAAE,CAAA;AACP,WAAA;AACF,SAAA;AACF,OAAC,CAAC,CAAA;KACH,CAAC,OAAO5Q,KAAK,EAAE;AACdC,MAAAA,OAAO,CAACD,KAAK,CAAAX,EAAAA,CAAAA,MAAA,CAAI0R,MAAM,CAACI,WAAW,EAAE,EAAYnR,UAAAA,CAAAA,EAAAA,KAAK,CAAC,CAAA;AACzD,KAAA;AACF,GAAC,EAAE,CAAC6Q,SAAS,EAAEF,YAAY,EAAElM,UAAU,EAAED,MAAM,EAAEiM,UAAU,EAAEC,SAAS,CAAC,CAAC,CAAA;AAExE,EAAA,MAAMU,YAAY,GAAGxR,WAAW,CAAC,MAAM,CACrC;AACE0L,IAAAA,GAAG,EAAE,UAAU;AACfzE,IAAAA,KAAK,EAAE,WAAA;AACT,GAAC,EACD;AACEyE,IAAAA,GAAG,EAAE,SAAS;AACdzE,IAAAA,KAAK,EAAE,SAAA;GACR,CACF,EAAE,EAAE,CAAC,CAAA;AAEN,EAAA,MAAMmF,eAAe,GAAGpM,WAAW,CAAClB,IAAA,IAAa;IAAA,IAAZ;AAAE4M,MAAAA,GAAAA;AAAI,KAAC,GAAA5M,IAAA,CAAA;IAC1CoS,QAAQ,CAACxF,GAAG,CAAC,CAAA;AACf,GAAC,EAAE,CAACwF,QAAQ,CAAC,CAAC,CAAA;EAEd,OAAO;IACLrH,SAAS,EAAE2H,YAAY,EAAE;AACzBpF,IAAAA,eAAAA;GACD,CAAA;AACH,CAAC,CAAA;AAED,4BAAewE,mBAAmB;;ACxDlC,MAAMa,iBAAiB,GAAG3S,IAAA,IAA8C;EAAA,IAAA4S,qBAAA,EAAAC,oBAAA,CAAA;EAAA,IAA7C;IAAEC,MAAM;IAAEC,UAAU;AAAEC,IAAAA,WAAW,GAAG,EAAC;AAAE,GAAC,GAAAhT,IAAA,CAAA;AACjE;AACA,EAAA,MAAMiT,kBAAkB,GAAG;AACzBtL,IAAAA,IAAI,EAAE;AAAEQ,MAAAA,KAAK,EAAE,MAAM;AAAE+K,MAAAA,OAAO,EAAE,IAAA;KAAM;AACtCC,IAAAA,EAAE,EAAE;AAAEhL,MAAAA,KAAK,EAAE,YAAY;AAAE+K,MAAAA,OAAO,EAAE,IAAA;KAAM;AAC1CE,IAAAA,OAAO,EAAE;AAAEjL,MAAAA,KAAK,EAAE,SAAS;AAAE+K,MAAAA,OAAO,EAAE,IAAA;AAAK,KAAA;GAC5C,CAAA;EAED,MAAMG,iBAAiB,GAAAhS,cAAA,CAAAA,cAAA,CAAAA,cAAA,CAAA,EAAA,EAClB4R,kBAAkB,CAAA,EAClBD,WAAW,CAAA,EAAA,EAAA,EAAA;AACdI,IAAAA,OAAO,EAAE;AACPjL,MAAAA,KAAK,EAAE,SAAS;MAChB+K,OAAO,EAAA,CAAAN,qBAAA,GAAA,CAAAC,oBAAA,GAAEG,WAAW,CAACI,OAAO,MAAAP,IAAAA,IAAAA,oBAAA,KAAnBA,KAAAA,CAAAA,GAAAA,KAAAA,CAAAA,GAAAA,oBAAA,CAAqBK,OAAO,MAAA,IAAA,IAAAN,qBAAA,KAAA,KAAA,CAAA,GAAAA,qBAAA,GAAIK,kBAAkB,CAACG,OAAO,CAACF,OAAO;AAC7E,KAAA;GACD,CAAA,CAAA;EAED,oBACE3S,IAAA,CAAAC,QAAA,EAAA;AAAAL,IAAAA,QAAA,EACEE,cAAAA,GAAA,CAACiT,UAAU,CAACC,KAAK,EAAA;AACfC,MAAAA,KAAK,EAAE,CAAE;AACTxL,MAAAA,KAAK,EAAE;AACL4G,QAAAA,OAAO,EAAE,MAAM;AACf6E,QAAAA,cAAc,EAAE,eAAe;AAC/BC,QAAAA,UAAU,EAAE,QAAQ;AACpBzL,QAAAA,YAAY,EAAE,EAAA;OACd;AAAA9H,MAAAA,QAAA,EAED2S,MAAAA;KACe,CAAC,EAClBC,UAAU,CAACvQ,GAAG,CAAC,CAACmR,KAAK,EAAElO,KAAK,kBAC3BlF,IAAA,CAAA,KAAA,EAAA;MAAAJ,QAAA,EAAA,CACGkT,iBAAiB,CAAC1L,IAAI,CAACuL,OAAO,iBAC7B7S,GAAA,CAACqH,IAAI,CAACQ,IAAI,EAAA;AACRC,QAAAA,KAAK,EAAEkL,iBAAiB,CAAC1L,IAAI,CAACQ,KAAM;AACpCR,QAAAA,IAAI,EAAE,CAACmL,MAAM,EAAErN,KAAK,EAAE,cAAc,CAAE;QAAAtF,QAAA,eAEtCE,GAAA,CAACgI,KAAK,EAAA;UAACZ,QAAQ,EAAA,IAAA;SAAE,CAAA;AAAC,OACT,CACZ,EAEA4L,iBAAiB,CAACF,EAAE,CAACD,OAAO,iBAC3B7S,GAAA,CAACqH,IAAI,CAACQ,IAAI,EAAA;AACRC,QAAAA,KAAK,EAAEkL,iBAAiB,CAACF,EAAE,CAAChL,KAAM;AAClCR,QAAAA,IAAI,EAAE,CAACmL,MAAM,EAAErN,KAAK,EAAE,YAAY,CAAE;AAAAtF,QAAAA,QAAA,eAEpCE,GAAA,CAACgI,KAAK,EAAE,EAAA,CAAA;AAAC,OACA,CACZ,EAEAgL,iBAAiB,CAACD,OAAO,CAACF,OAAO,iBAChC7S,GAAA,CAACqH,IAAI,CAACQ,IAAI,EAAA;AACRC,QAAAA,KAAK,EAAEkL,iBAAiB,CAACD,OAAO,CAACjL,KAAM;AACvCR,QAAAA,IAAI,EAAE,CAACmL,MAAM,EAAErN,KAAK,EAAE,SAAS,CAAE;AAAAtF,QAAAA,QAAA,eAEjCE,GAAA,CAACgI,KAAK,EAAE,EAAA,CAAA;AAAC,OACA,CACZ,EAEA5C,KAAK,GAAGsN,UAAU,CAAC7T,MAAM,GAAG,CAAC,iBAAImB,GAAA,CAACuT,OAAO,EAAA;AAAC5L,QAAAA,KAAK,EAAE;AAAE6L,UAAAA,WAAW,EAAE,EAAA;AAAG,SAAA;AAAE,OAAE,CAAC,CAAA;AAAA,KAAA,EA5BjEF,KAAK,CAACpJ,EAAE,IAAI9E,KA6BjB,CACN,CAAC,CAAA;AAAA,GACF,CAAC,CAAA;AAEP,CAAC,CAAA;AAED,MAAMqO,oBAAoB,GAAGvG,KAAA,IAevB;EAAA,IAfwB;IAC5BlG,IAAI;IACJ0M,OAAO;IACPC,YAAY;AAAI;IAChBC,YAAY;AAAI;IAChBC,SAAS;AAAO;IAChBC,eAAe;IACfC,eAAe;IACfC,OAAO;IACPC,UAAU,GAAG,EAAE;IACfC,SAAS,GAAG,EAAE;IACdvB,WAAW,GAAG,EAAE;AAChBwB,IAAAA,QAAQ,GAAG,CAAC,KAAK,EAAE,MAAM,CAAC;AAC1BC,IAAAA,WAAW,GAAG;AAAEC,MAAAA,GAAG,EAAE,IAAI;AAAEC,MAAAA,IAAI,EAAE,KAAA;KAAO;AACxCC,IAAAA,aAAAA;AACF,GAAC,GAAArH,KAAA,CAAA;EACC,MAAM;IAAEpM,OAAO;AAAEuJ,IAAAA,KAAAA;AAAM,GAAC,GAAGzE,GAAG,CAACC,MAAM,EAAE,CAAA;EACvC,MAAM,CAAC2O,IAAI,CAAC,GAAGnN,IAAI,CAACoN,OAAO,EAAE,CAAA;EAE7B,MAAM,CAACC,gBAAgB,EAAEC,mBAAmB,CAAC,GAAGhU,QAAQ,CAAC,EAAE,CAAC,CAAA;EAC5D,MAAM,CAACiU,UAAU,EAAEC,aAAa,CAAC,GAAGlU,QAAQ,CAAC,EAAE,CAAC,CAAA;EAChD,MAAM,CAACmU,aAAa,EAAEC,gBAAgB,CAAC,GAAGpU,QAAQ,CAAC,KAAK,CAAC,CAAA;EACzD,MAAM,CAACqU,aAAa,EAAEC,gBAAgB,CAAC,GAAGtU,QAAQ,CAAC,KAAK,CAAC,CAAA;EAEzD,MAAMuU,oBAAoB,GAAG3J,MAAM,CAAC;AAClC4J,IAAAA,UAAU,EAAE,KAAK;AACjBC,IAAAA,cAAc,EAAE,KAAA;AAClB,GAAC,CAAC,CAAA;AAEF,EAAA,MAAMC,mBAAmB,GAAGnQ,OAAO,CAAC,MAAM;AACxC,IAAA,MAAMoQ,MAAM,GAAAtU,cAAA,CAAA,EAAA,EAAQ2R,WAAW,CAAE,CAAA;;AAEjC;IACA2C,MAAM,CAACjB,GAAG,GAAGiB,MAAM,CAACjB,GAAG,IAAI,EAAE,CAAA;IAC7BiB,MAAM,CAAChB,IAAI,GAAGgB,MAAM,CAAChB,IAAI,IAAI,EAAE,CAAA;AAE/B,IAAA,IAAIH,QAAQ,CAACoB,QAAQ,CAAC,KAAK,CAAC,EAAE;AAC5BD,MAAAA,MAAM,CAACjB,GAAG,CAACtB,OAAO,GAAA/R,cAAA,CAAAA,cAAA,CACZsU,EAAAA,EAAAA,MAAM,CAACjB,GAAG,CAACtB,OAAO,IAAI,EAAE,CAAA,EAAA,EAAA,EAAA;QAC5BF,OAAO,EAAEuB,WAAW,CAACC,GAAAA;OACtB,CAAA,CAAA;AACH,KAAA;AAEA,IAAA,IAAIF,QAAQ,CAACoB,QAAQ,CAAC,MAAM,CAAC,EAAE;AAC7BD,MAAAA,MAAM,CAAChB,IAAI,CAACvB,OAAO,GAAA/R,cAAA,CAAAA,cAAA,CACbsU,EAAAA,EAAAA,MAAM,CAAChB,IAAI,CAACvB,OAAO,IAAI,EAAE,CAAA,EAAA,EAAA,EAAA;QAC7BF,OAAO,EAAEuB,WAAW,CAACE,IAAAA;OACtB,CAAA,CAAA;AACH,KAAA;AAEA,IAAA,OAAOgB,MAAM,CAAA;GACd,EAAE,CAAC3C,WAAW,EAAEyB,WAAW,EAAED,QAAQ,CAAC,CAAC,CAAA;AAExCtK,EAAAA,SAAS,CAAC,MAAM;IACd,IAAI,CAAC7C,IAAI,EAAE,OAAA;AAEX,IAAA,MAAMwO,SAAS,GAAG,YAAY;AAC5B,MAAA,IAAIN,oBAAoB,CAAC7S,OAAO,CAAC8S,UAAU,EAAE,OAAA;MAE7C,IAAI;AACFD,QAAAA,oBAAoB,CAAC7S,OAAO,CAAC8S,UAAU,GAAG,IAAI,CAAA;AAE9C,QAAA,IAAItB,SAAS,EAAE;AACb;AACA,UAAA,MAAMyB,MAAM,GAAG,MAAMzB,SAAS,EAAE,CAAA;UAChC,IAAIM,QAAQ,CAACoB,QAAQ,CAAC,KAAK,CAAC,IAAID,MAAM,CAACG,cAAc,EAAE;AACrDZ,YAAAA,aAAa,CAACS,MAAM,CAACG,cAAc,CAAC,CAAA;AACtC,WAAA;UACA,IAAItB,QAAQ,CAACoB,QAAQ,CAAC,MAAM,CAAC,IAAID,MAAM,CAAC5C,UAAU,EAAE;AAClDiC,YAAAA,mBAAmB,CAACW,MAAM,CAAC5C,UAAU,CAAC,CAAA;AACxC,WAAA;AACF,SAAC,MAAM;UACL,MAAMgD,QAAQ,GAAG,EAAE,CAAA;AACnB,UAAA,IAAIvB,QAAQ,CAACoB,QAAQ,CAAC,KAAK,CAAC,EAAE;AAC5BG,YAAAA,QAAQ,CAAC1Q,IAAI,CAAC2O,YAAY,EAAE,CAAC,CAAA;AAC/B,WAAA;AAEA,UAAA,IAAIQ,QAAQ,CAACoB,QAAQ,CAAC,MAAM,CAAC,EAAE;AAC7BG,YAAAA,QAAQ,CAAC1Q,IAAI,CAAC4O,YAAY,EAAE,CAAC,CAAA;AAC/B,WAAA;UAEA,MAAM+B,OAAO,GAAG,MAAMC,OAAO,CAACC,UAAU,CAACH,QAAQ,CAAC,CAAA;UAElD,IAAIvB,QAAQ,CAACoB,QAAQ,CAAC,KAAK,CAAC,IAAI5B,YAAY,EAAE;AAC5C,YAAA,MAAMmC,SAAS,GAAGH,OAAO,CAAC,CAAC,CAAC,CAAA;AAC5B,YAAA,IAAIG,SAAS,CAACzS,MAAM,KAAK,WAAW,EAAE;AACpCwR,cAAAA,aAAa,CAACiB,SAAS,CAACrR,KAAK,IAAI,EAAE,CAAC,CAAA;AACtC,aAAA;AACF,WAAA;UAEA,IAAI0P,QAAQ,CAACoB,QAAQ,CAAC,MAAM,CAAC,IAAI3B,YAAY,EAAE;AAC7C,YAAA,MAAMmC,SAAS,GAAG5B,QAAQ,CAACoB,QAAQ,CAAC,KAAK,CAAC,GAAGI,OAAO,CAAC,CAAC,CAAC,GAAGA,OAAO,CAAC,CAAC,CAAC,CAAA;YACpE,IAAII,SAAS,CAAC1S,MAAM,KAAK,WAAW,IAAI0S,SAAS,CAACtR,KAAK,EAAE;cACvDkQ,mBAAmB,CAACoB,SAAS,CAACtR,KAAK,CAACuR,iBAAiB,IAAI,EAAE,CAAC,CAAA;AAC9D,aAAA;AACF,WAAA;AACF,SAAA;QAEAf,gBAAgB,CAAC,IAAI,CAAC,CAAA;OACvB,CAAC,OAAOhU,KAAK,EAAE;AACdC,QAAAA,OAAO,CAACD,KAAK,CAAC,uBAAuB,EAAEA,KAAK,CAAC,CAAA;AAC7CiU,QAAAA,oBAAoB,CAAC7S,OAAO,CAAC8S,UAAU,GAAG,KAAK,CAAC;AAClD,OAAA;KACD,CAAA;AAEDK,IAAAA,SAAS,EAAE,CAAA;GACZ,EAAE,CAACxO,IAAI,EAAE2M,YAAY,EAAEC,YAAY,EAAEO,QAAQ,CAAC,CAAC,CAAA;;AAEhD;AACAtK,EAAAA,SAAS,CAAC,MAAM;IACd,IAAI,CAAC7C,IAAI,EAAE;MACTiO,gBAAgB,CAAC,KAAK,CAAC,CAAA;MACvBJ,aAAa,CAAC,EAAE,CAAC,CAAA;MACjBF,mBAAmB,CAAC,EAAE,CAAC,CAAA;MACvBH,IAAI,CAACyB,WAAW,EAAE,CAAA;MAClBf,oBAAoB,CAAC7S,OAAO,GAAG;AAAE8S,QAAAA,UAAU,EAAE,KAAK;AAAEC,QAAAA,cAAc,EAAE,KAAA;OAAO,CAAA;AAC7E,KAAA;AACF,GAAC,EAAE,CAACpO,IAAI,EAAEwN,IAAI,CAAC,CAAC,CAAA;;AAEhB;AACA,EAAA,MAAM0B,aAAa,GAAGhR,OAAO,CAAC,MAAM;IAClC,MAAMiR,MAAM,GAAG,EAAE,CAAA;AAEjB,IAAA,IAAIhC,QAAQ,CAACoB,QAAQ,CAAC,KAAK,CAAC,IAAIX,UAAU,CAAC/V,MAAM,GAAG,CAAC,EAAE;MACrDsX,MAAM,CAAC9B,GAAG,GAAGO,UAAU,CAACzS,GAAG,CAACmT,MAAM,IAAAtU,cAAA,CAAA;QAChCoV,aAAa,EAAEd,MAAM,CAACc,aAAa;QACnCC,YAAY,EAAEf,MAAM,CAACe,YAAY;QACjCC,UAAU,EAAEhB,MAAM,CAACgB,UAAAA;OACflC,EAAAA,WAAW,CAACC,GAAG,GAAG;QAAEtB,OAAO,EAAEuC,MAAM,CAACvC,OAAAA;AAAQ,OAAC,GAAG,EAAE,CACtD,CAAC,CAAA;AACL,KAAA;AAEA,IAAA,IAAIoB,QAAQ,CAACoB,QAAQ,CAAC,MAAM,CAAC,IAAIb,gBAAgB,CAAC7V,MAAM,GAAG,CAAC,EAAE;AAC5DsX,MAAAA,MAAM,CAAC7B,IAAI,GAAGI,gBAAgB,CAACvS,GAAG,CAACmR,KAAK,IAAAtS,cAAA,CAAAA,cAAA,CAElCsS,EAAAA,EAAAA,KAAK,CAACpJ,EAAE,KAAKpL,SAAS,IAAI;QAAEoL,EAAE,EAAEoJ,KAAK,CAACpJ,EAAAA;OAAI,CAAA,EAAA,EAAA,EAAA;QAC9CmM,YAAY,EAAE/C,KAAK,CAAC+C,YAAY;AAChCC,QAAAA,UAAU,EAAEhD,KAAK,CAACgD,UAAU,IAAIhD,KAAK,CAACR,EAAAA;OAClCsB,EAAAA,WAAW,CAACE,IAAI,GAAG;QAAEvB,OAAO,EAAEO,KAAK,CAACP,OAAAA;AAAQ,OAAC,GAAG,EAAE,CACtD,CAAC,CAAA;AACL,KAAA;AAEA,IAAA,OAAOoD,MAAM,CAAA;GACd,EAAE,CAACvB,UAAU,EAAEF,gBAAgB,EAAEP,QAAQ,EAAEC,WAAW,CAAC,CAAC,CAAA;;AAEzD;AACAvK,EAAAA,SAAS,CAAC,MAAM;IACd,IAAImL,aAAa,IAAI,CAACE,oBAAoB,CAAC7S,OAAO,CAAC+S,cAAc,EAAE;AACjEZ,MAAAA,IAAI,CAAC+B,cAAc,CAACL,aAAa,CAAC,CAAA;AAClChB,MAAAA,oBAAoB,CAAC7S,OAAO,CAAC+S,cAAc,GAAG,IAAI,CAAA;AACpD,KAAA;GACD,EAAE,CAACJ,aAAa,EAAER,IAAI,EAAE0B,aAAa,CAAC,CAAC,CAAA;AAExC,EAAA,MAAMM,aAAa,GAAG3V,WAAW,CAAC,kBAIvB;IAAA,IAJ8B;AACvC4V,MAAAA,WAAW,GAAG,SAAS;MACvBC,OAAO,GAAG,CAAC,CAAC1C,OAAO;AACnB2C,MAAAA,OAAO,GAAG,CAAC3C,OAAAA;AACb,KAAC,GAAApV,SAAA,CAAAC,MAAA,GAAAD,CAAAA,IAAAA,SAAA,CAAAE,CAAAA,CAAAA,KAAAA,SAAA,GAAAF,SAAA,CAAG,CAAA,CAAA,GAAA,EAAE,CAAA;AACJkC,IAAAA,OAAO,CAACqP,OAAO,CAACsG,WAAW,CAAC,CAAA;IAE5B,IAAIE,OAAO,IAAI9C,SAAS,EAAE;MACxB,IAAI;AACF,QAAA,MAAM+C,SAAS,GAAG,MAAM/C,SAAS,EAAE,CAAA;QACnC,IAAIM,QAAQ,CAACoB,QAAQ,CAAC,KAAK,CAAC,IAAIqB,SAAS,CAACnB,cAAc,EAAE;AACxDZ,UAAAA,aAAa,CAAC+B,SAAS,CAACnB,cAAc,CAAC,CAAA;AACzC,SAAA;QACA,IAAItB,QAAQ,CAACoB,QAAQ,CAAC,MAAM,CAAC,IAAIqB,SAAS,CAAClE,UAAU,EAAE;AACrDiC,UAAAA,mBAAmB,CAACiC,SAAS,CAAClE,UAAU,CAAC,CAAA;AAC3C,SAAA;OACD,CAAC,OAAOzR,KAAK,EAAE;AACdC,QAAAA,OAAO,CAACD,KAAK,CAAC,2BAA2B,EAAEA,KAAK,CAAC,CAAA;AACnD,OAAA;AACF,KAAA;;AAEA;IACA,IAAIyV,OAAO,IAAI1C,OAAO,EAAE;MACtB,IAAI;AACF,QAAA,MAAM6C,aAAa,GAAG,MAAMjD,YAAY,EAAE,CAAA;AAC1C,QAAA,IAAIiD,aAAa,IAAIA,aAAa,CAACC,mBAAmB,EAAE;UACtDzM,KAAK,CAAC4H,OAAO,CAAC;AACZC,YAAAA,IAAI,eAAElS,GAAA,CAACmS,uBAAuB,IAAE,CAAC;AACjCvS,YAAAA,KAAK,EAAE,mDAAmD;AAC1D8F,YAAAA,UAAU,EAAE,IAAI;AAChBD,YAAAA,MAAM,EAAE,KAAK;AACbF,YAAAA,IAAI,EAAEA,MAAMyO,OAAO,EAAC;AACtB,WAAC,CAAC,CAAA;AACJ,SAAA;OACD,CAAC,OAAO/S,KAAK,EAAE;AACdC,QAAAA,OAAO,CAACD,KAAK,CAAC,iCAAiC,EAAEA,KAAK,CAAC,CAAA;AACzD,OAAA;AACF,KAAA;AAEAyS,IAAAA,OAAO,EAAE,CAAA;AACX,GAAC,EAAE,CAAC5S,OAAO,EAAEuJ,KAAK,EAAEuJ,YAAY,EAAEI,OAAO,EAAEH,SAAS,EAAEM,QAAQ,EAAET,OAAO,CAAC,CAAC,CAAA;AAEzE,EAAA,MAAMqD,YAAY,GAAGlW,WAAW,CAAC,YAAY;IAC3CkU,gBAAgB,CAAC,IAAI,CAAC,CAAA;IAEtB,IAAI;AACF,MAAA,MAAMoB,MAAM,GAAG,MAAM3B,IAAI,CAACwC,cAAc,EAAE,CAAA;AAC1C;;MAEA,MAAMC,cAAc,GAAG,EAAE,CAAA;;AAEzB;MACA,IAAI9C,QAAQ,CAACoB,QAAQ,CAAC,KAAK,CAAC,IAAIY,MAAM,CAAC9B,GAAG,EAAE;QAC1C,MAAM6C,OAAO,GAAGf,MAAM,CAAC9B,GAAG,CAAClS,GAAG,CAAC,CAACC,IAAI,EAAEgD,KAAK,KAAA;AAAA,UAAA,IAAA+R,iBAAA,CAAA;AAAA,UAAA,OAAAnW,cAAA,CAAA;AACzCoV,YAAAA,aAAa,EAAAe,CAAAA,iBAAA,GAAEvC,UAAU,CAACxP,KAAK,CAAC,MAAA,IAAA,IAAA+R,iBAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAjBA,iBAAA,CAAmBf,aAAa;YAC/CE,UAAU,EAAElU,IAAI,CAACkU,UAAAA;WACblC,EAAAA,WAAW,CAACC,GAAG,GAAG;YAAEtB,OAAO,EAAE3Q,IAAI,CAAC2Q,OAAAA;WAAS,GAAG,EAAE,CAAA,CAAA;AAAA,SACpD,CAAC,CAAA;AACHkE,QAAAA,cAAc,CAACjS,IAAI,CAAC8O,eAAe,CAACoD,OAAO,CAAC,CAAC,CAAA;AAC/C,OAAA;;AAEA;MACA,IAAI/C,QAAQ,CAACoB,QAAQ,CAAC,MAAM,CAAC,IAAIY,MAAM,CAAC7B,IAAI,EAAE;QAC5C,MAAM8C,cAAc,GAAGjB,MAAM,CAAC7B,IAAI,CAACnS,GAAG,CAAC,CAACC,IAAI,EAAEgD,KAAK,KAAA;AAAA,UAAA,IAAAiS,qBAAA,EAAAC,sBAAA,EAAAC,sBAAA,CAAA;UAAA,OAAAvW,cAAA,CAAAA,cAAA,CAAAA,cAAA,KAE7C,CAAA0T,gBAAgB,KAAhBA,IAAAA,IAAAA,gBAAgB,KAAA2C,KAAAA,CAAAA,IAAAA,CAAAA,qBAAA,GAAhB3C,gBAAgB,CAAGtP,KAAK,CAAC,MAAAiS,IAAAA,IAAAA,qBAAA,KAAzBA,KAAAA,CAAAA,GAAAA,KAAAA,CAAAA,GAAAA,qBAAA,CAA2BnN,EAAE,MAAKpL,SAAS,IAAI;AACjDoL,YAAAA,EAAE,EAAEwK,gBAAgB,KAAhBA,IAAAA,IAAAA,gBAAgB,gBAAA4C,sBAAA,GAAhB5C,gBAAgB,CAAGtP,KAAK,CAAC,MAAA,IAAA,IAAAkS,sBAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAzBA,sBAAA,CAA2BpN,EAAAA;WAChC,CAAA,EACG,CAAAwK,gBAAgB,KAAA,IAAA,IAAhBA,gBAAgB,KAAA6C,KAAAA,CAAAA,IAAAA,CAAAA,sBAAA,GAAhB7C,gBAAgB,CAAGtP,KAAK,CAAC,MAAA,IAAA,IAAAmS,sBAAA,KAAzBA,KAAAA,CAAAA,GAAAA,KAAAA,CAAAA,GAAAA,sBAAA,CAA2BzE,EAAE,MAAKhU,SAAS,GAC3C;YAAEgU,EAAE,EAAE1Q,IAAI,CAACkU,UAAAA;AAAW,WAAC,GACvB;YAAEA,UAAU,EAAElU,IAAI,CAACkU,UAAAA;AAAW,WAAC,CAE/BlC,EAAAA,WAAW,CAACE,IAAI,GAAG;YAAEvB,OAAO,EAAE3Q,IAAI,CAAC2Q,OAAAA;WAAS,GAAG,EAAE,CAAA,CAAA;AAAA,SACrD,CAAC,CAAA;AAEH,QAAA,MAAMyE,UAAU,GAAG9C,gBAAgB,CAACpI,IAAI,CAACgH,KAAK,IAAI,IAAI,IAAIA,KAAK,CAAC,GAC5D;AAAE0C,UAAAA,iBAAiB,EAAEoB,cAAAA;AAAe,SAAC,GACrC;AAAE1E,UAAAA,UAAU,EAAE0E,cAAAA;SAAgB,CAAA;AAElCH,QAAAA,cAAc,CAACjS,IAAI,CAAC+O,eAAe,CAACyD,UAAU,CAAC,CAAC,CAAA;AAClD,OAAA;MAEA,MAAM7B,OAAO,GAAG,MAAMC,OAAO,CAACC,UAAU,CAACoB,cAAc,CAAC,CAAA;;AAExD;AACA,MAAA,MAAMQ,YAAY,GAAG9B,OAAO,CAAC+B,KAAK,CAAC3N,MAAM,IAAIA,MAAM,CAAC1G,MAAM,KAAK,WAAW,CAAC,CAAA;AAE3E,MAAA,IAAIoU,YAAY,EAAE;AAChBjB,QAAAA,aAAa,EAAE,CAAA;AACjB,OAAC,MAAM;AACL1V,QAAAA,OAAO,CAACG,KAAK,CAAC,sCAAsC,CAAC,CAAA;AACvD,OAAA;KACD,CAAC,OAAOA,KAAK,EAAE;AACdC,MAAAA,OAAO,CAACD,KAAK,CAAC,mCAAmC,EAAEA,KAAK,CAAC,CAAA;AACzDH,MAAAA,OAAO,CAACG,KAAK,CAAC,iCAAiC,CAAC,CAAA;AAClD,KAAC,SAAS;MACR8T,gBAAgB,CAAC,KAAK,CAAC,CAAA;AACzB,KAAA;AACF,GAAC,EAAE,CACDP,IAAI,EACJL,QAAQ,EACRS,UAAU,EACVF,gBAAgB,EAChBZ,eAAe,EACfC,eAAe,EACfyC,aAAa,EACb1V,OAAO,CACR,CAAC,CAAA;;AAEF;EACA,MAAM6W,gBAAgB,GAAA3W,cAAA,CAAA;AACpBpB,IAAAA,KAAK,EAAE,kBAAkB;AACzB+F,IAAAA,KAAK,EAAE,GAAG;IACVqB,IAAI;AACJ4Q,IAAAA,cAAc,EAAE9C,aAAa;AAC7BvP,IAAAA,IAAI,EAAEwR,YAAY;AAClBzR,IAAAA,QAAQ,EAAEoO,OAAO;AACjBjO,IAAAA,MAAM,EAAE,OAAO;AACfC,IAAAA,UAAU,EAAE,OAAO;AACnBmS,IAAAA,QAAQ,EAAE,IAAI;AACdzX,IAAAA,eAAe,EAAE,IAAI;AACrB0X,IAAAA,WAAW,EAAE,IAAI;AACjBC,IAAAA,MAAM,EAAA/W,cAAA,CAAA;AACJ0N,MAAAA,IAAI,EAAE;AAAEsJ,QAAAA,OAAO,EAAE,oBAAA;AAAqB,OAAA;KAClCzD,EAAAA,aAAa,KAAK,IAAI,IAAI;AAAE0D,MAAAA,MAAM,EAAE;AAAEC,QAAAA,aAAa,EAAE,EAAA;AAAG,OAAA;KAAG,CAAA;AAChE,GAAA,EACEjE,UAAU,CACd,CAAA;;AAED;EACA,MAAMkE,eAAe,GAAAnX,cAAA,CAAA;AACnBwT,IAAAA,IAAI,EAAEA,IAAI;AACVjN,IAAAA,QAAQ,EAAE;AAAEC,MAAAA,IAAI,EAAE,CAAA;KAAG;AACrBC,IAAAA,UAAU,EAAE;AAAED,MAAAA,IAAI,EAAE,EAAA;KAAI;AACxBE,IAAAA,YAAY,EAAE,KAAA;AAAK,GAAA,EAChBwM,SAAS,CACb,CAAA;EAED,oBACEhU,IAAA,CAAC6G,KAAK,EAAA/F,cAAA,CAAAA,cAAA,KAAK2W,gBAAgB,CAAA,EAAA,EAAA,EAAA;IAAA7X,QAAA,EAAA,cACzBI,IAAA,CAACmH,IAAI,EAAArG,cAAA,CAAAA,cAAA,CAAA,EAAA,EAAKmX,eAAe,CAAA,EAAA,EAAA,EAAA;AAAArY,MAAAA,QAAA,GACtBqU,QAAQ,CAACoB,QAAQ,CAAC,KAAK,CAAC,IAAIX,UAAU,CAAC/V,MAAM,GAAG,CAAC,iBAChDqB,IAAA,CAAAC,QAAA,EAAA;QAAAL,QAAA,EAAA,cACEE,GAAA,CAACsS,iBAAiB,EAAA;AAChBG,UAAAA,MAAM,EAAC,KAAK;AACZC,UAAAA,UAAU,EAAEkC,UAAW;UACvBjC,WAAW,EAAE0C,mBAAmB,CAAChB,GAAAA;AAAI,SACtC,CAAC,EACDF,QAAQ,CAACoB,QAAQ,CAAC,MAAM,CAAC,IAAIb,gBAAgB,CAAC7V,MAAM,GAAG,CAAC,iBAAImB,GAAA,CAACuT,OAAO,IAAE,CAAC,CAAA;AAAA,OACxE,CACH,EAEAY,QAAQ,CAACoB,QAAQ,CAAC,MAAM,CAAC,IAAIb,gBAAgB,CAAC7V,MAAM,GAAG,CAAC,iBACvDmB,GAAA,CAACsS,iBAAiB,EAAA;AAChBG,QAAAA,MAAM,EAAC,MAAM;AACbC,QAAAA,UAAU,EAAEgC,gBAAiB;QAC7B/B,WAAW,EAAE0C,mBAAmB,CAACf,IAAAA;AAAK,OACvC,CACF,CAAA;KACG,CAAA,CAAC,EACNC,aAAa,CAAA;AAAA,GAAA,CACT,CAAC,CAAA;AAEZ,CAAC,CAAA;AAGD,6BAAe7U,aAAAA,IAAI,CAAC+T,oBAAoB,CAAC;;ACjYzC,MAAM2E,mBAAmB,GAAG;AAC1BC,EAAAA,WAAW,EAAE;AACXvQ,IAAAA,KAAK,EAAE,aAAa;AACpBwQ,IAAAA,QAAQ,EAAE,QAAQ;AAClB1P,IAAAA,OAAO,EAAE,CACP;AAAEnE,MAAAA,KAAK,EAAE,CAAC;AAAEqD,MAAAA,KAAK,EAAE,kBAAA;AAAmB,KAAC,EACvC;AAAErD,MAAAA,KAAK,EAAE,CAAC;AAAEqD,MAAAA,KAAK,EAAE,SAAA;AAAU,KAAC,EAC9B;AAAErD,MAAAA,KAAK,EAAE,GAAG;AAAEqD,MAAAA,KAAK,EAAE,kBAAA;AAAmB,KAAC,CAC1C;AACDG,IAAAA,QAAQ,EAAE,IAAA;GACX;AACDsQ,EAAAA,cAAc,EAAE;AACdzQ,IAAAA,KAAK,EAAE,gBAAgB;AACvBwQ,IAAAA,QAAQ,EAAE,QAAQ;AAClBrQ,IAAAA,QAAQ,EAAE,IAAA;GACX;AACDuQ,EAAAA,0BAA0B,EAAE;AAC1B1Q,IAAAA,KAAK,EAAE,4BAA4B;AACnCwQ,IAAAA,QAAQ,EAAE,QAAQ;AAClBrQ,IAAAA,QAAQ,EAAE,IAAA;GACX;AACDwQ,EAAAA,qBAAqB,EAAE;AACrB3Q,IAAAA,KAAK,EAAE,YAAY;AACnBwQ,IAAAA,QAAQ,EAAE,QAAQ;AAClBrQ,IAAAA,QAAQ,EAAE,IAAA;GACX;AACDyQ,EAAAA,qBAAqB,EAAE;AACrB5Q,IAAAA,KAAK,EAAE,YAAY;AACnBwQ,IAAAA,QAAQ,EAAE,QAAQ;AAClBrQ,IAAAA,QAAQ,EAAE,IAAA;GACX;AACD0Q,EAAAA,oBAAoB,EAAE;AACpB7Q,IAAAA,KAAK,EAAE,sBAAsB;AAC7BwQ,IAAAA,QAAQ,EAAE,MAAM;AAChBrQ,IAAAA,QAAQ,EAAE,IAAA;GACX;AACD2Q,EAAAA,cAAc,EAAE;AACd9Q,IAAAA,KAAK,EAAE,eAAe;AACtBwQ,IAAAA,QAAQ,EAAE,MAAM;AAChBrQ,IAAAA,QAAQ,EAAE,IAAA;GACX;AACD4Q,EAAAA,gBAAgB,EAAE;AAChB/Q,IAAAA,KAAK,EAAE,QAAQ;AACfwQ,IAAAA,QAAQ,EAAE,QAAQ;AAClBQ,IAAAA,GAAG,EAAE,CAAC;AACNtW,IAAAA,GAAG,EAAE,GAAG;AACRyF,IAAAA,QAAQ,EAAE,KAAA;GACX;AACD8Q,EAAAA,iBAAiB,EAAE;AACjBjR,IAAAA,KAAK,EAAE,YAAY;AACnBwQ,IAAAA,QAAQ,EAAE,QAAQ;AAClBrQ,IAAAA,QAAQ,EAAE,IAAA;GACX;AACD+Q,EAAAA,YAAY,EAAE;AACZlR,IAAAA,KAAK,EAAE,kBAAkB;AACzBwQ,IAAAA,QAAQ,EAAE,OAAO;AACjBW,IAAAA,SAAS,EAAE;AACT,MAAA,CAAC,EAAE;AAAEC,QAAAA,IAAI,EAAE,cAAc;AAAEC,QAAAA,KAAK,EAAE,KAAA;OAAO;AACzC,MAAA,CAAC,EAAE;AAAED,QAAAA,IAAI,EAAE,WAAW;AAAEC,QAAAA,KAAK,EAAE,OAAA;AAAQ,OAAA;AACzC,KAAA;GACD;AACDC,EAAAA,SAAS,EAAE;AACTtR,IAAAA,KAAK,EAAE,eAAe;AACtBwQ,IAAAA,QAAQ,EAAE,OAAO;AACjBW,IAAAA,SAAS,EAAE;AACT,MAAA,CAAC,EAAE;AAAEC,QAAAA,IAAI,EAAE,UAAU;AAAEC,QAAAA,KAAK,EAAE,KAAA;OAAO;AACrC,MAAA,CAAC,EAAE;AAAED,QAAAA,IAAI,EAAE,QAAQ;AAAEC,QAAAA,KAAK,EAAE,OAAA;AAAQ,OAAA;AACtC,KAAA;AACF,GAAA;AACF,CAAC,CAAA;;AAED;AACA,MAAME,iBAAiB,GAAG,CACxB,kBAAkB,EAClB,uBAAuB,EACvB,uBAAuB,EACvB,sBAAsB,EACtB,gBAAgB,EAChB,aAAa,EACb,gBAAgB,EAChB,4BAA4B,EAC5B,mBAAmB,EACnB,cAAc,EACd,WAAW,CACZ,CAAA;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAASC,uBAAuBA,CAACC,SAAS,EAAEC,YAAY,EAAEC,UAAU,EAAE;AACpE,EAAA,OAAOA,UAAU,CACdnX,MAAM,CAACiK,GAAG,IAAIA,GAAG,IAAIgN,SAAS,CAAC,CAC/BpX,GAAG,CAACoK,GAAG,IAAI;AACV,IAAA,MAAM+I,MAAM,GAAGkE,YAAY,CAACjN,GAAG,CAAC,IAAI;AAAEzE,MAAAA,KAAK,EAAEyE,GAAG;AAAE+L,MAAAA,QAAQ,EAAE,MAAA;KAAQ,CAAA;AACpE,IAAA,MAAM7T,KAAK,GAAG8U,SAAS,CAAChN,GAAG,CAAC,CAAA;IAE5B,OAAAvL,cAAA,CAAAA,cAAA,CAAA;MACEuL,GAAG;AACH9H,MAAAA,KAAAA;AAAK,KAAA,EACF6Q,MAAM,CAAA,EAAA,EAAA,EAAA;AACToE,MAAAA,OAAO,EAAEH,SAAAA;AAAS,KAAA,CAAA,CAAA;AAEtB,GAAC,CAAC,CAAA;AACN,CAAA;AAEA,MAAMI,QAAQ,GAAGha,IAAA,IASX;EAAA,IATY;IAChBqH,IAAI;IACJ0M,OAAO;IACPkG,UAAU;IACVC,aAAa;AACbL,IAAAA,YAAY,GAAGpB,mBAAmB;AAClCqB,IAAAA,UAAU,GAAGJ,iBAAiB;IAC9BpF,UAAU,GAAG,EAAE;AACfC,IAAAA,SAAS,GAAG,EAAC;AACf,GAAC,GAAAvU,IAAA,CAAA;EACC,MAAM,CAAC4Z,SAAS,EAAEO,YAAY,CAAC,GAAGnZ,QAAQ,CAAC,IAAI,CAAC,CAAA;EAChD,MAAM,CAAC6T,IAAI,CAAC,GAAGnN,IAAI,CAACoN,OAAO,EAAE,CAAA;EAC7B,MAAM;AAAE3T,IAAAA,OAAAA;AAAQ,GAAC,GAAG8E,GAAG,CAACC,MAAM,EAAE,CAAA;AAEhCgE,EAAAA,SAAS,CAAC,MAAM;AACd,IAAA,IAAI7C,IAAI,EAAE;AACR4S,MAAAA,UAAU,EAAE,CAACG,IAAI,CAACtY,IAAI,IAAI;QACxB,IAAIA,IAAI,aAAJA,IAAI,KAAA,KAAA,CAAA,IAAJA,IAAI,CAAG,CAAC,CAAC,EAAE;AACbqY,UAAAA,YAAY,CAACrY,IAAI,CAAC,CAAC,CAAC,CAAC,CAAA;AACrB+S,UAAAA,IAAI,CAAC+B,cAAc,CAAC9U,IAAI,CAAC,CAAC,CAAC,CAAC,CAAA;AAC9B,SAAA;AACF,OAAC,CAAC,CAAA;AACJ,KAAA;GACD,EAAE,CAACuF,IAAI,EAAEwN,IAAI,EAAEoF,UAAU,CAAC,CAAC,CAAA;AAE5B,EAAA,MAAMI,cAAc,GAAI9U,OAAO,CAAC,MAAM;AACpC,IAAA,IAAI,CAACqU,SAAS,EAAE,OAAM,EAAE,CAAA;AACxB,IAAA,OAAOD,uBAAuB,CAACC,SAAS,EAAEC,YAAY,EAAEC,UAAU,CAAC,CAAA;AACrE,GAAC,EAAE,CAACF,SAAS,CAAC,CAAC,CAAA;EAEf,MAAMU,iBAAiB,GAAIC,aAAa,IAAK;IAC3C,IAAI,kBAAkB,IAAIA,aAAa,EAAE;AACvCJ,MAAAA,YAAY,CAAC/Y,IAAI,IAAAC,cAAA,CAAAA,cAAA,KACZD,IAAI,CAAA,EAAA,EAAA,EAAA;QACP8X,gBAAgB,EAAEqB,aAAa,CAACrB,gBAAAA;AAAgB,OAAA,CAChD,CAAC,CAAA;AACL,KAAA;GACD,CAAA;AAED,EAAA,MAAM9B,YAAY,GAAG,YAAY;IAC/B,IAAI;AACF,MAAA,MAAMZ,MAAM,GAAG,MAAM3B,IAAI,CAACwC,cAAc,EAAE,CAAA;AAE1C,MAAA,MAAM9G,QAAQ,GAAG,MAAM2J,aAAa,CAAC1D,MAAM,CAAC,CAAA;AAC5C,MAAA,IAAIjG,QAAQ,EAAE;AACZpP,QAAAA,OAAO,CAACqP,OAAO,CAAC,SAAS,CAAC,CAAA;AAC1BP,QAAAA,UAAU,CAAC,MAAM;AACf8D,UAAAA,OAAO,EAAE,CAAA;SACV,EAAE,IAAI,CAAC,CAAA;AACV,OAAA;KACD,CAAC,OAAOzS,KAAK,EAAE;AACdC,MAAAA,OAAO,CAACD,KAAK,CAAC,gBAAgB,EAAEA,KAAK,CAAC,CAAA;AACxC,KAAA;GACD,CAAA;EAGD,MAAMkZ,cAAc,GAAI/X,IAAI,IAAK;AAAA,IAAA,IAAAgY,eAAA,EAAAC,SAAA,EAAAC,SAAA,CAAA;IAC/B,QAAQlY,IAAI,CAACkW,QAAQ;AACnB,MAAA,KAAK,QAAQ;QACX,oBAAOtY,GAAA,CAACua,MAAM,EAAA;UAAC3R,OAAO,EAAExG,IAAI,CAACwG,OAAQ;UAACxB,QAAQ,EAAEhF,IAAI,CAAC6F,QAAAA;AAAS,SAAE,CAAC,CAAA;AACnE,MAAA,KAAK,QAAQ;AACX,QAAA,oBAAOjI,GAAA,CAACwa,MAAM,EAAA,EAAE,CAAC,CAAA;AACnB,MAAA,KAAK,OAAO;AACV,QAAA,MAAMC,eAAe,GAAG,OAAOrY,IAAI,CAACqC,KAAK,KAAK,SAAS,GAClDrC,IAAI,CAACqC,KAAK,GAAG,CAAC,GAAG,CAAC,GACnBrC,IAAI,CAACqC,KAAK,CAAA;AACd,QAAA,MAAMpB,MAAM,GAAG,CAAA+W,CAAAA,eAAA,GAAAhY,IAAI,CAAC6W,SAAS,MAAA,IAAA,IAAAmB,eAAA,KAAdA,KAAAA,CAAAA,GAAAA,KAAAA,CAAAA,GAAAA,eAAA,CAAiBK,eAAe,CAAC,KAAI;AAAEvB,UAAAA,IAAI,EAAE,SAAS;AAAEC,UAAAA,KAAK,EAAE,MAAA;SAAQ,CAAA;QACtF,oBACEnZ,GAAA,CAAC0a,cAAc,EAAA;AAACC,UAAAA,KAAK,EAAE;AAAEC,YAAAA,UAAU,EAAE;AAAEC,cAAAA,KAAK,EAAE;AAAEC,gBAAAA,UAAU,EAAE,EAAA;AAAG,eAAA;AAAE,aAAA;WAAI;UAAAhb,QAAA,eACnEE,GAAA,CAAC6a,KAAK,EAAA;YAAC1B,KAAK,EAAE9V,MAAM,CAAC8V,KAAM;YAACD,IAAI,EAAE7V,MAAM,CAAC6V,IAAAA;WAAO,CAAA;AAAC,SACnC,CAAC,CAAA;AAErB,MAAA,KAAK,QAAQ;QACX,oBACElZ,GAAA,CAAC+a,WAAW,EAAA;UACV3T,QAAQ,EAAEhF,IAAI,CAAC6F,QAAS;AACxB+S,UAAAA,QAAQ,EAAE,KAAM;AAChBC,UAAAA,QAAQ,EAAE,KAAM;AAChBnC,UAAAA,GAAG,EAAAuB,CAAAA,SAAA,GAAEjY,IAAI,CAAC0W,GAAG,MAAAuB,IAAAA,IAAAA,SAAA,KAAAA,KAAAA,CAAAA,GAAAA,SAAA,GAAIa,MAAM,CAACC,gBAAiB;AACzC3Y,UAAAA,GAAG,EAAA8X,CAAAA,SAAA,GAAElY,IAAI,CAACI,GAAG,MAAA8X,IAAAA,IAAAA,SAAA,KAAAA,KAAAA,CAAAA,GAAAA,SAAA,GAAIY,MAAM,CAACE,gBAAAA;AAAiB,SAC1C,CAAC,CAAA;AAEN,MAAA;QACE,oBAAOpb,GAAA,CAACgI,KAAK,EAAA;UAACZ,QAAQ,EAAEhF,IAAI,CAAC6F,QAAAA;AAAS,SAAE,CAAC,CAAA;AAC7C,KAAA;GACD,CAAA;AAED,EAAA,IAAI,CAACjB,IAAI,IAAI,CAACuS,SAAS,EAAE,OAAO,IAAI,CAAA;;AAEpC;EACA,MAAM5B,gBAAgB,GAAA3W,cAAA,CAAA;AACpBpB,IAAAA,KAAK,EAAE,KAAK;AACZ+F,IAAAA,KAAK,EAAE,GAAG;IACVqB,IAAI;AACJvB,IAAAA,MAAM,EAAE,OAAO;AACfC,IAAAA,UAAU,EAAE,OAAO;AACnBJ,IAAAA,QAAQ,EAAEoO,OAAO;AACjBnO,IAAAA,IAAI,EAAEwR,YAAAA;AAAY,GAAA,EACf9C,UAAU,CACd,CAAA;;AAED;EACA,MAAMkE,eAAe,GAAAnX,cAAA,CAAA;AACnBwT,IAAAA,IAAI,EAAEA,IAAI;AACVlN,IAAAA,IAAI,EAAE,SAAS;AACfC,IAAAA,QAAQ,EAAE;AAAEC,MAAAA,IAAI,EAAE,CAAA;KAAG;AACrBC,IAAAA,UAAU,EAAE;AAAED,MAAAA,IAAI,EAAE,EAAA;KAAI;AACxBE,IAAAA,YAAY,EAAE,KAAK;AACnB2T,IAAAA,cAAc,EAAEpB,iBAAAA;AAAiB,GAAA,EAC9B/F,SAAS,CACb,CAAA;EAED,oBACElU,GAAA,CAAC+G,KAAK,EAAA/F,cAAA,CAAAA,cAAA,KAAK2W,gBAAgB,CAAA,EAAA,EAAA,EAAA;IAAA7X,QAAA,eACzBE,GAAA,CAACqH,IAAI,EAAArG,cAAA,CAAAA,cAAA,CAAA,EAAA,EAAKmX,eAAe,CAAA,EAAA,EAAA,EAAA;MAAArY,QAAA,EACtBka,cAAc,CAAC7X,GAAG,CAACC,IAAI,iBACtBpC,GAAA,CAACqH,IAAI,CAACQ,IAAI,EAAA;QACRC,KAAK,EAAE1F,IAAI,CAAC0F,KAAM;QAClBR,IAAI,EAAElF,IAAI,CAACmK,GAAI;QAEf+O,YAAY,EAAElZ,IAAI,CAACqC,KAAM;QAAA3E,QAAA,EAExBqa,cAAc,CAAC/X,IAAI,CAAA;OAHfA,EAAAA,IAAI,CAACmK,GAID,CACZ,CAAA;KACG,CAAA,CAAA;AAAC,GAAA,CACF,CAAC,CAAA;AAEZ,CAAC,CAAA;AAED,iBAAe7M,aAAAA,IAAI,CAACia,QAAQ,CAAC;;AC/OtB,MAAM4B,QAAQ,gBAAG7b,IAAI,CAACC,IAAA,IAYvB;EAAA,IAZwB;IAC5B6b,UAAU;IACVC,gBAAgB;IAChBC,cAAc;IACdC,QAAQ;IACRC,QAAQ;AACRC,IAAAA,UAAU,GAAGL,UAAU,CAAC3c,MAAM,GAAG,CAAC;AAClCid,IAAAA,eAAe,GAAG,KAAK;AACvBC,IAAAA,KAAK,GAAG;AACNC,MAAAA,SAAS,EAAE,YAAY;AACvBC,MAAAA,YAAY,EAAE,QAAA;AAChB,KAAA;AACF,GAAC,GAAAtc,IAAA,CAAA;AACC;AACA,EAAA,MAAMuc,WAAW,GAAGJ,eAAe,GAAG,aAAa,GAAG,aAAa,CAAA;AAEnE,EAAA,oBACI5b,IAAA,CAAA,KAAA,EAAA;AAAKG,IAAAA,SAAS,EAAC,0BAA0B;AAAAP,IAAAA,QAAA,gBACvCE,GAAA,CAAA,KAAA,EAAA;AAAKK,MAAAA,SAAS,EAAC,gBAAgB;MAAAP,QAAA,eAC7BE,GAAA,CAACmc,IAAI,EAAA;AACHC,QAAAA,MAAM,eACJlc,IAAA,CAAA,KAAA,EAAA;AAAKG,UAAAA,SAAS,EAAAC,OAAAA,CAAAA,MAAA,CAAU4b,WAAW,EAAsB,qBAAA,CAAA;AAAApc,UAAAA,QAAA,gBACvDE,GAAA,CAAA,KAAA,EAAA;AAAAF,YAAAA,QAAA,EAAK,MAAA;WAAS,CAAC,eACfE,GAAA,CAAA,KAAA,EAAA;AAAAF,YAAAA,QAAA,EAAK,aAAA;AAAW,WAAK,CAAC,EACrBgc,eAAe,iBAAI9b,GAAA,CAAA,KAAA,EAAA;AAAAF,YAAAA,QAAA,EAAK,aAAA;AAAW,WAAK,CAAC,CAAA;AAAA,SACvC,CACN;AACD0b,QAAAA,UAAU,EAAEA,UAAW;AACvBa,QAAAA,MAAM,EAAC,IAAI;AACXC,QAAAA,UAAU,EAAGla,IAAI,iBACfpC,GAAA,CAACmc,IAAI,CAACtU,IAAI,EAAA;AACRxH,UAAAA,SAAS,EAAAC,YAAAA,CAAAA,MAAA,CACPmb,gBAAgB,KAAKrZ,IAAI,CAAC8H,EAAE,GAAG,UAAU,GAAG,EAAE,CAC7C;AACHvC,UAAAA,KAAK,EAAE;AAAEqQ,YAAAA,OAAO,EAAE,UAAA;WAAa;AAC/BrH,UAAAA,OAAO,EAAEA,MAAM+K,cAAc,CAACtZ,IAAI,CAAE;AAAAtC,UAAAA,QAAA,eAEpCI,IAAA,CAAA,KAAA,EAAA;AAAKG,YAAAA,SAAS,EAAAC,OAAAA,CAAAA,MAAA,CAAU4b,WAAW,EAA2B,0BAAA,CAAA;AAAApc,YAAAA,QAAA,gBAC5DE,GAAA,CAAA,KAAA,EAAA;cAAKJ,KAAK,EAAEwC,IAAI,CAACkF,IAAK;AAAAxH,cAAAA,QAAA,EACnBsC,IAAI,CAACkF,IAAI,IAAI,iBAAA;aACX,CAAC,eACNtH,GAAA,CAAA,KAAA,EAAA;cAAAF,QAAA,EAAMsC,IAAI,CAACma,WAAAA;AAAW,aAAM,CAAC,EAC5BT,eAAe,iBAAI9b,GAAA,CAAA,KAAA,EAAA;cAAAF,QAAA,EAAMsC,IAAI,CAACoa,WAAAA;AAAW,aAAM,CAAC,CAAA;WAC9C,CAAA;AAAC,SACG,CACX;AACFC,QAAAA,MAAM,EAAE;AACNC,UAAAA,SAAS,eACP1c,GAAA,CAAA,KAAA,EAAA;AAAKK,YAAAA,SAAS,EAAC,KAAK;YAAAP,QAAA,eAClBE,GAAA,CAAC2c,KAAK,EAAA;cACJC,KAAK,EAAED,KAAK,CAACE,sBAAuB;AACpCL,cAAAA,WAAW,eACTxc,GAAA,CAAA,MAAA,EAAA;AAAMK,gBAAAA,SAAS,EAAC,eAAe;gBAAAP,QAAA,eAC7BE,GAAA,CAAC8c,MAAM,EAAA;AACLlW,kBAAAA,IAAI,EAAC,MAAM;AACX+J,kBAAAA,OAAO,EAAEgL,QAAS;AAClBtb,kBAAAA,SAAS,EAAC,YAAY;AACtB6R,kBAAAA,IAAI,eAAElS,GAAA,CAAC+c,YAAY,IAAE,CAAE;AAAAjd,kBAAAA,QAAA,EACxB,mBAAA;iBAEO,CAAA;eACJ,CAAA;aAET,CAAA;WACE,CAAA;AAET,SAAA;OACD,CAAA;AAAC,KACC,CAAC,EAGL+b,UAAU,iBACT7b,GAAA,CAAA,KAAA,EAAA;AAAKK,MAAAA,SAAS,EAAC,KAAK;AAACsH,MAAAA,KAAK,EAAE;AAAEqV,QAAAA,aAAa,EAAE,EAAA;OAAK;MAAAld,QAAA,eAChDI,IAAA,CAAC+c,KAAK,EAAA;AAAC1L,QAAAA,IAAI,EAAC,QAAQ;QAAAzR,QAAA,EAAA,cAClBE,GAAA,CAAC8c,MAAM,EAAA;AACLlW,UAAAA,IAAI,EAAC,SAAS;AACdsL,UAAAA,IAAI,eAAElS,GAAA,CAAC+c,YAAY,IAAE,CAAE;AACvBpV,UAAAA,KAAK,EAAE;AAAEqQ,YAAAA,OAAO,EAAE,WAAA;WAAc;AAChC3X,UAAAA,SAAS,EAAC,UAAU;AACpBsQ,UAAAA,OAAO,EAAEgL,QAAS;UAAA7b,QAAA,EAEjBic,KAAK,CAACC,SAAAA;AAAS,SACV,CAAC,eACThc,GAAA,CAAC8c,MAAM,EAAA;AACLlW,UAAAA,IAAI,EAAC,SAAS;AACde,UAAAA,KAAK,EAAE;AAAEqQ,YAAAA,OAAO,EAAE,WAAA;WAAc;AAChC3X,UAAAA,SAAS,EAAC,UAAU;AACpBsQ,UAAAA,OAAO,EAAEiL,QAAS;UAAA9b,QAAA,EAEjBic,KAAK,CAACE,YAAAA;AAAY,SACb,CAAC,CAAA;OACJ,CAAA;AAAC,KACL,CACN,CAAA;AAAA,GACE,CAAC,CAAA;AAEZ,CAAC,CAAC,CAAA;AAEF,MAAMiB,YAAY,GAAGhQ,KAAA,IAAA;EAAA,IAAC;IAAEzD,OAAO;IAAEuI,MAAM;IAAElS,QAAQ;AAAEsH,IAAAA,QAAQ,GAAG,KAAA;AAAM,GAAC,GAAA8F,KAAA,CAAA;AAAA,EAAA,oBACnElN,GAAA,CAAA,KAAA,EAAA;AAAKK,IAAAA,SAAS,EAAC,oBAAoB;IAAAP,QAAA,eACjCE,GAAA,CAAC8c,MAAM,EAAA;AAACzc,MAAAA,SAAS,EAAC,UAAU;AAACoJ,MAAAA,OAAO,EAAEA,OAAQ;AAACkH,MAAAA,OAAO,EAAEqB,MAAO;AAAC5K,MAAAA,QAAQ,EAAEA,QAAS;AAAAtH,MAAAA,QAAA,EAChFA,QAAAA;KACK,CAAA;AAAC,GACN,CAAC,CAAA;AAAA,CACP,CAAA;AAEM,MAAMqd,eAAe,gBAAGzd,IAAI,CAAC0d,KAAA,IAmB9B;EAAA,IAnB+B;IACnC5I,IAAI;IACJ6I,MAAM;IACNC,MAAM;IACNC,SAAS;IACTC,SAAS;IACTC,kBAAkB;AAClBC,IAAAA,MAAM,GAAG;AACPpW,MAAAA,IAAI,EAAE;AACJQ,QAAAA,KAAK,EAAE,aAAa;AACpBW,QAAAA,WAAW,EAAE,mBAAmB;AAChCV,QAAAA,QAAQ,EAAE,IAAA;AACZ,OAAA;KACD;AACDgU,IAAAA,KAAK,GAAG;AACN4B,MAAAA,UAAU,EAAE,MAAM;AAClBC,MAAAA,UAAU,EAAE,MAAA;KACb;AACDC,IAAAA,aAAAA;AACF,GAAC,GAAAT,KAAA,CAAA;EACC,MAAM,CAACU,eAAe,EAAEC,kBAAkB,CAAC,GAAGpd,QAAQ,CAAC,EAAE,CAAC,CAAA;EAC1D,MAAMqd,eAAe,GAAG3W,IAAI,CAAC4W,QAAQ,CAAC,eAAe,EAAEzJ,IAAI,CAAC,IAAI,EAAE,CAAA;;AAElE;AACA,EAAA,MAAM0J,eAAe,GAAGR,MAAM,CAACS,aAAa,KAAK,IAAI,IAAIT,MAAM,CAACS,aAAa,KAAKrf,SAAS,CAAA;;AAE3F;AACA+K,EAAAA,SAAS,CAAC,MAAM;AACd,IAAA,IAAIqU,eAAe,EAAE;MACnB,MAAME,YAAY,GAAG5J,IAAI,CAAC6J,aAAa,CAAC,eAAe,CAAC,IAAI,EAAE,CAAA;MAC9DN,kBAAkB,CAACK,YAAY,CAAC,CAAA;AAClC,KAAA;GACD,EAAE,CAACP,aAAa,EAAErJ,IAAI,EAAE0J,eAAe,CAAC,CAAC,CAAC;;AAE3C;AACA,EAAA,MAAMI,eAAe,GAAGpZ,OAAO,CAAC,MAAM;AACpC,IAAA,IAAI,CAACgZ,eAAe,EAAE,OAAO,EAAE,CAAA;IAE/B,OAAOR,MAAM,CAACS,aAAa,CAACvV,OAAO,CAACzG,GAAG,CAACoc,QAAQ,IAAI;MAClD,MAAMC,mBAAmB,GAAGV,eAAe,CAACvI,QAAQ,CAACgJ,QAAQ,CAACjX,IAAI,CAAC,CAAA;AACnE,MAAA,MAAMmX,aAAa,GAAGjB,SAAS,GAAG,CAACgB,mBAAmB,GAAG,KAAK,CAAA;AAE9D,MAAA,OAAAxd,cAAA,CAAAA,cAAA,CAAA,EAAA,EACKud,QAAQ,CAAA,EAAA,EAAA,EAAA;AACXnX,QAAAA,QAAQ,EAAEqX,aAAa;AACvBC,QAAAA,iBAAiB,EAAEF,mBAAAA;AAAmB,OAAA,CAAA,CAAA;AAE1C,KAAC,CAAC,CAAA;AACJ,GAAC,EAAE,CAACV,eAAe,EAAEN,SAAS,EAAEU,eAAe,EAAER,MAAM,CAACS,aAAa,CAAC,CAAC,CAAA;EAEvE,MAAMQ,oBAAoB,GAAIC,aAAa,IAAK;IAC9CpK,IAAI,CAAC+B,cAAc,CAAC;AAAE4H,MAAAA,aAAa,EAAES,aAAAA;AAAc,KAAC,CAAC,CAAA;GACtD,CAAA;AAED,EAAA,MAAMC,UAAU,GAAG,YAAY;IAC7B,IAAI;AACF,MAAA,MAAMC,UAAU,GAAG,MAAMtK,IAAI,CAACwC,cAAc,EAAE,CAAA;AAE9C,MAAA,MAAM+H,QAAQ,GAAG;AACf7U,QAAAA,EAAE,EAAEsK,IAAI,CAAC6J,aAAa,CAAC,IAAI,CAAC;AAC5B;QACA/W,IAAI,EAAEmW,kBAAkB,CAACnW,IAAI;AAC7B6W,QAAAA,aAAa,EAAED,eAAe,GACzBY,UAAU,CAACX,aAAa,IAAI,EAAE,GAC9B,CAAAV,kBAAkB,KAAlBA,IAAAA,IAAAA,kBAAkB,uBAAlBA,kBAAkB,CAAEU,aAAa,KAAI,EAAA;OAC3C,CAAA;MACD,MAAMb,MAAM,CAACyB,QAAQ,CAAC,CAAA;KACvB,CAAC,OAAO9d,KAAK,EAAE;AACdC,MAAAA,OAAO,CAACD,KAAK,CAAC,SAAS,EAAEA,KAAK,CAAC,CAAA;AACjC,KAAA;GACD,CAAA;EAED,oBACEf,IAAA,CAAC8e,IAAI,EAAA;IAACC,QAAQ,EAAA,IAAA;AAAC5e,IAAAA,SAAS,EAAC,QAAQ;IAAAP,QAAA,EAAA,cAC/BI,IAAA,CAACmH,IAAI,EAAA;AACHmN,MAAAA,IAAI,EAAEA,IAAK;AACX0K,MAAAA,MAAM,EAAC,UAAU;AACjBxX,MAAAA,YAAY,EAAC,KAAK;AAClBC,MAAAA,KAAK,EAAE;AAAEwX,QAAAA,IAAI,EAAE,CAAC;AAAEC,QAAAA,SAAS,EAAE,MAAA;OAAS;AAAAtf,MAAAA,QAAA,EAGtCE,cAAAA,GAAA,CAACqH,IAAI,CAACQ,IAAI,EAAA;AACRP,QAAAA,IAAI,EAAC,MAAM;AACXQ,QAAAA,KAAK,EAAE4V,MAAM,CAACpW,IAAI,CAACQ,KAAM;AACzBuX,QAAAA,KAAK,EAAE,CACL;AACEtX,UAAAA,QAAQ,EAAE2V,MAAM,CAACpW,IAAI,CAACS,QAAQ;AAC9BuX,UAAAA,SAAS,EAAE,OAAOC,CAAC,EAAE9a,KAAK,KAAK;YAC7B,IAAI,CAACA,KAAK,IAAIA,KAAK,CAACgC,IAAI,EAAE,KAAK,EAAE,EAAE;cACjC,OAAOmP,OAAO,CAAC4J,MAAM,CAAC,IAAIjS,KAAK,CAAC,4CAA4C,CAAC,CAAC,CAAA;AAChF,aAAA;AACF,WAAA;AACF,SAAC,CACD;QAAAzN,QAAA,eAEFE,GAAA,CAACgI,KAAK,EAAA;AACJS,UAAAA,WAAW,EAAEiV,MAAM,CAACpW,IAAI,CAACmB,WAAY;AACrCrB,UAAAA,QAAQ,EAAEoW,SAAAA;SACX,CAAA;OACQ,CAAC,EAGXU,eAAe,iBACdle,GAAA,CAACqH,IAAI,CAACQ,IAAI,EAAA;AACRP,QAAAA,IAAI,EAAC,eAAe;AACpBQ,QAAAA,KAAK,EAAE4V,MAAM,CAACS,aAAa,CAACrW,KAAM;AAClCuX,QAAAA,KAAK,EAAE,CACL;AACEtX,UAAAA,QAAQ,EAAE2V,MAAM,CAACS,aAAa,CAACpW,QAAQ;AACvCjH,UAAAA,OAAO,EAAE,qCAAqC;AAC9Cwe,UAAAA,SAAS,EAAEA,CAACC,CAAC,EAAE9a,KAAK,KAAK;AACvB,YAAA,IAAIA,KAAK,IAAIA,KAAK,CAAC5F,MAAM,GAAG,CAAC,EAAE;AAC7B,cAAA,OAAO+W,OAAO,CAAC6J,OAAO,EAAE,CAAA;AAC1B,aAAA;YACA,OAAO7J,OAAO,CAAC4J,MAAM,CAAC,IAAIjS,KAAK,CAAC,qCAAqC,CAAC,CAAC,CAAA;AACzE,WAAA;AACF,SAAC,CACD;AAAAzN,QAAAA,QAAA,eAEFE,GAAA,CAAC0f,QAAQ,CAACC,KAAK,EAAA;AACbtf,UAAAA,SAAS,EAAC,wBAAwB;AAClC8H,UAAAA,QAAQ,EAAEwW,oBAAqB;UAAA7e,QAAA,EAE9Bwe,eAAe,CAACnc,GAAG,CAACoc,QAAQ,iBAC3Bve,GAAA,CAAC0f,QAAQ,EAAA;YAEPjb,KAAK,EAAE8Z,QAAQ,CAACjX,IAAK;YACrBF,QAAQ,EAAEmX,QAAQ,CAACnX,QAAS;YAAAtH,QAAA,EAE3Bye,QAAQ,CAACzW,KAAAA;WAJLyW,EAAAA,QAAQ,CAACjX,IAKN,CACX,CAAA;SACa,CAAA;OACP,CACZ,EAGAoW,MAAM,CAAClB,WAAW,iBACjBxc,GAAA,CAACqH,IAAI,CAACQ,IAAI,EAAA;AACRP,QAAAA,IAAI,EAAC,aAAa;AAClBQ,QAAAA,KAAK,EAAE4V,MAAM,CAAClB,WAAW,CAAC1U,KAAM;AAAAhI,QAAAA,QAAA,eAEhCE,GAAA,CAACgI,KAAK,CAACE,QAAQ,EAAA;AACb0X,UAAAA,IAAI,EAAE,CAAE;AACRnX,UAAAA,WAAW,EAAEiV,MAAM,CAAClB,WAAW,CAAC/T,WAAY;AAC5CrB,UAAAA,QAAQ,EAAEoW,SAAAA;SACX,CAAA;AAAC,OACO,CACZ,CAAA;KACG,CAAC,EACNA,SAAS,gBACRxd,GAAA,CAACkd,YAAY,EAAAlc,cAAA,CAAAA,cAAA,CAAA;AACXgR,MAAAA,MAAM,EAAE6M,UAAAA;AAAW,KAAA,EACdX,eAAe,IAAI;MAAE9W,QAAQ,EAAE,CAAC4W,eAAe,CAACnf,MAAAA;KAAQ,CAAA,EAAA,EAAA,EAAA;MAAAiB,QAAA,EAE5Dic,KAAK,CAAC4B,UAAAA;AAAU,KAAA,CACL,CAAC,gBAEf3d,GAAA,CAACkd,YAAY,EAAA;AACXlL,MAAAA,MAAM,EAAEqL,MAAO;AACf5T,MAAAA,OAAO,EAAE8T,SAAU;MAAAzd,QAAA,EAElBic,KAAK,CAAC6B,UAAAA;AAAU,KACL,CACf,CAAA;AAAA,GACG,CAAC,CAAA;AAEX,CAAC,CAAC;;AC/QF,MAAMiC,MAAM,GAAGlgB,IAAA,IAkCT;EAAA,IAlCU;IACdqH,IAAI;IACJ0M,OAAO;AACP;IACAoM,aAAa;IACbC,UAAU;IACVC,YAAY;IACZC,UAAU;IACVC,aAAa;AAAG;IAChBC,WAAW;AAAK;AAChB;AACAzC,IAAAA,MAAM,GAAG;AACPpW,MAAAA,IAAI,EAAE;AACJQ,QAAAA,KAAK,EAAE,aAAa;AACpBW,QAAAA,WAAW,EAAE,mBAAmB;AAChCV,QAAAA,QAAQ,EAAE,IAAA;AACZ,OAAA;KACD;AACDgU,IAAAA,KAAK,GAAG;AACNnc,MAAAA,KAAK,EAAE,mBAAmB;AAC1B8c,MAAAA,SAAS,EAAE,+CAA+C;AAC1D0D,MAAAA,aAAa,EAAE,+BAA+B;AAC9CC,MAAAA,WAAW,EAAE,sCAAsC;AACnDC,MAAAA,QAAQ,EAAE,YAAY;AACtBC,MAAAA,WAAW,EAAE,SAAS;AACtBvE,MAAAA,SAAS,EAAE,YAAY;AACvBC,MAAAA,YAAY,EAAE,QAAQ;AACtB0B,MAAAA,UAAU,EAAE,MAAM;AAClBC,MAAAA,UAAU,EAAE,MAAA;KACb;AACD;AACAjY,IAAAA,KAAK,GAAG,IAAI;AACZ6a,IAAAA,MAAM,GAAG,GAAG;AACZngB,IAAAA,SAAS,GAAG,EAAA;AACd,GAAC,GAAAV,IAAA,CAAA;EACC,MAAM;AAAEmB,IAAAA,OAAO,EAAE2f,WAAW;AAAEpW,IAAAA,KAAK,EAAEyH,SAAAA;AAAU,GAAC,GAAGlM,GAAG,CAACC,MAAM,EAAE,CAAA;EAC/D,MAAM,CAAC6a,UAAU,EAAEC,aAAa,CAAC,GAAGhgB,QAAQ,CAAC,EAAE,CAAC,CAAA;EAChD,MAAM,CAACigB,cAAc,EAAEC,iBAAiB,CAAC,GAAGlgB,QAAQ,CAAC,IAAI,CAAC,CAAA;EAC1D,MAAM,CAAC8I,OAAO,EAAEC,UAAU,CAAC,GAAG/I,QAAQ,CAAC,KAAK,CAAC,CAAA;EAC7C,MAAM,CAACkd,aAAa,EAAEiD,gBAAgB,CAAC,GAAGngB,QAAQ,CAAC,CAAC,CAAC,CAAA;EACrD,MAAM,CAAC6T,IAAI,CAAC,GAAGnN,IAAI,CAACoN,OAAO,EAAE,CAAA;;AAE7B;AACA5K,EAAAA,SAAS,CAAC,MAAM;AACdkX,IAAAA,eAAe,EAAE,CAAA;GAClB,EAAE,EAAE,CAAC,CAAA;AAEN,EAAA,MAAMA,eAAe,GAAGlgB,WAAW,CAAC,YAAY;IAC9C,IAAI;AACF,MAAA,MAAMY,IAAI,GAAG,MAAMqe,aAAa,EAAE,CAAA;AAClC,MAAA,MAAMkB,OAAO,GAAG,CAAAvf,IAAI,KAAJA,IAAAA,IAAAA,IAAI,KAAJA,KAAAA,CAAAA,GAAAA,KAAAA,CAAAA,GAAAA,IAAI,CAAEwf,WAAW,KAAIxf,IAAI,IAAI,EAAE,CAAA;MAC/Ckf,aAAa,CAACK,OAAO,CAAC,CAAA;KACvB,CAAC,OAAO/f,KAAK,EAAE;AACbC,MAAAA,OAAO,CAACD,KAAK,CAAC,8BAA8B,EAAEA,KAAK,CAAC,CAAA;AACvD,KAAA;AACF,GAAC,EAAE,CAAC6e,aAAa,CAAC,CAAC,CAAA;AAEnB,EAAA,MAAMoB,kBAAkB,GAAGrgB,WAAW,CAAEsgB,MAAM,IAAK;IACjDN,iBAAiB,CAACM,MAAM,CAAC,CAAA;AACzB3M,IAAAA,IAAI,CAAC+B,cAAc,CAAC4K,MAAM,CAAC,CAAA;IAC3BL,gBAAgB,CAAC/f,IAAI,IAAIA,IAAI,GAAG,CAAC,CAAC,CAAC;AACrC,GAAC,EAAE,CAACyT,IAAI,CAAC,CAAC,CAAA;AAEV,EAAA,MAAM4M,YAAY,GAAGvgB,WAAW,CAAC,MAAM;AAAA,IAAA,IAAAwgB,qBAAA,CAAA;AACrC,IAAA,MAAMC,aAAa,GAAGZ,UAAU,CAACa,IAAI,CAACnf,IAAI,IAAI,CAACA,IAAI,CAAC8H,EAAE,CAAC,CAAA;AAEvD,IAAA,IAAIoX,aAAa,EAAE;AACjBb,MAAAA,WAAW,CAACe,OAAO,CAAC,mCAAmC,CAAC,CAAA;AACxD,MAAA,OAAA;AACF,KAAA;;AAEA;AACA,IAAA,MAAMC,SAAS,GAAGC,MAAM,CAACC,IAAI,CAACjE,MAAM,CAAC,CAACkE,MAAM,CAAC,CAACC,GAAG,EAAEC,SAAS,KAAK;AAC/DD,MAAAA,GAAG,CAACC,SAAS,CAAC,GAAG,EAAE,CAAA;AACnB,MAAA,OAAOD,GAAG,CAAA;KACX,EAAE,EAAE,CAAC,CAAA;;AAEN;IACA,IAAAR,CAAAA,qBAAA,GAAI3D,MAAM,CAACS,aAAa,MAAAkD,IAAAA,IAAAA,qBAAA,KAApBA,KAAAA,CAAAA,IAAAA,qBAAA,CAAsBzY,OAAO,EAAE;AACjC6Y,MAAAA,SAAS,CAACtD,aAAa,GAAGT,MAAM,CAACS,aAAa,CAACvV,OAAO,CAACzG,GAAG,CAACC,IAAI,IAAIA,IAAI,CAACkF,IAAI,CAAC,CAAA;AAC/E,KAAA;AAEAqZ,IAAAA,aAAa,CAAC,CAAC,GAAGD,UAAU,EAAEe,SAAS,CAAC,CAAC,CAAA;IACzCZ,iBAAiB,CAACY,SAAS,CAAC,CAAA;AAC5BjN,IAAAA,IAAI,CAAC+B,cAAc,CAACkL,SAAS,CAAC,CAAA;GAC/B,EAAE,CAACjN,IAAI,EAAEkM,UAAU,EAAED,WAAW,CAAC,CAAC,CAAA;AAEnC,EAAA,MAAMsB,YAAY,GAAGlhB,WAAW,CAAC,YAAY;IAC3C,IAAI,CAAC+f,cAAc,EAAE,OAAA;;AAErB;AACA,IAAA,MAAMoB,eAAe,GAAG,CAACpB,cAAc,CAAC1W,EAAE,CAAA;AAC1C,IAAA,MAAM+X,UAAU,GAAGrB,cAAc,CAACtZ,IAAI,IAAI,iBAAiB,CAAA;IAE3D,IAAI;MACFwK,SAAS,CAACG,OAAO,CAAC;AAChBC,QAAAA,IAAI,eAAElS,GAAA,CAACmS,uBAAuB,IAAE,CAAC;AACjCvS,QAAAA,KAAK,EAAE,eAAe;QACtBsiB,OAAO,EAAA,EAAA,CAAA5hB,MAAA,CAAKyb,KAAK,CAACqE,aAAa,EAAA9f,KAAAA,CAAAA,CAAAA,MAAA,CAAK2hB,UAAU,EAAI,KAAA,CAAA;AAClDvc,QAAAA,UAAU,EAAE,IAAI;AAChBD,QAAAA,MAAM,EAAE,KAAK;QACbF,IAAI,EAAE,YAAY;UAChB,IAAI,CAACyc,eAAe,EAAE;AACpB,YAAA,MAAMhC,YAAY,CAAC;cAAE9V,EAAE,EAAE0W,cAAc,CAAC1W,EAAAA;AAAG,aAAC,CAAC,CAAA;AAC7CuW,YAAAA,WAAW,CAACtQ,OAAO,CAAC4L,KAAK,CAACwE,WAAW,CAAC,CAAA;AACtC;YACA,MAAMQ,eAAe,EAAE,CAAA;AACzB,WAAC,MAAM;AACLJ,YAAAA,aAAa,CAAC5f,IAAI,IAAIA,IAAI,CAACuB,MAAM,CAACF,IAAI,IAAI,CAAC,CAACA,IAAI,CAAC8H,EAAE,CAAC,CAAC,CAAA;AACvD,WAAA;;AAEA;UACA2W,iBAAiB,CAAC,IAAI,CAAC,CAAA;UACvBrM,IAAI,CAACyB,WAAW,EAAE,CAAA;AACpB,SAAA;AACF,OAAC,CAAC,CAAA;KACH,CAAC,OAAOhV,KAAK,EAAE;AACdC,MAAAA,OAAO,CAACD,KAAK,CAAC,0BAA0B,EAAEA,KAAK,CAAC,CAAA;AAClD,KAAA;AACF,GAAC,EAAE,CAAC2f,cAAc,EAAEpM,IAAI,EAAE1C,SAAS,EAAE2O,WAAW,EAAEM,eAAe,EAAEhF,KAAK,CAAC,CAAC,CAAA;AAE1E,EAAA,MAAMoG,gBAAgB,GAAGthB,WAAW,CAAC,MAAOke,QAAQ,IAAK;IACvD,IAAI,CAACA,QAAQ,EAAE,OAAA;;AAEf;IACAjN,SAAS,CAACG,OAAO,CAAC;AAChBrS,MAAAA,KAAK,EAAE,aAAa;AACpBsiB,MAAAA,OAAO,EAAA5hB,EAAAA,CAAAA,MAAA,CAAKyb,KAAK,CAACsE,WAAW,EAAA/f,KAAAA,CAAAA,CAAAA,MAAA,CAAKye,QAAQ,CAACzX,IAAI,EAAI,KAAA,CAAA;AACnD5B,MAAAA,UAAU,EAAE,IAAI;AAChBD,MAAAA,MAAM,EAAE,KAAK;MACbF,IAAI,EAAE,YAAY;AAChB;AACA,QAAA,MAAM6c,aAAa,GAAGrb,KAAK,CAACsb,IAAI,CAAC;UAC/BziB,KAAK,EAAEmc,KAAK,CAACuE,QAAQ;UACrB4B,OAAO,eAAEliB,GAAA,CAACgR,IAAI,EAAA;AAACO,YAAAA,IAAI,EAAC,OAAO;AAAClR,YAAAA,SAAS,EAAC,eAAA;AAAe,WAAE,CAAC;AACxD4G,UAAAA,YAAY,EAAE,KAAK;AACnBqb,UAAAA,aAAa,EAAE;AAAE3a,YAAAA,KAAK,EAAE;AAAE4G,cAAAA,OAAO,EAAE,MAAA;AAAO,aAAA;AAAE,WAAA;AAC9C,SAAC,CAAC,CAAA;QAEF,IAAI;UACF,MAAM0R,UAAU,CAAAjf,cAAA,CAAA;YACdkJ,EAAE,EAAE6U,QAAQ,CAAC7U,EAAAA;WACT6U,EAAAA,QAAQ,CAACZ,aAAa,IAAI;YAAEA,aAAa,EAAEY,QAAQ,CAACZ,aAAAA;AAAc,WAAC,CACxE,CAAC,CAAA;AACF;AACAvO,UAAAA,UAAU,CAAC,MAAM;YACfwS,aAAa,CAACG,OAAO,EAAE,CAAA;AACvB9B,YAAAA,WAAW,CAACtQ,OAAO,CAAC4L,KAAK,CAACwE,WAAW,CAAC,CAAA;;AAEtC;AACA,YAAA,IAAIL,aAAa,EAAE;cACjBA,aAAa,CAACnB,QAAQ,CAAC,CAAA;AACzB,aAAA;WACD,EAAE,IAAI,CAAC,CAAA;SACT,CAAC,OAAO9d,KAAK,EAAE;AACdC,UAAAA,OAAO,CAACD,KAAK,CAAC,wBAAwB,EAAEA,KAAK,CAAC,CAAA;UAC9CmhB,aAAa,CAACG,OAAO,EAAE,CAAA;;AAEvB;AACA,UAAA,IAAIpC,WAAW,EAAE;AACfA,YAAAA,WAAW,CAAClf,KAAK,EAAE8d,QAAQ,CAAC,CAAA;AAC9B,WAAA;AACF,SAAA;AACF,OAAA;AACF,KAAC,CAAC,CAAA;AACJ,GAAC,EAAE,CAACkB,UAAU,EAAElE,KAAK,EAAE0E,WAAW,EAAE3O,SAAS,EAAEoO,aAAa,EAAEC,WAAW,CAAC,CAAC,CAAA;AAE3E,EAAA,MAAMqC,UAAU,GAAG3hB,WAAW,CAAC,YAAY;IACzC6I,UAAU,CAAC,IAAI,CAAC,CAAA;IAChB,IAAI;AACF,MAAA,MAAMyM,MAAM,GAAG,MAAM3B,IAAI,CAACwC,cAAc,EAAE,CAAA;AAC1C9V,MAAAA,OAAO,CAAC7B,GAAG,CAAC,cAAc,EAAE8W,MAAM,CAAC,CAAA;MACnC,MAAM4J,UAAU,CAAC5J,MAAM,CAAC,CAAA;AACxBsK,MAAAA,WAAW,CAACtQ,OAAO,CAAC4L,KAAK,CAACwE,WAAW,CAAC,CAAA;AACtC;MACA,MAAMQ,eAAe,EAAE,CAAA;;AAEvB;MACAF,iBAAiB,CAAC,IAAI,CAAC,CAAA;MACvBrM,IAAI,CAACyB,WAAW,EAAE,CAAA;KACnB,CAAC,OAAOhV,KAAK,EAAE;MACd,IAAIA,KAAK,CAACwhB,WAAW,EAAE;AACrB;QACAvhB,OAAO,CAACD,KAAK,CAAC,yBAAyB,EAAEA,KAAK,CAACwhB,WAAW,CAAC,CAAA;AAC7D,OAAC,MAAM;AACLvhB,QAAAA,OAAO,CAACD,KAAK,CAAC,wBAAwB,EAAEA,KAAK,CAAC,CAAA;AAChD,OAAA;AACF,KAAC,SAAS;MACRyI,UAAU,CAAC,KAAK,CAAC,CAAA;AACnB,KAAA;AACF,GAAC,EAAE,CAAC8K,IAAI,EAAEiM,WAAW,EAAEM,eAAe,EAAEhB,UAAU,EAAEhE,KAAK,CAAC,CAAC,CAAA;EAE3D,oBACE/b,GAAA,CAAC+G,KAAK,EAAA;IACJnH,KAAK,EAAEmc,KAAK,CAACnc,KAAM;AACnB+F,IAAAA,KAAK,EAAEA,KAAM;AACbqB,IAAAA,IAAI,EAAEA,IAAK;AACX0b,IAAAA,aAAa,EAAApiB,oBAAAA,CAAAA,MAAA,CAAuBD,SAAS,CAAG;AAChD4X,IAAAA,MAAM,EAAE,IAAK;AACb3S,IAAAA,QAAQ,EAAEoO,OAAQ;IAClBmE,QAAQ,EAAA,IAAA;AACRE,IAAAA,MAAM,EAAE;AACNrJ,MAAAA,IAAI,EAAE;QACJ8R,MAAM,EAAA,EAAA,CAAAlgB,MAAA,CAAKkgB,MAAM,EAAA,IAAA,CAAA;AACnB,OAAA;KACA;IAAA1gB,QAAA,eAEFI,IAAA,CAACyiB,GAAG,EAAA;AAACC,MAAAA,MAAM,EAAE,CAAE;AAACviB,MAAAA,SAAS,EAAC,eAAe;MAAAP,QAAA,EAAA,cACvCE,GAAA,CAAC6iB,GAAG,EAAA;AAACrb,QAAAA,IAAI,EAAE,EAAG;AAACnH,QAAAA,SAAS,EAAC,QAAQ;QAAAP,QAAA,eAC/BE,GAAA,CAACub,QAAQ,EAAA;AACPC,UAAAA,UAAU,EAAEkF,UAAW;AACvBjF,UAAAA,gBAAgB,EAAEmF,cAAc,KAAA,IAAA,IAAdA,cAAc,KAAdA,KAAAA,CAAAA,GAAAA,KAAAA,CAAAA,GAAAA,cAAc,CAAE1W,EAAG;AACrCwR,UAAAA,cAAc,EAAEwF,kBAAmB;AACnCvF,UAAAA,QAAQ,EAAEyF,YAAa;AACvBxF,UAAAA,QAAQ,EAAEmG,YAAa;AACvBjG,UAAAA,eAAe,EAAE,CAAC,CAAC4B,MAAM,CAAClB,WAAY;AAAC;AACvCT,UAAAA,KAAK,EAAE;YACLC,SAAS,EAAED,KAAK,CAACC,SAAS;YAC1BC,YAAY,EAAEF,KAAK,CAACE,YAAAA;AACtB,WAAA;SACD,CAAA;AAAC,OACC,CAAC,eACNjc,GAAA,CAAC6iB,GAAG,EAAA;AAACrb,QAAAA,IAAI,EAAE,EAAG;AAACnH,QAAAA,SAAS,EAAC,YAAY;AAAAP,QAAAA,QAAA,EAClC8gB,cAAc,gBACb5gB,GAAA,CAACmd,eAAe,EAAA;AACd3I,UAAAA,IAAI,EAAEA,IAAK;AACX6I,UAAAA,MAAM,EAAEmF,UAAW;AACnBlF,UAAAA,MAAM,EAAE6E,gBAAiB;AACzB5E,UAAAA,SAAS,EAAE9T,OAAQ;UACnB+T,SAAS,EAAE,CAAC,EAACoD,cAAc,KAAA,IAAA,IAAdA,cAAc,KAAdA,KAAAA,CAAAA,IAAAA,cAAc,CAAE1W,EAAE,CAAC;UAChCuT,kBAAkB,EAAEmD,cAAe;AAAC;AACpClD,UAAAA,MAAM,EAAEA,MAAO;AACf3B,UAAAA,KAAK,EAAE;YACL4B,UAAU,EAAE5B,KAAK,CAAC4B,UAAU;YAC5BC,UAAU,EAAE7B,KAAK,CAAC6B,UAAAA;WAClB;AACFC,UAAAA,aAAa,EAAEA,aAAAA;AAAc,SAC9B,CAAC,gBAEF7d,GAAA,CAACgf,IAAI,EAAA;UAACC,QAAQ,EAAA,IAAA;AAAC6D,UAAAA,OAAO,EAAC,QAAQ;AAACC,UAAAA,KAAK,EAAC,QAAQ;AAAC1iB,UAAAA,SAAS,EAAC,sBAAsB;UAAAP,QAAA,eAC7EE,GAAA,CAAC2c,KAAK,EAAA;YACJC,KAAK,EAAED,KAAK,CAACE,sBAAuB;YACpCL,WAAW,EAAET,KAAK,CAACW,SAAAA;WACpB,CAAA;SACG,CAAA;AACP,OACE,CAAC,CAAA;KACH,CAAA;AAAC,GACD,CAAC,CAAA;AAEZ,CAAC,CAAA;AAED,kBAAehd,aAAAA,IAAI,CAACmgB,MAAM,CAAC;;;AC/P3B,MAAMmD,cAAc,GAAGrjB,IAAA,IAWhB;EAAA,IAXiB;AACtB+K,MAAAA,SAAS,GAAG,EAAE;MACdC,WAAW;MACXC,aAAa;MACbC,cAAc;MACdC,aAAa;AACbC,MAAAA,eAAe,GAAG,0BAA0B;AAC5CC,MAAAA,mBAAmB,GAAG,IAAI;AAC1BC,MAAAA,qBAAqB,GAAG,IAAI;AAC5BnL,MAAAA,QAAAA;AAED,KAAC,GAAAH,IAAA;AADGsjB,IAAAA,aAAa,GAAAC,wBAAA,CAAAvjB,IAAA,EAAAwjB,WAAA,CAAA,CAAA;AAEhB,EAAA,MAAM,CAAC3S,cAAc,CAAC,GAAG/F,YAAU,CAAC;IAClCC,SAAS;IACTC,WAAW;IACXC,aAAa;IACbC,cAAc;IACdC,aAAa;IACbC,eAAe;IACfC,mBAAmB;AACnBC,IAAAA,qBAAAA;AACF,GAAC,CAAC,CAAA;AAEF,EAAA,IAAInL,QAAQ,EAAE;AACZ;IACA,MAAMsjB,eAAe,GAAG5S,cAAc,CAAC6S,KAAK,CAACvjB,QAAQ,CAAC,CAAC,CAAC,CAAA;IACxD,MAAMwjB,aAAa,GAAG9S,cAAc,CAAC6S,KAAK,CAACvjB,QAAQ,CAAC+M,KAAK,CAAC,CAAC,CAAC,CAAA;IAE5D,oBACE3M,IAAA,CAAAC,QAAA,EAAA;AAAAL,MAAAA,QAAA,EACEE,cAAAA,GAAA,CAACyQ,QAAQ,EAAAzP,cAAA,CAAAA,cAAA,CAAAA,cAAA,CACHiiB,EAAAA,EAAAA,aAAa,CACbG,EAAAA,eAAe,CAACC,KAAK,CAAA,EAAA,EAAA,EAAA;AAAAvjB,QAAAA,QAAA,EAExBA,QAAAA;OACO,CAAA,CAAC,EACVwjB,aAAa,CAAA;AAAA,KACd,CAAC,CAAA;AAEP,GAAA;;AAEA;AACA,EAAA,OAAO9S,cAAc,CAAA;AACtB,CAAC,CAAA;AAEDwS,cAAc,CAACO,YAAY,GAAG;EAC7B3S,OAAO,EAAE,CAAC,OAAO,CAAC;AAClB4S,EAAAA,SAAS,EAAE,aAAA;AACb,CAAC,CAAA;AAED,uBAAeR,cAAc;;;;;;;;;;;;;;;;;;;;;;;;;;AC5ChB,IAAI,CAAC,CAAC,UAAU,GAAG,OAAO,MAAM,EAAE,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,mBAAmB,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,kBAAkB,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,uBAAuB,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,mBAAmB,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;AACrf,CAAA,MAAM,CAAC,GAAG,CAAC,qBAAqB,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,mBAAmB,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,iBAAiB,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC,KAAK,CAAA;AACvQ,CAAA,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,QAAQ,GAAG,OAAO,CAAC,EAAE,IAAI,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,KAAK,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,CAAC,QAAQ,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,CAAC,QAAQ,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,sBAAiB,CAAA,SAAA,CAAC,CAAC,CAAC,sBAAA,CAAA,cAAsB,CAAC,CAAC,CAAC,sBAAuB,CAAA,eAAA,CAAC,CAAC,CAAC,sCAAuB,CAAC,CAAC,CAAC,sBAAA,CAAA,OAAe,CAAC,CAAC,CAAC,sBAAkB,CAAA,UAAA,CAAC,CAAC,CAAC,sBAAA,CAAA,QAAgB,CAAC,CAAC,CAAC,sBAAY,CAAA,IAAA,CAAC,CAAC,CAAC,2BAAY,CAAC,CAAC,CAAC,sBAAA,CAAA,MAAc,CAAC,CAAC,CAAA;AACjf,CAAA,sBAAA,CAAA,QAAgB,CAAC,CAAC,CAAC,sBAAA,CAAA,UAAkB,CAAC,CAAC,CAAC,sBAAA,CAAA,QAAgB,CAAC,CAAC,CAAC,sBAAA,CAAA,WAAmB,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,sBAAwB,CAAA,gBAAA,CAAC,CAAC,CAAC,sBAAyB,CAAA,iBAAA,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,sBAAyB,CAAA,iBAAA,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,sBAAiB,CAAA,SAAA,CAAC,SAAS,CAAC,CAAC,CAAC,OAAM,QAAQ,GAAG,OAAO,CAAC,EAAE,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,QAAQ,GAAG,CAAC,CAAC,CAAC,sBAAoB,CAAA,YAAA,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,sBAAkB,CAAA,UAAA,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,sBAAc,CAAA,MAAA,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAA;AAC3d,CAAA,sBAAA,CAAA,MAAc,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,+BAAgB,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,sBAAkB,CAAA,UAAA,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,sBAAA,CAAA,YAAoB,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,sBAAkB,CAAA,UAAA,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAA;AAC3O,CAA0B,sBAAA,CAAA,kBAAA,CAAC,SAAS,CAAC,CAAC,CAAC,OAAM,QAAQ,GAAG,OAAO,CAAC,EAAE,UAAU,GAAG,OAAO,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,QAAQ,GAAG,OAAO,CAAC,EAAE,IAAI,GAAG,CAAC,GAAG,CAAC,CAAC,QAAQ,GAAG,CAAC,EAAE,CAAC,CAAC,QAAQ,GAAG,CAAC,EAAE,CAAC,CAAC,QAAQ,GAAG,CAAC,EAAE,CAAC,CAAC,QAAQ,GAAG,CAAC,EAAE,CAAC,CAAC,QAAQ,GAAG,CAAC,EAAE,CAAC,CAAC,QAAQ,GAAG,CAAC,EAAE,CAAC,CAAC,QAAQ,GAAG,CAAC,EAAE,CAAC,CAAC,QAAQ,GAAG,CAAC,EAAE,CAAC,CAAC,QAAQ,GAAG,CAAC,CAAC,CAAC,CAAC,sBAAc,CAAA,MAAA,CAAC,CAAC,CAAA;;;;;;;;;;;;;;;;;;;;;;;ACDpU,CAAA,IAAI,OAAO,CAAC,GAAG,CAAC,QAAQ,KAAK,YAAY,EAAE;AAC3C,GAAE,CAAC,WAAW;;AAGd;AACA;CACA,IAAI,SAAS,GAAG,OAAO,MAAM,KAAK,UAAU,IAAI,MAAM,CAAC,GAAG,CAAA;CAC1D,IAAI,kBAAkB,GAAG,SAAS,GAAG,MAAM,CAAC,GAAG,CAAC,eAAe,CAAC,GAAG,MAAM,CAAA;CACzE,IAAI,iBAAiB,GAAG,SAAS,GAAG,MAAM,CAAC,GAAG,CAAC,cAAc,CAAC,GAAG,MAAM,CAAA;CACvE,IAAI,mBAAmB,GAAG,SAAS,GAAG,MAAM,CAAC,GAAG,CAAC,gBAAgB,CAAC,GAAG,MAAM,CAAA;CAC3E,IAAI,sBAAsB,GAAG,SAAS,GAAG,MAAM,CAAC,GAAG,CAAC,mBAAmB,CAAC,GAAG,MAAM,CAAA;CACjF,IAAI,mBAAmB,GAAG,SAAS,GAAG,MAAM,CAAC,GAAG,CAAC,gBAAgB,CAAC,GAAG,MAAM,CAAA;CAC3E,IAAI,mBAAmB,GAAG,SAAS,GAAG,MAAM,CAAC,GAAG,CAAC,gBAAgB,CAAC,GAAG,MAAM,CAAA;AAC3E,CAAA,IAAI,kBAAkB,GAAG,SAAS,GAAG,MAAM,CAAC,GAAG,CAAC,eAAe,CAAC,GAAG,MAAM,CAAC;AAC1E;;CAEA,IAAI,qBAAqB,GAAG,SAAS,GAAG,MAAM,CAAC,GAAG,CAAC,kBAAkB,CAAC,GAAG,MAAM,CAAA;CAC/E,IAAI,0BAA0B,GAAG,SAAS,GAAG,MAAM,CAAC,GAAG,CAAC,uBAAuB,CAAC,GAAG,MAAM,CAAA;CACzF,IAAI,sBAAsB,GAAG,SAAS,GAAG,MAAM,CAAC,GAAG,CAAC,mBAAmB,CAAC,GAAG,MAAM,CAAA;CACjF,IAAI,mBAAmB,GAAG,SAAS,GAAG,MAAM,CAAC,GAAG,CAAC,gBAAgB,CAAC,GAAG,MAAM,CAAA;CAC3E,IAAI,wBAAwB,GAAG,SAAS,GAAG,MAAM,CAAC,GAAG,CAAC,qBAAqB,CAAC,GAAG,MAAM,CAAA;CACrF,IAAI,eAAe,GAAG,SAAS,GAAG,MAAM,CAAC,GAAG,CAAC,YAAY,CAAC,GAAG,MAAM,CAAA;CACnE,IAAI,eAAe,GAAG,SAAS,GAAG,MAAM,CAAC,GAAG,CAAC,YAAY,CAAC,GAAG,MAAM,CAAA;CACnE,IAAI,gBAAgB,GAAG,SAAS,GAAG,MAAM,CAAC,GAAG,CAAC,aAAa,CAAC,GAAG,MAAM,CAAA;CACrE,IAAI,sBAAsB,GAAG,SAAS,GAAG,MAAM,CAAC,GAAG,CAAC,mBAAmB,CAAC,GAAG,MAAM,CAAA;CACjF,IAAI,oBAAoB,GAAG,SAAS,GAAG,MAAM,CAAC,GAAG,CAAC,iBAAiB,CAAC,GAAG,MAAM,CAAA;CAC7E,IAAI,gBAAgB,GAAG,SAAS,GAAG,MAAM,CAAC,GAAG,CAAC,aAAa,CAAC,GAAG,MAAM,CAAA;;CAErE,SAAS,kBAAkB,CAAC,IAAI,EAAE;GAChC,OAAO,OAAO,IAAI,KAAK,QAAQ,IAAI,OAAO,IAAI,KAAK,UAAU;AAC/D,GAAE,IAAI,KAAK,mBAAmB,IAAI,IAAI,KAAK,0BAA0B,IAAI,IAAI,KAAK,mBAAmB,IAAI,IAAI,KAAK,sBAAsB,IAAI,IAAI,KAAK,mBAAmB,IAAI,IAAI,KAAK,wBAAwB,IAAI,OAAO,IAAI,KAAK,QAAQ,IAAI,IAAI,KAAK,IAAI,KAAK,IAAI,CAAC,QAAQ,KAAK,eAAe,IAAI,IAAI,CAAC,QAAQ,KAAK,eAAe,IAAI,IAAI,CAAC,QAAQ,KAAK,mBAAmB,IAAI,IAAI,CAAC,QAAQ,KAAK,kBAAkB,IAAI,IAAI,CAAC,QAAQ,KAAK,sBAAsB,IAAI,IAAI,CAAC,QAAQ,KAAK,sBAAsB,IAAI,IAAI,CAAC,QAAQ,KAAK,oBAAoB,IAAI,IAAI,CAAC,QAAQ,KAAK,gBAAgB,IAAI,IAAI,CAAC,QAAQ,KAAK,gBAAgB,CAAC,CAAA;AACrmB,EAAA;;CAEA,SAAS,MAAM,CAAC,MAAM,EAAE;GACtB,IAAI,OAAO,MAAM,KAAK,QAAQ,IAAI,MAAM,KAAK,IAAI,EAAE;AACrD,KAAI,IAAI,QAAQ,GAAG,MAAM,CAAC,QAAQ,CAAA;;AAElC,KAAI,QAAQ,QAAQ;AACpB,OAAM,KAAK,kBAAkB;AAC7B,SAAQ,IAAI,IAAI,GAAG,MAAM,CAAC,IAAI,CAAA;;AAE9B,SAAQ,QAAQ,IAAI;AACpB,WAAU,KAAK,qBAAqB,CAAA;AACpC,WAAU,KAAK,0BAA0B,CAAA;AACzC,WAAU,KAAK,mBAAmB,CAAA;AAClC,WAAU,KAAK,mBAAmB,CAAA;AAClC,WAAU,KAAK,sBAAsB,CAAA;AACrC,WAAU,KAAK,mBAAmB;AAClC,aAAY,OAAO,IAAI,CAAA;;WAEb;AACV,aAAY,IAAI,YAAY,GAAG,IAAI,IAAI,IAAI,CAAC,QAAQ,CAAA;;AAEpD,aAAY,QAAQ,YAAY;AAChC,eAAc,KAAK,kBAAkB,CAAA;AACrC,eAAc,KAAK,sBAAsB,CAAA;AACzC,eAAc,KAAK,eAAe,CAAA;AAClC,eAAc,KAAK,eAAe,CAAA;AAClC,eAAc,KAAK,mBAAmB;AACtC,iBAAgB,OAAO,YAAY,CAAA;;eAErB;AACd,iBAAgB,OAAO,QAAQ,CAAA;AAC/B,cAAA;;AAEA,UAAA;;AAEA,OAAM,KAAK,iBAAiB;AAC5B,SAAQ,OAAO,QAAQ,CAAA;AACvB,MAAA;AACA,IAAA;;AAEA,GAAE,OAAO,SAAS,CAAA;EACjB;;CAED,IAAI,SAAS,GAAG,qBAAqB,CAAA;CACrC,IAAI,cAAc,GAAG,0BAA0B,CAAA;CAC/C,IAAI,eAAe,GAAG,kBAAkB,CAAA;CACxC,IAAI,eAAe,GAAG,mBAAmB,CAAA;CACzC,IAAI,OAAO,GAAG,kBAAkB,CAAA;CAChC,IAAI,UAAU,GAAG,sBAAsB,CAAA;CACvC,IAAI,QAAQ,GAAG,mBAAmB,CAAA;CAClC,IAAI,IAAI,GAAG,eAAe,CAAA;CAC1B,IAAI,IAAI,GAAG,eAAe,CAAA;CAC1B,IAAI,MAAM,GAAG,iBAAiB,CAAA;CAC9B,IAAI,QAAQ,GAAG,mBAAmB,CAAA;CAClC,IAAI,UAAU,GAAG,sBAAsB,CAAA;CACvC,IAAI,QAAQ,GAAG,mBAAmB,CAAA;CAClC,IAAI,mCAAmC,GAAG,KAAK,CAAC;;CAEhD,SAAS,WAAW,CAAC,MAAM,EAAE;GAC3B;KACE,IAAI,CAAC,mCAAmC,EAAE;OACxC,mCAAmC,GAAG,IAAI,CAAC;;OAE3C,OAAO,CAAC,MAAM,CAAC,CAAC,uDAAuD,GAAG,4DAA4D,GAAG,gEAAgE,CAAC,CAAA;AAChN,MAAA;AACA,IAAA;;GAEE,OAAO,gBAAgB,CAAC,MAAM,CAAC,IAAI,MAAM,CAAC,MAAM,CAAC,KAAK,qBAAqB,CAAA;AAC7E,EAAA;CACA,SAAS,gBAAgB,CAAC,MAAM,EAAE;AAClC,GAAE,OAAO,MAAM,CAAC,MAAM,CAAC,KAAK,0BAA0B,CAAA;AACtD,EAAA;CACA,SAAS,iBAAiB,CAAC,MAAM,EAAE;AACnC,GAAE,OAAO,MAAM,CAAC,MAAM,CAAC,KAAK,kBAAkB,CAAA;AAC9C,EAAA;CACA,SAAS,iBAAiB,CAAC,MAAM,EAAE;AACnC,GAAE,OAAO,MAAM,CAAC,MAAM,CAAC,KAAK,mBAAmB,CAAA;AAC/C,EAAA;CACA,SAAS,SAAS,CAAC,MAAM,EAAE;AAC3B,GAAE,OAAO,OAAO,MAAM,KAAK,QAAQ,IAAI,MAAM,KAAK,IAAI,IAAI,MAAM,CAAC,QAAQ,KAAK,kBAAkB,CAAA;AAChG,EAAA;CACA,SAAS,YAAY,CAAC,MAAM,EAAE;AAC9B,GAAE,OAAO,MAAM,CAAC,MAAM,CAAC,KAAK,sBAAsB,CAAA;AAClD,EAAA;CACA,SAAS,UAAU,CAAC,MAAM,EAAE;AAC5B,GAAE,OAAO,MAAM,CAAC,MAAM,CAAC,KAAK,mBAAmB,CAAA;AAC/C,EAAA;CACA,SAAS,MAAM,CAAC,MAAM,EAAE;AACxB,GAAE,OAAO,MAAM,CAAC,MAAM,CAAC,KAAK,eAAe,CAAA;AAC3C,EAAA;CACA,SAAS,MAAM,CAAC,MAAM,EAAE;AACxB,GAAE,OAAO,MAAM,CAAC,MAAM,CAAC,KAAK,eAAe,CAAA;AAC3C,EAAA;CACA,SAAS,QAAQ,CAAC,MAAM,EAAE;AAC1B,GAAE,OAAO,MAAM,CAAC,MAAM,CAAC,KAAK,iBAAiB,CAAA;AAC7C,EAAA;CACA,SAAS,UAAU,CAAC,MAAM,EAAE;AAC5B,GAAE,OAAO,MAAM,CAAC,MAAM,CAAC,KAAK,mBAAmB,CAAA;AAC/C,EAAA;CACA,SAAS,YAAY,CAAC,MAAM,EAAE;AAC9B,GAAE,OAAO,MAAM,CAAC,MAAM,CAAC,KAAK,sBAAsB,CAAA;AAClD,EAAA;CACA,SAAS,UAAU,CAAC,MAAM,EAAE;AAC5B,GAAE,OAAO,MAAM,CAAC,MAAM,CAAC,KAAK,mBAAmB,CAAA;AAC/C,EAAA;;AAEA,CAAA,mBAAA,CAAA,SAAiB,GAAG,SAAS,CAAA;AAC7B,CAAA,mBAAA,CAAA,cAAsB,GAAG,cAAc,CAAA;AACvC,CAAA,mBAAA,CAAA,eAAuB,GAAG,eAAe,CAAA;AACzC,CAAA,mBAAA,CAAA,eAAuB,GAAG,eAAe,CAAA;AACzC,CAAA,mBAAA,CAAA,OAAe,GAAG,OAAO,CAAA;AACzB,CAAA,mBAAA,CAAA,UAAkB,GAAG,UAAU,CAAA;AAC/B,CAAA,mBAAA,CAAA,QAAgB,GAAG,QAAQ,CAAA;AAC3B,CAAA,mBAAA,CAAA,IAAY,GAAG,IAAI,CAAA;AACnB,CAAA,mBAAA,CAAA,IAAY,GAAG,IAAI,CAAA;AACnB,CAAA,mBAAA,CAAA,MAAc,GAAG,MAAM,CAAA;AACvB,CAAA,mBAAA,CAAA,QAAgB,GAAG,QAAQ,CAAA;AAC3B,CAAA,mBAAA,CAAA,UAAkB,GAAG,UAAU,CAAA;AAC/B,CAAA,mBAAA,CAAA,QAAgB,GAAG,QAAQ,CAAA;AAC3B,CAAA,mBAAA,CAAA,WAAmB,GAAG,WAAW,CAAA;AACjC,CAAA,mBAAA,CAAA,gBAAwB,GAAG,gBAAgB,CAAA;AAC3C,CAAA,mBAAA,CAAA,iBAAyB,GAAG,iBAAiB,CAAA;AAC7C,CAAA,mBAAA,CAAA,iBAAyB,GAAG,iBAAiB,CAAA;AAC7C,CAAA,mBAAA,CAAA,SAAiB,GAAG,SAAS,CAAA;AAC7B,CAAA,mBAAA,CAAA,YAAoB,GAAG,YAAY,CAAA;AACnC,CAAA,mBAAA,CAAA,UAAkB,GAAG,UAAU,CAAA;AAC/B,CAAA,mBAAA,CAAA,MAAc,GAAG,MAAM,CAAA;AACvB,CAAA,mBAAA,CAAA,MAAc,GAAG,MAAM,CAAA;AACvB,CAAA,mBAAA,CAAA,QAAgB,GAAG,QAAQ,CAAA;AAC3B,CAAA,mBAAA,CAAA,UAAkB,GAAG,UAAU,CAAA;AAC/B,CAAA,mBAAA,CAAA,YAAoB,GAAG,YAAY,CAAA;AACnC,CAAA,mBAAA,CAAA,UAAkB,GAAG,UAAU,CAAA;AAC/B,CAAA,mBAAA,CAAA,kBAA0B,GAAG,kBAAkB,CAAA;AAC/C,CAAA,mBAAA,CAAA,MAAc,GAAG,MAAM,CAAA;AACvB,IAAG,GAAG,CAAA;AACN,EAAA;;;;;;;;;;AClLA,CAAA,IAAI,OAAO,CAAC,GAAG,CAAC,QAAQ,KAAK,YAAY,EAAE;GACzCS,OAAA,CAAA,OAAc,GAAGC,6BAA2C,EAAA,CAAA;AAC9D,EAAC,MAAM;GACLD,OAAA,CAAA,OAAc,GAAGE,0BAAwC,EAAA,CAAA;AAC3D,EAAA;;;;;;;;;;;;;;;;ACCA;AACA,CAAA,IAAI,qBAAqB,GAAG,MAAM,CAAC,qBAAqB,CAAA;AACxD,CAAA,IAAI,cAAc,GAAG,MAAM,CAAC,SAAS,CAAC,cAAc,CAAA;AACpD,CAAA,IAAI,gBAAgB,GAAG,MAAM,CAAC,SAAS,CAAC,oBAAoB,CAAA;;CAE5D,SAAS,QAAQ,CAAC,GAAG,EAAE;EACtB,IAAI,GAAG,KAAK,IAAI,IAAI,GAAG,KAAK,SAAS,EAAE;AACxC,GAAE,MAAM,IAAI,SAAS,CAAC,uDAAuD,CAAC,CAAA;AAC9E,GAAA;;AAEA,EAAC,OAAO,MAAM,CAAC,GAAG,CAAC,CAAA;AACnB,EAAA;;AAEA,CAAA,SAAS,eAAe,GAAG;AAC3B,EAAC,IAAI;AACL,GAAE,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE;AACtB,IAAG,OAAO,KAAK,CAAA;AACf,IAAA;;AAEA;;AAEA;GACE,IAAI,KAAK,GAAG,IAAI,MAAM,CAAC,KAAK,CAAC,CAAC;AAChC,GAAE,KAAK,CAAC,CAAC,CAAC,GAAG,IAAI,CAAA;AACjB,GAAE,IAAI,MAAM,CAAC,mBAAmB,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,GAAG,EAAE;AACpD,IAAG,OAAO,KAAK,CAAA;AACf,IAAA;;AAEA;GACE,IAAI,KAAK,GAAG,EAAE,CAAA;AAChB,GAAE,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,EAAE,EAAE;AAC/B,IAAG,KAAK,CAAC,GAAG,GAAG,MAAM,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAA;AAC1C,IAAA;AACA,GAAE,IAAI,MAAM,GAAG,MAAM,CAAC,mBAAmB,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,UAAU,CAAC,EAAE;AAClE,IAAG,OAAO,KAAK,CAAC,CAAC,CAAC,CAAA;AAClB,IAAG,CAAC,CAAA;GACF,IAAI,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,KAAK,YAAY,EAAE;AACxC,IAAG,OAAO,KAAK,CAAA;AACf,IAAA;;AAEA;GACE,IAAI,KAAK,GAAG,EAAE,CAAA;GACd,sBAAsB,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,CAAC,UAAU,MAAM,EAAE;AAC7D,IAAG,KAAK,CAAC,MAAM,CAAC,GAAG,MAAM,CAAA;AACzB,IAAG,CAAC,CAAA;AACJ,GAAE,IAAI,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC;AACpD,KAAI,sBAAsB,EAAE;AAC5B,IAAG,OAAO,KAAK,CAAA;AACf,IAAA;;AAEA,GAAE,OAAO,IAAI,CAAA;GACX,CAAC,OAAO,GAAG,EAAE;AACf;AACA,GAAE,OAAO,KAAK,CAAA;AACd,GAAA;AACA,EAAA;;AAEA,CAAA,YAAc,GAAG,eAAe,EAAE,GAAG,MAAM,CAAC,MAAM,GAAG,UAAU,MAAM,EAAE,MAAM,EAAE;AAC/E,EAAC,IAAI,IAAI,CAAA;AACT,EAAC,IAAI,EAAE,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAA;AAC1B,EAAC,IAAI,OAAO,CAAA;;AAEZ,EAAC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,SAAS,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;GAC1C,IAAI,GAAG,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAA;;AAE7B,GAAE,KAAK,IAAI,GAAG,IAAI,IAAI,EAAE;IACrB,IAAI,cAAc,CAAC,IAAI,CAAC,IAAI,EAAE,GAAG,CAAC,EAAE;KACnC,EAAE,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAA;AACvB,KAAA;AACA,IAAA;;GAEE,IAAI,qBAAqB,EAAE;AAC7B,IAAG,OAAO,GAAG,qBAAqB,CAAC,IAAI,CAAC,CAAA;AACxC,IAAG,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;AAC5C,KAAI,IAAI,gBAAgB,CAAC,IAAI,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,EAAE;AACjD,MAAK,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAA;AACtC,MAAA;AACA,KAAA;AACA,IAAA;AACA,GAAA;;AAEA,EAAC,OAAO,EAAE,CAAA;EACT,CAAA;;;;;;;;;;;;;;;;;;CChFD,IAAI,oBAAoB,GAAG,8CAA8C,CAAA;;AAEzE,CAAA,sBAAc,GAAG,oBAAoB,CAAA;;;;;;;;;;ACXrC,CAAA,GAAc,GAAG,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,CAAA;;;;;;;;;;;;;;;;;;CCSpE,IAAI,YAAY,GAAG,WAAW,EAAE,CAAA;;AAEhC,CAAA,IAAI,OAAO,CAAC,GAAG,CAAC,QAAQ,KAAK,YAAY,EAAE;GACzC,IAAI,oBAAoB,iBAAwCD,2BAAA,EAAA,CAAA;GAChE,IAAI,kBAAkB,GAAG,EAAE,CAAA;GAC3B,IAAI,GAAG,iBAAuBC,UAAA,EAAA,CAAA;;AAEhC,GAAE,YAAY,GAAG,SAAS,IAAI,EAAE;AAChC,KAAI,IAAI,OAAO,GAAG,WAAW,GAAG,IAAI,CAAA;AACpC,KAAI,IAAI,OAAO,OAAO,KAAK,WAAW,EAAE;AACxC,OAAM,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,CAAA;AAC5B,MAAA;AACA,KAAI,IAAI;AACR;AACA;AACA;AACA,OAAM,MAAM,IAAI,KAAK,CAAC,OAAO,CAAC,CAAA;MACzB,CAAC,OAAO,CAAC,EAAE,QAAA;IACb,CAAA;AACH,EAAA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;CACA,SAAS,cAAc,CAAC,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,aAAa,EAAE,QAAQ,EAAE;GAC5E,IAAI,OAAO,CAAC,GAAG,CAAC,QAAQ,KAAK,YAAY,EAAE;AAC7C,KAAI,KAAK,IAAI,YAAY,IAAI,SAAS,EAAE;AACxC,OAAM,IAAI,GAAG,CAAC,SAAS,EAAE,YAAY,CAAC,EAAE;AACxC,SAAQ,IAAI,KAAK,CAAA;AACjB;AACA;AACA;AACA,SAAQ,IAAI;AACZ;AACA;WACU,IAAI,OAAO,SAAS,CAAC,YAAY,CAAC,KAAK,UAAU,EAAE;aACjD,IAAI,GAAG,GAAG,KAAK;AAC3B,eAAc,CAAC,aAAa,IAAI,aAAa,IAAI,IAAI,GAAG,QAAQ,GAAG,SAAS,GAAG,YAAY,GAAG,gBAAgB;eAChG,8EAA8E,GAAG,OAAO,SAAS,CAAC,YAAY,CAAC,GAAG,IAAI;eACtH,+FAAA;cACD,CAAA;AACb,aAAY,GAAG,CAAC,IAAI,GAAG,qBAAqB,CAAA;AAC5C,aAAY,MAAM,GAAG,CAAA;AACrB,YAAA;AACA,WAAU,KAAK,GAAG,SAAS,CAAC,YAAY,CAAC,CAAC,MAAM,EAAE,YAAY,EAAE,aAAa,EAAE,QAAQ,EAAE,IAAI,EAAE,oBAAoB,CAAC,CAAA;UAC3G,CAAC,OAAO,EAAE,EAAE;WACX,KAAK,GAAG,EAAE,CAAA;AACpB,UAAA;SACQ,IAAI,KAAK,IAAI,EAAE,KAAK,YAAY,KAAK,CAAC,EAAE;AAChD,WAAU,YAAY;AACtB,aAAY,CAAC,aAAa,IAAI,aAAa,IAAI,0BAA0B;AACzE,aAAY,QAAQ,GAAG,IAAI,GAAG,YAAY,GAAG,iCAAiC;AAC9E,aAAY,2DAA2D,GAAG,OAAO,KAAK,GAAG,IAAI;AAC7F,aAAY,iEAAiE;AAC7E,aAAY,gEAAgE;aAChE,iCAAA;YACD,CAAA;AACX,UAAA;AACA,SAAQ,IAAI,KAAK,YAAY,KAAK,IAAI,EAAE,KAAK,CAAC,OAAO,IAAI,kBAAkB,CAAC,EAAE;AAC9E;AACA;AACA,WAAU,kBAAkB,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,IAAI,CAAA;;WAExC,IAAI,KAAK,GAAG,QAAQ,GAAG,QAAQ,EAAE,GAAG,EAAE,CAAA;;AAEhD,WAAU,YAAY;AACtB,aAAY,SAAS,GAAG,QAAQ,GAAG,SAAS,GAAG,KAAK,CAAC,OAAO,IAAI,KAAK,IAAI,IAAI,GAAG,KAAK,GAAG,EAAE,CAAA;YAC/E,CAAA;AACX,UAAA;AACA,QAAA;AACA,MAAA;AACA,IAAA;AACA,EAAA;;AAEA;AACA;AACA;AACA;AACA;CACA,cAAc,CAAC,iBAAiB,GAAG,WAAW;GAC5C,IAAI,OAAO,CAAC,GAAG,CAAC,QAAQ,KAAK,YAAY,EAAE;KACzC,kBAAkB,GAAG,EAAE,CAAA;AAC3B,IAAA;AACA,GAAA;;AAEA,CAAA,gBAAc,GAAG,cAAc,CAAA;;;;;;;;;;;;;;;;;;CC7F/B,IAAI,OAAO,GAAGD,cAAmB,EAAA,CAAA;CACjC,IAAI,MAAM,GAAGC,mBAAwB,EAAA,CAAA;;CAErC,IAAI,oBAAoB,iBAAwCC,2BAAA,EAAA,CAAA;CAChE,IAAI,GAAG,iBAAuBC,UAAA,EAAA,CAAA;CAC9B,IAAI,cAAc,iBAA8BC,qBAAA,EAAA,CAAA;;CAEhD,IAAI,YAAY,GAAG,WAAW,EAAE,CAAA;;AAEhC,CAAA,IAAI,OAAO,CAAC,GAAG,CAAC,QAAQ,KAAK,YAAY,EAAE;AAC3C,GAAE,YAAY,GAAG,SAAS,IAAI,EAAE;AAChC,KAAI,IAAI,OAAO,GAAG,WAAW,GAAG,IAAI,CAAA;AACpC,KAAI,IAAI,OAAO,OAAO,KAAK,WAAW,EAAE;AACxC,OAAM,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,CAAA;AAC5B,MAAA;AACA,KAAI,IAAI;AACR;AACA;AACA;AACA,OAAM,MAAM,IAAI,KAAK,CAAC,OAAO,CAAC,CAAA;MACzB,CAAC,OAAO,CAAC,EAAE,EAAA;IACb,CAAA;AACH,EAAA;;AAEA,CAAA,SAAS,4BAA4B,GAAG;AACxC,GAAE,OAAO,IAAI,CAAA;AACb,EAAA;;AAEA,CAAA,uBAAc,GAAG,SAAS,cAAc,EAAE,mBAAmB,EAAE;AAC/D;GACE,IAAI,eAAe,GAAG,OAAO,MAAM,KAAK,UAAU,IAAI,MAAM,CAAC,QAAQ,CAAA;AACvE,GAAE,IAAI,oBAAoB,GAAG,YAAY,CAAC;;AAE1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAE,SAAS,aAAa,CAAC,aAAa,EAAE;AACxC,KAAI,IAAI,UAAU,GAAG,aAAa,KAAK,eAAe,IAAI,aAAa,CAAC,eAAe,CAAC,IAAI,aAAa,CAAC,oBAAoB,CAAC,CAAC,CAAA;AAChI,KAAI,IAAI,OAAO,UAAU,KAAK,UAAU,EAAE;AAC1C,OAAM,OAAO,UAAU,CAAA;AACvB,MAAA;AACA,IAAA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;GAEE,IAAI,SAAS,GAAG,eAAe,CAAA;;AAEjC;AACA;GACE,IAAI,cAAc,GAAG;AACvB,KAAI,KAAK,EAAE,0BAA0B,CAAC,OAAO,CAAC;AAC9C,KAAI,MAAM,EAAE,0BAA0B,CAAC,QAAQ,CAAC;AAChD,KAAI,IAAI,EAAE,0BAA0B,CAAC,SAAS,CAAC;AAC/C,KAAI,IAAI,EAAE,0BAA0B,CAAC,UAAU,CAAC;AAChD,KAAI,MAAM,EAAE,0BAA0B,CAAC,QAAQ,CAAC;AAChD,KAAI,MAAM,EAAE,0BAA0B,CAAC,QAAQ,CAAC;AAChD,KAAI,MAAM,EAAE,0BAA0B,CAAC,QAAQ,CAAC;AAChD,KAAI,MAAM,EAAE,0BAA0B,CAAC,QAAQ,CAAC;;KAE5C,GAAG,EAAE,oBAAoB,EAAE;KAC3B,OAAO,EAAE,wBAAwB;KACjC,OAAO,EAAE,wBAAwB,EAAE;KACnC,WAAW,EAAE,4BAA4B,EAAE;KAC3C,UAAU,EAAE,yBAAyB;KACrC,IAAI,EAAE,iBAAiB,EAAE;KACzB,QAAQ,EAAE,yBAAyB;KACnC,KAAK,EAAE,qBAAqB;KAC5B,SAAS,EAAE,sBAAsB;KACjC,KAAK,EAAE,sBAAsB;KAC7B,KAAK,EAAE,4BAA4B;IACpC,CAAA;;AAEH;AACA;AACA;AACA;AACA;AACA,GAAE,SAAS,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE;AACpB;AACA,KAAI,IAAI,CAAC,KAAK,CAAC,EAAE;AACjB;AACA;OACM,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;AACvC,MAAK,MAAM;AACX;AACA,OAAM,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;AAC/B,MAAA;AACA,IAAA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAE,SAAS,aAAa,CAAC,OAAO,EAAE,IAAI,EAAE;AACxC,KAAI,IAAI,CAAC,OAAO,GAAG,OAAO,CAAA;AAC1B,KAAI,IAAI,CAAC,IAAI,GAAG,IAAI,IAAI,OAAO,IAAI,KAAK,QAAQ,GAAG,IAAI,EAAE,EAAE,CAAA;AAC3D,KAAI,IAAI,CAAC,KAAK,GAAG,EAAE,CAAA;AACnB,IAAA;AACA;AACA,GAAE,aAAa,CAAC,SAAS,GAAG,KAAK,CAAC,SAAS,CAAA;;AAE3C,GAAE,SAAS,0BAA0B,CAAC,QAAQ,EAAE;KAC5C,IAAI,OAAO,CAAC,GAAG,CAAC,QAAQ,KAAK,YAAY,EAAE;OACzC,IAAI,uBAAuB,GAAG,EAAE,CAAA;OAChC,IAAI,0BAA0B,GAAG,CAAC,CAAA;AACxC,MAAA;AACA,KAAI,SAAS,SAAS,CAAC,UAAU,EAAE,KAAK,EAAE,QAAQ,EAAE,aAAa,EAAE,QAAQ,EAAE,YAAY,EAAE,MAAM,EAAE;AACnG,OAAM,aAAa,GAAG,aAAa,IAAI,SAAS,CAAA;AAChD,OAAM,YAAY,GAAG,YAAY,IAAI,QAAQ,CAAA;;AAE7C,OAAM,IAAI,MAAM,KAAK,oBAAoB,EAAE;SACnC,IAAI,mBAAmB,EAAE;AACjC;AACA,WAAU,IAAI,GAAG,GAAG,IAAI,KAAK;AAC7B,aAAY,sFAAsF;AAClG,aAAY,iDAAiD;aACjD,gDAAA;YACD,CAAA;AACX,WAAU,GAAG,CAAC,IAAI,GAAG,qBAAqB,CAAA;AAC1C,WAAU,MAAM,GAAG,CAAA;AACnB,UAAS,MAAM,IAAI,OAAO,CAAC,GAAG,CAAC,QAAQ,KAAK,YAAY,IAAI,OAAO,OAAO,KAAK,WAAW,EAAE;AAC5F;AACA,WAAU,IAAI,QAAQ,GAAG,aAAa,GAAG,GAAG,GAAG,QAAQ,CAAA;WAC7C;AACV,aAAY,CAAC,uBAAuB,CAAC,QAAQ,CAAC;AAC9C;AACA,aAAY,0BAA0B,GAAG,CAAA;aAC7B;AACZ,aAAY,YAAY;AACxB,eAAc,wDAAwD;eACxD,oBAAoB,GAAG,YAAY,GAAG,aAAa,GAAG,aAAa,GAAG,wBAAwB;AAC5G,eAAc,yDAAyD;AACvE,eAAc,gEAAgE;AAC9E,eAAc,+DAA+D,GAAG,cAAA;cACnE,CAAA;AACb,aAAY,uBAAuB,CAAC,QAAQ,CAAC,GAAG,IAAI,CAAA;AACpD,aAAY,0BAA0B,EAAE,CAAA;AACxC,YAAA;AACA,UAAA;AACA,QAAA;AACA,OAAM,IAAI,KAAK,CAAC,QAAQ,CAAC,IAAI,IAAI,EAAE;SAC3B,IAAI,UAAU,EAAE;AACxB,WAAU,IAAI,KAAK,CAAC,QAAQ,CAAC,KAAK,IAAI,EAAE;aAC5B,OAAO,IAAI,aAAa,CAAC,MAAM,GAAG,QAAQ,GAAG,IAAI,GAAG,YAAY,GAAG,0BAA0B,IAAI,MAAM,GAAG,aAAa,GAAG,6BAA6B,CAAC,CAAC,CAAA;AACrK,YAAA;WACU,OAAO,IAAI,aAAa,CAAC,MAAM,GAAG,QAAQ,GAAG,IAAI,GAAG,YAAY,GAAG,6BAA6B,IAAI,GAAG,GAAG,aAAa,GAAG,kCAAkC,CAAC,CAAC,CAAA;AACxK,UAAA;AACA,SAAQ,OAAO,IAAI,CAAA;AACnB,QAAO,MAAM;AACb,SAAQ,OAAO,QAAQ,CAAC,KAAK,EAAE,QAAQ,EAAE,aAAa,EAAE,QAAQ,EAAE,YAAY,CAAC,CAAA;AAC/E,QAAA;AACA,MAAA;;KAEI,IAAI,gBAAgB,GAAG,SAAS,CAAC,IAAI,CAAC,IAAI,EAAE,KAAK,CAAC,CAAA;KAClD,gBAAgB,CAAC,UAAU,GAAG,SAAS,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,CAAA;;AAE5D,KAAI,OAAO,gBAAgB,CAAA;AAC3B,IAAA;;AAEA,GAAE,SAAS,0BAA0B,CAAC,YAAY,EAAE;AACpD,KAAI,SAAS,QAAQ,CAAC,KAAK,EAAE,QAAQ,EAAE,aAAa,EAAE,QAAQ,EAAE,YAAY,EAAE,MAAM,EAAE;AACtF,OAAM,IAAI,SAAS,GAAG,KAAK,CAAC,QAAQ,CAAC,CAAA;AACrC,OAAM,IAAI,QAAQ,GAAG,WAAW,CAAC,SAAS,CAAC,CAAA;AAC3C,OAAM,IAAI,QAAQ,KAAK,YAAY,EAAE;AACrC;AACA;AACA;AACA,SAAQ,IAAI,WAAW,GAAG,cAAc,CAAC,SAAS,CAAC,CAAA;;SAE3C,OAAO,IAAI,aAAa;WACtB,UAAU,GAAG,QAAQ,GAAG,IAAI,GAAG,YAAY,GAAG,YAAY,IAAI,GAAG,GAAG,WAAW,GAAG,iBAAiB,GAAG,aAAa,GAAG,cAAc,CAAC,IAAI,GAAG,GAAG,YAAY,GAAG,IAAI,CAAC;WACnK,CAAC,YAAY,EAAE,YAAY,CAAA;UAC5B,CAAA;AACT,QAAA;AACA,OAAM,OAAO,IAAI,CAAA;AACjB,MAAA;AACA,KAAI,OAAO,0BAA0B,CAAC,QAAQ,CAAC,CAAA;AAC/C,IAAA;;GAEE,SAAS,oBAAoB,GAAG;AAClC,KAAI,OAAO,0BAA0B,CAAC,4BAA4B,CAAC,CAAA;AACnE,IAAA;;AAEA,GAAE,SAAS,wBAAwB,CAAC,WAAW,EAAE;AACjD,KAAI,SAAS,QAAQ,CAAC,KAAK,EAAE,QAAQ,EAAE,aAAa,EAAE,QAAQ,EAAE,YAAY,EAAE;AAC9E,OAAM,IAAI,OAAO,WAAW,KAAK,UAAU,EAAE;AAC7C,SAAQ,OAAO,IAAI,aAAa,CAAC,YAAY,GAAG,YAAY,GAAG,kBAAkB,GAAG,aAAa,GAAG,iDAAiD,CAAC,CAAA;AACtJ,QAAA;AACA,OAAM,IAAI,SAAS,GAAG,KAAK,CAAC,QAAQ,CAAC,CAAA;OAC/B,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE;AACrC,SAAQ,IAAI,QAAQ,GAAG,WAAW,CAAC,SAAS,CAAC,CAAA;SACrC,OAAO,IAAI,aAAa,CAAC,UAAU,GAAG,QAAQ,GAAG,IAAI,GAAG,YAAY,GAAG,YAAY,IAAI,GAAG,GAAG,QAAQ,GAAG,iBAAiB,GAAG,aAAa,GAAG,uBAAuB,CAAC,CAAC,CAAA;AAC7K,QAAA;AACA,OAAM,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,SAAS,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;SACzC,IAAI,KAAK,GAAG,WAAW,CAAC,SAAS,EAAE,CAAC,EAAE,aAAa,EAAE,QAAQ,EAAE,YAAY,GAAG,GAAG,GAAG,CAAC,GAAG,GAAG,EAAE,oBAAoB,CAAC,CAAA;AAC1H,SAAQ,IAAI,KAAK,YAAY,KAAK,EAAE;AACpC,WAAU,OAAO,KAAK,CAAA;AACtB,UAAA;AACA,QAAA;AACA,OAAM,OAAO,IAAI,CAAA;AACjB,MAAA;AACA,KAAI,OAAO,0BAA0B,CAAC,QAAQ,CAAC,CAAA;AAC/C,IAAA;;GAEE,SAAS,wBAAwB,GAAG;AACtC,KAAI,SAAS,QAAQ,CAAC,KAAK,EAAE,QAAQ,EAAE,aAAa,EAAE,QAAQ,EAAE,YAAY,EAAE;AAC9E,OAAM,IAAI,SAAS,GAAG,KAAK,CAAC,QAAQ,CAAC,CAAA;AACrC,OAAM,IAAI,CAAC,cAAc,CAAC,SAAS,CAAC,EAAE;AACtC,SAAQ,IAAI,QAAQ,GAAG,WAAW,CAAC,SAAS,CAAC,CAAA;SACrC,OAAO,IAAI,aAAa,CAAC,UAAU,GAAG,QAAQ,GAAG,IAAI,GAAG,YAAY,GAAG,YAAY,IAAI,GAAG,GAAG,QAAQ,GAAG,iBAAiB,GAAG,aAAa,GAAG,oCAAoC,CAAC,CAAC,CAAA;AAC1L,QAAA;AACA,OAAM,OAAO,IAAI,CAAA;AACjB,MAAA;AACA,KAAI,OAAO,0BAA0B,CAAC,QAAQ,CAAC,CAAA;AAC/C,IAAA;;GAEE,SAAS,4BAA4B,GAAG;AAC1C,KAAI,SAAS,QAAQ,CAAC,KAAK,EAAE,QAAQ,EAAE,aAAa,EAAE,QAAQ,EAAE,YAAY,EAAE;AAC9E,OAAM,IAAI,SAAS,GAAG,KAAK,CAAC,QAAQ,CAAC,CAAA;OAC/B,IAAI,CAAC,OAAO,CAAC,kBAAkB,CAAC,SAAS,CAAC,EAAE;AAClD,SAAQ,IAAI,QAAQ,GAAG,WAAW,CAAC,SAAS,CAAC,CAAA;SACrC,OAAO,IAAI,aAAa,CAAC,UAAU,GAAG,QAAQ,GAAG,IAAI,GAAG,YAAY,GAAG,YAAY,IAAI,GAAG,GAAG,QAAQ,GAAG,iBAAiB,GAAG,aAAa,GAAG,yCAAyC,CAAC,CAAC,CAAA;AAC/L,QAAA;AACA,OAAM,OAAO,IAAI,CAAA;AACjB,MAAA;AACA,KAAI,OAAO,0BAA0B,CAAC,QAAQ,CAAC,CAAA;AAC/C,IAAA;;AAEA,GAAE,SAAS,yBAAyB,CAAC,aAAa,EAAE;AACpD,KAAI,SAAS,QAAQ,CAAC,KAAK,EAAE,QAAQ,EAAE,aAAa,EAAE,QAAQ,EAAE,YAAY,EAAE;OACxE,IAAI,EAAE,KAAK,CAAC,QAAQ,CAAC,YAAY,aAAa,CAAC,EAAE;AACvD,SAAQ,IAAI,iBAAiB,GAAG,aAAa,CAAC,IAAI,IAAI,SAAS,CAAA;SACvD,IAAI,eAAe,GAAG,YAAY,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAA;AAC3D,SAAQ,OAAO,IAAI,aAAa,CAAC,UAAU,GAAG,QAAQ,GAAG,IAAI,GAAG,YAAY,GAAG,YAAY,IAAI,GAAG,GAAG,eAAe,GAAG,iBAAiB,GAAG,aAAa,GAAG,cAAc,CAAC,IAAI,eAAe,GAAG,iBAAiB,GAAG,IAAI,CAAC,CAAC,CAAA;AAC1N,QAAA;AACA,OAAM,OAAO,IAAI,CAAA;AACjB,MAAA;AACA,KAAI,OAAO,0BAA0B,CAAC,QAAQ,CAAC,CAAA;AAC/C,IAAA;;AAEA,GAAE,SAAS,qBAAqB,CAAC,cAAc,EAAE;KAC7C,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,cAAc,CAAC,EAAE;OAClC,IAAI,OAAO,CAAC,GAAG,CAAC,QAAQ,KAAK,YAAY,EAAE;AACjD,SAAQ,IAAI,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE;AAClC,WAAU,YAAY;AACtB,aAAY,8DAA8D,GAAG,SAAS,CAAC,MAAM,GAAG,cAAc;aAClG,0EAAA;YACD,CAAA;AACX,UAAS,MAAM;WACL,YAAY,CAAC,wDAAwD,CAAC,CAAA;AAChF,UAAA;AACA,QAAA;AACA,OAAM,OAAO,4BAA4B,CAAA;AACzC,MAAA;;AAEA,KAAI,SAAS,QAAQ,CAAC,KAAK,EAAE,QAAQ,EAAE,aAAa,EAAE,QAAQ,EAAE,YAAY,EAAE;AAC9E,OAAM,IAAI,SAAS,GAAG,KAAK,CAAC,QAAQ,CAAC,CAAA;AACrC,OAAM,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,cAAc,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;SAC9C,IAAI,EAAE,CAAC,SAAS,EAAE,cAAc,CAAC,CAAC,CAAC,CAAC,EAAE;AAC9C,WAAU,OAAO,IAAI,CAAA;AACrB,UAAA;AACA,QAAA;;AAEA,OAAM,IAAI,YAAY,GAAG,IAAI,CAAC,SAAS,CAAC,cAAc,EAAE,SAAS,QAAQ,CAAC,GAAG,EAAE,KAAK,EAAE;AACtF,SAAQ,IAAI,IAAI,GAAG,cAAc,CAAC,KAAK,CAAC,CAAA;AACxC,SAAQ,IAAI,IAAI,KAAK,QAAQ,EAAE;AAC/B,WAAU,OAAO,MAAM,CAAC,KAAK,CAAC,CAAA;AAC9B,UAAA;AACA,SAAQ,OAAO,KAAK,CAAA;AACpB,QAAO,CAAC,CAAA;AACR,OAAM,OAAO,IAAI,aAAa,CAAC,UAAU,GAAG,QAAQ,GAAG,IAAI,GAAG,YAAY,GAAG,cAAc,GAAG,MAAM,CAAC,SAAS,CAAC,GAAG,IAAI,IAAI,eAAe,GAAG,aAAa,GAAG,qBAAqB,GAAG,YAAY,GAAG,GAAG,CAAC,CAAC,CAAA;AACxM,MAAA;AACA,KAAI,OAAO,0BAA0B,CAAC,QAAQ,CAAC,CAAA;AAC/C,IAAA;;AAEA,GAAE,SAAS,yBAAyB,CAAC,WAAW,EAAE;AAClD,KAAI,SAAS,QAAQ,CAAC,KAAK,EAAE,QAAQ,EAAE,aAAa,EAAE,QAAQ,EAAE,YAAY,EAAE;AAC9E,OAAM,IAAI,OAAO,WAAW,KAAK,UAAU,EAAE;AAC7C,SAAQ,OAAO,IAAI,aAAa,CAAC,YAAY,GAAG,YAAY,GAAG,kBAAkB,GAAG,aAAa,GAAG,kDAAkD,CAAC,CAAA;AACvJ,QAAA;AACA,OAAM,IAAI,SAAS,GAAG,KAAK,CAAC,QAAQ,CAAC,CAAA;AACrC,OAAM,IAAI,QAAQ,GAAG,WAAW,CAAC,SAAS,CAAC,CAAA;AAC3C,OAAM,IAAI,QAAQ,KAAK,QAAQ,EAAE;SACzB,OAAO,IAAI,aAAa,CAAC,UAAU,GAAG,QAAQ,GAAG,IAAI,GAAG,YAAY,GAAG,YAAY,IAAI,GAAG,GAAG,QAAQ,GAAG,iBAAiB,GAAG,aAAa,GAAG,wBAAwB,CAAC,CAAC,CAAA;AAC9K,QAAA;AACA,OAAM,KAAK,IAAI,GAAG,IAAI,SAAS,EAAE;AACjC,SAAQ,IAAI,GAAG,CAAC,SAAS,EAAE,GAAG,CAAC,EAAE;WACvB,IAAI,KAAK,GAAG,WAAW,CAAC,SAAS,EAAE,GAAG,EAAE,aAAa,EAAE,QAAQ,EAAE,YAAY,GAAG,GAAG,GAAG,GAAG,EAAE,oBAAoB,CAAC,CAAA;AAC1H,WAAU,IAAI,KAAK,YAAY,KAAK,EAAE;AACtC,aAAY,OAAO,KAAK,CAAA;AACxB,YAAA;AACA,UAAA;AACA,QAAA;AACA,OAAM,OAAO,IAAI,CAAA;AACjB,MAAA;AACA,KAAI,OAAO,0BAA0B,CAAC,QAAQ,CAAC,CAAA;AAC/C,IAAA;;AAEA,GAAE,SAAS,sBAAsB,CAAC,mBAAmB,EAAE;KACnD,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,mBAAmB,CAAC,EAAE;AAC7C,OAAM,OAAO,CAAC,GAAG,CAAC,QAAQ,KAAK,YAAY,GAAG,YAAY,CAAC,wEAAwE,CAAC,GAAG,KAAK,CAAC,CAAA;AAC7I,OAAM,OAAO,4BAA4B,CAAA;AACzC,MAAA;;AAEA,KAAI,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,mBAAmB,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;AACzD,OAAM,IAAI,OAAO,GAAG,mBAAmB,CAAC,CAAC,CAAC,CAAA;AAC1C,OAAM,IAAI,OAAO,OAAO,KAAK,UAAU,EAAE;AACzC,SAAQ,YAAY;AACpB,WAAU,oFAAoF;WACpF,WAAW,GAAG,wBAAwB,CAAC,OAAO,CAAC,GAAG,YAAY,GAAG,CAAC,GAAG,GAAA;UACtE,CAAA;AACT,SAAQ,OAAO,4BAA4B,CAAA;AAC3C,QAAA;AACA,MAAA;;AAEA,KAAI,SAAS,QAAQ,CAAC,KAAK,EAAE,QAAQ,EAAE,aAAa,EAAE,QAAQ,EAAE,YAAY,EAAE;OACxE,IAAI,aAAa,GAAG,EAAE,CAAA;AAC5B,OAAM,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,mBAAmB,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;AAC3D,SAAQ,IAAI,OAAO,GAAG,mBAAmB,CAAC,CAAC,CAAC,CAAA;AAC5C,SAAQ,IAAI,aAAa,GAAG,OAAO,CAAC,KAAK,EAAE,QAAQ,EAAE,aAAa,EAAE,QAAQ,EAAE,YAAY,EAAE,oBAAoB,CAAC,CAAA;AACjH,SAAQ,IAAI,aAAa,IAAI,IAAI,EAAE;AACnC,WAAU,OAAO,IAAI,CAAA;AACrB,UAAA;AACA,SAAQ,IAAI,aAAa,CAAC,IAAI,IAAI,GAAG,CAAC,aAAa,CAAC,IAAI,EAAE,cAAc,CAAC,EAAE;WACjE,aAAa,CAAC,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,YAAY,CAAC,CAAA;AAC7D,UAAA;AACA,QAAA;OACM,IAAI,oBAAoB,GAAG,CAAC,aAAa,CAAC,MAAM,GAAG,CAAC,IAAI,0BAA0B,GAAG,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,GAAG,EAAE,EAAE,CAAA;OACvH,OAAO,IAAI,aAAa,CAAC,UAAU,GAAG,QAAQ,GAAG,IAAI,GAAG,YAAY,GAAG,gBAAgB,IAAI,GAAG,GAAG,aAAa,GAAG,GAAG,GAAG,oBAAoB,GAAG,GAAG,CAAC,CAAC,CAAA;AACzJ,MAAA;AACA,KAAI,OAAO,0BAA0B,CAAC,QAAQ,CAAC,CAAA;AAC/C,IAAA;;GAEE,SAAS,iBAAiB,GAAG;AAC/B,KAAI,SAAS,QAAQ,CAAC,KAAK,EAAE,QAAQ,EAAE,aAAa,EAAE,QAAQ,EAAE,YAAY,EAAE;OACxE,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,EAAE;SAC5B,OAAO,IAAI,aAAa,CAAC,UAAU,GAAG,QAAQ,GAAG,IAAI,GAAG,YAAY,GAAG,gBAAgB,IAAI,GAAG,GAAG,aAAa,GAAG,0BAA0B,CAAC,CAAC,CAAA;AACrJ,QAAA;AACA,OAAM,OAAO,IAAI,CAAA;AACjB,MAAA;AACA,KAAI,OAAO,0BAA0B,CAAC,QAAQ,CAAC,CAAA;AAC/C,IAAA;;AAEA,GAAE,SAAS,qBAAqB,CAAC,aAAa,EAAE,QAAQ,EAAE,YAAY,EAAE,GAAG,EAAE,IAAI,EAAE;KAC/E,OAAO,IAAI,aAAa;AAC5B,OAAM,CAAC,aAAa,IAAI,aAAa,IAAI,IAAI,GAAG,QAAQ,GAAG,SAAS,GAAG,YAAY,GAAG,GAAG,GAAG,GAAG,GAAG,gBAAgB;OAC5G,8EAA8E,GAAG,IAAI,GAAG,IAAA;MACzF,CAAA;AACL,IAAA;;AAEA,GAAE,SAAS,sBAAsB,CAAC,UAAU,EAAE;AAC9C,KAAI,SAAS,QAAQ,CAAC,KAAK,EAAE,QAAQ,EAAE,aAAa,EAAE,QAAQ,EAAE,YAAY,EAAE;AAC9E,OAAM,IAAI,SAAS,GAAG,KAAK,CAAC,QAAQ,CAAC,CAAA;AACrC,OAAM,IAAI,QAAQ,GAAG,WAAW,CAAC,SAAS,CAAC,CAAA;AAC3C,OAAM,IAAI,QAAQ,KAAK,QAAQ,EAAE;SACzB,OAAO,IAAI,aAAa,CAAC,UAAU,GAAG,QAAQ,GAAG,IAAI,GAAG,YAAY,GAAG,aAAa,GAAG,QAAQ,GAAG,IAAI,IAAI,eAAe,GAAG,aAAa,GAAG,uBAAuB,CAAC,CAAC,CAAA;AAC7K,QAAA;AACA,OAAM,KAAK,IAAI,GAAG,IAAI,UAAU,EAAE;AAClC,SAAQ,IAAI,OAAO,GAAG,UAAU,CAAC,GAAG,CAAC,CAAA;AACrC,SAAQ,IAAI,OAAO,OAAO,KAAK,UAAU,EAAE;AAC3C,WAAU,OAAO,qBAAqB,CAAC,aAAa,EAAE,QAAQ,EAAE,YAAY,EAAE,GAAG,EAAE,cAAc,CAAC,OAAO,CAAC,CAAC,CAAA;AAC3G,UAAA;SACQ,IAAI,KAAK,GAAG,OAAO,CAAC,SAAS,EAAE,GAAG,EAAE,aAAa,EAAE,QAAQ,EAAE,YAAY,GAAG,GAAG,GAAG,GAAG,EAAE,oBAAoB,CAAC,CAAA;SAC5G,IAAI,KAAK,EAAE;AACnB,WAAU,OAAO,KAAK,CAAA;AACtB,UAAA;AACA,QAAA;AACA,OAAM,OAAO,IAAI,CAAA;AACjB,MAAA;AACA,KAAI,OAAO,0BAA0B,CAAC,QAAQ,CAAC,CAAA;AAC/C,IAAA;;AAEA,GAAE,SAAS,4BAA4B,CAAC,UAAU,EAAE;AACpD,KAAI,SAAS,QAAQ,CAAC,KAAK,EAAE,QAAQ,EAAE,aAAa,EAAE,QAAQ,EAAE,YAAY,EAAE;AAC9E,OAAM,IAAI,SAAS,GAAG,KAAK,CAAC,QAAQ,CAAC,CAAA;AACrC,OAAM,IAAI,QAAQ,GAAG,WAAW,CAAC,SAAS,CAAC,CAAA;AAC3C,OAAM,IAAI,QAAQ,KAAK,QAAQ,EAAE;SACzB,OAAO,IAAI,aAAa,CAAC,UAAU,GAAG,QAAQ,GAAG,IAAI,GAAG,YAAY,GAAG,aAAa,GAAG,QAAQ,GAAG,IAAI,IAAI,eAAe,GAAG,aAAa,GAAG,uBAAuB,CAAC,CAAC,CAAA;AAC7K,QAAA;AACA;AACA,OAAM,IAAI,OAAO,GAAG,MAAM,CAAC,EAAE,EAAE,KAAK,CAAC,QAAQ,CAAC,EAAE,UAAU,CAAC,CAAA;AAC3D,OAAM,KAAK,IAAI,GAAG,IAAI,OAAO,EAAE;AAC/B,SAAQ,IAAI,OAAO,GAAG,UAAU,CAAC,GAAG,CAAC,CAAA;AACrC,SAAQ,IAAI,GAAG,CAAC,UAAU,EAAE,GAAG,CAAC,IAAI,OAAO,OAAO,KAAK,UAAU,EAAE;AACnE,WAAU,OAAO,qBAAqB,CAAC,aAAa,EAAE,QAAQ,EAAE,YAAY,EAAE,GAAG,EAAE,cAAc,CAAC,OAAO,CAAC,CAAC,CAAA;AAC3G,UAAA;SACQ,IAAI,CAAC,OAAO,EAAE;WACZ,OAAO,IAAI,aAAa;AAClC,aAAY,UAAU,GAAG,QAAQ,GAAG,IAAI,GAAG,YAAY,GAAG,SAAS,GAAG,GAAG,GAAG,iBAAiB,GAAG,aAAa,GAAG,IAAI;AACpH,aAAY,gBAAgB,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,QAAQ,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC;AAC1E,aAAY,gBAAgB,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE,IAAI,EAAE,IAAI,CAAA;YACtE,CAAA;AACX,UAAA;SACQ,IAAI,KAAK,GAAG,OAAO,CAAC,SAAS,EAAE,GAAG,EAAE,aAAa,EAAE,QAAQ,EAAE,YAAY,GAAG,GAAG,GAAG,GAAG,EAAE,oBAAoB,CAAC,CAAA;SAC5G,IAAI,KAAK,EAAE;AACnB,WAAU,OAAO,KAAK,CAAA;AACtB,UAAA;AACA,QAAA;AACA,OAAM,OAAO,IAAI,CAAA;AACjB,MAAA;;AAEA,KAAI,OAAO,0BAA0B,CAAC,QAAQ,CAAC,CAAA;AAC/C,IAAA;;AAEA,GAAE,SAAS,MAAM,CAAC,SAAS,EAAE;KACzB,QAAQ,OAAO,SAAS;AAC5B,OAAM,KAAK,QAAQ,CAAA;AACnB,OAAM,KAAK,QAAQ,CAAA;AACnB,OAAM,KAAK,WAAW;AACtB,SAAQ,OAAO,IAAI,CAAA;AACnB,OAAM,KAAK,SAAS;SACZ,OAAO,CAAC,SAAS,CAAA;AACzB,OAAM,KAAK,QAAQ;AACnB,SAAQ,IAAI,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE;AACtC,WAAU,OAAO,SAAS,CAAC,KAAK,CAAC,MAAM,CAAC,CAAA;AACxC,UAAA;SACQ,IAAI,SAAS,KAAK,IAAI,IAAI,cAAc,CAAC,SAAS,CAAC,EAAE;AAC7D,WAAU,OAAO,IAAI,CAAA;AACrB,UAAA;;AAEA,SAAQ,IAAI,UAAU,GAAG,aAAa,CAAC,SAAS,CAAC,CAAA;SACzC,IAAI,UAAU,EAAE;WACd,IAAI,QAAQ,GAAG,UAAU,CAAC,IAAI,CAAC,SAAS,CAAC,CAAA;AACnD,WAAU,IAAI,IAAI,CAAA;AAClB,WAAU,IAAI,UAAU,KAAK,SAAS,CAAC,OAAO,EAAE;aACpC,OAAO,CAAC,CAAC,IAAI,GAAG,QAAQ,CAAC,IAAI,EAAE,EAAE,IAAI,EAAE;eACrC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE;AACvC,iBAAgB,OAAO,KAAK,CAAA;AAC5B,gBAAA;AACA,cAAA;AACA,YAAW,MAAM;AACjB;aACY,OAAO,CAAC,CAAC,IAAI,GAAG,QAAQ,CAAC,IAAI,EAAE,EAAE,IAAI,EAAE;AACnD,eAAc,IAAI,KAAK,GAAG,IAAI,CAAC,KAAK,CAAA;eACtB,IAAI,KAAK,EAAE;iBACT,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE;AACvC,mBAAkB,OAAO,KAAK,CAAA;AAC9B,kBAAA;AACA,gBAAA;AACA,cAAA;AACA,YAAA;AACA,UAAS,MAAM;AACf,WAAU,OAAO,KAAK,CAAA;AACtB,UAAA;;AAEA,SAAQ,OAAO,IAAI,CAAA;OACb;AACN,SAAQ,OAAO,KAAK,CAAA;AACpB,MAAA;AACA,IAAA;;AAEA,GAAE,SAAS,QAAQ,CAAC,QAAQ,EAAE,SAAS,EAAE;AACzC;AACA,KAAI,IAAI,QAAQ,KAAK,QAAQ,EAAE;AAC/B,OAAM,OAAO,IAAI,CAAA;AACjB,MAAA;;AAEA;KACI,IAAI,CAAC,SAAS,EAAE;AACpB,OAAM,OAAO,KAAK,CAAA;AAClB,MAAA;;AAEA;AACA,KAAI,IAAI,SAAS,CAAC,eAAe,CAAC,KAAK,QAAQ,EAAE;AACjD,OAAM,OAAO,IAAI,CAAA;AACjB,MAAA;;AAEA;KACI,IAAI,OAAO,MAAM,KAAK,UAAU,IAAI,SAAS,YAAY,MAAM,EAAE;AACrE,OAAM,OAAO,IAAI,CAAA;AACjB,MAAA;;AAEA,KAAI,OAAO,KAAK,CAAA;AAChB,IAAA;;AAEA;AACA,GAAE,SAAS,WAAW,CAAC,SAAS,EAAE;AAClC,KAAI,IAAI,QAAQ,GAAG,OAAO,SAAS,CAAA;AACnC,KAAI,IAAI,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE;AAClC,OAAM,OAAO,OAAO,CAAA;AACpB,MAAA;AACA,KAAI,IAAI,SAAS,YAAY,MAAM,EAAE;AACrC;AACA;AACA;AACA,OAAM,OAAO,QAAQ,CAAA;AACrB,MAAA;AACA,KAAI,IAAI,QAAQ,CAAC,QAAQ,EAAE,SAAS,CAAC,EAAE;AACvC,OAAM,OAAO,QAAQ,CAAA;AACrB,MAAA;AACA,KAAI,OAAO,QAAQ,CAAA;AACnB,IAAA;;AAEA;AACA;AACA,GAAE,SAAS,cAAc,CAAC,SAAS,EAAE;KACjC,IAAI,OAAO,SAAS,KAAK,WAAW,IAAI,SAAS,KAAK,IAAI,EAAE;OAC1D,OAAO,EAAE,GAAG,SAAS,CAAA;AAC3B,MAAA;AACA,KAAI,IAAI,QAAQ,GAAG,WAAW,CAAC,SAAS,CAAC,CAAA;AACzC,KAAI,IAAI,QAAQ,KAAK,QAAQ,EAAE;AAC/B,OAAM,IAAI,SAAS,YAAY,IAAI,EAAE;AACrC,SAAQ,OAAO,MAAM,CAAA;AACrB,QAAO,MAAM,IAAI,SAAS,YAAY,MAAM,EAAE;AAC9C,SAAQ,OAAO,QAAQ,CAAA;AACvB,QAAA;AACA,MAAA;AACA,KAAI,OAAO,QAAQ,CAAA;AACnB,IAAA;;AAEA;AACA;AACA,GAAE,SAAS,wBAAwB,CAAC,KAAK,EAAE;AAC3C,KAAI,IAAI,IAAI,GAAG,cAAc,CAAC,KAAK,CAAC,CAAA;AACpC,KAAI,QAAQ,IAAI;AAChB,OAAM,KAAK,OAAO,CAAA;AAClB,OAAM,KAAK,QAAQ;SACX,OAAO,KAAK,GAAG,IAAI,CAAA;AAC3B,OAAM,KAAK,SAAS,CAAA;AACpB,OAAM,KAAK,MAAM,CAAA;AACjB,OAAM,KAAK,QAAQ;SACX,OAAO,IAAI,GAAG,IAAI,CAAA;OACpB;AACN,SAAQ,OAAO,IAAI,CAAA;AACnB,MAAA;AACA,IAAA;;AAEA;AACA,GAAE,SAAS,YAAY,CAAC,SAAS,EAAE;AACnC,KAAI,IAAI,CAAC,SAAS,CAAC,WAAW,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,IAAI,EAAE;AAC/D,OAAM,OAAO,SAAS,CAAA;AACtB,MAAA;AACA,KAAI,OAAO,SAAS,CAAC,WAAW,CAAC,IAAI,CAAA;AACrC,IAAA;;AAEA,GAAE,cAAc,CAAC,cAAc,GAAG,cAAc,CAAA;AAChD,GAAE,cAAc,CAAC,iBAAiB,GAAG,cAAc,CAAC,iBAAiB,CAAA;AACrE,GAAE,cAAc,CAAC,SAAS,GAAG,cAAc,CAAA;;AAE3C,GAAE,OAAO,cAAc,CAAA;EACtB,CAAA;;;;;;;;;;;;;;;;;;CCxlBD,IAAI,oBAAoB,iBAAwCJ,2BAAA,EAAA,CAAA;;AAEhE,CAAA,SAAS,aAAa,GAAG,EAAA;AACzB,CAAA,SAAS,sBAAsB,GAAG,EAAA;CAClC,sBAAsB,CAAC,iBAAiB,GAAG,aAAa,CAAA;;AAExD,CAAA,wBAAc,GAAG,WAAW;AAC5B,GAAE,SAAS,IAAI,CAAC,KAAK,EAAE,QAAQ,EAAE,aAAa,EAAE,QAAQ,EAAE,YAAY,EAAE,MAAM,EAAE;AAChF,KAAI,IAAI,MAAM,KAAK,oBAAoB,EAAE;AACzC;OACM,OAAA;AACN,MAAA;AACA,KAAI,IAAI,GAAG,GAAG,IAAI,KAAK;AACvB,OAAM,sFAAsF;AAC5F,OAAM,+CAA+C;OAC/C,gDAAA;MACD,CAAA;AACL,KAAI,GAAG,CAAC,IAAI,GAAG,qBAAqB,CAAA;AACpC,KAAI,MAAM,GAAG,CAAA;IAEb,GAAE,IAAI,CAAC,UAAU,GAAG,IAAI,CAAA;GACtB,SAAS,OAAO,GAAG;AACrB,KAAI,OAAO,IAAI,CAAA;IAEf;AACA;GACE,IAAI,cAAc,GAAG;KACnB,KAAK,EAAE,IAAI;KACX,MAAM,EAAE,IAAI;KACZ,IAAI,EAAE,IAAI;KACV,IAAI,EAAE,IAAI;KACV,MAAM,EAAE,IAAI;KACZ,MAAM,EAAE,IAAI;KACZ,MAAM,EAAE,IAAI;KACZ,MAAM,EAAE,IAAI;;KAEZ,GAAG,EAAE,IAAI;KACT,OAAO,EAAE,OAAO;KAChB,OAAO,EAAE,IAAI;KACb,WAAW,EAAE,IAAI;KACjB,UAAU,EAAE,OAAO;KACnB,IAAI,EAAE,IAAI;KACV,QAAQ,EAAE,OAAO;KACjB,KAAK,EAAE,OAAO;KACd,SAAS,EAAE,OAAO;KAClB,KAAK,EAAE,OAAO;KACd,KAAK,EAAE,OAAO;;KAEd,cAAc,EAAE,sBAAsB;AAC1C,KAAI,iBAAiB,EAAE,aAAA;IACpB,CAAA;;AAEH,GAAE,cAAc,CAAC,SAAS,GAAG,cAAc,CAAA;;AAE3C,GAAE,OAAO,cAAc,CAAA;EACtB,CAAA;;;;;;;;;;;;;;;;ACzDD,CAAA,IAAI,OAAO,CAAC,GAAG,CAAC,QAAQ,KAAK,YAAY,EAAE;GACzC,IAAI,OAAO,GAAGA,cAAmB,EAAA,CAAA;;AAEnC;AACA;GACE,IAAI,mBAAmB,GAAG,IAAI,CAAA;GAC9BK,SAAA,CAAA,OAAc,iBAAuCJ,8BAAA,EAAA,CAAC,OAAO,CAAC,SAAS,EAAE,mBAAmB,CAAC,CAAA;AAC/F,EAAC,MAAM;AACP;AACA;GACEI,SAAA,CAAA,OAAc,iBAAGH,+BAAA,EAAqC,EAAE,CAAA;AAC1D,EAAA;;;;;;;ACdA,MAAMI,gBAAgB,GAAGrkB,IAAA,IAUnB;EAAA,IAVoB;IACxB+R,UAAU;IACVC,SAAS;AACTsS,IAAAA,aAAa,GAAG,WAAW;AAC3BC,IAAAA,YAAY,GAAG,SAAS;AACxBC,IAAAA,aAAa,GAAG,8DAA8D;AAC9EvS,IAAAA,YAAY,GAAG,SAAS;AACxBlM,IAAAA,UAAU,GAAG,IAAI;AACjBD,IAAAA,MAAM,GAAG,KAAK;AACdoM,IAAAA,GAAAA;AACF,GAAC,GAAAlS,IAAA,CAAA;EACC,MAAM;AAAE0K,IAAAA,KAAK,EAAEyH,SAAAA;AAAU,GAAC,GAAGlM,GAAG,CAACC,MAAM,EAAE,CAAA;EAEzC,MAAM6E,SAAS,GAAG,CAChB;AACE6B,IAAAA,GAAG,EAAE,UAAU;AACfzE,IAAAA,KAAK,EAAEmc,aAAAA;GACR;AACD;AACA;AACA;AACA;AACA,EAAA;AACE1X,IAAAA,GAAG,EAAE,SAAS;IACdzE,KAAK,EAAEoc,YAAY;AACrB,GAAC,CACF,CAAA;EAED,MAAMnS,QAAQ,GAAIC,MAAM,IAAK;IAC3B,IAAI;MACFF,SAAS,CAACG,OAAO,CAAC;AAChBC,QAAAA,IAAI,eAAElS,GAAA,CAACmS,uBAAuB,IAAE,CAAC;QACjCvS,KAAK,EAAA,EAAA,CAAAU,MAAA,CAAKsR,YAAY,OAAAtR,MAAA,CAAI0R,MAAM,EAAG,GAAA,CAAA;QACnCtM,UAAU;QACVD,MAAM;QACNF,IAAI,EAAEA,MAAM;AACV,UAAA,IAAIyM,MAAM,KAAK,UAAU,IAAIN,UAAU,EAAE;AACvCA,YAAAA,UAAU,EAAE,CAAA;AACd,WAAC,MAAM,IAAIM,MAAM,KAAK,SAAS,IAAIL,SAAS,EAAE;AAC5CA,YAAAA,SAAS,EAAE,CAAA;AACb,WAAA;;AAEA;AACA,UAAA,IAAI,OAAOE,GAAG,KAAK,UAAU,EAAE;AAC7BA,YAAAA,GAAG,EAAE,CAAA;AACP,WAAA;AACF,SAAA;AACF,OAAC,CAAC,CAAA;KACH,CAAC,OAAO5Q,KAAK,EAAE;AACdC,MAAAA,OAAO,CAACD,KAAK,CAAAX,EAAAA,CAAAA,MAAA,CAAI0R,MAAM,CAACI,WAAW,EAAE,EAAYnR,UAAAA,CAAAA,EAAAA,KAAK,CAAC,CAAA;AACzD,KAAA;GACD,CAAA;EAED,MAAMgM,eAAe,GAAGC,KAAA,IAAa;IAAA,IAAZ;AAAEX,MAAAA,GAAAA;AAAI,KAAC,GAAAW,KAAA,CAAA;IAC9B6E,QAAQ,CAACxF,GAAG,CAAC,CAAA;GACd,CAAA;EAED,oBACEvM,GAAA,CAACyQ,QAAQ,EAAA;AAACC,IAAAA,IAAI,EAAE;AAAE3L,MAAAA,KAAK,EAAE2F,SAAS;AAAEiG,MAAAA,OAAO,EAAE1D,eAAAA;KAAkB;IAAC2D,OAAO,EAAE,CAAC,OAAO,CAAE;AAAA9Q,IAAAA,QAAA,eACjFE,GAAA,CAAA,GAAA,EAAA;AAAG2Q,MAAAA,OAAO,EAAGvI,CAAC,IAAKA,CAAC,CAACyI,cAAc,EAAG;AAAA/Q,MAAAA,QAAA,eACpCE,GAAA,CAAA,GAAA,EAAA;AAAGK,QAAAA,SAAS,EAAE8jB,aAAAA;OAAkB,CAAA;KAC/B,CAAA;AAAC,GACI,CAAC,CAAA;AAEf,CAAC,CAAA;AAEDH,gBAAgB,CAACI,SAAS,GAAG;EAC3B1S,UAAU,EAAE2S,SAAS,CAACC,IAAI;EAC1B3S,SAAS,EAAE0S,SAAS,CAACC,IAAI;EACzBL,aAAa,EAAEI,SAAS,CAACE,MAAM;EAC/BL,YAAY,EAAEG,SAAS,CAACE,MAAM;EAC9BJ,aAAa,EAAEE,SAAS,CAACE,MAAM;EAC/B3S,YAAY,EAAEyS,SAAS,CAACE,MAAM;EAC9B7e,UAAU,EAAE2e,SAAS,CAACE,MAAM;EAC5B9e,MAAM,EAAE4e,SAAS,CAACE,MAAM;EACxB1S,GAAG,EAAEwS,SAAS,CAACC,IAAAA;AACjB,CAAC,CAAA;AAED,yBAAeN,gBAAgB;;AC9E/B,MAAMQ,UAAU,GAAG,g6sBAAg6sB,CAAA;AAEn7sB,MAAMC,iBAAiB,GAAGA,MAAM;EAC9BxW,MAAM,CAACmC,QAAQ,CAAC5B,IAAI,GAAGP,MAAM,CAACmC,QAAQ,CAACsU,MAAM,CAAA;AAC/C,CAAC,CAAA;AAED,MAAMC,UAAU,GAAG,YAAgB;AAAA,EAAA,IAAftB,KAAK,GAAAzkB,SAAA,CAAAC,MAAA,GAAA,CAAA,IAAAD,SAAA,CAAA,CAAA,CAAA,KAAAE,SAAA,GAAAF,SAAA,CAAA,CAAA,CAAA,GAAG,EAAE,CAAA;EAC5B,MAAM;AACJgmB,IAAAA,OAAO,GAAGJ,UAAU;AAAE;AACtBK,IAAAA,SAAS,GAAG,GAAG;AACfC,IAAAA,OAAO,GAAG,MAAM;AAChBnU,IAAAA,OAAO,GAAG8T,iBAAiB;AAC3BM,IAAAA,WAAW,GAAG;AACZ/M,MAAAA,OAAO,EAAE,CAAC;AACVgN,MAAAA,UAAU,EAAE,CAAC;AACbxE,MAAAA,MAAM,EAAE,MAAM;AACdyE,MAAAA,WAAW,EAAE,MAAM;AACnB1W,MAAAA,OAAO,EAAE,cAAA;AACX,KAAA;AACF,GAAC,GAAG8U,KAAK,CAAA;;AAET;EACA,IAAI,CAACuB,OAAO,EAAE;IACZ,OAAO,CAAC,IAAI,CAAC,CAAA;AACf,GAAA;EAEA,OAAO,cACL5kB,GAAA,CAAC8c,MAAM,EAAA;AAAYlW,IAAAA,IAAI,EAAC,MAAM;AAACe,IAAAA,KAAK,EAAEod,WAAY;AAACpU,IAAAA,OAAO,EAAEA,OAAQ;AAAA7Q,IAAAA,QAAA,eAClEE,GAAA,CAAA,KAAA,EAAA;AAAKklB,MAAAA,GAAG,EAAEJ,OAAQ;AAACK,MAAAA,GAAG,EAAEP,OAAQ;AAACjd,MAAAA,KAAK,EAAE;AAAEhC,QAAAA,KAAK,EAAEkf,SAAAA;AAAU,OAAA;KAAI,CAAA;GADrD,EAAA,MAEJ,CAAC,CACV,CAAA;AACH,CAAC,CAAA;AAEDF,UAAU,CAACP,SAAS,GAAG;EACrBQ,OAAO,EAAEP,SAAS,CAACE,MAAM;EACzBM,SAAS,EAAER,SAAS,CAACe,MAAM;EAC3BN,OAAO,EAAET,SAAS,CAACE,MAAM;EACzB5T,OAAO,EAAE0T,SAAS,CAACC,IAAAA;AACrB,CAAC,CAAA;AAED,mBAAeK,UAAU;;ACrCzB,MAAMU,mBAAmB,GAAIrX,GAAG,IAAK;AACnC,EAAA,IAAIC,MAAM,CAACmC,QAAQ,CAACkV,QAAQ,KAAK,WAAW,IAAIrX,MAAM,CAACmC,QAAQ,CAACkV,QAAQ,KAAK,WAAW,EAAE;IACxF,OAAAhlB,iBAAAA,CAAAA,MAAA,CAAyB2N,MAAM,CAACmC,QAAQ,CAACmV,IAAI,CAAA,CAAAjlB,MAAA,CAAG0N,GAAG,CAAA,CAAA;AACrD,GAAA;EACA,OAAA1N,OAAAA,CAAAA,MAAA,CAAe2N,MAAM,CAACmC,QAAQ,CAACoV,IAAI,CAAA,CAAAllB,MAAA,CAAG0N,GAAG,CAAA,CAAA;AAC3C,CAAC,CAAA;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAMyX,YAAY,GAAG9lB,IAAA,IAiBf;EAAA,IAjBgB;IACpB+lB,WAAW;IACXC,WAAW,GAAG,EAAE;AAChBC,IAAAA,QAAQ,GAAG,IAAI;AACfC,IAAAA,eAAe,GAAG,IAAI;AACtBC,IAAAA,iBAAiB,GAAG,IAAI;AACxBC,IAAAA,oBAAoB,GAAG,IAAI;IAC3BrU,UAAU;IACVC,SAAS;IACTqU,KAAK;AACLC,IAAAA,kBAAkB,GAAG,6BAA6B;AAClDC,IAAAA,YAAY,GAAGb,mBAAmB;IAClCc,SAAS,GAAG,EAAE;AACd9lB,IAAAA,SAAS,GAAG,EAAE;IACdsH,KAAK,GAAG,EAAE;AACV;AACAye,IAAAA,WAAW;AACb,GAAC,GAAAzmB,IAAA,CAAA;AACC,EAAA,MAAM,CAAC0mB,IAAI,CAAC,GAAG1B,YAAU,CAACwB,SAAS,CAAC,CAAA;;AAEpC;EACA,MAAMG,YAAY,GAAGrhB,kBAAgB,CAACihB,YAAY,CAACD,kBAAkB,CAAC,CAAC,CAAA;EAEvE,oBACE/lB,IAAA,CAAC8e,IAAI,EAAA;AAAC8D,IAAAA,OAAO,EAAC,eAAe;AAACC,IAAAA,KAAK,EAAC,QAAQ;AAAC1iB,IAAAA,SAAS,EAAAC,gBAAAA,CAAAA,MAAA,CAAmBD,SAAS,CAAG;AAACsH,IAAAA,KAAK,EAAEA,KAAM;IAAA7H,QAAA,EAAA,cAEjGI,IAAA,CAAC+c,KAAK,EAAA;AAAC1L,MAAAA,IAAI,EAAE,EAAG;MAAAzR,QAAA,EAAA,CACb8lB,QAAQ,IAAIS,IAAI,EAEhBR,eAAe,iBACd3lB,IAAA,CAAC8e,IAAI,EAAA;AAAC+D,QAAAA,KAAK,EAAC,QAAQ;AAACwD,QAAAA,GAAG,EAAE,CAAE;QAAAzmB,QAAA,EAAA,CACzB6lB,WAAW,CAACa,WAAW,iBACtBxmB,GAAA,CAACiT,UAAU,CAACC,KAAK,EAAA;AAACC,UAAAA,KAAK,EAAE,CAAE;AAACxL,UAAAA,KAAK,EAAE;AAAEC,YAAAA,YAAY,EAAE,CAAA;WAAI;UAAA9H,QAAA,EACpD6lB,WAAW,CAACa,WAAAA;SACG,CACnB,EACAb,WAAW,CAACc,OAAO,iBAClBzmB,GAAA,CAACiT,UAAU,CAACyT,IAAI,EAAA;AAAC/e,UAAAA,KAAK,EAAE;AAAEgf,YAAAA,QAAQ,EAAE,UAAU;AAAEC,YAAAA,GAAG,EAAE,CAAC;AAAEC,YAAAA,IAAI,EAAE,CAAC,CAAA;WAAI;UAAA/mB,QAAA,EAChE6lB,WAAW,CAACc,OAAAA;AAAO,SACL,CAClB,CAAA;OACG,CACP,EAGAL,WAAW,CAAA;AAAA,KACP,CAAC,eAGRlmB,IAAA,CAAC8e,IAAI,EAAA;AAAC+D,MAAAA,KAAK,EAAC,QAAQ;AAACwD,MAAAA,GAAG,EAAE,EAAG;AAAAzmB,MAAAA,QAAA,EAE1BgmB,CAAAA,iBAAiB,IAAIQ,YAAY,eAElCpmB,IAAA,CAAA,KAAA,EAAA;AAAKG,QAAAA,SAAS,EAAC,iBAAiB;QAAAP,QAAA,EAAA,CAC7B4lB,WAAW,iBACV1lB,GAAA,CAAA,KAAA,EAAA;AAAKK,UAAAA,SAAS,EAAC,cAAc;AAAAP,UAAAA,QAAA,EAC1B4lB,WAAAA;AAAW,SACT,CACN,EAGAK,oBAAoB,iBACnB/lB,GAAA,CAAA,KAAA,EAAA;AAAKK,UAAAA,SAAS,EAAC,cAAc;UAAAP,QAAA,eAC3BE,GAAA,CAACgkB,kBAAgB,EAAA;AACftS,YAAAA,UAAU,EAAEA,UAAW;AACvBC,YAAAA,SAAS,EAAEA,SAAU;AACrBE,YAAAA,GAAG,EAAEmU,KAAAA;WACN,CAAA;AAAC,SACC,CACN,CAAA;AAAA,OACE,CAAC,CAAA;AAAA,KACF,CAAC,CAAA;AAAA,GACH,CAAC,CAAA;AAEX,CAAC,CAAA;;AAED;AACAP,YAAY,CAACrB,SAAS,GAAG;EACvBsB,WAAW,EAAErB,SAAS,CAACyC,IAAI;AAC3BnB,EAAAA,WAAW,EAAEtB,SAAS,CAAC0C,KAAK,CAAC;IAC3BP,WAAW,EAAEnC,SAAS,CAACE,MAAM;IAC7BkC,OAAO,EAAEpC,SAAS,CAACE,MAAAA;AACrB,GAAC,CAAC;EACFqB,QAAQ,EAAEvB,SAAS,CAAC2C,IAAI;EACxBnB,eAAe,EAAExB,SAAS,CAAC2C,IAAI;EAC/BlB,iBAAiB,EAAEzB,SAAS,CAAC2C,IAAI;EACjCjB,oBAAoB,EAAE1B,SAAS,CAAC2C,IAAI;EACpCtV,UAAU,EAAE2S,SAAS,CAACC,IAAI;EAC1B3S,SAAS,EAAE0S,SAAS,CAACC,IAAI;EACzB0B,KAAK,EAAE3B,SAAS,CAACC,IAAI;EACrB2B,kBAAkB,EAAE5B,SAAS,CAACE,MAAM;EACpC2B,YAAY,EAAE7B,SAAS,CAACC,IAAI;EAC5B6B,SAAS,EAAE9B,SAAS,CAAC4C,MAAM;EAC3B5mB,SAAS,EAAEgkB,SAAS,CAACE,MAAM;EAC3B5c,KAAK,EAAE0c,SAAS,CAAC4C,MAAAA;AACnB,CAAC,CAAA;AAED,qBAAexB,YAAY;;;;AC7H3B;AACA,MAAMyB,sBAAsB,GAAG,CAAC,CAAA;;AAEhC;AACA;AACA,IAAIC,gBAAgB,GAAG;AACrBC,EAAAA,OAAO,EAAE;AAAEC,IAAAA,UAAU,EAAE,CAAC;AAAEC,IAAAA,WAAW,EAAE,CAAA;AAAE,GAAA;AACzC;AACA;AACA;AACA;AACF,CAAC,CAAA;;AAED;AACA;;AAEA;AACA,SAASC,YAAYA,CAAC9iB,KAAK,EAA0C;AAAA,EAAA,IAAxC+iB,aAAa,GAAA5oB,SAAA,CAAAC,MAAA,GAAA,CAAA,IAAAD,SAAA,CAAA,CAAA,CAAA,KAAAE,SAAA,GAAAF,SAAA,CAAA,CAAA,CAAA,GAAGsoB,sBAAsB,CAAA;AACjE,EAAA,OAAO,IAAIO,IAAI,CAACC,YAAY,CAAC,OAAO,EAAE;AACpCC,IAAAA,qBAAqB,EAAEH,aAAa;AACpCI,IAAAA,qBAAqB,EAAEJ,aAAa;AACpCK,IAAAA,WAAW,EAAE,KAAA;AACf,GAAC,CAAC,CAACC,MAAM,CAACrjB,KAAK,CAAC,CAAA;AAClB,CAAA;AAEA,SAASsjB,WAAWA,CAAC3f,CAAC,EAAEif,UAAU,EAAE5iB,KAAK,EAAE;AACzC,EAAA,IAAI2D,CAAC,CAACmE,GAAG,KAAK,SAAS,EAAE;IACvB,OAAO9H,KAAK,GAAG4iB,UAAU,CAAA;AAC3B,GAAA;AACA,EAAA,IAAIjf,CAAC,CAACmE,GAAG,KAAK,WAAW,EAAE;IACzB,OAAO9H,KAAK,GAAG4iB,UAAU,CAAA;AAC3B,GAAA;AACA,EAAA,OAAO5iB,KAAK,CAAA;AACd,CAAA;;AAEA;AACA,IAAIujB,UAAU,GAAGroB,IAAA,IAAA;EAAA,IAAC;AAAEsoB,IAAAA,cAAAA;AAAe,GAAC,GAAAtoB,IAAA,CAAA;AAAA,EAAA,sBAAqBuoB,KAAK,CAAC5Z,aAAa,CAC1E,KAAK,EACL;AACE3G,IAAAA,KAAK,EAAE;AACLgf,MAAAA,QAAQ,EAAE,OAAO;AACjBE,MAAAA,IAAI,EAAE,CAAC;AACPD,MAAAA,GAAG,EAAE,CAAC;AACNjhB,MAAAA,KAAK,EAAE,OAAO;AACd6a,MAAAA,MAAM,EAAE,OAAO;AACf2H,MAAAA,aAAa,EAAE,MAAA;AACjB,KAAA;AACF,GAAC,iBACeD,KAAK,CAAC5Z,aAAa,CACjC,KAAK,EACL;AACE8Z,IAAAA,KAAK,EAAE,4BAA4B;AACnCziB,IAAAA,KAAK,EAAE,IAAI;AACX6a,IAAAA,MAAM,EAAE,IAAI;AACZ6H,IAAAA,OAAO,EAAE,WAAW;AACpB1gB,IAAAA,KAAK,EAAE;AACLgf,MAAAA,QAAQ,EAAE,UAAU;MACpBE,IAAI,EAAEoB,cAAc,CAACK,CAAC;MACtB1B,GAAG,EAAEqB,cAAc,CAACM,CAAC;AACrBC,MAAAA,SAAS,EAAE,uBAAuB;AAClCL,MAAAA,aAAa,EAAE,MAAA;AACjB,KAAA;AACF,GAAC,iBACeD,KAAK,CAAC5Z,aAAa,CACjC,MAAM,EACN;AACEma,IAAAA,IAAI,EAAE,MAAM;AACZC,IAAAA,MAAM,EAAE,MAAM;AACdC,IAAAA,cAAc,EAAE,OAAO;AACvBC,IAAAA,CAAC,EAAE,kJAAkJ;AACrJjhB,IAAAA,KAAK,EAAE;AACLrF,MAAAA,MAAM,EAAE,8CAAA;AACV,KAAA;GAEJ,CACF,CACF,CAAC,CAAA;AAAA,CAAA,CAAA;;AAED;AACA,IAAIumB,IAAI,GAAGA,MAAM,EAChB,CAAA;AACD,SAASC,oBAAoBA,CAAA5b,KAAA,EAa1B;EAAA,IAb2B;MAC5BzI,KAAK;MACLqU,GAAG;MACHtW,GAAG;AACHnC,MAAAA,SAAS,GAAG,EAAE;AACd0oB,MAAAA,kBAAkB,GAAG,KAAK;MAC1BC,YAAY;AACZxB,MAAAA,aAAa,GAAGN,sBAAsB;AACtC/e,MAAAA,QAAQ,GAAG0gB,IAAI;AACfI,MAAAA,WAAW,GAAGJ,IAAI;AAClBK,MAAAA,SAAS,GAAGL,IAAI;AAChBlhB,MAAAA,KAAAA;AAEF,KAAC,GAAAuF,KAAA;AADIic,IAAAA,SAAS,GAAAjG,wBAAA,CAAAhW,KAAA,EAAAiW,SAAA,CAAA,CAAA;AAEZ,EAAA,MAAM7X,QAAQ,GAAGC,MAAM,CAAC,IAAI,CAAC,CAAA;EAC7B,MAAM,CAAC6d,WAAW,EAAEC,cAAc,CAAC,GAAG1oB,QAAQ,CAAC,KAAK,CAAC,CAAA;EACrD,MAAM,CAAC2oB,UAAU,EAAEC,aAAa,CAAC,GAAG5oB,QAAQ,CAAC,KAAK,CAAC,CAAA;AACnD,EAAA,MAAM,CAAC6oB,UAAU,EAAEC,aAAa,CAAC,GAAG9oB,QAAQ,CAAC,MAAM4mB,YAAY,CAAC9iB,KAAK,EAAE+iB,aAAa,CAAC,CAAC,CAAA;AACtF,EAAA,MAAM,CAACS,cAAc,EAAEyB,iBAAiB,CAAC,GAAG/oB,QAAQ,CAAC;AAAE2nB,IAAAA,CAAC,EAAE,CAAC;AAAEC,IAAAA,CAAC,EAAE,CAAA;AAAE,GAAC,CAAC,CAAA;AACpE,EAAA,MAAMoB,aAAa,GAAGpe,MAAM,CAAC,CAAC,CAAC,CAAA;AAC/B,EAAA,MAAMqe,UAAU,GAAGre,MAAM,CAAC,CAAC,CAAC,CAAA;AAC5B,EAAA,MAAMse,MAAM,GAAGte,MAAM,CAAC,CAAC,CAAC,CAAA;AACxB,EAAA,MAAMue,iBAAiB,GAAGve,MAAM,CAAC,CAAC,CAAC,CAAA;;AAEnC;EACA,MAAM,CAACiS,SAAS,EAAEuM,YAAY,CAAC,GAAGppB,QAAQ,CAAC,KAAK,CAAC,CAAA;AACjD,EAAA,MAAMqpB,oBAAoB,GAAGze,MAAM,CAAC9G,KAAK,CAAC,CAAA;;AAE1C;AACA,EAAA,MAAMwlB,WAAW,GAAGppB,WAAW,CAAEqpB,GAAG,IAAK;AACvC,IAAA,OAAO3C,YAAY,CAAC2C,GAAG,EAAE1C,aAAa,CAAC,CAAA;AACzC,GAAC,EAAE,CAACA,aAAa,CAAC,CAAC,CAAA;AAEnB,EAAA,MAAM2C,mBAAmB,GAAGtpB,WAAW,CACpCupB,QAAQ,IAAK;IACZ,IAAIC,gBAAgB,GAAGD,QAAQ,CAAA;AAC/B,IAAA,IAAI,OAAOtR,GAAG,KAAK,QAAQ,EAAE;MAC3BuR,gBAAgB,GAAGlrB,IAAI,CAACqD,GAAG,CAACsW,GAAG,EAAEuR,gBAAgB,CAAC,CAAA;AACpD,KAAA;AACA,IAAA,IAAI,OAAO7nB,GAAG,KAAK,QAAQ,EAAE;MAC3B6nB,gBAAgB,GAAGlrB,IAAI,CAAC2Z,GAAG,CAACtW,GAAG,EAAE6nB,gBAAgB,CAAC,CAAA;AACpD,KAAA;IACAliB,QAAQ,CAACkiB,gBAAgB,CAAC,CAAA;GAC3B,EACD,CAACliB,QAAQ,EAAE2Q,GAAG,EAAEtW,GAAG,CACrB,CAAC,CAAA;AAEDqH,EAAAA,SAAS,CAAC,MAAM;AACd;IACA,IAAI,CAAC2T,SAAS,IAAIwM,oBAAoB,CAAC3nB,OAAO,KAAKoC,KAAK,EAAE;AACxD,MAAA,MAAM6lB,cAAc,GAAGL,WAAW,CAACxlB,KAAK,CAAC,CAAA;MACzCglB,aAAa,CAACa,cAAc,CAAC,CAAA;MAC7BN,oBAAoB,CAAC3nB,OAAO,GAAGoC,KAAK,CAAA;AACtC,KAAA;GACD,EAAE,CAACA,KAAK,EAAEwlB,WAAW,EAAEzM,SAAS,CAAC,CAAC,CAAA;EAEnC,MAAM+M,iBAAiB,GAAIniB,CAAC,IAAK;AAC/B,IAAA,MAAM8hB,GAAG,GAAG9hB,CAAC,CAACC,MAAM,CAAC5D,KAAK,CAAA;;AAE1B;IACAslB,YAAY,CAAC,IAAI,CAAC,CAAA;IAClBN,aAAa,CAACS,GAAG,CAAC,CAAA;;AAElB;AACA,IAAA,IAAIA,GAAG,KAAK,EAAE,IAAIA,GAAG,KAAK,GAAG,IAAIA,GAAG,KAAK,GAAG,IAAIA,GAAG,CAACM,QAAQ,CAAC,GAAG,CAAC,EAAE;AACjE,MAAA,OAAO;AACT,KAAA;AAEA,IAAA,MAAMC,GAAG,GAAGnrB,UAAU,CAAC4qB,GAAG,CAAC,CAAA;AAC3B,IAAA,IAAI,CAACQ,KAAK,CAACD,GAAG,CAAC,EAAE;MACfN,mBAAmB,CAACM,GAAG,CAAC,CAAA;AAC1B,KAAA;GACD,CAAA;EAED,MAAME,UAAU,GAAGA,MAAM;AACvB;IACAZ,YAAY,CAAC,KAAK,CAAC,CAAA;AAEnB,IAAA,MAAMU,GAAG,GAAGnrB,UAAU,CAACkqB,UAAU,CAAC,CAAA;AAClC,IAAA,IAAI,CAACkB,KAAK,CAACD,GAAG,CAAC,EAAE;AACf;MACA,MAAMG,SAAS,GAAGzrB,IAAI,CAACI,GAAG,CAAC,EAAE,EAAEioB,aAAa,CAAC,CAAA;MAC7C,MAAMqD,cAAc,GAAG1rB,IAAI,CAACuQ,KAAK,CAAC+a,GAAG,GAAGG,SAAS,CAAC,GAAGA,SAAS,CAAA;AAC9D,MAAA,MAAMN,cAAc,GAAGL,WAAW,CAACY,cAAc,CAAC,CAAA;;AAElD;MACApB,aAAa,CAACa,cAAc,CAAC,CAAA;MAC7BN,oBAAoB,CAAC3nB,OAAO,GAAGwoB,cAAc,CAAA;AAC7C;MACAV,mBAAmB,CAACU,cAAc,CAAC,CAAA;AACrC,KAAC,MAAM;AACL;AACA,MAAA,MAAMP,cAAc,GAAGL,WAAW,CAACxlB,KAAK,CAAC,CAAA;MACzCglB,aAAa,CAACa,cAAc,CAAC,CAAA;AAC/B,KAAA;GACD,CAAA;AAED,EAAA,MAAMQ,eAAe,GAAGjqB,WAAW,CAChCuH,CAAC,IAAK;AACL,IAAA,IAAI,CAACkD,QAAQ,CAACjJ,OAAO,EAAE,OAAA;IACvB,IAAIimB,CAAC,GAAG,CAAC;AAAEC,MAAAA,CAAC,GAAG,CAAC,CAAA;AAChB,IAAA,IAAI,SAAS,IAAIngB,CAAC,IAAI,SAAS,IAAIA,CAAC,EAAE;AACpC,MAAA,CAACkgB,CAAC,EAAEC,CAAC,CAAC,GAAG,CAACngB,CAAC,CAAC2iB,OAAO,EAAE3iB,CAAC,CAAC4iB,OAAO,CAAC,CAAA;AACjC,KAAA;IACA,IAAI,SAAS,IAAI5iB,CAAC,EAAE;MAClB,CAACkgB,CAAC,EAAEC,CAAC,CAAC,GAAG,CAACngB,CAAC,CAAC6iB,OAAO,CAAC,CAAC,CAAC,CAACF,OAAO,EAAE3iB,CAAC,CAAC6iB,OAAO,CAAC,CAAC,CAAC,CAACD,OAAO,CAAC,CAAA;AACvD,KAAA;IACA3B,cAAc,CAAC,IAAI,CAAC,CAAA;IACpBQ,MAAM,CAACxnB,OAAO,GAAGimB,CAAC,CAAA;IAClBsB,UAAU,CAACvnB,OAAO,GAAGoC,KAAK,CAAA;IAC1BklB,aAAa,CAACtnB,OAAO,GAAG,CAAC,CAAA;AACzBqnB,IAAAA,iBAAiB,CAAC;MAAEpB,CAAC;AAAEC,MAAAA,CAAAA;AAAE,KAAC,CAAC,CAAA;AAC7B,GAAC,EACD,CAAC9jB,KAAK,EAAEskB,kBAAkB,CAC5B,CAAC,CAAA;AAED,EAAA,MAAMmC,WAAW,GAAGrqB,WAAW,CAC5BuH,CAAC,IAAK;IACL,IAAI,CAACghB,WAAW,EAAE,OAAA;AAClB+B,IAAAA,aAAa,CAACxB,aAAa,CAACtnB,OAAO,EAAE+F,CAAC,CAAC,CAAA;AACzC,GAAC,EACD,CAACghB,WAAW,CACd,CAAC,CAAA;AAED,EAAA,MAAMgC,YAAY,GAAGvqB,WAAW,CAC7BuH,CAAC,IAAK;IACL,MAAMijB,IAAI,GAAArqB,cAAA,CAAAA,cAAA,CAAQmmB,EAAAA,EAAAA,gBAAgB,CAAK6B,EAAAA,YAAY,CAAE,CAAA;AACrD,IAAA,KAAK,MAAMzc,GAAG,IAAI8e,IAAI,EAAE;MACtB,IAAI9e,GAAG,KAAK,SAAS,IAAInE,CAAC,CAACmE,GAAG,CAAC,EAAE;QAC/Bud,iBAAiB,CAACznB,OAAO,GAAGgpB,IAAI,CAAC9e,GAAG,CAAC,CAAC8a,UAAU,CAAA;QAChD,OAAOgE,IAAI,CAAC9e,GAAG,CAAC,CAAA;AAClB,OAAA;AACF,KAAA;AACAud,IAAAA,iBAAiB,CAACznB,OAAO,GAAGgpB,IAAI,CAACjE,OAAO,CAACC,UAAU,CAAA;IACnD,OAAOgE,IAAI,CAACjE,OAAO,CAAA;AACrB,GAAC,EACD,CAAC4B,YAAY,CACf,CAAC,CAAA;EAED,MAAMmC,aAAa,GAAGtqB,WAAW,CAC/B,CAACyqB,WAAW,EAAEljB,CAAC,KAAK;IAClB,MAAM;MAAEkf,WAAW;AAAED,MAAAA,UAAAA;AAAW,KAAC,GAAG+D,YAAY,CAAChjB,CAAC,CAAC,CAAA;AACnD,IAAA,MAAMmjB,KAAK,GAAGD,WAAW,GAAGhE,WAAW,GAAGD,UAAU,CAAA;AACpD,IAAA,IAAI+C,QAAQ,GAAGR,UAAU,CAACvnB,OAAO,GAAGkpB,KAAK,CAAA;AACzC;IACA,MAAMX,SAAS,GAAGzrB,IAAI,CAACI,GAAG,CAAC,EAAE,EAAEioB,aAAa,CAAC,CAAA;IAC7C4C,QAAQ,GAAGjrB,IAAI,CAACuQ,KAAK,CAAC0a,QAAQ,GAAGQ,SAAS,CAAC,GAAGA,SAAS,CAAA;AACvDR,IAAAA,QAAQ,GAAG1I,MAAM,CAAC8J,EAAE,CAACpB,QAAQ,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,GAAGA,QAAQ,CAAA;IACjDD,mBAAmB,CAACC,QAAQ,CAAC,CAAA;GAC9B,EACD,CAACD,mBAAmB,EAAEiB,YAAY,EAAE5D,aAAa,CACnD,CAAC,CAAA;EAED,MAAMiE,kBAAkB,GAAIrjB,CAAC,IAAK;IAChC,IAAIA,CAAC,CAACmE,GAAG,KAAK,SAAS,IAAInE,CAAC,CAACmE,GAAG,KAAK,WAAW,EAAE;MAChDnE,CAAC,CAACyI,cAAc,EAAE,CAAA;MAClB,MAAM;AAAEwW,QAAAA,UAAAA;AAAW,OAAC,GAAG+D,YAAY,CAAChjB,CAAC,CAAC,CAAA;MACtC,MAAMgiB,QAAQ,GAAGrC,WAAW,CAAC3f,CAAC,EAAEif,UAAU,EAAE5iB,KAAK,CAAC,CAAA;MAClD0lB,mBAAmB,CAACC,QAAQ,CAAC,CAAA;AAC/B,KAAA;GACD,CAAA;AAED,EAAA,MAAMsB,2BAA2B,GAAG7qB,WAAW,CAC5CuH,CAAC,IAAK;IACL,IAAIA,CAAC,CAACmE,GAAG,KAAK,OAAO,IAAInE,CAAC,CAACmE,GAAG,KAAK,SAAS,IAAInE,CAAC,CAACmE,GAAG,KAAK,MAAM,IAAInE,CAAC,CAACmE,GAAG,KAAK,KAAK,EAAE;MACnF2e,WAAW,CAAC9iB,CAAC,CAAC,CAAA;AAChB,KAAA;AACF,GAAC,EACD,CAAC8iB,WAAW,CACd,CAAC,CAAA;AAED,EAAA,MAAMS,eAAe,GAAG9qB,WAAW,CAChCuH,CAAC,IAAK;IACL,IAAI,CAACghB,WAAW,EAAE,OAAA;IAClB,IAAI,SAAS,IAAIhhB,CAAC,EAAE;MAClBA,CAAC,CAACyI,cAAc,EAAE,CAAA;AACpB,KAAA;AACA,IAAA,IAAI,CAACkY,kBAAkB,IAAI1a,QAAQ,CAACud,kBAAkB,IAAI,EAAE,SAAS,IAAIxjB,CAAC,CAAC,EAAE;MAC3EshB,iBAAiB,CAAE3oB,IAAI,IAAK;AAC1B,QAAA,MAAM4E,KAAK,GAAGsI,MAAM,CAAC4d,UAAU,CAAA;AAC/B,QAAA,MAAMrL,MAAM,GAAGvS,MAAM,CAAC6d,WAAW,CAAA;AACjC,QAAA,MAAMC,EAAE,GAAG,CAAChrB,IAAI,CAACunB,CAAC,GAAGlgB,CAAC,CAAC4jB,SAAS,GAAGrmB,KAAK,IAAIA,KAAK,CAAA;AACjD,QAAA,MAAM4iB,CAAC,GAAG,CAACxnB,IAAI,CAACwnB,CAAC,GAAGngB,CAAC,CAAC6jB,SAAS,GAAGzL,MAAM,IAAIA,MAAM,CAAA;QAClD,OAAO;AAAE8H,UAAAA,CAAC,EAAEyD,EAAE;AAAExD,UAAAA,CAAAA;SAAG,CAAA;AACrB,OAAC,CAAC,CAAA;AACJ,KAAA;AACA,IAAA,MAAMD,CAAC,GAAG,SAAS,IAAIlgB,CAAC,GAAGA,CAAC,CAAC6iB,OAAO,CAAC,CAAC,CAAC,CAACF,OAAO,GAAG3iB,CAAC,CAAC2iB,OAAO,CAAA;IAC3D,MAAMO,WAAW,GAAGvC,kBAAkB,IAAI,SAAS,IAAI3gB,CAAC,GAAGkgB,CAAC,GAAGuB,MAAM,CAACxnB,OAAO,GAAGsnB,aAAa,CAACtnB,OAAO,GAAG+F,CAAC,CAAC4jB,SAAS,CAAA;AACnH,IAAA,IAAI,CAAC1C,UAAU,IAAIgC,WAAW,KAAK,CAAC,EAAE;MACpC,IAAI,CAACvC,kBAAkB,IAAI,EAAE,SAAS,IAAI3gB,CAAC,CAAC,EAAE;QAAA,IAAA8jB,iBAAA,EAAAC,qBAAA,CAAA;QAC5C,CAAAD,iBAAA,GAAA5gB,QAAQ,CAACjJ,OAAO,MAAA6pB,IAAAA,IAAAA,iBAAA,gBAAAC,qBAAA,GAAhBD,iBAAA,CAAkBE,kBAAkB,cAAAD,qBAAA,KAAA,KAAA,CAAA,IAApCA,qBAAA,CAAAE,IAAA,CAAAH,iBAAuC,CAAC,CAAA;AAC1C,OAAA;MACA3C,aAAa,CAAC,IAAI,CAAC,CAAA;AACnBlb,MAAAA,QAAQ,CAACie,gBAAgB,CAAC,SAAS,EAAEZ,2BAA2B,CAAC,CAAA;AACjErd,MAAAA,QAAQ,CAACie,gBAAgB,CAAC,OAAO,EAAEZ,2BAA2B,CAAC,CAAA;AAC/DzC,MAAAA,WAAW,EAAE,CAAA;AACf,KAAA;IACAU,aAAa,CAACtnB,OAAO,GAAGipB,WAAW,CAAA;AACnCH,IAAAA,aAAa,CAACG,WAAW,EAAEljB,CAAC,CAAC,CAAA;AAC/B,GAAC,EACD,CACEghB,WAAW,EACXL,kBAAkB,EAClBc,MAAM,EACNP,UAAU,EACVL,WAAW,EACXkC,aAAa,CAEjB,CAAC,CAAA;AAED,EAAA,MAAMoB,aAAa,GAAG1rB,WAAW,CAAC,MAAM;IACtCwoB,cAAc,CAAC,KAAK,CAAC,CAAA;IACrBM,aAAa,CAACtnB,OAAO,GAAG,CAAC,CAAA;AACzB,IAAA,IAAIinB,UAAU,EAAE;MACdC,aAAa,CAAC,KAAK,CAAC,CAAA;AACpBlb,MAAAA,QAAQ,CAACme,mBAAmB,CAAC,SAAS,EAAEd,2BAA2B,CAAC,CAAA;AACpErd,MAAAA,QAAQ,CAACme,mBAAmB,CAAC,OAAO,EAAEd,2BAA2B,CAAC,CAAA;AAClExC,MAAAA,SAAS,EAAE,CAAA;AACb,KAAA;IACA,IAAI7a,QAAQ,CAACud,kBAAkB,EAAE;MAC/Bvd,QAAQ,CAACoe,eAAe,EAAE,CAAA;AAC5B,KAAA;GACD,EAAE,CAACnD,UAAU,EAAEJ,SAAS,EAAEH,kBAAkB,CAAC,CAAC,CAAA;AAE/Clf,EAAAA,SAAS,CAAC,MAAM;AACd,IAAA,IAAIuf,WAAW,EAAE;AACf/a,MAAAA,QAAQ,CAACie,gBAAgB,CAAC,WAAW,EAAEX,eAAe,CAAC,CAAA;AACvDtd,MAAAA,QAAQ,CAACie,gBAAgB,CAAC,WAAW,EAAEX,eAAe,EAAE;AACtDe,QAAAA,OAAO,EAAE,KAAA;AACX,OAAC,CAAC,CAAA;AACFre,MAAAA,QAAQ,CAACie,gBAAgB,CAAC,SAAS,EAAEC,aAAa,CAAC,CAAA;AACnDle,MAAAA,QAAQ,CAACie,gBAAgB,CAAC,UAAU,EAAEC,aAAa,CAAC,CAAA;AACpD,MAAA,OAAO,MAAM;AACXle,QAAAA,QAAQ,CAACme,mBAAmB,CAAC,WAAW,EAAEb,eAAe,CAAC,CAAA;AAC1Dtd,QAAAA,QAAQ,CAACme,mBAAmB,CAAC,SAAS,EAAED,aAAa,CAAC,CAAA;AACtDle,QAAAA,QAAQ,CAACme,mBAAmB,CAAC,WAAW,EAAEb,eAAe,CAAC,CAAA;AAC1Dtd,QAAAA,QAAQ,CAACme,mBAAmB,CAAC,UAAU,EAAED,aAAa,CAAC,CAAA;OACxD,CAAA;AACH,KAAA;GACD,EAAE,CAACnD,WAAW,EAAEuC,eAAe,EAAEY,aAAa,CAAC,CAAC,CAAA;AAEjD,EAAA,sBAAuBrE,KAAK,CAAC5Z,aAAa,CAAC4Z,KAAK,CAACyE,QAAQ,EAAE,IAAI,iBAAkBzE,KAAK,CAAC5Z,aAAa,CAClG,OAAO,EAAAtN,cAAA,CAAA;AAEL8P,IAAAA,GAAG,EAAExF,QAAQ;AACb1E,IAAAA,IAAI,EAAE,MAAM;AACZgmB,IAAAA,SAAS,EAAE,SAAS;AACpBC,IAAAA,OAAO,EAAE,oBAAoB;AAC7BpoB,IAAAA,KAAK,EAAE+kB,UAAU;AACjBrhB,IAAAA,QAAQ,EAAEoiB,iBAAiB;AAC3BuC,IAAAA,MAAM,EAAEnC,UAAU;AAClBoC,IAAAA,WAAW,EAAEjC,eAAe;AAC5BkC,IAAAA,YAAY,EAAElC,eAAe;AAC7BmC,IAAAA,SAAS,EAAExB,kBAAkB;AAC7BprB,IAAAA,SAAS,EAAAC,yBAAAA,CAAAA,MAAA,CAA4BD,SAAS,EAAAC,GAAAA,CAAAA,CAAAA,MAAA,CAAIgpB,UAAU,GAAG,UAAU,GAAG,EAAE,CAAE;AAChF3hB,IAAAA,KAAK,EAAA3G,cAAA,CAAAA,cAAA,CACA,EAAA,EAAA;AACDksB,MAAAA,MAAM,EAAE,WAAW;AACnBC,MAAAA,UAAU,EAAE,MAAM;AAClBC,MAAAA,UAAU,EAAE9D,UAAU,GAAG,aAAa,GAAG,SAAA;AAC3C,KAAC,GACE3hB,KAAK,CAAA;AACT,GAAA,EACEwhB,SAAS,CAEhB,CAAC,EAAEG,UAAU,IAAI,CAACP,kBAAkB,mBAAoBb,KAAK,CAAC5Z,aAAa,CAAC0Z,UAAU,EAAE;AAAEC,IAAAA,cAAAA;AAAe,GAAC,CAAC,CAAC,CAAA;AAC9G;;;;","x_google_ignoreList":[12,13,14,15,16,17,18,19,20,21]}
|