@alexgorbatchev/dotfiles 0.0.5 → 0.0.10
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/README.md +45 -47
- package/cli.js +157 -157
- package/cli.js.map +274 -274
- package/dashboard-vf1askzj.js +159 -0
- package/{dashboard-0ebz5sqb.js.map → dashboard-vf1askzj.js.map} +33 -33
- package/dashboard.js +11 -11
- package/package.json +1 -1
- package/schemas.d.ts +106 -100
- package/skill/SKILL.md +7 -5
- package/skill/references/api-reference.md +49 -49
- package/skill/references/configuration.md +184 -174
- package/skill/references/installation-methods/brew.md +18 -18
- package/skill/references/installation-methods/cargo.md +19 -19
- package/skill/references/installation-methods/curl-binary.md +29 -27
- package/skill/references/installation-methods/curl-script.md +28 -28
- package/skill/references/installation-methods/curl-tar.md +27 -19
- package/skill/references/installation-methods/dmg.md +24 -24
- package/skill/references/installation-methods/gitea-release.md +24 -24
- package/skill/references/installation-methods/github-release.md +20 -20
- package/skill/references/installation-methods/manual.md +18 -18
- package/skill/references/installation-methods/npm.md +19 -19
- package/skill/references/installation-methods/overview.md +74 -75
- package/skill/references/installation-methods/zsh-plugin.md +31 -32
- package/skill/references/make-tool.md +168 -167
- package/skill/references/shell-and-hooks.md +78 -77
- package/dashboard-0ebz5sqb.js +0 -159
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
|
-
"sources": ["../node_modules/.bun/preact@10.28.4/node_modules/preact/hooks/dist/hooks.module.js", "../node_modules/.bun/preact-iso@2.11.1/node_modules/preact-iso/src/router.js", "../node_modules/.bun/preact-iso@2.11.1/node_modules/preact-iso/src/lazy.js", "../node_modules/.bun/lucide-preact@0.545.0/node_modules/lucide-preact/dist/esm/shared/src/utils.js", "../node_modules/.bun/lucide-preact@0.545.0/node_modules/lucide-preact/dist/esm/defaultAttributes.js", "../node_modules/.bun/lucide-preact@0.545.0/node_modules/lucide-preact/dist/esm/Icon.js", "../node_modules/.bun/lucide-preact@0.545.0/node_modules/lucide-preact/dist/esm/createLucideIcon.js", "../node_modules/.bun/lucide-preact@0.545.0/node_modules/lucide-preact/dist/esm/icons/book-open.js", "../node_modules/.bun/lucide-preact@0.545.0/node_modules/lucide-preact/dist/esm/icons/box.js", "../node_modules/.bun/lucide-preact@0.545.0/node_modules/lucide-preact/dist/esm/icons/chevron-down.js", "../node_modules/.bun/lucide-preact@0.545.0/node_modules/lucide-preact/dist/esm/icons/chevron-right.js", "../node_modules/.bun/lucide-preact@0.545.0/node_modules/lucide-preact/dist/esm/icons/circle-arrow-up.js", "../node_modules/.bun/lucide-preact@0.545.0/node_modules/lucide-preact/dist/esm/icons/circle-check.js", "../node_modules/.bun/lucide-preact@0.545.0/node_modules/lucide-preact/dist/esm/icons/circle-x.js", "../node_modules/.bun/lucide-preact@0.545.0/node_modules/lucide-preact/dist/esm/icons/clock.js", "../node_modules/.bun/lucide-preact@0.545.0/node_modules/lucide-preact/dist/esm/icons/code.js", "../node_modules/.bun/lucide-preact@0.545.0/node_modules/lucide-preact/dist/esm/icons/copy.js", "../node_modules/.bun/lucide-preact@0.545.0/node_modules/lucide-preact/dist/esm/icons/download.js", "../node_modules/.bun/lucide-preact@0.545.0/node_modules/lucide-preact/dist/esm/icons/external-link.js", "../node_modules/.bun/lucide-preact@0.545.0/node_modules/lucide-preact/dist/esm/icons/file-code.js", "../node_modules/.bun/lucide-preact@0.545.0/node_modules/lucide-preact/dist/esm/icons/file-cog.js", "../node_modules/.bun/lucide-preact@0.545.0/node_modules/lucide-preact/dist/esm/icons/file-plus.js", "../node_modules/.bun/lucide-preact@0.545.0/node_modules/lucide-preact/dist/esm/icons/file-symlink.js", "../node_modules/.bun/lucide-preact@0.545.0/node_modules/lucide-preact/dist/esm/icons/file-terminal.js", "../node_modules/.bun/lucide-preact@0.545.0/node_modules/lucide-preact/dist/esm/icons/file.js", "../node_modules/.bun/lucide-preact@0.545.0/node_modules/lucide-preact/dist/esm/icons/folder-cog.js", "../node_modules/.bun/lucide-preact@0.545.0/node_modules/lucide-preact/dist/esm/icons/folder-open.js", "../node_modules/.bun/lucide-preact@0.545.0/node_modules/lucide-preact/dist/esm/icons/folder-plus.js", "../node_modules/.bun/lucide-preact@0.545.0/node_modules/lucide-preact/dist/esm/icons/folder-tree.js", "../node_modules/.bun/lucide-preact@0.545.0/node_modules/lucide-preact/dist/esm/icons/folder.js", "../node_modules/.bun/lucide-preact@0.545.0/node_modules/lucide-preact/dist/esm/icons/git-branch.js", "../node_modules/.bun/lucide-preact@0.545.0/node_modules/lucide-preact/dist/esm/icons/hard-drive.js", "../node_modules/.bun/lucide-preact@0.545.0/node_modules/lucide-preact/dist/esm/icons/heart-pulse.js", "../node_modules/.bun/lucide-preact@0.545.0/node_modules/lucide-preact/dist/esm/icons/history.js", "../node_modules/.bun/lucide-preact@0.545.0/node_modules/lucide-preact/dist/esm/icons/info.js", "../node_modules/.bun/lucide-preact@0.545.0/node_modules/lucide-preact/dist/esm/icons/layers.js", "../node_modules/.bun/lucide-preact@0.545.0/node_modules/lucide-preact/dist/esm/icons/link.js", "../node_modules/.bun/lucide-preact@0.545.0/node_modules/lucide-preact/dist/esm/icons/package.js", "../node_modules/.bun/lucide-preact@0.545.0/node_modules/lucide-preact/dist/esm/icons/refresh-cw.js", "../node_modules/.bun/lucide-preact@0.545.0/node_modules/lucide-preact/dist/esm/icons/search.js", "../node_modules/.bun/lucide-preact@0.545.0/node_modules/lucide-preact/dist/esm/icons/settings.js", "../node_modules/.bun/lucide-preact@0.545.0/node_modules/lucide-preact/dist/esm/icons/shield.js", "../node_modules/.bun/lucide-preact@0.545.0/node_modules/lucide-preact/dist/esm/icons/terminal.js", "../node_modules/.bun/lucide-preact@0.545.0/node_modules/lucide-preact/dist/esm/icons/trash-2.js", "../node_modules/.bun/lucide-preact@0.545.0/node_modules/lucide-preact/dist/esm/icons/triangle-alert.js", "../node_modules/.bun/lucide-preact@0.545.0/node_modules/lucide-preact/dist/esm/icons/wrench.js", "../node_modules/.bun/lucide-preact@0.545.0/node_modules/lucide-preact/dist/esm/icons/zap.js", "../packages/dashboard/src/client/api.ts", "../packages/dashboard/src/client/hooks/useFetch.ts", "../node_modules/.bun/preact@10.28.4/node_modules/preact/jsx-runtime/dist/jsxRuntime.module.js", "../packages/dashboard/src/client/components/CommandPalette.tsx", "../node_modules/.bun/clsx@2.1.1/node_modules/clsx/dist/clsx.mjs", "../node_modules/.bun/tailwind-merge@3.5.0/node_modules/tailwind-merge/dist/bundle-mjs.mjs", "../packages/dashboard/src/client/lib/utils.ts", "../node_modules/.bun/class-variance-authority@0.7.1/node_modules/class-variance-authority/dist/index.mjs", "../packages/dashboard/src/client/components/ui/Button.tsx", "../packages/dashboard/src/client/components/Nav.tsx", "../packages/dashboard/src/client/components/ui/Card.tsx", "../packages/dashboard/src/client/components/ui/TitledCard.tsx", "../packages/dashboard/src/client/pages/Health.tsx", "../packages/dashboard/src/client/pages/NotFound.tsx", "../packages/dashboard/src/client/pages/Settings.tsx", "../packages/dashboard/src/client/components/ui/Badge.tsx", "../packages/dashboard/src/client/components/InstallMethodBadge.tsx", "../packages/dashboard/src/client/components/ui/ExternalLinkButton.tsx", "../packages/dashboard/src/client/components/ReadmeCard.tsx", "../packages/dashboard/src/client/components/StatusBadge.tsx", "../packages/dashboard/src/client/components/ToolHistory.tsx", "../node_modules/.bun/preact@10.28.4/node_modules/preact/compat/dist/compat.module.js", "../node_modules/.bun/dequal@2.0.3/node_modules/dequal/dist/index.mjs", "../node_modules/.bun/react-shiki@0.9.1/node_modules/react-shiki/dist/chunk-EXJNTVNR.js", "../node_modules/.bun/@shikijs+vscode-textmate@10.0.2/node_modules/@shikijs/vscode-textmate/dist/index.js", "../node_modules/.bun/@shikijs+engine-oniguruma@3.23.0/node_modules/@shikijs/engine-oniguruma/dist/index.mjs", "../node_modules/.bun/oniguruma-parser@0.12.1/node_modules/oniguruma-parser/dist/parser/parse.js", "../node_modules/.bun/regex@6.1.0/node_modules/regex/src/utils-internals.js", "../node_modules/.bun/regex-utilities@2.3.0/node_modules/regex-utilities/src/index.js", "../node_modules/.bun/regex@6.1.0/node_modules/regex/src/atomic.js", "../node_modules/.bun/regex-recursion@6.0.2/node_modules/regex-recursion/src/index.js", "../node_modules/.bun/oniguruma-to-es@4.3.4/node_modules/oniguruma-to-es/dist/esm/index.js", "../node_modules/.bun/react-shiki@0.9.1/node_modules/react-shiki/dist/index.js", "../packages/dashboard/src/client/components/ToolSourceCard.tsx", "../packages/dashboard/src/client/components/ui/Tree.tsx", "../packages/dashboard/src/client/components/
|
|
3
|
+
"sources": ["../node_modules/.bun/preact@10.28.4/node_modules/preact/hooks/dist/hooks.module.js", "../node_modules/.bun/preact-iso@2.11.1/node_modules/preact-iso/src/router.js", "../node_modules/.bun/preact-iso@2.11.1/node_modules/preact-iso/src/lazy.js", "../node_modules/.bun/lucide-preact@0.545.0/node_modules/lucide-preact/dist/esm/shared/src/utils.js", "../node_modules/.bun/lucide-preact@0.545.0/node_modules/lucide-preact/dist/esm/defaultAttributes.js", "../node_modules/.bun/lucide-preact@0.545.0/node_modules/lucide-preact/dist/esm/Icon.js", "../node_modules/.bun/lucide-preact@0.545.0/node_modules/lucide-preact/dist/esm/createLucideIcon.js", "../node_modules/.bun/lucide-preact@0.545.0/node_modules/lucide-preact/dist/esm/icons/book-open.js", "../node_modules/.bun/lucide-preact@0.545.0/node_modules/lucide-preact/dist/esm/icons/box.js", "../node_modules/.bun/lucide-preact@0.545.0/node_modules/lucide-preact/dist/esm/icons/chevron-down.js", "../node_modules/.bun/lucide-preact@0.545.0/node_modules/lucide-preact/dist/esm/icons/chevron-right.js", "../node_modules/.bun/lucide-preact@0.545.0/node_modules/lucide-preact/dist/esm/icons/circle-arrow-up.js", "../node_modules/.bun/lucide-preact@0.545.0/node_modules/lucide-preact/dist/esm/icons/circle-check.js", "../node_modules/.bun/lucide-preact@0.545.0/node_modules/lucide-preact/dist/esm/icons/circle-x.js", "../node_modules/.bun/lucide-preact@0.545.0/node_modules/lucide-preact/dist/esm/icons/clock.js", "../node_modules/.bun/lucide-preact@0.545.0/node_modules/lucide-preact/dist/esm/icons/code.js", "../node_modules/.bun/lucide-preact@0.545.0/node_modules/lucide-preact/dist/esm/icons/copy.js", "../node_modules/.bun/lucide-preact@0.545.0/node_modules/lucide-preact/dist/esm/icons/download.js", "../node_modules/.bun/lucide-preact@0.545.0/node_modules/lucide-preact/dist/esm/icons/external-link.js", "../node_modules/.bun/lucide-preact@0.545.0/node_modules/lucide-preact/dist/esm/icons/file-code.js", "../node_modules/.bun/lucide-preact@0.545.0/node_modules/lucide-preact/dist/esm/icons/file-cog.js", "../node_modules/.bun/lucide-preact@0.545.0/node_modules/lucide-preact/dist/esm/icons/file-plus.js", "../node_modules/.bun/lucide-preact@0.545.0/node_modules/lucide-preact/dist/esm/icons/file-symlink.js", "../node_modules/.bun/lucide-preact@0.545.0/node_modules/lucide-preact/dist/esm/icons/file-terminal.js", "../node_modules/.bun/lucide-preact@0.545.0/node_modules/lucide-preact/dist/esm/icons/file.js", "../node_modules/.bun/lucide-preact@0.545.0/node_modules/lucide-preact/dist/esm/icons/folder-cog.js", "../node_modules/.bun/lucide-preact@0.545.0/node_modules/lucide-preact/dist/esm/icons/folder-open.js", "../node_modules/.bun/lucide-preact@0.545.0/node_modules/lucide-preact/dist/esm/icons/folder-plus.js", "../node_modules/.bun/lucide-preact@0.545.0/node_modules/lucide-preact/dist/esm/icons/folder-tree.js", "../node_modules/.bun/lucide-preact@0.545.0/node_modules/lucide-preact/dist/esm/icons/folder.js", "../node_modules/.bun/lucide-preact@0.545.0/node_modules/lucide-preact/dist/esm/icons/git-branch.js", "../node_modules/.bun/lucide-preact@0.545.0/node_modules/lucide-preact/dist/esm/icons/hard-drive.js", "../node_modules/.bun/lucide-preact@0.545.0/node_modules/lucide-preact/dist/esm/icons/heart-pulse.js", "../node_modules/.bun/lucide-preact@0.545.0/node_modules/lucide-preact/dist/esm/icons/history.js", "../node_modules/.bun/lucide-preact@0.545.0/node_modules/lucide-preact/dist/esm/icons/info.js", "../node_modules/.bun/lucide-preact@0.545.0/node_modules/lucide-preact/dist/esm/icons/layers.js", "../node_modules/.bun/lucide-preact@0.545.0/node_modules/lucide-preact/dist/esm/icons/link.js", "../node_modules/.bun/lucide-preact@0.545.0/node_modules/lucide-preact/dist/esm/icons/package.js", "../node_modules/.bun/lucide-preact@0.545.0/node_modules/lucide-preact/dist/esm/icons/refresh-cw.js", "../node_modules/.bun/lucide-preact@0.545.0/node_modules/lucide-preact/dist/esm/icons/search.js", "../node_modules/.bun/lucide-preact@0.545.0/node_modules/lucide-preact/dist/esm/icons/settings.js", "../node_modules/.bun/lucide-preact@0.545.0/node_modules/lucide-preact/dist/esm/icons/shield.js", "../node_modules/.bun/lucide-preact@0.545.0/node_modules/lucide-preact/dist/esm/icons/terminal.js", "../node_modules/.bun/lucide-preact@0.545.0/node_modules/lucide-preact/dist/esm/icons/trash-2.js", "../node_modules/.bun/lucide-preact@0.545.0/node_modules/lucide-preact/dist/esm/icons/triangle-alert.js", "../node_modules/.bun/lucide-preact@0.545.0/node_modules/lucide-preact/dist/esm/icons/wrench.js", "../node_modules/.bun/lucide-preact@0.545.0/node_modules/lucide-preact/dist/esm/icons/zap.js", "../packages/dashboard/src/client/api.ts", "../packages/dashboard/src/client/hooks/useFetch.ts", "../node_modules/.bun/preact@10.28.4/node_modules/preact/jsx-runtime/dist/jsxRuntime.module.js", "../packages/dashboard/src/client/components/CommandPalette.tsx", "../node_modules/.bun/clsx@2.1.1/node_modules/clsx/dist/clsx.mjs", "../node_modules/.bun/tailwind-merge@3.5.0/node_modules/tailwind-merge/dist/bundle-mjs.mjs", "../packages/dashboard/src/client/lib/utils.ts", "../node_modules/.bun/class-variance-authority@0.7.1/node_modules/class-variance-authority/dist/index.mjs", "../packages/dashboard/src/client/components/ui/Button.tsx", "../packages/dashboard/src/client/components/Nav.tsx", "../packages/dashboard/src/client/components/ui/Card.tsx", "../packages/dashboard/src/client/components/ui/TitledCard.tsx", "../packages/dashboard/src/client/pages/Health.tsx", "../packages/dashboard/src/client/pages/NotFound.tsx", "../packages/dashboard/src/client/pages/Settings.tsx", "../packages/dashboard/src/client/components/ui/Badge.tsx", "../packages/dashboard/src/client/components/InstallMethodBadge.tsx", "../packages/dashboard/src/client/components/ui/ExternalLinkButton.tsx", "../packages/dashboard/src/client/components/ReadmeCard.tsx", "../packages/dashboard/src/client/components/StatusBadge.tsx", "../packages/dashboard/src/client/components/ToolHistory.tsx", "../node_modules/.bun/preact@10.28.4/node_modules/preact/compat/dist/compat.module.js", "../node_modules/.bun/dequal@2.0.3/node_modules/dequal/dist/index.mjs", "../node_modules/.bun/react-shiki@0.9.1/node_modules/react-shiki/dist/chunk-EXJNTVNR.js", "../node_modules/.bun/@shikijs+vscode-textmate@10.0.2/node_modules/@shikijs/vscode-textmate/dist/index.js", "../node_modules/.bun/@shikijs+engine-oniguruma@3.23.0/node_modules/@shikijs/engine-oniguruma/dist/index.mjs", "../node_modules/.bun/oniguruma-parser@0.12.1/node_modules/oniguruma-parser/dist/parser/parse.js", "../node_modules/.bun/regex@6.1.0/node_modules/regex/src/utils-internals.js", "../node_modules/.bun/regex-utilities@2.3.0/node_modules/regex-utilities/src/index.js", "../node_modules/.bun/regex@6.1.0/node_modules/regex/src/atomic.js", "../node_modules/.bun/regex-recursion@6.0.2/node_modules/regex-recursion/src/index.js", "../node_modules/.bun/oniguruma-to-es@4.3.4/node_modules/oniguruma-to-es/dist/esm/index.js", "../node_modules/.bun/react-shiki@0.9.1/node_modules/react-shiki/dist/index.js", "../packages/dashboard/src/client/components/ToolSourceCard.tsx", "../packages/dashboard/src/client/components/ui/Tree.tsx", "../packages/dashboard/src/client/components/FileTree.tsx", "../packages/dashboard/src/client/utils/format.ts", "../packages/dashboard/src/client/utils/tree.ts", "../packages/dashboard/src/client/pages/tool-detail-utils.ts", "../packages/dashboard/src/client/pages/ToolDetail.tsx", "../packages/dashboard/src/client/components/RecentTools.tsx", "../packages/dashboard/src/client/components/StatCard.tsx", "../packages/dashboard/src/client/components/ToolsTreeView.tsx", "../packages/dashboard/src/client/pages/Tools.tsx", "../packages/dashboard/src/client/App.tsx", "../packages/dashboard/src/client/dashboard-client.ts"],
|
|
4
4
|
"sourcesContent": [
|
|
5
5
|
"import{options as n}from\"preact\";var t,r,u,i,o=0,f=[],c=n,e=c.__b,a=c.__r,v=c.diffed,l=c.__c,m=c.unmount,s=c.__;function p(n,t){c.__h&&c.__h(r,n,o||t),o=0;var u=r.__H||(r.__H={__:[],__h:[]});return n>=u.__.length&&u.__.push({}),u.__[n]}function d(n){return o=1,h(D,n)}function h(n,u,i){var o=p(t++,2);if(o.t=n,!o.__c&&(o.__=[i?i(u):D(void 0,u),function(n){var t=o.__N?o.__N[0]:o.__[0],r=o.t(t,n);t!==r&&(o.__N=[r,o.__[1]],o.__c.setState({}))}],o.__c=r,!r.__f)){var f=function(n,t,r){if(!o.__c.__H)return!0;var u=o.__c.__H.__.filter(function(n){return n.__c});if(u.every(function(n){return!n.__N}))return!c||c.call(this,n,t,r);var i=o.__c.props!==n;return u.some(function(n){if(n.__N){var t=n.__[0];n.__=n.__N,n.__N=void 0,t!==n.__[0]&&(i=!0)}}),c&&c.call(this,n,t,r)||i};r.__f=!0;var c=r.shouldComponentUpdate,e=r.componentWillUpdate;r.componentWillUpdate=function(n,t,r){if(this.__e){var u=c;c=void 0,f(n,t,r),c=u}e&&e.call(this,n,t,r)},r.shouldComponentUpdate=f}return o.__N||o.__}function y(n,u){var i=p(t++,3);!c.__s&&C(i.__H,u)&&(i.__=n,i.u=u,r.__H.__h.push(i))}function _(n,u){var i=p(t++,4);!c.__s&&C(i.__H,u)&&(i.__=n,i.u=u,r.__h.push(i))}function A(n){return o=5,T(function(){return{current:n}},[])}function F(n,t,r){o=6,_(function(){if(\"function\"==typeof n){var r=n(t());return function(){n(null),r&&\"function\"==typeof r&&r()}}if(n)return n.current=t(),function(){return n.current=null}},null==r?r:r.concat(n))}function T(n,r){var u=p(t++,7);return C(u.__H,r)&&(u.__=n(),u.__H=r,u.__h=n),u.__}function q(n,t){return o=8,T(function(){return n},t)}function x(n){var u=r.context[n.__c],i=p(t++,9);return i.c=n,u?(null==i.__&&(i.__=!0,u.sub(r)),u.props.value):n.__}function P(n,t){c.useDebugValue&&c.useDebugValue(t?t(n):n)}function b(n){var u=p(t++,10),i=d();return u.__=n,r.componentDidCatch||(r.componentDidCatch=function(n,t){u.__&&u.__(n,t),i[1](n)}),[i[0],function(){i[1](void 0)}]}function g(){var n=p(t++,11);if(!n.__){for(var u=r.__v;null!==u&&!u.__m&&null!==u.__;)u=u.__;var i=u.__m||(u.__m=[0,0]);n.__=\"P\"+i[0]+\"-\"+i[1]++}return n.__}function j(){for(var n;n=f.shift();){var t=n.__H;if(n.__P&&t)try{t.__h.some(z),t.__h.some(B),t.__h=[]}catch(r){t.__h=[],c.__e(r,n.__v)}}}c.__b=function(n){r=null,e&&e(n)},c.__=function(n,t){n&&t.__k&&t.__k.__m&&(n.__m=t.__k.__m),s&&s(n,t)},c.__r=function(n){a&&a(n),t=0;var i=(r=n.__c).__H;i&&(u===r?(i.__h=[],r.__h=[],i.__.some(function(n){n.__N&&(n.__=n.__N),n.u=n.__N=void 0})):(i.__h.some(z),i.__h.some(B),i.__h=[],t=0)),u=r},c.diffed=function(n){v&&v(n);var t=n.__c;t&&t.__H&&(t.__H.__h.length&&(1!==f.push(t)&&i===c.requestAnimationFrame||((i=c.requestAnimationFrame)||w)(j)),t.__H.__.some(function(n){n.u&&(n.__H=n.u),n.u=void 0})),u=r=null},c.__c=function(n,t){t.some(function(n){try{n.__h.some(z),n.__h=n.__h.filter(function(n){return!n.__||B(n)})}catch(r){t.some(function(n){n.__h&&(n.__h=[])}),t=[],c.__e(r,n.__v)}}),l&&l(n,t)},c.unmount=function(n){m&&m(n);var t,r=n.__c;r&&r.__H&&(r.__H.__.some(function(n){try{z(n)}catch(n){t=n}}),r.__H=void 0,t&&c.__e(t,r.__v))};var k=\"function\"==typeof requestAnimationFrame;function w(n){var t,r=function(){clearTimeout(u),k&&cancelAnimationFrame(t),setTimeout(n)},u=setTimeout(r,35);k&&(t=requestAnimationFrame(r))}function z(n){var t=r,u=n.__c;\"function\"==typeof u&&(n.__c=void 0,u()),r=t}function B(n){var t=r;n.__c=n.__(),r=t}function C(n,t){return!n||n.length!==t.length||t.some(function(t,r){return t!==n[r]})}function D(n,t){return\"function\"==typeof t?t(n):t}export{q as useCallback,x as useContext,P as useDebugValue,y as useEffect,b as useErrorBoundary,g as useId,F as useImperativeHandle,_ as useLayoutEffect,T as useMemo,h as useReducer,A as useRef,d as useState};\n//# sourceMappingURL=hooks.module.js.map\n",
|
|
6
6
|
"import { h, createContext, cloneElement, toChildArray } from 'preact';\nimport { useContext, useMemo, useReducer, useLayoutEffect, useRef } from 'preact/hooks';\n\n/**\n * @template T\n * @typedef {import('preact').RefObject<T>} RefObject\n * @typedef {import('./internal.d.ts').VNode} VNode\n */\n\n/** @type {boolean} */\nlet push;\n/** @type {string | RegExp | undefined} */\nlet scope;\n\n/**\n * @param {string} href\n * @returns {boolean}\n */\nfunction isInScope(href) {\n\treturn !scope || (typeof scope == 'string'\n\t\t? href.startsWith(scope)\n\t\t: scope.test(href)\n\t);\n}\n\n/**\n * @param {string} state\n * @param {MouseEvent | PopStateEvent | { url: string, replace?: boolean }} action\n */\nfunction handleNav(state, action) {\n\tlet url = '';\n\tpush = undefined;\n\tif (action && action.type === 'click') {\n\t\t// ignore events the browser takes care of already:\n\t\tif (action.ctrlKey || action.metaKey || action.altKey || action.shiftKey || action.button !== 0) {\n\t\t\treturn state;\n\t\t}\n\n\t\tconst link = action.composedPath().find(el => el.nodeName == 'A' && el.href),\n\t\t\thref = link && link.getAttribute('href');\n\t\tif (\n\t\t\t!link ||\n\t\t\tlink.origin != location.origin ||\n\t\t\t/^#/.test(href) ||\n\t\t\t!/^(_?self)?$/i.test(link.target) ||\n\t\t\t!isInScope(href) ||\n\t\t\tlink.download\n\t\t) {\n\t\t\treturn state;\n\t\t}\n\n\t\tpush = true;\n\t\taction.preventDefault();\n\t\turl = link.href.replace(location.origin, '');\n\t} else if (action && action.url) {\n\t\tpush = !action.replace;\n\t\turl = action.url;\n\t} else {\n\t\turl = location.pathname + location.search;\n\t}\n\n\tif (push === true) history.pushState(null, '', url);\n\telse if (push === false) history.replaceState(null, '', url);\n\treturn url;\n};\n\nexport const exec = (url, route, matches = {}) => {\n\turl = url.split('/').filter(Boolean);\n\troute = (route || '').split('/').filter(Boolean);\n\tif (!matches.params) matches.params = {};\n\tfor (let i = 0, val, rest; i < Math.max(url.length, route.length); i++) {\n\t\tlet [, m, param, flag] = (route[i] || '').match(/^(:?)(.*?)([+*?]?)$/);\n\t\tval = url[i];\n\t\t// segment match:\n\t\tif (!m && param == val) continue;\n\t\t// /foo/* match\n\t\tif (!m && val && flag == '*') {\n\t\t\tmatches.rest = '/' + url.slice(i).map(decodeURIComponent).join('/');\n\t\t\tbreak;\n\t\t}\n\t\t// segment mismatch / missing required field:\n\t\tif (!m || (!val && flag != '?' && flag != '*')) return;\n\t\trest = flag == '+' || flag == '*';\n\t\t// rest (+/*) match:\n\t\tif (rest) val = url.slice(i).map(decodeURIComponent).join('/') || undefined;\n\t\t// normal/optional field:\n\t\telse if (val) val = decodeURIComponent(val);\n\t\tmatches.params[param] = val;\n\t\tif (!(param in matches)) matches[param] = val;\n\t\tif (rest) break;\n\t}\n\treturn matches;\n};\n\n/**\n * @param {Object} props\n * @param {string | RegExp} [props.scope]\n * @param {import('preact').ComponentChildren} [props.children]\n */\nexport function LocationProvider(props) {\n\t// @ts-expect-error - props.url is not implemented correctly & will be removed in the future\n\tconst [url, route] = useReducer(handleNav, props.url || location.pathname + location.search);\n\tif (props.scope) scope = props.scope;\n\tconst wasPush = push === true;\n\n\tconst value = useMemo(() => {\n\t\tconst u = new URL(url, location.origin);\n\t\tconst path = u.pathname.replace(/\\/+$/g, '') || '/';\n\t\t// @ts-ignore-next\n\t\treturn {\n\t\t\turl,\n\t\t\tpath,\n\t\t\tquery: Object.fromEntries(u.searchParams),\n\t\t\troute: (url, replace) => route({ url, replace }),\n\t\t\twasPush\n\t\t};\n\t}, [url]);\n\n\tuseLayoutEffect(() => {\n\t\taddEventListener('click', route);\n\t\taddEventListener('popstate', route);\n\n\t\treturn () => {\n\t\t\tremoveEventListener('click', route);\n\t\t\tremoveEventListener('popstate', route);\n\t\t};\n\t}, []);\n\n\t// @ts-ignore\n\treturn h(LocationProvider.ctx.Provider, { value }, props.children);\n}\n\nconst RESOLVED = Promise.resolve();\n/** @this {import('./internal.d.ts').AugmentedComponent} */\nexport function Router(props) {\n\tconst [c, update] = useReducer(c => c + 1, 0);\n\n\tconst { url, query, wasPush, path } = useLocation();\n\tif (!url) {\n\t\tthrow new Error(`preact-iso's <Router> must be used within a <LocationProvider>, see: https://github.com/preactjs/preact-iso#locationprovider`);\n\t}\n\tconst { rest = path, params = {} } = useContext(RouteContext);\n\n\tconst isLoading = useRef(false);\n\tconst prevRoute = useRef(path);\n\t// Monotonic counter used to check if an un-suspending route is still the current route:\n\tconst count = useRef(0);\n\t// The current route:\n\tconst cur = /** @type {RefObject<VNode<any>>} */ (useRef());\n\t// Previous route (if current route is suspended):\n\tconst prev = /** @type {RefObject<VNode<any>>} */ (useRef());\n\t// A not-yet-hydrated DOM root to remove once we commit:\n\tconst pendingBase = /** @type {RefObject<Element | Text>} */ (useRef());\n\t// has this component ever successfully rendered without suspending:\n\tconst hasEverCommitted = useRef(false);\n\t// was the most recent render successful (did not suspend):\n\tconst didSuspend = /** @type {RefObject<boolean>} */ (useRef());\n\tdidSuspend.current = false;\n\n\tlet pathRoute, defaultRoute, matchProps;\n\ttoChildArray(props.children).some((/** @type {VNode<any>} */ vnode) => {\n\t\tconst matches = exec(\n\t\t\trest,\n\t\t\tvnode.props.path,\n\t\t\t(matchProps = {\n\t\t\t\t...vnode.props,\n\t\t\t\tpath: rest,\n\t\t\t\tquery,\n\t\t\t\tparams: Object.assign({}, params),\n\t\t\t\trest: ''\n\t\t\t})\n\t\t);\n\t\tif (matches) return (pathRoute = cloneElement(vnode, matchProps));\n\t\tif (vnode.props.default) defaultRoute = cloneElement(vnode, matchProps);\n\t});\n\n\t/** @type {VNode<any> | undefined} */\n\tlet incoming = pathRoute || defaultRoute;\n\n\tconst isHydratingSuspense = cur.current && cur.current.__u & MODE_HYDRATE && cur.current.__u & MODE_SUSPENDED;\n\tconst isHydratingBool = cur.current && cur.current.__h;\n\tconst routeChanged = useMemo(() => {\n\t\tprev.current = cur.current;\n\n\t\tcur.current = /** @type {VNode<any>} */ (h(RouteContext.Provider, { value: matchProps }, incoming));\n\n\t\t// Only mark as an update if the route component changed.\n\t\tconst outgoing = prev.current && prev.current.props.children;\n\t\tif (!outgoing || !incoming || incoming.type !== outgoing.type || incoming.props.component !== outgoing.props.component) {\n\t\t\t// This hack prevents Preact from diffing when we swap `cur` to `prev`:\n\t\t\tif (this.__v && this.__v.__k) this.__v.__k.reverse();\n\t\t\tcount.current++;\n\t\t\treturn true;\n\t\t}\n\t\treturn false;\n\t}, [url, JSON.stringify(matchProps)]);\n\n\tif (isHydratingSuspense) {\n\t\tcur.current.__u |= MODE_HYDRATE;\n\t\tcur.current.__u |= MODE_SUSPENDED;\n\t} else if (isHydratingBool) {\n\t\tcur.current.__h = true;\n\t}\n\n\t// Reset previous children - if rendering succeeds synchronously, we shouldn't render the previous children.\n\tconst p = prev.current;\n\tprev.current = null;\n\n\t// This borrows the _childDidSuspend() solution from compat.\n\tthis.__c = (e, suspendedVNode) => {\n\t\t// Mark the current render as having suspended:\n\t\tdidSuspend.current = true;\n\n\t\t// The new route suspended, so keep the previous route around while it loads:\n\t\tprev.current = p;\n\n\t\t// Fire an event saying we're waiting for the route:\n\t\tif (props.onLoadStart) props.onLoadStart(url);\n\t\tisLoading.current = true;\n\n\t\t// Re-render on unsuspend:\n\t\tlet c = count.current;\n\t\te.then(() => {\n\t\t\t// Ignore this update if it isn't the most recently suspended update:\n\t\t\tif (c !== count.current) return;\n\n\t\t\t// Successful route transition: un-suspend after a tick and stop rendering the old route:\n\t\t\tprev.current = null;\n\t\t\tif (cur.current) {\n\t\t\t\tif (suspendedVNode.__h) {\n\t\t\t\t\t// _hydrating\n\t\t\t\t\tcur.current.__h = suspendedVNode.__h;\n\t\t\t\t}\n\n\t\t\t\tif (suspendedVNode.__u & MODE_SUSPENDED) {\n\t\t\t\t\t// _flags\n\t\t\t\t\tcur.current.__u |= MODE_SUSPENDED;\n\t\t\t\t}\n\n\t\t\t\tif (suspendedVNode.__u & MODE_HYDRATE) {\n\t\t\t\t\tcur.current.__u |= MODE_HYDRATE;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tRESOLVED.then(update);\n\t\t});\n\t};\n\n\tuseLayoutEffect(() => {\n\t\tconst currentDom = this.__v && this.__v.__e;\n\n\t\t// Ignore suspended renders (failed commits):\n\t\tif (didSuspend.current) {\n\t\t\t// If we've never committed, mark any hydration DOM for removal on the next commit:\n\t\t\tif (!hasEverCommitted.current && !pendingBase.current) {\n\t\t\t\tpendingBase.current = currentDom;\n\t\t\t}\n\t\t\treturn;\n\t\t}\n\n\t\t// If this is the first ever successful commit and we didn't use the hydration DOM, remove it:\n\t\tif (!hasEverCommitted.current && pendingBase.current) {\n\t\t\tif (pendingBase.current !== currentDom) pendingBase.current.remove();\n\t\t\tpendingBase.current = null;\n\t\t}\n\n\t\t// Mark the component has having committed:\n\t\thasEverCommitted.current = true;\n\n\t\t// The route is loaded and rendered.\n\t\tif (prevRoute.current !== path) {\n\t\t\tif (wasPush) scrollTo(0, 0);\n\t\t\tif (props.onRouteChange) props.onRouteChange(url);\n\n\t\t\tprevRoute.current = path;\n\t\t}\n\n\t\tif (props.onLoadEnd && isLoading.current) props.onLoadEnd(url);\n\t\tisLoading.current = false;\n\t}, [path, wasPush, c]);\n\n\t// Note: cur MUST render first in order to set didSuspend & prev.\n\treturn routeChanged\n\t\t? [h(RenderRef, { r: cur }), h(RenderRef, { r: prev })]\n\t\t: h(RenderRef, { r: cur });\n}\n\nconst MODE_HYDRATE = 1 << 5;\nconst MODE_SUSPENDED = 1 << 7;\n\n// Lazily render a ref's current value:\nconst RenderRef = ({ r }) => r.current;\n\nRouter.Provider = LocationProvider;\n\nLocationProvider.ctx = createContext(\n\t/** @type {import('./router.d.ts').LocationHook & { wasPush: boolean }} */ ({})\n);\nconst RouteContext = createContext(\n\t/** @type {import('./router.d.ts').RouteHook & { rest: string }} */ ({})\n);\n\nexport const Route = props => h(props.component, props);\n\nexport const useLocation = () => useContext(LocationProvider.ctx);\nexport const useRoute = () => useContext(RouteContext);\n",
|
|
@@ -49,27 +49,27 @@
|
|
|
49
49
|
"/**\n * @license lucide-preact v0.545.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.js';\n\nconst TriangleAlert = createLucideIcon(\"triangle-alert\", [\n [\n \"path\",\n {\n d: \"m21.73 18-8-14a2 2 0 0 0-3.48 0l-8 14A2 2 0 0 0 4 21h16a2 2 0 0 0 1.73-3\",\n key: \"wmoenq\"\n }\n ],\n [\"path\", { d: \"M12 9v4\", key: \"juzpu7\" }],\n [\"path\", { d: \"M12 17h.01\", key: \"p32p05\" }]\n]);\n\nexport { TriangleAlert as default };\n//# sourceMappingURL=triangle-alert.js.map\n",
|
|
50
50
|
"/**\n * @license lucide-preact v0.545.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.js';\n\nconst Wrench = createLucideIcon(\"wrench\", [\n [\n \"path\",\n {\n d: \"M14.7 6.3a1 1 0 0 0 0 1.4l1.6 1.6a1 1 0 0 0 1.4 0l3.106-3.105c.32-.322.863-.22.983.218a6 6 0 0 1-8.259 7.057l-7.91 7.91a1 1 0 0 1-2.999-3l7.91-7.91a6 6 0 0 1 7.057-8.259c.438.12.54.662.219.984z\",\n key: \"1ngwbx\"\n }\n ]\n]);\n\nexport { Wrench as default };\n//# sourceMappingURL=wrench.js.map\n",
|
|
51
51
|
"/**\n * @license lucide-preact v0.545.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.js';\n\nconst Zap = createLucideIcon(\"zap\", [\n [\n \"path\",\n {\n d: \"M4 14a1 1 0 0 1-.78-1.63l9.9-10.2a.5.5 0 0 1 .86.46l-1.92 6.02A1 1 0 0 0 13 10h7a1 1 0 0 1 .78 1.63l-9.9 10.2a.5.5 0 0 1-.86-.46l1.92-6.02A1 1 0 0 0 11 14z\",\n key: \"1xq2db\"\n }\n ]\n]);\n\nexport { Zap as default };\n//# sourceMappingURL=zap.js.map\n",
|
|
52
|
-
"const API_BASE =
|
|
53
|
-
"import { useEffect, useState } from
|
|
52
|
+
"const API_BASE = \"/api\";\n\nexport async function fetchApi<T>(endpoint: string): Promise<T> {\n const res = await fetch(API_BASE + endpoint);\n const data = await res.json();\n if (!data.success) throw new Error(data.error || \"API error\");\n return data.data;\n}\n\nexport async function postApi<T, R = unknown>(endpoint: string, body: R): Promise<T> {\n const res = await fetch(API_BASE + endpoint, {\n method: \"POST\",\n headers: { \"Content-Type\": \"application/json\" },\n body: JSON.stringify(body),\n });\n const data = await res.json();\n if (!data.success) throw new Error(data.error || \"API error\");\n return data.data;\n}\n",
|
|
53
|
+
"import { useEffect, useState } from \"preact/hooks\";\nimport { fetchApi } from \"../api\";\n\ninterface IUseFetchResult<T> {\n data: T | null;\n loading: boolean;\n error: Error | null;\n}\n\nexport function useFetch<T>(endpoint: string, deps: unknown[] = []): IUseFetchResult<T> {\n const [data, setData] = useState<T | null>(null);\n const [loading, setLoading] = useState(true);\n const [error, setError] = useState<Error | null>(null);\n\n // Create a stable dependency key from the array values\n const depsKey = JSON.stringify(deps);\n\n useEffect(() => {\n const load = async (): Promise<void> => {\n setLoading(true);\n setError(null);\n try {\n const result = await fetchApi<T>(endpoint);\n setData(result);\n } catch (error) {\n setError(error instanceof Error ? error : new Error(String(error)));\n } finally {\n setLoading(false);\n }\n };\n load();\n }, [endpoint, depsKey]);\n\n return { data, loading, error };\n}\n",
|
|
54
54
|
"import{options as r,Fragment as e}from\"preact\";export{Fragment}from\"preact\";var t=/[\"&<]/;function n(r){if(0===r.length||!1===t.test(r))return r;for(var e=0,n=0,o=\"\",f=\"\";n<r.length;n++){switch(r.charCodeAt(n)){case 34:f=\""\";break;case 38:f=\"&\";break;case 60:f=\"<\";break;default:continue}n!==e&&(o+=r.slice(e,n)),o+=f,e=n+1}return n!==e&&(o+=r.slice(e,n)),o}var o=/acit|ex(?:s|g|n|p|$)|rph|grid|ows|mnc|ntw|ine[ch]|zoo|^ord|itera/i,f=0,i=Array.isArray;function u(e,t,n,o,i,u){t||(t={});var a,c,p=t;if(\"ref\"in p)for(c in p={},t)\"ref\"==c?a=t[c]:p[c]=t[c];var l={type:e,props:p,key:n,ref:a,__k:null,__:null,__b:0,__e:null,__c:null,constructor:void 0,__v:--f,__i:-1,__u:0,__source:i,__self:u};if(\"function\"==typeof e&&(a=e.defaultProps))for(c in a)void 0===p[c]&&(p[c]=a[c]);return r.vnode&&r.vnode(l),l}function a(r){var t=u(e,{tpl:r,exprs:[].slice.call(arguments,1)});return t.key=t.__v,t}var c={},p=/[A-Z]/g;function l(e,t){if(r.attr){var f=r.attr(e,t);if(\"string\"==typeof f)return f}if(t=function(r){return null!==r&&\"object\"==typeof r&&\"function\"==typeof r.valueOf?r.valueOf():r}(t),\"ref\"===e||\"key\"===e)return\"\";if(\"style\"===e&&\"object\"==typeof t){var i=\"\";for(var u in t){var a=t[u];if(null!=a&&\"\"!==a){var l=\"-\"==u[0]?u:c[u]||(c[u]=u.replace(p,\"-$&\").toLowerCase()),s=\";\";\"number\"!=typeof a||l.startsWith(\"--\")||o.test(l)||(s=\"px;\"),i=i+l+\":\"+a+s}}return e+'=\"'+n(i)+'\"'}return null==t||!1===t||\"function\"==typeof t||\"object\"==typeof t?\"\":!0===t?e:e+'=\"'+n(\"\"+t)+'\"'}function s(r){if(null==r||\"boolean\"==typeof r||\"function\"==typeof r)return null;if(\"object\"==typeof r){if(void 0===r.constructor)return r;if(i(r)){for(var e=0;e<r.length;e++)r[e]=s(r[e]);return r}}return n(\"\"+r)}export{u as jsx,l as jsxAttr,u as jsxDEV,s as jsxEscape,a as jsxTemplate,u as jsxs};\n//# sourceMappingURL=jsxRuntime.module.js.map\n",
|
|
55
|
-
"import { type JSX } from
|
|
55
|
+
"import { type JSX } from \"preact\";\nimport { useLocation } from \"preact-iso\";\nimport { useCallback, useEffect, useMemo, useRef, useState } from \"preact/hooks\";\nimport { Search } from \"../icons\";\n\nimport type { IToolDetail } from \"../../shared/types\";\nimport { useFetch } from \"../hooks/useFetch\";\n\ninterface ISearchResult {\n tool: IToolDetail;\n matchType: \"name\" | \"binary\";\n matchedValue: string;\n}\n\nexport function CommandPalette(): JSX.Element | null {\n const [isOpen, setIsOpen] = useState(false);\n const [query, setQuery] = useState(\"\");\n const [selectedIndex, setSelectedIndex] = useState(0);\n const inputRef = useRef<HTMLInputElement>(null);\n const { route } = useLocation();\n const { data: tools } = useFetch<IToolDetail[]>(\"/tools\");\n\n useEffect(() => {\n const handleKeyDown = (event: KeyboardEvent) => {\n if ((event.metaKey || event.ctrlKey) && event.key === \"k\") {\n event.preventDefault();\n setIsOpen((previousValue) => !previousValue);\n }\n if (event.key === \"Escape\" && isOpen) {\n setIsOpen(false);\n }\n };\n\n document.addEventListener(\"keydown\", handleKeyDown);\n return () => document.removeEventListener(\"keydown\", handleKeyDown);\n }, [isOpen]);\n\n useEffect(() => {\n if (isOpen) {\n setQuery(\"\");\n setSelectedIndex(0);\n setTimeout(() => inputRef.current?.focus(), 0);\n }\n }, [isOpen]);\n\n const results = useMemo((): ISearchResult[] => {\n if (!tools || !query.trim()) return [];\n\n const lowerQuery = query.toLowerCase();\n const matches: ISearchResult[] = [];\n\n for (const tool of tools) {\n if (tool.config.name.toLowerCase().includes(lowerQuery)) {\n matches.push({ tool, matchType: \"name\", matchedValue: tool.config.name });\n continue;\n }\n\n const binaries = tool.config.binaries || [];\n for (const binary of binaries) {\n const binaryName = typeof binary === \"string\" ? binary : binary.name;\n if (binaryName.toLowerCase().includes(lowerQuery)) {\n matches.push({ tool, matchType: \"binary\", matchedValue: binaryName });\n break;\n }\n }\n }\n\n return matches.slice(0, 10);\n }, [tools, query]);\n\n const navigateTo = useCallback(\n (result: ISearchResult) => {\n setIsOpen(false);\n route(`/tools/${encodeURIComponent(result.tool.config.name)}`);\n },\n [route],\n );\n\n const handleKeyDown = useCallback(\n (event: KeyboardEvent) => {\n if (event.key === \"ArrowDown\") {\n event.preventDefault();\n setSelectedIndex((index) => Math.min(index + 1, results.length - 1));\n } else if (event.key === \"ArrowUp\") {\n event.preventDefault();\n setSelectedIndex((index) => Math.max(index - 1, 0));\n } else if (event.key === \"Enter\" && results[selectedIndex]) {\n event.preventDefault();\n navigateTo(results[selectedIndex]);\n }\n },\n [results, selectedIndex, navigateTo],\n );\n\n if (!isOpen) return null;\n\n return (\n <div data-testid=\"CommandPalette\" class=\"fixed inset-0 z-50 flex items-start justify-center pt-[20vh]\">\n <div class=\"fixed inset-0 bg-black/50\" onClick={() => setIsOpen(false)} />\n\n <div class=\"relative w-full max-w-lg overflow-hidden rounded-lg border border-border bg-card shadow-lg\">\n <div class=\"flex items-center border-b border-border px-3\">\n <Search class=\"h-4 w-4 text-muted-foreground\" />\n <input\n ref={inputRef}\n type=\"text\"\n value={query}\n onInput={(event) => {\n setQuery((event.target as HTMLInputElement).value);\n setSelectedIndex(0);\n }}\n onKeyDown={handleKeyDown}\n placeholder=\"Search tools by name or binary...\"\n class=\"flex-1 bg-transparent px-3 py-3 focus:outline-none\"\n />\n <kbd class=\"bg-muted px-1.5 py-0.5 text-xs text-muted-foreground rounded\">esc</kbd>\n </div>\n\n {query.trim() && (\n <div class=\"max-h-80 overflow-y-auto\">\n {results.length === 0 ? (\n <div class=\"px-4 py-8 text-center text-muted-foreground\">No tools found</div>\n ) : (\n <ul>\n {results.map((result, index) => (\n <li\n key={result.tool.config.name}\n class={`px-4 py-2 cursor-pointer flex items-center justify-between ${\n index === selectedIndex ? \"bg-accent\" : \"hover:bg-accent/50\"\n }`}\n onClick={() => navigateTo(result)}\n onMouseEnter={() => setSelectedIndex(index)}\n >\n <div>\n <div class=\"font-medium\">{result.tool.config.name}</div>\n {result.matchType === \"binary\" && (\n <div class=\"text-sm text-muted-foreground\">\n binary: <code class=\"bg-muted px-1 rounded\">{result.matchedValue}</code>\n </div>\n )}\n </div>\n <span class=\"text-xs text-muted-foreground\">{result.tool.config.installationMethod}</span>\n </li>\n ))}\n </ul>\n )}\n </div>\n )}\n\n {!query.trim() && (\n <div class=\"px-4 py-3 text-sm text-muted-foreground\">Type to search tools by name or binary...</div>\n )}\n </div>\n </div>\n );\n}\n",
|
|
56
56
|
"function r(e){var t,f,n=\"\";if(\"string\"==typeof e||\"number\"==typeof e)n+=e;else if(\"object\"==typeof e)if(Array.isArray(e)){var o=e.length;for(t=0;t<o;t++)e[t]&&(f=r(e[t]))&&(n&&(n+=\" \"),n+=f)}else for(f in e)e[f]&&(n&&(n+=\" \"),n+=f);return n}export function clsx(){for(var e,t,f=0,n=\"\",o=arguments.length;f<o;f++)(e=arguments[f])&&(t=r(e))&&(n&&(n+=\" \"),n+=t);return n}export default clsx;",
|
|
57
57
|
"/**\n * Concatenates two arrays faster than the array spread operator.\n */\nconst concatArrays = (array1, array2) => {\n // Pre-allocate for better V8 optimization\n const combinedArray = new Array(array1.length + array2.length);\n for (let i = 0; i < array1.length; i++) {\n combinedArray[i] = array1[i];\n }\n for (let i = 0; i < array2.length; i++) {\n combinedArray[array1.length + i] = array2[i];\n }\n return combinedArray;\n};\n\n// Factory function ensures consistent object shapes\nconst createClassValidatorObject = (classGroupId, validator) => ({\n classGroupId,\n validator\n});\n// Factory ensures consistent ClassPartObject shape\nconst createClassPartObject = (nextPart = new Map(), validators = null, classGroupId) => ({\n nextPart,\n validators,\n classGroupId\n});\nconst CLASS_PART_SEPARATOR = '-';\nconst EMPTY_CONFLICTS = [];\n// I use two dots here because one dot is used as prefix for class groups in plugins\nconst ARBITRARY_PROPERTY_PREFIX = 'arbitrary..';\nconst createClassGroupUtils = config => {\n const classMap = createClassMap(config);\n const {\n conflictingClassGroups,\n conflictingClassGroupModifiers\n } = config;\n const getClassGroupId = className => {\n if (className.startsWith('[') && className.endsWith(']')) {\n return getGroupIdForArbitraryProperty(className);\n }\n const classParts = className.split(CLASS_PART_SEPARATOR);\n // Classes like `-inset-1` produce an empty string as first classPart. We assume that classes for negative values are used correctly and skip it.\n const startIndex = classParts[0] === '' && classParts.length > 1 ? 1 : 0;\n return getGroupRecursive(classParts, startIndex, classMap);\n };\n const getConflictingClassGroupIds = (classGroupId, hasPostfixModifier) => {\n if (hasPostfixModifier) {\n const modifierConflicts = conflictingClassGroupModifiers[classGroupId];\n const baseConflicts = conflictingClassGroups[classGroupId];\n if (modifierConflicts) {\n if (baseConflicts) {\n // Merge base conflicts with modifier conflicts\n return concatArrays(baseConflicts, modifierConflicts);\n }\n // Only modifier conflicts\n return modifierConflicts;\n }\n // Fall back to without postfix if no modifier conflicts\n return baseConflicts || EMPTY_CONFLICTS;\n }\n return conflictingClassGroups[classGroupId] || EMPTY_CONFLICTS;\n };\n return {\n getClassGroupId,\n getConflictingClassGroupIds\n };\n};\nconst getGroupRecursive = (classParts, startIndex, classPartObject) => {\n const classPathsLength = classParts.length - startIndex;\n if (classPathsLength === 0) {\n return classPartObject.classGroupId;\n }\n const currentClassPart = classParts[startIndex];\n const nextClassPartObject = classPartObject.nextPart.get(currentClassPart);\n if (nextClassPartObject) {\n const result = getGroupRecursive(classParts, startIndex + 1, nextClassPartObject);\n if (result) return result;\n }\n const validators = classPartObject.validators;\n if (validators === null) {\n return undefined;\n }\n // Build classRest string efficiently by joining from startIndex onwards\n const classRest = startIndex === 0 ? classParts.join(CLASS_PART_SEPARATOR) : classParts.slice(startIndex).join(CLASS_PART_SEPARATOR);\n const validatorsLength = validators.length;\n for (let i = 0; i < validatorsLength; i++) {\n const validatorObj = validators[i];\n if (validatorObj.validator(classRest)) {\n return validatorObj.classGroupId;\n }\n }\n return undefined;\n};\n/**\n * Get the class group ID for an arbitrary property.\n *\n * @param className - The class name to get the group ID for. Is expected to be string starting with `[` and ending with `]`.\n */\nconst getGroupIdForArbitraryProperty = className => className.slice(1, -1).indexOf(':') === -1 ? undefined : (() => {\n const content = className.slice(1, -1);\n const colonIndex = content.indexOf(':');\n const property = content.slice(0, colonIndex);\n return property ? ARBITRARY_PROPERTY_PREFIX + property : undefined;\n})();\n/**\n * Exported for testing only\n */\nconst createClassMap = config => {\n const {\n theme,\n classGroups\n } = config;\n return processClassGroups(classGroups, theme);\n};\n// Split into separate functions to maintain monomorphic call sites\nconst processClassGroups = (classGroups, theme) => {\n const classMap = createClassPartObject();\n for (const classGroupId in classGroups) {\n const group = classGroups[classGroupId];\n processClassesRecursively(group, classMap, classGroupId, theme);\n }\n return classMap;\n};\nconst processClassesRecursively = (classGroup, classPartObject, classGroupId, theme) => {\n const len = classGroup.length;\n for (let i = 0; i < len; i++) {\n const classDefinition = classGroup[i];\n processClassDefinition(classDefinition, classPartObject, classGroupId, theme);\n }\n};\n// Split into separate functions for each type to maintain monomorphic call sites\nconst processClassDefinition = (classDefinition, classPartObject, classGroupId, theme) => {\n if (typeof classDefinition === 'string') {\n processStringDefinition(classDefinition, classPartObject, classGroupId);\n return;\n }\n if (typeof classDefinition === 'function') {\n processFunctionDefinition(classDefinition, classPartObject, classGroupId, theme);\n return;\n }\n processObjectDefinition(classDefinition, classPartObject, classGroupId, theme);\n};\nconst processStringDefinition = (classDefinition, classPartObject, classGroupId) => {\n const classPartObjectToEdit = classDefinition === '' ? classPartObject : getPart(classPartObject, classDefinition);\n classPartObjectToEdit.classGroupId = classGroupId;\n};\nconst processFunctionDefinition = (classDefinition, classPartObject, classGroupId, theme) => {\n if (isThemeGetter(classDefinition)) {\n processClassesRecursively(classDefinition(theme), classPartObject, classGroupId, theme);\n return;\n }\n if (classPartObject.validators === null) {\n classPartObject.validators = [];\n }\n classPartObject.validators.push(createClassValidatorObject(classGroupId, classDefinition));\n};\nconst processObjectDefinition = (classDefinition, classPartObject, classGroupId, theme) => {\n const entries = Object.entries(classDefinition);\n const len = entries.length;\n for (let i = 0; i < len; i++) {\n const [key, value] = entries[i];\n processClassesRecursively(value, getPart(classPartObject, key), classGroupId, theme);\n }\n};\nconst getPart = (classPartObject, path) => {\n let current = classPartObject;\n const parts = path.split(CLASS_PART_SEPARATOR);\n const len = parts.length;\n for (let i = 0; i < len; i++) {\n const part = parts[i];\n let next = current.nextPart.get(part);\n if (!next) {\n next = createClassPartObject();\n current.nextPart.set(part, next);\n }\n current = next;\n }\n return current;\n};\n// Type guard maintains monomorphic check\nconst isThemeGetter = func => 'isThemeGetter' in func && func.isThemeGetter === true;\n\n// LRU cache implementation using plain objects for simplicity\nconst createLruCache = maxCacheSize => {\n if (maxCacheSize < 1) {\n return {\n get: () => undefined,\n set: () => {}\n };\n }\n let cacheSize = 0;\n let cache = Object.create(null);\n let previousCache = Object.create(null);\n const update = (key, value) => {\n cache[key] = value;\n cacheSize++;\n if (cacheSize > maxCacheSize) {\n cacheSize = 0;\n previousCache = cache;\n cache = Object.create(null);\n }\n };\n return {\n get(key) {\n let value = cache[key];\n if (value !== undefined) {\n return value;\n }\n if ((value = previousCache[key]) !== undefined) {\n update(key, value);\n return value;\n }\n },\n set(key, value) {\n if (key in cache) {\n cache[key] = value;\n } else {\n update(key, value);\n }\n }\n };\n};\nconst IMPORTANT_MODIFIER = '!';\nconst MODIFIER_SEPARATOR = ':';\nconst EMPTY_MODIFIERS = [];\n// Pre-allocated result object shape for consistency\nconst createResultObject = (modifiers, hasImportantModifier, baseClassName, maybePostfixModifierPosition, isExternal) => ({\n modifiers,\n hasImportantModifier,\n baseClassName,\n maybePostfixModifierPosition,\n isExternal\n});\nconst createParseClassName = config => {\n const {\n prefix,\n experimentalParseClassName\n } = config;\n /**\n * Parse class name into parts.\n *\n * Inspired by `splitAtTopLevelOnly` used in Tailwind CSS\n * @see https://github.com/tailwindlabs/tailwindcss/blob/v3.2.2/src/util/splitAtTopLevelOnly.js\n */\n let parseClassName = className => {\n // Use simple array with push for better performance\n const modifiers = [];\n let bracketDepth = 0;\n let parenDepth = 0;\n let modifierStart = 0;\n let postfixModifierPosition;\n const len = className.length;\n for (let index = 0; index < len; index++) {\n const currentCharacter = className[index];\n if (bracketDepth === 0 && parenDepth === 0) {\n if (currentCharacter === MODIFIER_SEPARATOR) {\n modifiers.push(className.slice(modifierStart, index));\n modifierStart = index + 1;\n continue;\n }\n if (currentCharacter === '/') {\n postfixModifierPosition = index;\n continue;\n }\n }\n if (currentCharacter === '[') bracketDepth++;else if (currentCharacter === ']') bracketDepth--;else if (currentCharacter === '(') parenDepth++;else if (currentCharacter === ')') parenDepth--;\n }\n const baseClassNameWithImportantModifier = modifiers.length === 0 ? className : className.slice(modifierStart);\n // Inline important modifier check\n let baseClassName = baseClassNameWithImportantModifier;\n let hasImportantModifier = false;\n if (baseClassNameWithImportantModifier.endsWith(IMPORTANT_MODIFIER)) {\n baseClassName = baseClassNameWithImportantModifier.slice(0, -1);\n hasImportantModifier = true;\n } else if (\n /**\n * In Tailwind CSS v3 the important modifier was at the start of the base class name. This is still supported for legacy reasons.\n * @see https://github.com/dcastil/tailwind-merge/issues/513#issuecomment-2614029864\n */\n baseClassNameWithImportantModifier.startsWith(IMPORTANT_MODIFIER)) {\n baseClassName = baseClassNameWithImportantModifier.slice(1);\n hasImportantModifier = true;\n }\n const maybePostfixModifierPosition = postfixModifierPosition && postfixModifierPosition > modifierStart ? postfixModifierPosition - modifierStart : undefined;\n return createResultObject(modifiers, hasImportantModifier, baseClassName, maybePostfixModifierPosition);\n };\n if (prefix) {\n const fullPrefix = prefix + MODIFIER_SEPARATOR;\n const parseClassNameOriginal = parseClassName;\n parseClassName = className => className.startsWith(fullPrefix) ? parseClassNameOriginal(className.slice(fullPrefix.length)) : createResultObject(EMPTY_MODIFIERS, false, className, undefined, true);\n }\n if (experimentalParseClassName) {\n const parseClassNameOriginal = parseClassName;\n parseClassName = className => experimentalParseClassName({\n className,\n parseClassName: parseClassNameOriginal\n });\n }\n return parseClassName;\n};\n\n/**\n * Sorts modifiers according to following schema:\n * - Predefined modifiers are sorted alphabetically\n * - When an arbitrary variant appears, it must be preserved which modifiers are before and after it\n */\nconst createSortModifiers = config => {\n // Pre-compute weights for all known modifiers for O(1) comparison\n const modifierWeights = new Map();\n // Assign weights to sensitive modifiers (highest priority, but preserve order)\n config.orderSensitiveModifiers.forEach((mod, index) => {\n modifierWeights.set(mod, 1000000 + index); // High weights for sensitive mods\n });\n return modifiers => {\n const result = [];\n let currentSegment = [];\n // Process modifiers in one pass\n for (let i = 0; i < modifiers.length; i++) {\n const modifier = modifiers[i];\n // Check if modifier is sensitive (starts with '[' or in orderSensitiveModifiers)\n const isArbitrary = modifier[0] === '[';\n const isOrderSensitive = modifierWeights.has(modifier);\n if (isArbitrary || isOrderSensitive) {\n // Sort and flush current segment alphabetically\n if (currentSegment.length > 0) {\n currentSegment.sort();\n result.push(...currentSegment);\n currentSegment = [];\n }\n result.push(modifier);\n } else {\n // Regular modifier - add to current segment for batch sorting\n currentSegment.push(modifier);\n }\n }\n // Sort and add any remaining segment items\n if (currentSegment.length > 0) {\n currentSegment.sort();\n result.push(...currentSegment);\n }\n return result;\n };\n};\nconst createConfigUtils = config => ({\n cache: createLruCache(config.cacheSize),\n parseClassName: createParseClassName(config),\n sortModifiers: createSortModifiers(config),\n ...createClassGroupUtils(config)\n});\nconst SPLIT_CLASSES_REGEX = /\\s+/;\nconst mergeClassList = (classList, configUtils) => {\n const {\n parseClassName,\n getClassGroupId,\n getConflictingClassGroupIds,\n sortModifiers\n } = configUtils;\n /**\n * Set of classGroupIds in following format:\n * `{importantModifier}{variantModifiers}{classGroupId}`\n * @example 'float'\n * @example 'hover:focus:bg-color'\n * @example 'md:!pr'\n */\n const classGroupsInConflict = [];\n const classNames = classList.trim().split(SPLIT_CLASSES_REGEX);\n let result = '';\n for (let index = classNames.length - 1; index >= 0; index -= 1) {\n const originalClassName = classNames[index];\n const {\n isExternal,\n modifiers,\n hasImportantModifier,\n baseClassName,\n maybePostfixModifierPosition\n } = parseClassName(originalClassName);\n if (isExternal) {\n result = originalClassName + (result.length > 0 ? ' ' + result : result);\n continue;\n }\n let hasPostfixModifier = !!maybePostfixModifierPosition;\n let classGroupId = getClassGroupId(hasPostfixModifier ? baseClassName.substring(0, maybePostfixModifierPosition) : baseClassName);\n if (!classGroupId) {\n if (!hasPostfixModifier) {\n // Not a Tailwind class\n result = originalClassName + (result.length > 0 ? ' ' + result : result);\n continue;\n }\n classGroupId = getClassGroupId(baseClassName);\n if (!classGroupId) {\n // Not a Tailwind class\n result = originalClassName + (result.length > 0 ? ' ' + result : result);\n continue;\n }\n hasPostfixModifier = false;\n }\n // Fast path: skip sorting for empty or single modifier\n const variantModifier = modifiers.length === 0 ? '' : modifiers.length === 1 ? modifiers[0] : sortModifiers(modifiers).join(':');\n const modifierId = hasImportantModifier ? variantModifier + IMPORTANT_MODIFIER : variantModifier;\n const classId = modifierId + classGroupId;\n if (classGroupsInConflict.indexOf(classId) > -1) {\n // Tailwind class omitted due to conflict\n continue;\n }\n classGroupsInConflict.push(classId);\n const conflictGroups = getConflictingClassGroupIds(classGroupId, hasPostfixModifier);\n for (let i = 0; i < conflictGroups.length; ++i) {\n const group = conflictGroups[i];\n classGroupsInConflict.push(modifierId + group);\n }\n // Tailwind class not in conflict\n result = originalClassName + (result.length > 0 ? ' ' + result : result);\n }\n return result;\n};\n\n/**\n * The code in this file is copied from https://github.com/lukeed/clsx and modified to suit the needs of tailwind-merge better.\n *\n * Specifically:\n * - Runtime code from https://github.com/lukeed/clsx/blob/v1.2.1/src/index.js\n * - TypeScript types from https://github.com/lukeed/clsx/blob/v1.2.1/clsx.d.ts\n *\n * Original code has MIT license: Copyright (c) Luke Edwards <luke.edwards05@gmail.com> (lukeed.com)\n */\nconst twJoin = (...classLists) => {\n let index = 0;\n let argument;\n let resolvedValue;\n let string = '';\n while (index < classLists.length) {\n if (argument = classLists[index++]) {\n if (resolvedValue = toValue(argument)) {\n string && (string += ' ');\n string += resolvedValue;\n }\n }\n }\n return string;\n};\nconst toValue = mix => {\n // Fast path for strings\n if (typeof mix === 'string') {\n return mix;\n }\n let resolvedValue;\n let string = '';\n for (let k = 0; k < mix.length; k++) {\n if (mix[k]) {\n if (resolvedValue = toValue(mix[k])) {\n string && (string += ' ');\n string += resolvedValue;\n }\n }\n }\n return string;\n};\nconst createTailwindMerge = (createConfigFirst, ...createConfigRest) => {\n let configUtils;\n let cacheGet;\n let cacheSet;\n let functionToCall;\n const initTailwindMerge = classList => {\n const config = createConfigRest.reduce((previousConfig, createConfigCurrent) => createConfigCurrent(previousConfig), createConfigFirst());\n configUtils = createConfigUtils(config);\n cacheGet = configUtils.cache.get;\n cacheSet = configUtils.cache.set;\n functionToCall = tailwindMerge;\n return tailwindMerge(classList);\n };\n const tailwindMerge = classList => {\n const cachedResult = cacheGet(classList);\n if (cachedResult) {\n return cachedResult;\n }\n const result = mergeClassList(classList, configUtils);\n cacheSet(classList, result);\n return result;\n };\n functionToCall = initTailwindMerge;\n return (...args) => functionToCall(twJoin(...args));\n};\nconst fallbackThemeArr = [];\nconst fromTheme = key => {\n const themeGetter = theme => theme[key] || fallbackThemeArr;\n themeGetter.isThemeGetter = true;\n return themeGetter;\n};\nconst arbitraryValueRegex = /^\\[(?:(\\w[\\w-]*):)?(.+)\\]$/i;\nconst arbitraryVariableRegex = /^\\((?:(\\w[\\w-]*):)?(.+)\\)$/i;\nconst fractionRegex = /^\\d+(?:\\.\\d+)?\\/\\d+(?:\\.\\d+)?$/;\nconst tshirtUnitRegex = /^(\\d+(\\.\\d+)?)?(xs|sm|md|lg|xl)$/;\nconst lengthUnitRegex = /\\d+(%|px|r?em|[sdl]?v([hwib]|min|max)|pt|pc|in|cm|mm|cap|ch|ex|r?lh|cq(w|h|i|b|min|max))|\\b(calc|min|max|clamp)\\(.+\\)|^0$/;\nconst colorFunctionRegex = /^(rgba?|hsla?|hwb|(ok)?(lab|lch)|color-mix)\\(.+\\)$/;\n// Shadow always begins with x and y offset separated by underscore optionally prepended by inset\nconst shadowRegex = /^(inset_)?-?((\\d+)?\\.?(\\d+)[a-z]+|0)_-?((\\d+)?\\.?(\\d+)[a-z]+|0)/;\nconst imageRegex = /^(url|image|image-set|cross-fade|element|(repeating-)?(linear|radial|conic)-gradient)\\(.+\\)$/;\nconst isFraction = value => fractionRegex.test(value);\nconst isNumber = value => !!value && !Number.isNaN(Number(value));\nconst isInteger = value => !!value && Number.isInteger(Number(value));\nconst isPercent = value => value.endsWith('%') && isNumber(value.slice(0, -1));\nconst isTshirtSize = value => tshirtUnitRegex.test(value);\nconst isAny = () => true;\nconst isLengthOnly = value =>\n// `colorFunctionRegex` check is necessary because color functions can have percentages in them which which would be incorrectly classified as lengths.\n// For example, `hsl(0 0% 0%)` would be classified as a length without this check.\n// I could also use lookbehind assertion in `lengthUnitRegex` but that isn't supported widely enough.\nlengthUnitRegex.test(value) && !colorFunctionRegex.test(value);\nconst isNever = () => false;\nconst isShadow = value => shadowRegex.test(value);\nconst isImage = value => imageRegex.test(value);\nconst isAnyNonArbitrary = value => !isArbitraryValue(value) && !isArbitraryVariable(value);\nconst isArbitrarySize = value => getIsArbitraryValue(value, isLabelSize, isNever);\nconst isArbitraryValue = value => arbitraryValueRegex.test(value);\nconst isArbitraryLength = value => getIsArbitraryValue(value, isLabelLength, isLengthOnly);\nconst isArbitraryNumber = value => getIsArbitraryValue(value, isLabelNumber, isNumber);\nconst isArbitraryWeight = value => getIsArbitraryValue(value, isLabelWeight, isAny);\nconst isArbitraryFamilyName = value => getIsArbitraryValue(value, isLabelFamilyName, isNever);\nconst isArbitraryPosition = value => getIsArbitraryValue(value, isLabelPosition, isNever);\nconst isArbitraryImage = value => getIsArbitraryValue(value, isLabelImage, isImage);\nconst isArbitraryShadow = value => getIsArbitraryValue(value, isLabelShadow, isShadow);\nconst isArbitraryVariable = value => arbitraryVariableRegex.test(value);\nconst isArbitraryVariableLength = value => getIsArbitraryVariable(value, isLabelLength);\nconst isArbitraryVariableFamilyName = value => getIsArbitraryVariable(value, isLabelFamilyName);\nconst isArbitraryVariablePosition = value => getIsArbitraryVariable(value, isLabelPosition);\nconst isArbitraryVariableSize = value => getIsArbitraryVariable(value, isLabelSize);\nconst isArbitraryVariableImage = value => getIsArbitraryVariable(value, isLabelImage);\nconst isArbitraryVariableShadow = value => getIsArbitraryVariable(value, isLabelShadow, true);\nconst isArbitraryVariableWeight = value => getIsArbitraryVariable(value, isLabelWeight, true);\n// Helpers\nconst getIsArbitraryValue = (value, testLabel, testValue) => {\n const result = arbitraryValueRegex.exec(value);\n if (result) {\n if (result[1]) {\n return testLabel(result[1]);\n }\n return testValue(result[2]);\n }\n return false;\n};\nconst getIsArbitraryVariable = (value, testLabel, shouldMatchNoLabel = false) => {\n const result = arbitraryVariableRegex.exec(value);\n if (result) {\n if (result[1]) {\n return testLabel(result[1]);\n }\n return shouldMatchNoLabel;\n }\n return false;\n};\n// Labels\nconst isLabelPosition = label => label === 'position' || label === 'percentage';\nconst isLabelImage = label => label === 'image' || label === 'url';\nconst isLabelSize = label => label === 'length' || label === 'size' || label === 'bg-size';\nconst isLabelLength = label => label === 'length';\nconst isLabelNumber = label => label === 'number';\nconst isLabelFamilyName = label => label === 'family-name';\nconst isLabelWeight = label => label === 'number' || label === 'weight';\nconst isLabelShadow = label => label === 'shadow';\nconst validators = /*#__PURE__*/Object.defineProperty({\n __proto__: null,\n isAny,\n isAnyNonArbitrary,\n isArbitraryFamilyName,\n isArbitraryImage,\n isArbitraryLength,\n isArbitraryNumber,\n isArbitraryPosition,\n isArbitraryShadow,\n isArbitrarySize,\n isArbitraryValue,\n isArbitraryVariable,\n isArbitraryVariableFamilyName,\n isArbitraryVariableImage,\n isArbitraryVariableLength,\n isArbitraryVariablePosition,\n isArbitraryVariableShadow,\n isArbitraryVariableSize,\n isArbitraryVariableWeight,\n isArbitraryWeight,\n isFraction,\n isInteger,\n isNumber,\n isPercent,\n isTshirtSize\n}, Symbol.toStringTag, {\n value: 'Module'\n});\nconst getDefaultConfig = () => {\n /**\n * Theme getters for theme variable namespaces\n * @see https://tailwindcss.com/docs/theme#theme-variable-namespaces\n */\n /***/\n const themeColor = fromTheme('color');\n const themeFont = fromTheme('font');\n const themeText = fromTheme('text');\n const themeFontWeight = fromTheme('font-weight');\n const themeTracking = fromTheme('tracking');\n const themeLeading = fromTheme('leading');\n const themeBreakpoint = fromTheme('breakpoint');\n const themeContainer = fromTheme('container');\n const themeSpacing = fromTheme('spacing');\n const themeRadius = fromTheme('radius');\n const themeShadow = fromTheme('shadow');\n const themeInsetShadow = fromTheme('inset-shadow');\n const themeTextShadow = fromTheme('text-shadow');\n const themeDropShadow = fromTheme('drop-shadow');\n const themeBlur = fromTheme('blur');\n const themePerspective = fromTheme('perspective');\n const themeAspect = fromTheme('aspect');\n const themeEase = fromTheme('ease');\n const themeAnimate = fromTheme('animate');\n /**\n * Helpers to avoid repeating the same scales\n *\n * We use functions that create a new array every time they're called instead of static arrays.\n * This ensures that users who modify any scale by mutating the array (e.g. with `array.push(element)`) don't accidentally mutate arrays in other parts of the config.\n */\n /***/\n const scaleBreak = () => ['auto', 'avoid', 'all', 'avoid-page', 'page', 'left', 'right', 'column'];\n const scalePosition = () => ['center', 'top', 'bottom', 'left', 'right', 'top-left',\n // Deprecated since Tailwind CSS v4.1.0, see https://github.com/tailwindlabs/tailwindcss/pull/17378\n 'left-top', 'top-right',\n // Deprecated since Tailwind CSS v4.1.0, see https://github.com/tailwindlabs/tailwindcss/pull/17378\n 'right-top', 'bottom-right',\n // Deprecated since Tailwind CSS v4.1.0, see https://github.com/tailwindlabs/tailwindcss/pull/17378\n 'right-bottom', 'bottom-left',\n // Deprecated since Tailwind CSS v4.1.0, see https://github.com/tailwindlabs/tailwindcss/pull/17378\n 'left-bottom'];\n const scalePositionWithArbitrary = () => [...scalePosition(), isArbitraryVariable, isArbitraryValue];\n const scaleOverflow = () => ['auto', 'hidden', 'clip', 'visible', 'scroll'];\n const scaleOverscroll = () => ['auto', 'contain', 'none'];\n const scaleUnambiguousSpacing = () => [isArbitraryVariable, isArbitraryValue, themeSpacing];\n const scaleInset = () => [isFraction, 'full', 'auto', ...scaleUnambiguousSpacing()];\n const scaleGridTemplateColsRows = () => [isInteger, 'none', 'subgrid', isArbitraryVariable, isArbitraryValue];\n const scaleGridColRowStartAndEnd = () => ['auto', {\n span: ['full', isInteger, isArbitraryVariable, isArbitraryValue]\n }, isInteger, isArbitraryVariable, isArbitraryValue];\n const scaleGridColRowStartOrEnd = () => [isInteger, 'auto', isArbitraryVariable, isArbitraryValue];\n const scaleGridAutoColsRows = () => ['auto', 'min', 'max', 'fr', isArbitraryVariable, isArbitraryValue];\n const scaleAlignPrimaryAxis = () => ['start', 'end', 'center', 'between', 'around', 'evenly', 'stretch', 'baseline', 'center-safe', 'end-safe'];\n const scaleAlignSecondaryAxis = () => ['start', 'end', 'center', 'stretch', 'center-safe', 'end-safe'];\n const scaleMargin = () => ['auto', ...scaleUnambiguousSpacing()];\n const scaleSizing = () => [isFraction, 'auto', 'full', 'dvw', 'dvh', 'lvw', 'lvh', 'svw', 'svh', 'min', 'max', 'fit', ...scaleUnambiguousSpacing()];\n const scaleSizingInline = () => [isFraction, 'screen', 'full', 'dvw', 'lvw', 'svw', 'min', 'max', 'fit', ...scaleUnambiguousSpacing()];\n const scaleSizingBlock = () => [isFraction, 'screen', 'full', 'lh', 'dvh', 'lvh', 'svh', 'min', 'max', 'fit', ...scaleUnambiguousSpacing()];\n const scaleColor = () => [themeColor, isArbitraryVariable, isArbitraryValue];\n const scaleBgPosition = () => [...scalePosition(), isArbitraryVariablePosition, isArbitraryPosition, {\n position: [isArbitraryVariable, isArbitraryValue]\n }];\n const scaleBgRepeat = () => ['no-repeat', {\n repeat: ['', 'x', 'y', 'space', 'round']\n }];\n const scaleBgSize = () => ['auto', 'cover', 'contain', isArbitraryVariableSize, isArbitrarySize, {\n size: [isArbitraryVariable, isArbitraryValue]\n }];\n const scaleGradientStopPosition = () => [isPercent, isArbitraryVariableLength, isArbitraryLength];\n const scaleRadius = () => [\n // Deprecated since Tailwind CSS v4.0.0\n '', 'none', 'full', themeRadius, isArbitraryVariable, isArbitraryValue];\n const scaleBorderWidth = () => ['', isNumber, isArbitraryVariableLength, isArbitraryLength];\n const scaleLineStyle = () => ['solid', 'dashed', 'dotted', 'double'];\n const scaleBlendMode = () => ['normal', 'multiply', 'screen', 'overlay', 'darken', 'lighten', 'color-dodge', 'color-burn', 'hard-light', 'soft-light', 'difference', 'exclusion', 'hue', 'saturation', 'color', 'luminosity'];\n const scaleMaskImagePosition = () => [isNumber, isPercent, isArbitraryVariablePosition, isArbitraryPosition];\n const scaleBlur = () => [\n // Deprecated since Tailwind CSS v4.0.0\n '', 'none', themeBlur, isArbitraryVariable, isArbitraryValue];\n const scaleRotate = () => ['none', isNumber, isArbitraryVariable, isArbitraryValue];\n const scaleScale = () => ['none', isNumber, isArbitraryVariable, isArbitraryValue];\n const scaleSkew = () => [isNumber, isArbitraryVariable, isArbitraryValue];\n const scaleTranslate = () => [isFraction, 'full', ...scaleUnambiguousSpacing()];\n return {\n cacheSize: 500,\n theme: {\n animate: ['spin', 'ping', 'pulse', 'bounce'],\n aspect: ['video'],\n blur: [isTshirtSize],\n breakpoint: [isTshirtSize],\n color: [isAny],\n container: [isTshirtSize],\n 'drop-shadow': [isTshirtSize],\n ease: ['in', 'out', 'in-out'],\n font: [isAnyNonArbitrary],\n 'font-weight': ['thin', 'extralight', 'light', 'normal', 'medium', 'semibold', 'bold', 'extrabold', 'black'],\n 'inset-shadow': [isTshirtSize],\n leading: ['none', 'tight', 'snug', 'normal', 'relaxed', 'loose'],\n perspective: ['dramatic', 'near', 'normal', 'midrange', 'distant', 'none'],\n radius: [isTshirtSize],\n shadow: [isTshirtSize],\n spacing: ['px', isNumber],\n text: [isTshirtSize],\n 'text-shadow': [isTshirtSize],\n tracking: ['tighter', 'tight', 'normal', 'wide', 'wider', 'widest']\n },\n classGroups: {\n // --------------\n // --- Layout ---\n // --------------\n /**\n * Aspect Ratio\n * @see https://tailwindcss.com/docs/aspect-ratio\n */\n aspect: [{\n aspect: ['auto', 'square', isFraction, isArbitraryValue, isArbitraryVariable, themeAspect]\n }],\n /**\n * Container\n * @see https://tailwindcss.com/docs/container\n * @deprecated since Tailwind CSS v4.0.0\n */\n container: ['container'],\n /**\n * Columns\n * @see https://tailwindcss.com/docs/columns\n */\n columns: [{\n columns: [isNumber, isArbitraryValue, isArbitraryVariable, themeContainer]\n }],\n /**\n * Break After\n * @see https://tailwindcss.com/docs/break-after\n */\n 'break-after': [{\n 'break-after': scaleBreak()\n }],\n /**\n * Break Before\n * @see https://tailwindcss.com/docs/break-before\n */\n 'break-before': [{\n 'break-before': scaleBreak()\n }],\n /**\n * Break Inside\n * @see https://tailwindcss.com/docs/break-inside\n */\n 'break-inside': [{\n 'break-inside': ['auto', 'avoid', 'avoid-page', 'avoid-column']\n }],\n /**\n * Box Decoration Break\n * @see https://tailwindcss.com/docs/box-decoration-break\n */\n 'box-decoration': [{\n 'box-decoration': ['slice', 'clone']\n }],\n /**\n * Box Sizing\n * @see https://tailwindcss.com/docs/box-sizing\n */\n box: [{\n box: ['border', 'content']\n }],\n /**\n * Display\n * @see https://tailwindcss.com/docs/display\n */\n display: ['block', 'inline-block', 'inline', 'flex', 'inline-flex', 'table', 'inline-table', 'table-caption', 'table-cell', 'table-column', 'table-column-group', 'table-footer-group', 'table-header-group', 'table-row-group', 'table-row', 'flow-root', 'grid', 'inline-grid', 'contents', 'list-item', 'hidden'],\n /**\n * Screen Reader Only\n * @see https://tailwindcss.com/docs/display#screen-reader-only\n */\n sr: ['sr-only', 'not-sr-only'],\n /**\n * Floats\n * @see https://tailwindcss.com/docs/float\n */\n float: [{\n float: ['right', 'left', 'none', 'start', 'end']\n }],\n /**\n * Clear\n * @see https://tailwindcss.com/docs/clear\n */\n clear: [{\n clear: ['left', 'right', 'both', 'none', 'start', 'end']\n }],\n /**\n * Isolation\n * @see https://tailwindcss.com/docs/isolation\n */\n isolation: ['isolate', 'isolation-auto'],\n /**\n * Object Fit\n * @see https://tailwindcss.com/docs/object-fit\n */\n 'object-fit': [{\n object: ['contain', 'cover', 'fill', 'none', 'scale-down']\n }],\n /**\n * Object Position\n * @see https://tailwindcss.com/docs/object-position\n */\n 'object-position': [{\n object: scalePositionWithArbitrary()\n }],\n /**\n * Overflow\n * @see https://tailwindcss.com/docs/overflow\n */\n overflow: [{\n overflow: scaleOverflow()\n }],\n /**\n * Overflow X\n * @see https://tailwindcss.com/docs/overflow\n */\n 'overflow-x': [{\n 'overflow-x': scaleOverflow()\n }],\n /**\n * Overflow Y\n * @see https://tailwindcss.com/docs/overflow\n */\n 'overflow-y': [{\n 'overflow-y': scaleOverflow()\n }],\n /**\n * Overscroll Behavior\n * @see https://tailwindcss.com/docs/overscroll-behavior\n */\n overscroll: [{\n overscroll: scaleOverscroll()\n }],\n /**\n * Overscroll Behavior X\n * @see https://tailwindcss.com/docs/overscroll-behavior\n */\n 'overscroll-x': [{\n 'overscroll-x': scaleOverscroll()\n }],\n /**\n * Overscroll Behavior Y\n * @see https://tailwindcss.com/docs/overscroll-behavior\n */\n 'overscroll-y': [{\n 'overscroll-y': scaleOverscroll()\n }],\n /**\n * Position\n * @see https://tailwindcss.com/docs/position\n */\n position: ['static', 'fixed', 'absolute', 'relative', 'sticky'],\n /**\n * Inset\n * @see https://tailwindcss.com/docs/top-right-bottom-left\n */\n inset: [{\n inset: scaleInset()\n }],\n /**\n * Inset Inline\n * @see https://tailwindcss.com/docs/top-right-bottom-left\n */\n 'inset-x': [{\n 'inset-x': scaleInset()\n }],\n /**\n * Inset Block\n * @see https://tailwindcss.com/docs/top-right-bottom-left\n */\n 'inset-y': [{\n 'inset-y': scaleInset()\n }],\n /**\n * Inset Inline Start\n * @see https://tailwindcss.com/docs/top-right-bottom-left\n * @todo class group will be renamed to `inset-s` in next major release\n */\n start: [{\n 'inset-s': scaleInset(),\n /**\n * @deprecated since Tailwind CSS v4.2.0 in favor of `inset-s-*` utilities.\n * @see https://github.com/tailwindlabs/tailwindcss/pull/19613\n */\n start: scaleInset()\n }],\n /**\n * Inset Inline End\n * @see https://tailwindcss.com/docs/top-right-bottom-left\n * @todo class group will be renamed to `inset-e` in next major release\n */\n end: [{\n 'inset-e': scaleInset(),\n /**\n * @deprecated since Tailwind CSS v4.2.0 in favor of `inset-e-*` utilities.\n * @see https://github.com/tailwindlabs/tailwindcss/pull/19613\n */\n end: scaleInset()\n }],\n /**\n * Inset Block Start\n * @see https://tailwindcss.com/docs/top-right-bottom-left\n */\n 'inset-bs': [{\n 'inset-bs': scaleInset()\n }],\n /**\n * Inset Block End\n * @see https://tailwindcss.com/docs/top-right-bottom-left\n */\n 'inset-be': [{\n 'inset-be': scaleInset()\n }],\n /**\n * Top\n * @see https://tailwindcss.com/docs/top-right-bottom-left\n */\n top: [{\n top: scaleInset()\n }],\n /**\n * Right\n * @see https://tailwindcss.com/docs/top-right-bottom-left\n */\n right: [{\n right: scaleInset()\n }],\n /**\n * Bottom\n * @see https://tailwindcss.com/docs/top-right-bottom-left\n */\n bottom: [{\n bottom: scaleInset()\n }],\n /**\n * Left\n * @see https://tailwindcss.com/docs/top-right-bottom-left\n */\n left: [{\n left: scaleInset()\n }],\n /**\n * Visibility\n * @see https://tailwindcss.com/docs/visibility\n */\n visibility: ['visible', 'invisible', 'collapse'],\n /**\n * Z-Index\n * @see https://tailwindcss.com/docs/z-index\n */\n z: [{\n z: [isInteger, 'auto', isArbitraryVariable, isArbitraryValue]\n }],\n // ------------------------\n // --- Flexbox and Grid ---\n // ------------------------\n /**\n * Flex Basis\n * @see https://tailwindcss.com/docs/flex-basis\n */\n basis: [{\n basis: [isFraction, 'full', 'auto', themeContainer, ...scaleUnambiguousSpacing()]\n }],\n /**\n * Flex Direction\n * @see https://tailwindcss.com/docs/flex-direction\n */\n 'flex-direction': [{\n flex: ['row', 'row-reverse', 'col', 'col-reverse']\n }],\n /**\n * Flex Wrap\n * @see https://tailwindcss.com/docs/flex-wrap\n */\n 'flex-wrap': [{\n flex: ['nowrap', 'wrap', 'wrap-reverse']\n }],\n /**\n * Flex\n * @see https://tailwindcss.com/docs/flex\n */\n flex: [{\n flex: [isNumber, isFraction, 'auto', 'initial', 'none', isArbitraryValue]\n }],\n /**\n * Flex Grow\n * @see https://tailwindcss.com/docs/flex-grow\n */\n grow: [{\n grow: ['', isNumber, isArbitraryVariable, isArbitraryValue]\n }],\n /**\n * Flex Shrink\n * @see https://tailwindcss.com/docs/flex-shrink\n */\n shrink: [{\n shrink: ['', isNumber, isArbitraryVariable, isArbitraryValue]\n }],\n /**\n * Order\n * @see https://tailwindcss.com/docs/order\n */\n order: [{\n order: [isInteger, 'first', 'last', 'none', isArbitraryVariable, isArbitraryValue]\n }],\n /**\n * Grid Template Columns\n * @see https://tailwindcss.com/docs/grid-template-columns\n */\n 'grid-cols': [{\n 'grid-cols': scaleGridTemplateColsRows()\n }],\n /**\n * Grid Column Start / End\n * @see https://tailwindcss.com/docs/grid-column\n */\n 'col-start-end': [{\n col: scaleGridColRowStartAndEnd()\n }],\n /**\n * Grid Column Start\n * @see https://tailwindcss.com/docs/grid-column\n */\n 'col-start': [{\n 'col-start': scaleGridColRowStartOrEnd()\n }],\n /**\n * Grid Column End\n * @see https://tailwindcss.com/docs/grid-column\n */\n 'col-end': [{\n 'col-end': scaleGridColRowStartOrEnd()\n }],\n /**\n * Grid Template Rows\n * @see https://tailwindcss.com/docs/grid-template-rows\n */\n 'grid-rows': [{\n 'grid-rows': scaleGridTemplateColsRows()\n }],\n /**\n * Grid Row Start / End\n * @see https://tailwindcss.com/docs/grid-row\n */\n 'row-start-end': [{\n row: scaleGridColRowStartAndEnd()\n }],\n /**\n * Grid Row Start\n * @see https://tailwindcss.com/docs/grid-row\n */\n 'row-start': [{\n 'row-start': scaleGridColRowStartOrEnd()\n }],\n /**\n * Grid Row End\n * @see https://tailwindcss.com/docs/grid-row\n */\n 'row-end': [{\n 'row-end': scaleGridColRowStartOrEnd()\n }],\n /**\n * Grid Auto Flow\n * @see https://tailwindcss.com/docs/grid-auto-flow\n */\n 'grid-flow': [{\n 'grid-flow': ['row', 'col', 'dense', 'row-dense', 'col-dense']\n }],\n /**\n * Grid Auto Columns\n * @see https://tailwindcss.com/docs/grid-auto-columns\n */\n 'auto-cols': [{\n 'auto-cols': scaleGridAutoColsRows()\n }],\n /**\n * Grid Auto Rows\n * @see https://tailwindcss.com/docs/grid-auto-rows\n */\n 'auto-rows': [{\n 'auto-rows': scaleGridAutoColsRows()\n }],\n /**\n * Gap\n * @see https://tailwindcss.com/docs/gap\n */\n gap: [{\n gap: scaleUnambiguousSpacing()\n }],\n /**\n * Gap X\n * @see https://tailwindcss.com/docs/gap\n */\n 'gap-x': [{\n 'gap-x': scaleUnambiguousSpacing()\n }],\n /**\n * Gap Y\n * @see https://tailwindcss.com/docs/gap\n */\n 'gap-y': [{\n 'gap-y': scaleUnambiguousSpacing()\n }],\n /**\n * Justify Content\n * @see https://tailwindcss.com/docs/justify-content\n */\n 'justify-content': [{\n justify: [...scaleAlignPrimaryAxis(), 'normal']\n }],\n /**\n * Justify Items\n * @see https://tailwindcss.com/docs/justify-items\n */\n 'justify-items': [{\n 'justify-items': [...scaleAlignSecondaryAxis(), 'normal']\n }],\n /**\n * Justify Self\n * @see https://tailwindcss.com/docs/justify-self\n */\n 'justify-self': [{\n 'justify-self': ['auto', ...scaleAlignSecondaryAxis()]\n }],\n /**\n * Align Content\n * @see https://tailwindcss.com/docs/align-content\n */\n 'align-content': [{\n content: ['normal', ...scaleAlignPrimaryAxis()]\n }],\n /**\n * Align Items\n * @see https://tailwindcss.com/docs/align-items\n */\n 'align-items': [{\n items: [...scaleAlignSecondaryAxis(), {\n baseline: ['', 'last']\n }]\n }],\n /**\n * Align Self\n * @see https://tailwindcss.com/docs/align-self\n */\n 'align-self': [{\n self: ['auto', ...scaleAlignSecondaryAxis(), {\n baseline: ['', 'last']\n }]\n }],\n /**\n * Place Content\n * @see https://tailwindcss.com/docs/place-content\n */\n 'place-content': [{\n 'place-content': scaleAlignPrimaryAxis()\n }],\n /**\n * Place Items\n * @see https://tailwindcss.com/docs/place-items\n */\n 'place-items': [{\n 'place-items': [...scaleAlignSecondaryAxis(), 'baseline']\n }],\n /**\n * Place Self\n * @see https://tailwindcss.com/docs/place-self\n */\n 'place-self': [{\n 'place-self': ['auto', ...scaleAlignSecondaryAxis()]\n }],\n // Spacing\n /**\n * Padding\n * @see https://tailwindcss.com/docs/padding\n */\n p: [{\n p: scaleUnambiguousSpacing()\n }],\n /**\n * Padding Inline\n * @see https://tailwindcss.com/docs/padding\n */\n px: [{\n px: scaleUnambiguousSpacing()\n }],\n /**\n * Padding Block\n * @see https://tailwindcss.com/docs/padding\n */\n py: [{\n py: scaleUnambiguousSpacing()\n }],\n /**\n * Padding Inline Start\n * @see https://tailwindcss.com/docs/padding\n */\n ps: [{\n ps: scaleUnambiguousSpacing()\n }],\n /**\n * Padding Inline End\n * @see https://tailwindcss.com/docs/padding\n */\n pe: [{\n pe: scaleUnambiguousSpacing()\n }],\n /**\n * Padding Block Start\n * @see https://tailwindcss.com/docs/padding\n */\n pbs: [{\n pbs: scaleUnambiguousSpacing()\n }],\n /**\n * Padding Block End\n * @see https://tailwindcss.com/docs/padding\n */\n pbe: [{\n pbe: scaleUnambiguousSpacing()\n }],\n /**\n * Padding Top\n * @see https://tailwindcss.com/docs/padding\n */\n pt: [{\n pt: scaleUnambiguousSpacing()\n }],\n /**\n * Padding Right\n * @see https://tailwindcss.com/docs/padding\n */\n pr: [{\n pr: scaleUnambiguousSpacing()\n }],\n /**\n * Padding Bottom\n * @see https://tailwindcss.com/docs/padding\n */\n pb: [{\n pb: scaleUnambiguousSpacing()\n }],\n /**\n * Padding Left\n * @see https://tailwindcss.com/docs/padding\n */\n pl: [{\n pl: scaleUnambiguousSpacing()\n }],\n /**\n * Margin\n * @see https://tailwindcss.com/docs/margin\n */\n m: [{\n m: scaleMargin()\n }],\n /**\n * Margin Inline\n * @see https://tailwindcss.com/docs/margin\n */\n mx: [{\n mx: scaleMargin()\n }],\n /**\n * Margin Block\n * @see https://tailwindcss.com/docs/margin\n */\n my: [{\n my: scaleMargin()\n }],\n /**\n * Margin Inline Start\n * @see https://tailwindcss.com/docs/margin\n */\n ms: [{\n ms: scaleMargin()\n }],\n /**\n * Margin Inline End\n * @see https://tailwindcss.com/docs/margin\n */\n me: [{\n me: scaleMargin()\n }],\n /**\n * Margin Block Start\n * @see https://tailwindcss.com/docs/margin\n */\n mbs: [{\n mbs: scaleMargin()\n }],\n /**\n * Margin Block End\n * @see https://tailwindcss.com/docs/margin\n */\n mbe: [{\n mbe: scaleMargin()\n }],\n /**\n * Margin Top\n * @see https://tailwindcss.com/docs/margin\n */\n mt: [{\n mt: scaleMargin()\n }],\n /**\n * Margin Right\n * @see https://tailwindcss.com/docs/margin\n */\n mr: [{\n mr: scaleMargin()\n }],\n /**\n * Margin Bottom\n * @see https://tailwindcss.com/docs/margin\n */\n mb: [{\n mb: scaleMargin()\n }],\n /**\n * Margin Left\n * @see https://tailwindcss.com/docs/margin\n */\n ml: [{\n ml: scaleMargin()\n }],\n /**\n * Space Between X\n * @see https://tailwindcss.com/docs/margin#adding-space-between-children\n */\n 'space-x': [{\n 'space-x': scaleUnambiguousSpacing()\n }],\n /**\n * Space Between X Reverse\n * @see https://tailwindcss.com/docs/margin#adding-space-between-children\n */\n 'space-x-reverse': ['space-x-reverse'],\n /**\n * Space Between Y\n * @see https://tailwindcss.com/docs/margin#adding-space-between-children\n */\n 'space-y': [{\n 'space-y': scaleUnambiguousSpacing()\n }],\n /**\n * Space Between Y Reverse\n * @see https://tailwindcss.com/docs/margin#adding-space-between-children\n */\n 'space-y-reverse': ['space-y-reverse'],\n // --------------\n // --- Sizing ---\n // --------------\n /**\n * Size\n * @see https://tailwindcss.com/docs/width#setting-both-width-and-height\n */\n size: [{\n size: scaleSizing()\n }],\n /**\n * Inline Size\n * @see https://tailwindcss.com/docs/width\n */\n 'inline-size': [{\n inline: ['auto', ...scaleSizingInline()]\n }],\n /**\n * Min-Inline Size\n * @see https://tailwindcss.com/docs/min-width\n */\n 'min-inline-size': [{\n 'min-inline': ['auto', ...scaleSizingInline()]\n }],\n /**\n * Max-Inline Size\n * @see https://tailwindcss.com/docs/max-width\n */\n 'max-inline-size': [{\n 'max-inline': ['none', ...scaleSizingInline()]\n }],\n /**\n * Block Size\n * @see https://tailwindcss.com/docs/height\n */\n 'block-size': [{\n block: ['auto', ...scaleSizingBlock()]\n }],\n /**\n * Min-Block Size\n * @see https://tailwindcss.com/docs/min-height\n */\n 'min-block-size': [{\n 'min-block': ['auto', ...scaleSizingBlock()]\n }],\n /**\n * Max-Block Size\n * @see https://tailwindcss.com/docs/max-height\n */\n 'max-block-size': [{\n 'max-block': ['none', ...scaleSizingBlock()]\n }],\n /**\n * Width\n * @see https://tailwindcss.com/docs/width\n */\n w: [{\n w: [themeContainer, 'screen', ...scaleSizing()]\n }],\n /**\n * Min-Width\n * @see https://tailwindcss.com/docs/min-width\n */\n 'min-w': [{\n 'min-w': [themeContainer, 'screen', /** Deprecated. @see https://github.com/tailwindlabs/tailwindcss.com/issues/2027#issuecomment-2620152757 */\n 'none', ...scaleSizing()]\n }],\n /**\n * Max-Width\n * @see https://tailwindcss.com/docs/max-width\n */\n 'max-w': [{\n 'max-w': [themeContainer, 'screen', 'none', /** Deprecated since Tailwind CSS v4.0.0. @see https://github.com/tailwindlabs/tailwindcss.com/issues/2027#issuecomment-2620152757 */\n 'prose', /** Deprecated since Tailwind CSS v4.0.0. @see https://github.com/tailwindlabs/tailwindcss.com/issues/2027#issuecomment-2620152757 */\n {\n screen: [themeBreakpoint]\n }, ...scaleSizing()]\n }],\n /**\n * Height\n * @see https://tailwindcss.com/docs/height\n */\n h: [{\n h: ['screen', 'lh', ...scaleSizing()]\n }],\n /**\n * Min-Height\n * @see https://tailwindcss.com/docs/min-height\n */\n 'min-h': [{\n 'min-h': ['screen', 'lh', 'none', ...scaleSizing()]\n }],\n /**\n * Max-Height\n * @see https://tailwindcss.com/docs/max-height\n */\n 'max-h': [{\n 'max-h': ['screen', 'lh', ...scaleSizing()]\n }],\n // ------------------\n // --- Typography ---\n // ------------------\n /**\n * Font Size\n * @see https://tailwindcss.com/docs/font-size\n */\n 'font-size': [{\n text: ['base', themeText, isArbitraryVariableLength, isArbitraryLength]\n }],\n /**\n * Font Smoothing\n * @see https://tailwindcss.com/docs/font-smoothing\n */\n 'font-smoothing': ['antialiased', 'subpixel-antialiased'],\n /**\n * Font Style\n * @see https://tailwindcss.com/docs/font-style\n */\n 'font-style': ['italic', 'not-italic'],\n /**\n * Font Weight\n * @see https://tailwindcss.com/docs/font-weight\n */\n 'font-weight': [{\n font: [themeFontWeight, isArbitraryVariableWeight, isArbitraryWeight]\n }],\n /**\n * Font Stretch\n * @see https://tailwindcss.com/docs/font-stretch\n */\n 'font-stretch': [{\n 'font-stretch': ['ultra-condensed', 'extra-condensed', 'condensed', 'semi-condensed', 'normal', 'semi-expanded', 'expanded', 'extra-expanded', 'ultra-expanded', isPercent, isArbitraryValue]\n }],\n /**\n * Font Family\n * @see https://tailwindcss.com/docs/font-family\n */\n 'font-family': [{\n font: [isArbitraryVariableFamilyName, isArbitraryFamilyName, themeFont]\n }],\n /**\n * Font Feature Settings\n * @see https://tailwindcss.com/docs/font-feature-settings\n */\n 'font-features': [{\n 'font-features': [isArbitraryValue]\n }],\n /**\n * Font Variant Numeric\n * @see https://tailwindcss.com/docs/font-variant-numeric\n */\n 'fvn-normal': ['normal-nums'],\n /**\n * Font Variant Numeric\n * @see https://tailwindcss.com/docs/font-variant-numeric\n */\n 'fvn-ordinal': ['ordinal'],\n /**\n * Font Variant Numeric\n * @see https://tailwindcss.com/docs/font-variant-numeric\n */\n 'fvn-slashed-zero': ['slashed-zero'],\n /**\n * Font Variant Numeric\n * @see https://tailwindcss.com/docs/font-variant-numeric\n */\n 'fvn-figure': ['lining-nums', 'oldstyle-nums'],\n /**\n * Font Variant Numeric\n * @see https://tailwindcss.com/docs/font-variant-numeric\n */\n 'fvn-spacing': ['proportional-nums', 'tabular-nums'],\n /**\n * Font Variant Numeric\n * @see https://tailwindcss.com/docs/font-variant-numeric\n */\n 'fvn-fraction': ['diagonal-fractions', 'stacked-fractions'],\n /**\n * Letter Spacing\n * @see https://tailwindcss.com/docs/letter-spacing\n */\n tracking: [{\n tracking: [themeTracking, isArbitraryVariable, isArbitraryValue]\n }],\n /**\n * Line Clamp\n * @see https://tailwindcss.com/docs/line-clamp\n */\n 'line-clamp': [{\n 'line-clamp': [isNumber, 'none', isArbitraryVariable, isArbitraryNumber]\n }],\n /**\n * Line Height\n * @see https://tailwindcss.com/docs/line-height\n */\n leading: [{\n leading: [/** Deprecated since Tailwind CSS v4.0.0. @see https://github.com/tailwindlabs/tailwindcss.com/issues/2027#issuecomment-2620152757 */\n themeLeading, ...scaleUnambiguousSpacing()]\n }],\n /**\n * List Style Image\n * @see https://tailwindcss.com/docs/list-style-image\n */\n 'list-image': [{\n 'list-image': ['none', isArbitraryVariable, isArbitraryValue]\n }],\n /**\n * List Style Position\n * @see https://tailwindcss.com/docs/list-style-position\n */\n 'list-style-position': [{\n list: ['inside', 'outside']\n }],\n /**\n * List Style Type\n * @see https://tailwindcss.com/docs/list-style-type\n */\n 'list-style-type': [{\n list: ['disc', 'decimal', 'none', isArbitraryVariable, isArbitraryValue]\n }],\n /**\n * Text Alignment\n * @see https://tailwindcss.com/docs/text-align\n */\n 'text-alignment': [{\n text: ['left', 'center', 'right', 'justify', 'start', 'end']\n }],\n /**\n * Placeholder Color\n * @deprecated since Tailwind CSS v3.0.0\n * @see https://v3.tailwindcss.com/docs/placeholder-color\n */\n 'placeholder-color': [{\n placeholder: scaleColor()\n }],\n /**\n * Text Color\n * @see https://tailwindcss.com/docs/text-color\n */\n 'text-color': [{\n text: scaleColor()\n }],\n /**\n * Text Decoration\n * @see https://tailwindcss.com/docs/text-decoration\n */\n 'text-decoration': ['underline', 'overline', 'line-through', 'no-underline'],\n /**\n * Text Decoration Style\n * @see https://tailwindcss.com/docs/text-decoration-style\n */\n 'text-decoration-style': [{\n decoration: [...scaleLineStyle(), 'wavy']\n }],\n /**\n * Text Decoration Thickness\n * @see https://tailwindcss.com/docs/text-decoration-thickness\n */\n 'text-decoration-thickness': [{\n decoration: [isNumber, 'from-font', 'auto', isArbitraryVariable, isArbitraryLength]\n }],\n /**\n * Text Decoration Color\n * @see https://tailwindcss.com/docs/text-decoration-color\n */\n 'text-decoration-color': [{\n decoration: scaleColor()\n }],\n /**\n * Text Underline Offset\n * @see https://tailwindcss.com/docs/text-underline-offset\n */\n 'underline-offset': [{\n 'underline-offset': [isNumber, 'auto', isArbitraryVariable, isArbitraryValue]\n }],\n /**\n * Text Transform\n * @see https://tailwindcss.com/docs/text-transform\n */\n 'text-transform': ['uppercase', 'lowercase', 'capitalize', 'normal-case'],\n /**\n * Text Overflow\n * @see https://tailwindcss.com/docs/text-overflow\n */\n 'text-overflow': ['truncate', 'text-ellipsis', 'text-clip'],\n /**\n * Text Wrap\n * @see https://tailwindcss.com/docs/text-wrap\n */\n 'text-wrap': [{\n text: ['wrap', 'nowrap', 'balance', 'pretty']\n }],\n /**\n * Text Indent\n * @see https://tailwindcss.com/docs/text-indent\n */\n indent: [{\n indent: scaleUnambiguousSpacing()\n }],\n /**\n * Vertical Alignment\n * @see https://tailwindcss.com/docs/vertical-align\n */\n 'vertical-align': [{\n align: ['baseline', 'top', 'middle', 'bottom', 'text-top', 'text-bottom', 'sub', 'super', isArbitraryVariable, isArbitraryValue]\n }],\n /**\n * Whitespace\n * @see https://tailwindcss.com/docs/whitespace\n */\n whitespace: [{\n whitespace: ['normal', 'nowrap', 'pre', 'pre-line', 'pre-wrap', 'break-spaces']\n }],\n /**\n * Word Break\n * @see https://tailwindcss.com/docs/word-break\n */\n break: [{\n break: ['normal', 'words', 'all', 'keep']\n }],\n /**\n * Overflow Wrap\n * @see https://tailwindcss.com/docs/overflow-wrap\n */\n wrap: [{\n wrap: ['break-word', 'anywhere', 'normal']\n }],\n /**\n * Hyphens\n * @see https://tailwindcss.com/docs/hyphens\n */\n hyphens: [{\n hyphens: ['none', 'manual', 'auto']\n }],\n /**\n * Content\n * @see https://tailwindcss.com/docs/content\n */\n content: [{\n content: ['none', isArbitraryVariable, isArbitraryValue]\n }],\n // -------------------\n // --- Backgrounds ---\n // -------------------\n /**\n * Background Attachment\n * @see https://tailwindcss.com/docs/background-attachment\n */\n 'bg-attachment': [{\n bg: ['fixed', 'local', 'scroll']\n }],\n /**\n * Background Clip\n * @see https://tailwindcss.com/docs/background-clip\n */\n 'bg-clip': [{\n 'bg-clip': ['border', 'padding', 'content', 'text']\n }],\n /**\n * Background Origin\n * @see https://tailwindcss.com/docs/background-origin\n */\n 'bg-origin': [{\n 'bg-origin': ['border', 'padding', 'content']\n }],\n /**\n * Background Position\n * @see https://tailwindcss.com/docs/background-position\n */\n 'bg-position': [{\n bg: scaleBgPosition()\n }],\n /**\n * Background Repeat\n * @see https://tailwindcss.com/docs/background-repeat\n */\n 'bg-repeat': [{\n bg: scaleBgRepeat()\n }],\n /**\n * Background Size\n * @see https://tailwindcss.com/docs/background-size\n */\n 'bg-size': [{\n bg: scaleBgSize()\n }],\n /**\n * Background Image\n * @see https://tailwindcss.com/docs/background-image\n */\n 'bg-image': [{\n bg: ['none', {\n linear: [{\n to: ['t', 'tr', 'r', 'br', 'b', 'bl', 'l', 'tl']\n }, isInteger, isArbitraryVariable, isArbitraryValue],\n radial: ['', isArbitraryVariable, isArbitraryValue],\n conic: [isInteger, isArbitraryVariable, isArbitraryValue]\n }, isArbitraryVariableImage, isArbitraryImage]\n }],\n /**\n * Background Color\n * @see https://tailwindcss.com/docs/background-color\n */\n 'bg-color': [{\n bg: scaleColor()\n }],\n /**\n * Gradient Color Stops From Position\n * @see https://tailwindcss.com/docs/gradient-color-stops\n */\n 'gradient-from-pos': [{\n from: scaleGradientStopPosition()\n }],\n /**\n * Gradient Color Stops Via Position\n * @see https://tailwindcss.com/docs/gradient-color-stops\n */\n 'gradient-via-pos': [{\n via: scaleGradientStopPosition()\n }],\n /**\n * Gradient Color Stops To Position\n * @see https://tailwindcss.com/docs/gradient-color-stops\n */\n 'gradient-to-pos': [{\n to: scaleGradientStopPosition()\n }],\n /**\n * Gradient Color Stops From\n * @see https://tailwindcss.com/docs/gradient-color-stops\n */\n 'gradient-from': [{\n from: scaleColor()\n }],\n /**\n * Gradient Color Stops Via\n * @see https://tailwindcss.com/docs/gradient-color-stops\n */\n 'gradient-via': [{\n via: scaleColor()\n }],\n /**\n * Gradient Color Stops To\n * @see https://tailwindcss.com/docs/gradient-color-stops\n */\n 'gradient-to': [{\n to: scaleColor()\n }],\n // ---------------\n // --- Borders ---\n // ---------------\n /**\n * Border Radius\n * @see https://tailwindcss.com/docs/border-radius\n */\n rounded: [{\n rounded: scaleRadius()\n }],\n /**\n * Border Radius Start\n * @see https://tailwindcss.com/docs/border-radius\n */\n 'rounded-s': [{\n 'rounded-s': scaleRadius()\n }],\n /**\n * Border Radius End\n * @see https://tailwindcss.com/docs/border-radius\n */\n 'rounded-e': [{\n 'rounded-e': scaleRadius()\n }],\n /**\n * Border Radius Top\n * @see https://tailwindcss.com/docs/border-radius\n */\n 'rounded-t': [{\n 'rounded-t': scaleRadius()\n }],\n /**\n * Border Radius Right\n * @see https://tailwindcss.com/docs/border-radius\n */\n 'rounded-r': [{\n 'rounded-r': scaleRadius()\n }],\n /**\n * Border Radius Bottom\n * @see https://tailwindcss.com/docs/border-radius\n */\n 'rounded-b': [{\n 'rounded-b': scaleRadius()\n }],\n /**\n * Border Radius Left\n * @see https://tailwindcss.com/docs/border-radius\n */\n 'rounded-l': [{\n 'rounded-l': scaleRadius()\n }],\n /**\n * Border Radius Start Start\n * @see https://tailwindcss.com/docs/border-radius\n */\n 'rounded-ss': [{\n 'rounded-ss': scaleRadius()\n }],\n /**\n * Border Radius Start End\n * @see https://tailwindcss.com/docs/border-radius\n */\n 'rounded-se': [{\n 'rounded-se': scaleRadius()\n }],\n /**\n * Border Radius End End\n * @see https://tailwindcss.com/docs/border-radius\n */\n 'rounded-ee': [{\n 'rounded-ee': scaleRadius()\n }],\n /**\n * Border Radius End Start\n * @see https://tailwindcss.com/docs/border-radius\n */\n 'rounded-es': [{\n 'rounded-es': scaleRadius()\n }],\n /**\n * Border Radius Top Left\n * @see https://tailwindcss.com/docs/border-radius\n */\n 'rounded-tl': [{\n 'rounded-tl': scaleRadius()\n }],\n /**\n * Border Radius Top Right\n * @see https://tailwindcss.com/docs/border-radius\n */\n 'rounded-tr': [{\n 'rounded-tr': scaleRadius()\n }],\n /**\n * Border Radius Bottom Right\n * @see https://tailwindcss.com/docs/border-radius\n */\n 'rounded-br': [{\n 'rounded-br': scaleRadius()\n }],\n /**\n * Border Radius Bottom Left\n * @see https://tailwindcss.com/docs/border-radius\n */\n 'rounded-bl': [{\n 'rounded-bl': scaleRadius()\n }],\n /**\n * Border Width\n * @see https://tailwindcss.com/docs/border-width\n */\n 'border-w': [{\n border: scaleBorderWidth()\n }],\n /**\n * Border Width Inline\n * @see https://tailwindcss.com/docs/border-width\n */\n 'border-w-x': [{\n 'border-x': scaleBorderWidth()\n }],\n /**\n * Border Width Block\n * @see https://tailwindcss.com/docs/border-width\n */\n 'border-w-y': [{\n 'border-y': scaleBorderWidth()\n }],\n /**\n * Border Width Inline Start\n * @see https://tailwindcss.com/docs/border-width\n */\n 'border-w-s': [{\n 'border-s': scaleBorderWidth()\n }],\n /**\n * Border Width Inline End\n * @see https://tailwindcss.com/docs/border-width\n */\n 'border-w-e': [{\n 'border-e': scaleBorderWidth()\n }],\n /**\n * Border Width Block Start\n * @see https://tailwindcss.com/docs/border-width\n */\n 'border-w-bs': [{\n 'border-bs': scaleBorderWidth()\n }],\n /**\n * Border Width Block End\n * @see https://tailwindcss.com/docs/border-width\n */\n 'border-w-be': [{\n 'border-be': scaleBorderWidth()\n }],\n /**\n * Border Width Top\n * @see https://tailwindcss.com/docs/border-width\n */\n 'border-w-t': [{\n 'border-t': scaleBorderWidth()\n }],\n /**\n * Border Width Right\n * @see https://tailwindcss.com/docs/border-width\n */\n 'border-w-r': [{\n 'border-r': scaleBorderWidth()\n }],\n /**\n * Border Width Bottom\n * @see https://tailwindcss.com/docs/border-width\n */\n 'border-w-b': [{\n 'border-b': scaleBorderWidth()\n }],\n /**\n * Border Width Left\n * @see https://tailwindcss.com/docs/border-width\n */\n 'border-w-l': [{\n 'border-l': scaleBorderWidth()\n }],\n /**\n * Divide Width X\n * @see https://tailwindcss.com/docs/border-width#between-children\n */\n 'divide-x': [{\n 'divide-x': scaleBorderWidth()\n }],\n /**\n * Divide Width X Reverse\n * @see https://tailwindcss.com/docs/border-width#between-children\n */\n 'divide-x-reverse': ['divide-x-reverse'],\n /**\n * Divide Width Y\n * @see https://tailwindcss.com/docs/border-width#between-children\n */\n 'divide-y': [{\n 'divide-y': scaleBorderWidth()\n }],\n /**\n * Divide Width Y Reverse\n * @see https://tailwindcss.com/docs/border-width#between-children\n */\n 'divide-y-reverse': ['divide-y-reverse'],\n /**\n * Border Style\n * @see https://tailwindcss.com/docs/border-style\n */\n 'border-style': [{\n border: [...scaleLineStyle(), 'hidden', 'none']\n }],\n /**\n * Divide Style\n * @see https://tailwindcss.com/docs/border-style#setting-the-divider-style\n */\n 'divide-style': [{\n divide: [...scaleLineStyle(), 'hidden', 'none']\n }],\n /**\n * Border Color\n * @see https://tailwindcss.com/docs/border-color\n */\n 'border-color': [{\n border: scaleColor()\n }],\n /**\n * Border Color Inline\n * @see https://tailwindcss.com/docs/border-color\n */\n 'border-color-x': [{\n 'border-x': scaleColor()\n }],\n /**\n * Border Color Block\n * @see https://tailwindcss.com/docs/border-color\n */\n 'border-color-y': [{\n 'border-y': scaleColor()\n }],\n /**\n * Border Color Inline Start\n * @see https://tailwindcss.com/docs/border-color\n */\n 'border-color-s': [{\n 'border-s': scaleColor()\n }],\n /**\n * Border Color Inline End\n * @see https://tailwindcss.com/docs/border-color\n */\n 'border-color-e': [{\n 'border-e': scaleColor()\n }],\n /**\n * Border Color Block Start\n * @see https://tailwindcss.com/docs/border-color\n */\n 'border-color-bs': [{\n 'border-bs': scaleColor()\n }],\n /**\n * Border Color Block End\n * @see https://tailwindcss.com/docs/border-color\n */\n 'border-color-be': [{\n 'border-be': scaleColor()\n }],\n /**\n * Border Color Top\n * @see https://tailwindcss.com/docs/border-color\n */\n 'border-color-t': [{\n 'border-t': scaleColor()\n }],\n /**\n * Border Color Right\n * @see https://tailwindcss.com/docs/border-color\n */\n 'border-color-r': [{\n 'border-r': scaleColor()\n }],\n /**\n * Border Color Bottom\n * @see https://tailwindcss.com/docs/border-color\n */\n 'border-color-b': [{\n 'border-b': scaleColor()\n }],\n /**\n * Border Color Left\n * @see https://tailwindcss.com/docs/border-color\n */\n 'border-color-l': [{\n 'border-l': scaleColor()\n }],\n /**\n * Divide Color\n * @see https://tailwindcss.com/docs/divide-color\n */\n 'divide-color': [{\n divide: scaleColor()\n }],\n /**\n * Outline Style\n * @see https://tailwindcss.com/docs/outline-style\n */\n 'outline-style': [{\n outline: [...scaleLineStyle(), 'none', 'hidden']\n }],\n /**\n * Outline Offset\n * @see https://tailwindcss.com/docs/outline-offset\n */\n 'outline-offset': [{\n 'outline-offset': [isNumber, isArbitraryVariable, isArbitraryValue]\n }],\n /**\n * Outline Width\n * @see https://tailwindcss.com/docs/outline-width\n */\n 'outline-w': [{\n outline: ['', isNumber, isArbitraryVariableLength, isArbitraryLength]\n }],\n /**\n * Outline Color\n * @see https://tailwindcss.com/docs/outline-color\n */\n 'outline-color': [{\n outline: scaleColor()\n }],\n // ---------------\n // --- Effects ---\n // ---------------\n /**\n * Box Shadow\n * @see https://tailwindcss.com/docs/box-shadow\n */\n shadow: [{\n shadow: [\n // Deprecated since Tailwind CSS v4.0.0\n '', 'none', themeShadow, isArbitraryVariableShadow, isArbitraryShadow]\n }],\n /**\n * Box Shadow Color\n * @see https://tailwindcss.com/docs/box-shadow#setting-the-shadow-color\n */\n 'shadow-color': [{\n shadow: scaleColor()\n }],\n /**\n * Inset Box Shadow\n * @see https://tailwindcss.com/docs/box-shadow#adding-an-inset-shadow\n */\n 'inset-shadow': [{\n 'inset-shadow': ['none', themeInsetShadow, isArbitraryVariableShadow, isArbitraryShadow]\n }],\n /**\n * Inset Box Shadow Color\n * @see https://tailwindcss.com/docs/box-shadow#setting-the-inset-shadow-color\n */\n 'inset-shadow-color': [{\n 'inset-shadow': scaleColor()\n }],\n /**\n * Ring Width\n * @see https://tailwindcss.com/docs/box-shadow#adding-a-ring\n */\n 'ring-w': [{\n ring: scaleBorderWidth()\n }],\n /**\n * Ring Width Inset\n * @see https://v3.tailwindcss.com/docs/ring-width#inset-rings\n * @deprecated since Tailwind CSS v4.0.0\n * @see https://github.com/tailwindlabs/tailwindcss/blob/v4.0.0/packages/tailwindcss/src/utilities.ts#L4158\n */\n 'ring-w-inset': ['ring-inset'],\n /**\n * Ring Color\n * @see https://tailwindcss.com/docs/box-shadow#setting-the-ring-color\n */\n 'ring-color': [{\n ring: scaleColor()\n }],\n /**\n * Ring Offset Width\n * @see https://v3.tailwindcss.com/docs/ring-offset-width\n * @deprecated since Tailwind CSS v4.0.0\n * @see https://github.com/tailwindlabs/tailwindcss/blob/v4.0.0/packages/tailwindcss/src/utilities.ts#L4158\n */\n 'ring-offset-w': [{\n 'ring-offset': [isNumber, isArbitraryLength]\n }],\n /**\n * Ring Offset Color\n * @see https://v3.tailwindcss.com/docs/ring-offset-color\n * @deprecated since Tailwind CSS v4.0.0\n * @see https://github.com/tailwindlabs/tailwindcss/blob/v4.0.0/packages/tailwindcss/src/utilities.ts#L4158\n */\n 'ring-offset-color': [{\n 'ring-offset': scaleColor()\n }],\n /**\n * Inset Ring Width\n * @see https://tailwindcss.com/docs/box-shadow#adding-an-inset-ring\n */\n 'inset-ring-w': [{\n 'inset-ring': scaleBorderWidth()\n }],\n /**\n * Inset Ring Color\n * @see https://tailwindcss.com/docs/box-shadow#setting-the-inset-ring-color\n */\n 'inset-ring-color': [{\n 'inset-ring': scaleColor()\n }],\n /**\n * Text Shadow\n * @see https://tailwindcss.com/docs/text-shadow\n */\n 'text-shadow': [{\n 'text-shadow': ['none', themeTextShadow, isArbitraryVariableShadow, isArbitraryShadow]\n }],\n /**\n * Text Shadow Color\n * @see https://tailwindcss.com/docs/text-shadow#setting-the-shadow-color\n */\n 'text-shadow-color': [{\n 'text-shadow': scaleColor()\n }],\n /**\n * Opacity\n * @see https://tailwindcss.com/docs/opacity\n */\n opacity: [{\n opacity: [isNumber, isArbitraryVariable, isArbitraryValue]\n }],\n /**\n * Mix Blend Mode\n * @see https://tailwindcss.com/docs/mix-blend-mode\n */\n 'mix-blend': [{\n 'mix-blend': [...scaleBlendMode(), 'plus-darker', 'plus-lighter']\n }],\n /**\n * Background Blend Mode\n * @see https://tailwindcss.com/docs/background-blend-mode\n */\n 'bg-blend': [{\n 'bg-blend': scaleBlendMode()\n }],\n /**\n * Mask Clip\n * @see https://tailwindcss.com/docs/mask-clip\n */\n 'mask-clip': [{\n 'mask-clip': ['border', 'padding', 'content', 'fill', 'stroke', 'view']\n }, 'mask-no-clip'],\n /**\n * Mask Composite\n * @see https://tailwindcss.com/docs/mask-composite\n */\n 'mask-composite': [{\n mask: ['add', 'subtract', 'intersect', 'exclude']\n }],\n /**\n * Mask Image\n * @see https://tailwindcss.com/docs/mask-image\n */\n 'mask-image-linear-pos': [{\n 'mask-linear': [isNumber]\n }],\n 'mask-image-linear-from-pos': [{\n 'mask-linear-from': scaleMaskImagePosition()\n }],\n 'mask-image-linear-to-pos': [{\n 'mask-linear-to': scaleMaskImagePosition()\n }],\n 'mask-image-linear-from-color': [{\n 'mask-linear-from': scaleColor()\n }],\n 'mask-image-linear-to-color': [{\n 'mask-linear-to': scaleColor()\n }],\n 'mask-image-t-from-pos': [{\n 'mask-t-from': scaleMaskImagePosition()\n }],\n 'mask-image-t-to-pos': [{\n 'mask-t-to': scaleMaskImagePosition()\n }],\n 'mask-image-t-from-color': [{\n 'mask-t-from': scaleColor()\n }],\n 'mask-image-t-to-color': [{\n 'mask-t-to': scaleColor()\n }],\n 'mask-image-r-from-pos': [{\n 'mask-r-from': scaleMaskImagePosition()\n }],\n 'mask-image-r-to-pos': [{\n 'mask-r-to': scaleMaskImagePosition()\n }],\n 'mask-image-r-from-color': [{\n 'mask-r-from': scaleColor()\n }],\n 'mask-image-r-to-color': [{\n 'mask-r-to': scaleColor()\n }],\n 'mask-image-b-from-pos': [{\n 'mask-b-from': scaleMaskImagePosition()\n }],\n 'mask-image-b-to-pos': [{\n 'mask-b-to': scaleMaskImagePosition()\n }],\n 'mask-image-b-from-color': [{\n 'mask-b-from': scaleColor()\n }],\n 'mask-image-b-to-color': [{\n 'mask-b-to': scaleColor()\n }],\n 'mask-image-l-from-pos': [{\n 'mask-l-from': scaleMaskImagePosition()\n }],\n 'mask-image-l-to-pos': [{\n 'mask-l-to': scaleMaskImagePosition()\n }],\n 'mask-image-l-from-color': [{\n 'mask-l-from': scaleColor()\n }],\n 'mask-image-l-to-color': [{\n 'mask-l-to': scaleColor()\n }],\n 'mask-image-x-from-pos': [{\n 'mask-x-from': scaleMaskImagePosition()\n }],\n 'mask-image-x-to-pos': [{\n 'mask-x-to': scaleMaskImagePosition()\n }],\n 'mask-image-x-from-color': [{\n 'mask-x-from': scaleColor()\n }],\n 'mask-image-x-to-color': [{\n 'mask-x-to': scaleColor()\n }],\n 'mask-image-y-from-pos': [{\n 'mask-y-from': scaleMaskImagePosition()\n }],\n 'mask-image-y-to-pos': [{\n 'mask-y-to': scaleMaskImagePosition()\n }],\n 'mask-image-y-from-color': [{\n 'mask-y-from': scaleColor()\n }],\n 'mask-image-y-to-color': [{\n 'mask-y-to': scaleColor()\n }],\n 'mask-image-radial': [{\n 'mask-radial': [isArbitraryVariable, isArbitraryValue]\n }],\n 'mask-image-radial-from-pos': [{\n 'mask-radial-from': scaleMaskImagePosition()\n }],\n 'mask-image-radial-to-pos': [{\n 'mask-radial-to': scaleMaskImagePosition()\n }],\n 'mask-image-radial-from-color': [{\n 'mask-radial-from': scaleColor()\n }],\n 'mask-image-radial-to-color': [{\n 'mask-radial-to': scaleColor()\n }],\n 'mask-image-radial-shape': [{\n 'mask-radial': ['circle', 'ellipse']\n }],\n 'mask-image-radial-size': [{\n 'mask-radial': [{\n closest: ['side', 'corner'],\n farthest: ['side', 'corner']\n }]\n }],\n 'mask-image-radial-pos': [{\n 'mask-radial-at': scalePosition()\n }],\n 'mask-image-conic-pos': [{\n 'mask-conic': [isNumber]\n }],\n 'mask-image-conic-from-pos': [{\n 'mask-conic-from': scaleMaskImagePosition()\n }],\n 'mask-image-conic-to-pos': [{\n 'mask-conic-to': scaleMaskImagePosition()\n }],\n 'mask-image-conic-from-color': [{\n 'mask-conic-from': scaleColor()\n }],\n 'mask-image-conic-to-color': [{\n 'mask-conic-to': scaleColor()\n }],\n /**\n * Mask Mode\n * @see https://tailwindcss.com/docs/mask-mode\n */\n 'mask-mode': [{\n mask: ['alpha', 'luminance', 'match']\n }],\n /**\n * Mask Origin\n * @see https://tailwindcss.com/docs/mask-origin\n */\n 'mask-origin': [{\n 'mask-origin': ['border', 'padding', 'content', 'fill', 'stroke', 'view']\n }],\n /**\n * Mask Position\n * @see https://tailwindcss.com/docs/mask-position\n */\n 'mask-position': [{\n mask: scaleBgPosition()\n }],\n /**\n * Mask Repeat\n * @see https://tailwindcss.com/docs/mask-repeat\n */\n 'mask-repeat': [{\n mask: scaleBgRepeat()\n }],\n /**\n * Mask Size\n * @see https://tailwindcss.com/docs/mask-size\n */\n 'mask-size': [{\n mask: scaleBgSize()\n }],\n /**\n * Mask Type\n * @see https://tailwindcss.com/docs/mask-type\n */\n 'mask-type': [{\n 'mask-type': ['alpha', 'luminance']\n }],\n /**\n * Mask Image\n * @see https://tailwindcss.com/docs/mask-image\n */\n 'mask-image': [{\n mask: ['none', isArbitraryVariable, isArbitraryValue]\n }],\n // ---------------\n // --- Filters ---\n // ---------------\n /**\n * Filter\n * @see https://tailwindcss.com/docs/filter\n */\n filter: [{\n filter: [\n // Deprecated since Tailwind CSS v3.0.0\n '', 'none', isArbitraryVariable, isArbitraryValue]\n }],\n /**\n * Blur\n * @see https://tailwindcss.com/docs/blur\n */\n blur: [{\n blur: scaleBlur()\n }],\n /**\n * Brightness\n * @see https://tailwindcss.com/docs/brightness\n */\n brightness: [{\n brightness: [isNumber, isArbitraryVariable, isArbitraryValue]\n }],\n /**\n * Contrast\n * @see https://tailwindcss.com/docs/contrast\n */\n contrast: [{\n contrast: [isNumber, isArbitraryVariable, isArbitraryValue]\n }],\n /**\n * Drop Shadow\n * @see https://tailwindcss.com/docs/drop-shadow\n */\n 'drop-shadow': [{\n 'drop-shadow': [\n // Deprecated since Tailwind CSS v4.0.0\n '', 'none', themeDropShadow, isArbitraryVariableShadow, isArbitraryShadow]\n }],\n /**\n * Drop Shadow Color\n * @see https://tailwindcss.com/docs/filter-drop-shadow#setting-the-shadow-color\n */\n 'drop-shadow-color': [{\n 'drop-shadow': scaleColor()\n }],\n /**\n * Grayscale\n * @see https://tailwindcss.com/docs/grayscale\n */\n grayscale: [{\n grayscale: ['', isNumber, isArbitraryVariable, isArbitraryValue]\n }],\n /**\n * Hue Rotate\n * @see https://tailwindcss.com/docs/hue-rotate\n */\n 'hue-rotate': [{\n 'hue-rotate': [isNumber, isArbitraryVariable, isArbitraryValue]\n }],\n /**\n * Invert\n * @see https://tailwindcss.com/docs/invert\n */\n invert: [{\n invert: ['', isNumber, isArbitraryVariable, isArbitraryValue]\n }],\n /**\n * Saturate\n * @see https://tailwindcss.com/docs/saturate\n */\n saturate: [{\n saturate: [isNumber, isArbitraryVariable, isArbitraryValue]\n }],\n /**\n * Sepia\n * @see https://tailwindcss.com/docs/sepia\n */\n sepia: [{\n sepia: ['', isNumber, isArbitraryVariable, isArbitraryValue]\n }],\n /**\n * Backdrop Filter\n * @see https://tailwindcss.com/docs/backdrop-filter\n */\n 'backdrop-filter': [{\n 'backdrop-filter': [\n // Deprecated since Tailwind CSS v3.0.0\n '', 'none', isArbitraryVariable, isArbitraryValue]\n }],\n /**\n * Backdrop Blur\n * @see https://tailwindcss.com/docs/backdrop-blur\n */\n 'backdrop-blur': [{\n 'backdrop-blur': scaleBlur()\n }],\n /**\n * Backdrop Brightness\n * @see https://tailwindcss.com/docs/backdrop-brightness\n */\n 'backdrop-brightness': [{\n 'backdrop-brightness': [isNumber, isArbitraryVariable, isArbitraryValue]\n }],\n /**\n * Backdrop Contrast\n * @see https://tailwindcss.com/docs/backdrop-contrast\n */\n 'backdrop-contrast': [{\n 'backdrop-contrast': [isNumber, isArbitraryVariable, isArbitraryValue]\n }],\n /**\n * Backdrop Grayscale\n * @see https://tailwindcss.com/docs/backdrop-grayscale\n */\n 'backdrop-grayscale': [{\n 'backdrop-grayscale': ['', isNumber, isArbitraryVariable, isArbitraryValue]\n }],\n /**\n * Backdrop Hue Rotate\n * @see https://tailwindcss.com/docs/backdrop-hue-rotate\n */\n 'backdrop-hue-rotate': [{\n 'backdrop-hue-rotate': [isNumber, isArbitraryVariable, isArbitraryValue]\n }],\n /**\n * Backdrop Invert\n * @see https://tailwindcss.com/docs/backdrop-invert\n */\n 'backdrop-invert': [{\n 'backdrop-invert': ['', isNumber, isArbitraryVariable, isArbitraryValue]\n }],\n /**\n * Backdrop Opacity\n * @see https://tailwindcss.com/docs/backdrop-opacity\n */\n 'backdrop-opacity': [{\n 'backdrop-opacity': [isNumber, isArbitraryVariable, isArbitraryValue]\n }],\n /**\n * Backdrop Saturate\n * @see https://tailwindcss.com/docs/backdrop-saturate\n */\n 'backdrop-saturate': [{\n 'backdrop-saturate': [isNumber, isArbitraryVariable, isArbitraryValue]\n }],\n /**\n * Backdrop Sepia\n * @see https://tailwindcss.com/docs/backdrop-sepia\n */\n 'backdrop-sepia': [{\n 'backdrop-sepia': ['', isNumber, isArbitraryVariable, isArbitraryValue]\n }],\n // --------------\n // --- Tables ---\n // --------------\n /**\n * Border Collapse\n * @see https://tailwindcss.com/docs/border-collapse\n */\n 'border-collapse': [{\n border: ['collapse', 'separate']\n }],\n /**\n * Border Spacing\n * @see https://tailwindcss.com/docs/border-spacing\n */\n 'border-spacing': [{\n 'border-spacing': scaleUnambiguousSpacing()\n }],\n /**\n * Border Spacing X\n * @see https://tailwindcss.com/docs/border-spacing\n */\n 'border-spacing-x': [{\n 'border-spacing-x': scaleUnambiguousSpacing()\n }],\n /**\n * Border Spacing Y\n * @see https://tailwindcss.com/docs/border-spacing\n */\n 'border-spacing-y': [{\n 'border-spacing-y': scaleUnambiguousSpacing()\n }],\n /**\n * Table Layout\n * @see https://tailwindcss.com/docs/table-layout\n */\n 'table-layout': [{\n table: ['auto', 'fixed']\n }],\n /**\n * Caption Side\n * @see https://tailwindcss.com/docs/caption-side\n */\n caption: [{\n caption: ['top', 'bottom']\n }],\n // ---------------------------------\n // --- Transitions and Animation ---\n // ---------------------------------\n /**\n * Transition Property\n * @see https://tailwindcss.com/docs/transition-property\n */\n transition: [{\n transition: ['', 'all', 'colors', 'opacity', 'shadow', 'transform', 'none', isArbitraryVariable, isArbitraryValue]\n }],\n /**\n * Transition Behavior\n * @see https://tailwindcss.com/docs/transition-behavior\n */\n 'transition-behavior': [{\n transition: ['normal', 'discrete']\n }],\n /**\n * Transition Duration\n * @see https://tailwindcss.com/docs/transition-duration\n */\n duration: [{\n duration: [isNumber, 'initial', isArbitraryVariable, isArbitraryValue]\n }],\n /**\n * Transition Timing Function\n * @see https://tailwindcss.com/docs/transition-timing-function\n */\n ease: [{\n ease: ['linear', 'initial', themeEase, isArbitraryVariable, isArbitraryValue]\n }],\n /**\n * Transition Delay\n * @see https://tailwindcss.com/docs/transition-delay\n */\n delay: [{\n delay: [isNumber, isArbitraryVariable, isArbitraryValue]\n }],\n /**\n * Animation\n * @see https://tailwindcss.com/docs/animation\n */\n animate: [{\n animate: ['none', themeAnimate, isArbitraryVariable, isArbitraryValue]\n }],\n // ------------------\n // --- Transforms ---\n // ------------------\n /**\n * Backface Visibility\n * @see https://tailwindcss.com/docs/backface-visibility\n */\n backface: [{\n backface: ['hidden', 'visible']\n }],\n /**\n * Perspective\n * @see https://tailwindcss.com/docs/perspective\n */\n perspective: [{\n perspective: [themePerspective, isArbitraryVariable, isArbitraryValue]\n }],\n /**\n * Perspective Origin\n * @see https://tailwindcss.com/docs/perspective-origin\n */\n 'perspective-origin': [{\n 'perspective-origin': scalePositionWithArbitrary()\n }],\n /**\n * Rotate\n * @see https://tailwindcss.com/docs/rotate\n */\n rotate: [{\n rotate: scaleRotate()\n }],\n /**\n * Rotate X\n * @see https://tailwindcss.com/docs/rotate\n */\n 'rotate-x': [{\n 'rotate-x': scaleRotate()\n }],\n /**\n * Rotate Y\n * @see https://tailwindcss.com/docs/rotate\n */\n 'rotate-y': [{\n 'rotate-y': scaleRotate()\n }],\n /**\n * Rotate Z\n * @see https://tailwindcss.com/docs/rotate\n */\n 'rotate-z': [{\n 'rotate-z': scaleRotate()\n }],\n /**\n * Scale\n * @see https://tailwindcss.com/docs/scale\n */\n scale: [{\n scale: scaleScale()\n }],\n /**\n * Scale X\n * @see https://tailwindcss.com/docs/scale\n */\n 'scale-x': [{\n 'scale-x': scaleScale()\n }],\n /**\n * Scale Y\n * @see https://tailwindcss.com/docs/scale\n */\n 'scale-y': [{\n 'scale-y': scaleScale()\n }],\n /**\n * Scale Z\n * @see https://tailwindcss.com/docs/scale\n */\n 'scale-z': [{\n 'scale-z': scaleScale()\n }],\n /**\n * Scale 3D\n * @see https://tailwindcss.com/docs/scale\n */\n 'scale-3d': ['scale-3d'],\n /**\n * Skew\n * @see https://tailwindcss.com/docs/skew\n */\n skew: [{\n skew: scaleSkew()\n }],\n /**\n * Skew X\n * @see https://tailwindcss.com/docs/skew\n */\n 'skew-x': [{\n 'skew-x': scaleSkew()\n }],\n /**\n * Skew Y\n * @see https://tailwindcss.com/docs/skew\n */\n 'skew-y': [{\n 'skew-y': scaleSkew()\n }],\n /**\n * Transform\n * @see https://tailwindcss.com/docs/transform\n */\n transform: [{\n transform: [isArbitraryVariable, isArbitraryValue, '', 'none', 'gpu', 'cpu']\n }],\n /**\n * Transform Origin\n * @see https://tailwindcss.com/docs/transform-origin\n */\n 'transform-origin': [{\n origin: scalePositionWithArbitrary()\n }],\n /**\n * Transform Style\n * @see https://tailwindcss.com/docs/transform-style\n */\n 'transform-style': [{\n transform: ['3d', 'flat']\n }],\n /**\n * Translate\n * @see https://tailwindcss.com/docs/translate\n */\n translate: [{\n translate: scaleTranslate()\n }],\n /**\n * Translate X\n * @see https://tailwindcss.com/docs/translate\n */\n 'translate-x': [{\n 'translate-x': scaleTranslate()\n }],\n /**\n * Translate Y\n * @see https://tailwindcss.com/docs/translate\n */\n 'translate-y': [{\n 'translate-y': scaleTranslate()\n }],\n /**\n * Translate Z\n * @see https://tailwindcss.com/docs/translate\n */\n 'translate-z': [{\n 'translate-z': scaleTranslate()\n }],\n /**\n * Translate None\n * @see https://tailwindcss.com/docs/translate\n */\n 'translate-none': ['translate-none'],\n // ---------------------\n // --- Interactivity ---\n // ---------------------\n /**\n * Accent Color\n * @see https://tailwindcss.com/docs/accent-color\n */\n accent: [{\n accent: scaleColor()\n }],\n /**\n * Appearance\n * @see https://tailwindcss.com/docs/appearance\n */\n appearance: [{\n appearance: ['none', 'auto']\n }],\n /**\n * Caret Color\n * @see https://tailwindcss.com/docs/just-in-time-mode#caret-color-utilities\n */\n 'caret-color': [{\n caret: scaleColor()\n }],\n /**\n * Color Scheme\n * @see https://tailwindcss.com/docs/color-scheme\n */\n 'color-scheme': [{\n scheme: ['normal', 'dark', 'light', 'light-dark', 'only-dark', 'only-light']\n }],\n /**\n * Cursor\n * @see https://tailwindcss.com/docs/cursor\n */\n cursor: [{\n cursor: ['auto', 'default', 'pointer', 'wait', 'text', 'move', 'help', 'not-allowed', 'none', 'context-menu', 'progress', 'cell', 'crosshair', 'vertical-text', 'alias', 'copy', 'no-drop', 'grab', 'grabbing', 'all-scroll', 'col-resize', 'row-resize', 'n-resize', 'e-resize', 's-resize', 'w-resize', 'ne-resize', 'nw-resize', 'se-resize', 'sw-resize', 'ew-resize', 'ns-resize', 'nesw-resize', 'nwse-resize', 'zoom-in', 'zoom-out', isArbitraryVariable, isArbitraryValue]\n }],\n /**\n * Field Sizing\n * @see https://tailwindcss.com/docs/field-sizing\n */\n 'field-sizing': [{\n 'field-sizing': ['fixed', 'content']\n }],\n /**\n * Pointer Events\n * @see https://tailwindcss.com/docs/pointer-events\n */\n 'pointer-events': [{\n 'pointer-events': ['auto', 'none']\n }],\n /**\n * Resize\n * @see https://tailwindcss.com/docs/resize\n */\n resize: [{\n resize: ['none', '', 'y', 'x']\n }],\n /**\n * Scroll Behavior\n * @see https://tailwindcss.com/docs/scroll-behavior\n */\n 'scroll-behavior': [{\n scroll: ['auto', 'smooth']\n }],\n /**\n * Scroll Margin\n * @see https://tailwindcss.com/docs/scroll-margin\n */\n 'scroll-m': [{\n 'scroll-m': scaleUnambiguousSpacing()\n }],\n /**\n * Scroll Margin Inline\n * @see https://tailwindcss.com/docs/scroll-margin\n */\n 'scroll-mx': [{\n 'scroll-mx': scaleUnambiguousSpacing()\n }],\n /**\n * Scroll Margin Block\n * @see https://tailwindcss.com/docs/scroll-margin\n */\n 'scroll-my': [{\n 'scroll-my': scaleUnambiguousSpacing()\n }],\n /**\n * Scroll Margin Inline Start\n * @see https://tailwindcss.com/docs/scroll-margin\n */\n 'scroll-ms': [{\n 'scroll-ms': scaleUnambiguousSpacing()\n }],\n /**\n * Scroll Margin Inline End\n * @see https://tailwindcss.com/docs/scroll-margin\n */\n 'scroll-me': [{\n 'scroll-me': scaleUnambiguousSpacing()\n }],\n /**\n * Scroll Margin Block Start\n * @see https://tailwindcss.com/docs/scroll-margin\n */\n 'scroll-mbs': [{\n 'scroll-mbs': scaleUnambiguousSpacing()\n }],\n /**\n * Scroll Margin Block End\n * @see https://tailwindcss.com/docs/scroll-margin\n */\n 'scroll-mbe': [{\n 'scroll-mbe': scaleUnambiguousSpacing()\n }],\n /**\n * Scroll Margin Top\n * @see https://tailwindcss.com/docs/scroll-margin\n */\n 'scroll-mt': [{\n 'scroll-mt': scaleUnambiguousSpacing()\n }],\n /**\n * Scroll Margin Right\n * @see https://tailwindcss.com/docs/scroll-margin\n */\n 'scroll-mr': [{\n 'scroll-mr': scaleUnambiguousSpacing()\n }],\n /**\n * Scroll Margin Bottom\n * @see https://tailwindcss.com/docs/scroll-margin\n */\n 'scroll-mb': [{\n 'scroll-mb': scaleUnambiguousSpacing()\n }],\n /**\n * Scroll Margin Left\n * @see https://tailwindcss.com/docs/scroll-margin\n */\n 'scroll-ml': [{\n 'scroll-ml': scaleUnambiguousSpacing()\n }],\n /**\n * Scroll Padding\n * @see https://tailwindcss.com/docs/scroll-padding\n */\n 'scroll-p': [{\n 'scroll-p': scaleUnambiguousSpacing()\n }],\n /**\n * Scroll Padding Inline\n * @see https://tailwindcss.com/docs/scroll-padding\n */\n 'scroll-px': [{\n 'scroll-px': scaleUnambiguousSpacing()\n }],\n /**\n * Scroll Padding Block\n * @see https://tailwindcss.com/docs/scroll-padding\n */\n 'scroll-py': [{\n 'scroll-py': scaleUnambiguousSpacing()\n }],\n /**\n * Scroll Padding Inline Start\n * @see https://tailwindcss.com/docs/scroll-padding\n */\n 'scroll-ps': [{\n 'scroll-ps': scaleUnambiguousSpacing()\n }],\n /**\n * Scroll Padding Inline End\n * @see https://tailwindcss.com/docs/scroll-padding\n */\n 'scroll-pe': [{\n 'scroll-pe': scaleUnambiguousSpacing()\n }],\n /**\n * Scroll Padding Block Start\n * @see https://tailwindcss.com/docs/scroll-padding\n */\n 'scroll-pbs': [{\n 'scroll-pbs': scaleUnambiguousSpacing()\n }],\n /**\n * Scroll Padding Block End\n * @see https://tailwindcss.com/docs/scroll-padding\n */\n 'scroll-pbe': [{\n 'scroll-pbe': scaleUnambiguousSpacing()\n }],\n /**\n * Scroll Padding Top\n * @see https://tailwindcss.com/docs/scroll-padding\n */\n 'scroll-pt': [{\n 'scroll-pt': scaleUnambiguousSpacing()\n }],\n /**\n * Scroll Padding Right\n * @see https://tailwindcss.com/docs/scroll-padding\n */\n 'scroll-pr': [{\n 'scroll-pr': scaleUnambiguousSpacing()\n }],\n /**\n * Scroll Padding Bottom\n * @see https://tailwindcss.com/docs/scroll-padding\n */\n 'scroll-pb': [{\n 'scroll-pb': scaleUnambiguousSpacing()\n }],\n /**\n * Scroll Padding Left\n * @see https://tailwindcss.com/docs/scroll-padding\n */\n 'scroll-pl': [{\n 'scroll-pl': scaleUnambiguousSpacing()\n }],\n /**\n * Scroll Snap Align\n * @see https://tailwindcss.com/docs/scroll-snap-align\n */\n 'snap-align': [{\n snap: ['start', 'end', 'center', 'align-none']\n }],\n /**\n * Scroll Snap Stop\n * @see https://tailwindcss.com/docs/scroll-snap-stop\n */\n 'snap-stop': [{\n snap: ['normal', 'always']\n }],\n /**\n * Scroll Snap Type\n * @see https://tailwindcss.com/docs/scroll-snap-type\n */\n 'snap-type': [{\n snap: ['none', 'x', 'y', 'both']\n }],\n /**\n * Scroll Snap Type Strictness\n * @see https://tailwindcss.com/docs/scroll-snap-type\n */\n 'snap-strictness': [{\n snap: ['mandatory', 'proximity']\n }],\n /**\n * Touch Action\n * @see https://tailwindcss.com/docs/touch-action\n */\n touch: [{\n touch: ['auto', 'none', 'manipulation']\n }],\n /**\n * Touch Action X\n * @see https://tailwindcss.com/docs/touch-action\n */\n 'touch-x': [{\n 'touch-pan': ['x', 'left', 'right']\n }],\n /**\n * Touch Action Y\n * @see https://tailwindcss.com/docs/touch-action\n */\n 'touch-y': [{\n 'touch-pan': ['y', 'up', 'down']\n }],\n /**\n * Touch Action Pinch Zoom\n * @see https://tailwindcss.com/docs/touch-action\n */\n 'touch-pz': ['touch-pinch-zoom'],\n /**\n * User Select\n * @see https://tailwindcss.com/docs/user-select\n */\n select: [{\n select: ['none', 'text', 'all', 'auto']\n }],\n /**\n * Will Change\n * @see https://tailwindcss.com/docs/will-change\n */\n 'will-change': [{\n 'will-change': ['auto', 'scroll', 'contents', 'transform', isArbitraryVariable, isArbitraryValue]\n }],\n // -----------\n // --- SVG ---\n // -----------\n /**\n * Fill\n * @see https://tailwindcss.com/docs/fill\n */\n fill: [{\n fill: ['none', ...scaleColor()]\n }],\n /**\n * Stroke Width\n * @see https://tailwindcss.com/docs/stroke-width\n */\n 'stroke-w': [{\n stroke: [isNumber, isArbitraryVariableLength, isArbitraryLength, isArbitraryNumber]\n }],\n /**\n * Stroke\n * @see https://tailwindcss.com/docs/stroke\n */\n stroke: [{\n stroke: ['none', ...scaleColor()]\n }],\n // ---------------------\n // --- Accessibility ---\n // ---------------------\n /**\n * Forced Color Adjust\n * @see https://tailwindcss.com/docs/forced-color-adjust\n */\n 'forced-color-adjust': [{\n 'forced-color-adjust': ['auto', 'none']\n }]\n },\n conflictingClassGroups: {\n overflow: ['overflow-x', 'overflow-y'],\n overscroll: ['overscroll-x', 'overscroll-y'],\n inset: ['inset-x', 'inset-y', 'inset-bs', 'inset-be', 'start', 'end', 'top', 'right', 'bottom', 'left'],\n 'inset-x': ['right', 'left'],\n 'inset-y': ['top', 'bottom'],\n flex: ['basis', 'grow', 'shrink'],\n gap: ['gap-x', 'gap-y'],\n p: ['px', 'py', 'ps', 'pe', 'pbs', 'pbe', 'pt', 'pr', 'pb', 'pl'],\n px: ['pr', 'pl'],\n py: ['pt', 'pb'],\n m: ['mx', 'my', 'ms', 'me', 'mbs', 'mbe', 'mt', 'mr', 'mb', 'ml'],\n mx: ['mr', 'ml'],\n my: ['mt', 'mb'],\n size: ['w', 'h'],\n 'font-size': ['leading'],\n 'fvn-normal': ['fvn-ordinal', 'fvn-slashed-zero', 'fvn-figure', 'fvn-spacing', 'fvn-fraction'],\n 'fvn-ordinal': ['fvn-normal'],\n 'fvn-slashed-zero': ['fvn-normal'],\n 'fvn-figure': ['fvn-normal'],\n 'fvn-spacing': ['fvn-normal'],\n 'fvn-fraction': ['fvn-normal'],\n 'line-clamp': ['display', 'overflow'],\n rounded: ['rounded-s', 'rounded-e', 'rounded-t', 'rounded-r', 'rounded-b', 'rounded-l', 'rounded-ss', 'rounded-se', 'rounded-ee', 'rounded-es', 'rounded-tl', 'rounded-tr', 'rounded-br', 'rounded-bl'],\n 'rounded-s': ['rounded-ss', 'rounded-es'],\n 'rounded-e': ['rounded-se', 'rounded-ee'],\n 'rounded-t': ['rounded-tl', 'rounded-tr'],\n 'rounded-r': ['rounded-tr', 'rounded-br'],\n 'rounded-b': ['rounded-br', 'rounded-bl'],\n 'rounded-l': ['rounded-tl', 'rounded-bl'],\n 'border-spacing': ['border-spacing-x', 'border-spacing-y'],\n 'border-w': ['border-w-x', 'border-w-y', 'border-w-s', 'border-w-e', 'border-w-bs', 'border-w-be', 'border-w-t', 'border-w-r', 'border-w-b', 'border-w-l'],\n 'border-w-x': ['border-w-r', 'border-w-l'],\n 'border-w-y': ['border-w-t', 'border-w-b'],\n 'border-color': ['border-color-x', 'border-color-y', 'border-color-s', 'border-color-e', 'border-color-bs', 'border-color-be', 'border-color-t', 'border-color-r', 'border-color-b', 'border-color-l'],\n 'border-color-x': ['border-color-r', 'border-color-l'],\n 'border-color-y': ['border-color-t', 'border-color-b'],\n translate: ['translate-x', 'translate-y', 'translate-none'],\n 'translate-none': ['translate', 'translate-x', 'translate-y', 'translate-z'],\n 'scroll-m': ['scroll-mx', 'scroll-my', 'scroll-ms', 'scroll-me', 'scroll-mbs', 'scroll-mbe', 'scroll-mt', 'scroll-mr', 'scroll-mb', 'scroll-ml'],\n 'scroll-mx': ['scroll-mr', 'scroll-ml'],\n 'scroll-my': ['scroll-mt', 'scroll-mb'],\n 'scroll-p': ['scroll-px', 'scroll-py', 'scroll-ps', 'scroll-pe', 'scroll-pbs', 'scroll-pbe', 'scroll-pt', 'scroll-pr', 'scroll-pb', 'scroll-pl'],\n 'scroll-px': ['scroll-pr', 'scroll-pl'],\n 'scroll-py': ['scroll-pt', 'scroll-pb'],\n touch: ['touch-x', 'touch-y', 'touch-pz'],\n 'touch-x': ['touch'],\n 'touch-y': ['touch'],\n 'touch-pz': ['touch']\n },\n conflictingClassGroupModifiers: {\n 'font-size': ['leading']\n },\n orderSensitiveModifiers: ['*', '**', 'after', 'backdrop', 'before', 'details-content', 'file', 'first-letter', 'first-line', 'marker', 'placeholder', 'selection']\n };\n};\n\n/**\n * @param baseConfig Config where other config will be merged into. This object will be mutated.\n * @param configExtension Partial config to merge into the `baseConfig`.\n */\nconst mergeConfigs = (baseConfig, {\n cacheSize,\n prefix,\n experimentalParseClassName,\n extend = {},\n override = {}\n}) => {\n overrideProperty(baseConfig, 'cacheSize', cacheSize);\n overrideProperty(baseConfig, 'prefix', prefix);\n overrideProperty(baseConfig, 'experimentalParseClassName', experimentalParseClassName);\n overrideConfigProperties(baseConfig.theme, override.theme);\n overrideConfigProperties(baseConfig.classGroups, override.classGroups);\n overrideConfigProperties(baseConfig.conflictingClassGroups, override.conflictingClassGroups);\n overrideConfigProperties(baseConfig.conflictingClassGroupModifiers, override.conflictingClassGroupModifiers);\n overrideProperty(baseConfig, 'orderSensitiveModifiers', override.orderSensitiveModifiers);\n mergeConfigProperties(baseConfig.theme, extend.theme);\n mergeConfigProperties(baseConfig.classGroups, extend.classGroups);\n mergeConfigProperties(baseConfig.conflictingClassGroups, extend.conflictingClassGroups);\n mergeConfigProperties(baseConfig.conflictingClassGroupModifiers, extend.conflictingClassGroupModifiers);\n mergeArrayProperties(baseConfig, extend, 'orderSensitiveModifiers');\n return baseConfig;\n};\nconst overrideProperty = (baseObject, overrideKey, overrideValue) => {\n if (overrideValue !== undefined) {\n baseObject[overrideKey] = overrideValue;\n }\n};\nconst overrideConfigProperties = (baseObject, overrideObject) => {\n if (overrideObject) {\n for (const key in overrideObject) {\n overrideProperty(baseObject, key, overrideObject[key]);\n }\n }\n};\nconst mergeConfigProperties = (baseObject, mergeObject) => {\n if (mergeObject) {\n for (const key in mergeObject) {\n mergeArrayProperties(baseObject, mergeObject, key);\n }\n }\n};\nconst mergeArrayProperties = (baseObject, mergeObject, key) => {\n const mergeValue = mergeObject[key];\n if (mergeValue !== undefined) {\n baseObject[key] = baseObject[key] ? baseObject[key].concat(mergeValue) : mergeValue;\n }\n};\nconst extendTailwindMerge = (configExtension, ...createConfig) => typeof configExtension === 'function' ? createTailwindMerge(getDefaultConfig, configExtension, ...createConfig) : createTailwindMerge(() => mergeConfigs(getDefaultConfig(), configExtension), ...createConfig);\nconst twMerge = /*#__PURE__*/createTailwindMerge(getDefaultConfig);\nexport { createTailwindMerge, extendTailwindMerge, fromTheme, getDefaultConfig, mergeConfigs, twJoin, twMerge, validators };\n//# sourceMappingURL=bundle-mjs.mjs.map\n",
|
|
58
|
-
"import { type ClassValue, clsx } from
|
|
58
|
+
"import { type ClassValue, clsx } from \"clsx\";\nimport { twMerge } from \"tailwind-merge\";\n\nexport function cn(...inputs: ClassValue[]): string {\n return twMerge(clsx(inputs));\n}\n",
|
|
59
59
|
"/**\n * Copyright 2022 Joe Bell. All rights reserved.\n *\n * This file is licensed to you under the Apache License, Version 2.0\n * (the \"License\"); you may not use this file except in compliance with the\n * License. You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS, WITHOUT\n * WARRANTIES OR REPRESENTATIONS OF ANY KIND, either express or implied. See the\n * License for the specific language governing permissions and limitations under\n * the License.\n */ import { clsx } from \"clsx\";\nconst falsyToString = (value)=>typeof value === \"boolean\" ? `${value}` : value === 0 ? \"0\" : value;\nexport const cx = clsx;\nexport const cva = (base, config)=>(props)=>{\n var _config_compoundVariants;\n if ((config === null || config === void 0 ? void 0 : config.variants) == null) return cx(base, props === null || props === void 0 ? void 0 : props.class, props === null || props === void 0 ? void 0 : props.className);\n const { variants, defaultVariants } = config;\n const getVariantClassNames = Object.keys(variants).map((variant)=>{\n const variantProp = props === null || props === void 0 ? void 0 : props[variant];\n const defaultVariantProp = defaultVariants === null || defaultVariants === void 0 ? void 0 : defaultVariants[variant];\n if (variantProp === null) return null;\n const variantKey = falsyToString(variantProp) || falsyToString(defaultVariantProp);\n return variants[variant][variantKey];\n });\n const propsWithoutUndefined = props && Object.entries(props).reduce((acc, param)=>{\n let [key, value] = param;\n if (value === undefined) {\n return acc;\n }\n acc[key] = value;\n return acc;\n }, {});\n const getCompoundVariantClassNames = config === null || config === void 0 ? void 0 : (_config_compoundVariants = config.compoundVariants) === null || _config_compoundVariants === void 0 ? void 0 : _config_compoundVariants.reduce((acc, param)=>{\n let { class: cvClass, className: cvClassName, ...compoundVariantOptions } = param;\n return Object.entries(compoundVariantOptions).every((param)=>{\n let [key, value] = param;\n return Array.isArray(value) ? value.includes({\n ...defaultVariants,\n ...propsWithoutUndefined\n }[key]) : ({\n ...defaultVariants,\n ...propsWithoutUndefined\n })[key] === value;\n }) ? [\n ...acc,\n cvClass,\n cvClassName\n ] : acc;\n }, []);\n return cx(base, getVariantClassNames, getCompoundVariantClassNames, props === null || props === void 0 ? void 0 : props.class, props === null || props === void 0 ? void 0 : props.className);\n };\n\n",
|
|
60
|
-
"import { cva, type VariantProps } from
|
|
61
|
-
"import { type JSX } from
|
|
62
|
-
"import { type ComponentChildren, type JSX } from
|
|
63
|
-
"import type { ComponentChildren, JSX } from
|
|
64
|
-
"import { type JSX } from
|
|
65
|
-
"import { type JSX } from
|
|
66
|
-
"import { type JSX } from
|
|
67
|
-
"import { cva, type VariantProps } from
|
|
68
|
-
"import { type JSX } from
|
|
69
|
-
"import { type JSX } from
|
|
70
|
-
"
|
|
71
|
-
"import { type JSX } from
|
|
72
|
-
"import { type JSX } from
|
|
60
|
+
"import { cva, type VariantProps } from \"class-variance-authority\";\nimport { type JSX } from \"preact\";\n\nimport { cn } from \"../../lib/utils\";\n\nconst buttonVariants = cva(\n 'inline-flex items-center justify-center gap-2 whitespace-nowrap rounded-md text-sm font-medium transition-all disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg:not([class*=\"size-\"])]:size-4 shrink-0 [&_svg]:shrink-0 outline-none focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px] aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive cursor-pointer',\n {\n variants: {\n variant: {\n default: \"bg-primary text-primary-foreground hover:bg-primary/90\",\n destructive:\n \"bg-destructive text-white hover:bg-destructive/90 focus-visible:ring-destructive/20 dark:focus-visible:ring-destructive/40 dark:bg-destructive/60\",\n outline:\n \"border bg-background shadow-xs hover:bg-accent hover:text-accent-foreground dark:bg-input/30 dark:border-input dark:hover:bg-input/50\",\n secondary: \"bg-secondary text-secondary-foreground hover:bg-secondary/80\",\n ghost: \"hover:bg-accent hover:text-accent-foreground dark:hover:bg-accent/50\",\n link: \"text-primary underline-offset-4 hover:underline\",\n },\n size: {\n default: \"h-9 px-4 py-2 has-[>svg]:px-3\",\n sm: \"h-8 rounded-md gap-1.5 px-3 has-[>svg]:px-2.5\",\n lg: \"h-10 rounded-md px-6 has-[>svg]:px-4\",\n icon: \"size-9\",\n \"icon-sm\": \"size-8\",\n \"icon-lg\": \"size-10\",\n },\n },\n defaultVariants: {\n variant: \"default\",\n size: \"default\",\n },\n },\n);\n\ntype ButtonProps = JSX.HTMLAttributes<HTMLButtonElement> &\n VariantProps<typeof buttonVariants> & {\n asChild?: boolean;\n disabled?: boolean;\n };\n\nexport function Button({ class: className, variant, size, ...props }: ButtonProps): JSX.Element {\n return (\n <button\n data-testid=\"Button\"\n data-slot=\"button\"\n class={cn(buttonVariants({ variant, size, className }))}\n {...props}\n />\n );\n}\n",
|
|
61
|
+
"import { type JSX } from \"preact\";\nimport { useLocation } from \"preact-iso\";\nimport { Search } from \"../icons\";\n\nimport { cn } from \"../lib/utils\";\nimport { Button } from \"./ui/Button\";\n\nconst links = [\n { path: \"/\", label: \"🏠 Home\" },\n { path: \"/health\", label: \"🏥 Health\" },\n { path: \"/settings\", label: \"⚙️ Settings\" },\n];\n\nfunction openCommandPalette(): void {\n document.dispatchEvent(new KeyboardEvent(\"keydown\", { key: \"k\", metaKey: true }));\n}\n\nexport function Nav(): JSX.Element {\n const { url } = useLocation();\n\n return (\n <nav data-testid=\"Nav\" class=\"bg-card border-b border-border\">\n <div class=\"max-w-7xl mx-auto px-4\">\n <div class=\"flex items-center justify-between h-14\">\n <div class=\"flex items-center space-x-4\">\n <span class=\"text-xl font-bold text-primary\">⚡ Dotfiles</span>\n <div class=\"flex space-x-1\">\n {links.map((link) => {\n const isActive = url === link.path || (link.path !== \"/\" && url.startsWith(link.path));\n return (\n <Button key={link.path} variant={isActive ? \"secondary\" : \"ghost\"} size=\"sm\" asChild>\n <a href={link.path} class={cn(isActive && \"pointer-events-none\")}>\n {link.label}\n </a>\n </Button>\n );\n })}\n </div>\n </div>\n <div class=\"flex items-center space-x-4\">\n <button\n onClick={openCommandPalette}\n class=\"flex items-center gap-2 rounded-md border border-border bg-input px-3 py-1.5 text-sm text-muted-foreground transition-colors hover:bg-accent\"\n >\n <Search class=\"h-4 w-4\" />\n <span>Search...</span>\n <kbd class=\"bg-muted px-1.5 py-0.5 text-xs rounded\">⌘K</kbd>\n </button>\n </div>\n </div>\n </div>\n </nav>\n );\n}\n",
|
|
62
|
+
"import { type ComponentChildren, type JSX } from \"preact\";\n\nimport { cn } from \"../../lib/utils\";\n\ntype CardProps = JSX.HTMLAttributes<HTMLDivElement> & {\n children?: ComponentChildren;\n};\n\nexport function Card({ class: className, ...props }: CardProps): JSX.Element {\n return (\n <div\n data-testid=\"Card\"\n data-slot=\"card\"\n class={cn(\"bg-card text-card-foreground flex flex-col gap-2 rounded-xl border py-6 shadow-sm\", className)}\n {...props}\n />\n );\n}\n\nexport function CardHeader({ class: className, ...props }: CardProps): JSX.Element {\n return (\n <div\n data-testid=\"CardHeader\"\n data-slot=\"card-header\"\n class={cn(\n \"@container/card-header grid auto-rows-min grid-rows-[auto_auto] items-start gap-2 px-6 has-data-[slot=card-action]:grid-cols-[1fr_auto] [.border-b]:pb-6\",\n className,\n )}\n {...props}\n />\n );\n}\n\nexport function CardTitle({ class: className, ...props }: CardProps): JSX.Element {\n return (\n <div\n data-testid=\"CardTitle\"\n data-slot=\"card-title\"\n class={cn(\"text-lg leading-none font-bold\", className)}\n {...props}\n />\n );\n}\n\nexport function CardDescription({ class: className, ...props }: CardProps): JSX.Element {\n return (\n <div\n data-testid=\"CardDescription\"\n data-slot=\"card-description\"\n class={cn(\"text-muted-foreground text-sm\", className)}\n {...props}\n />\n );\n}\n\nexport function CardAction({ class: className, ...props }: CardProps): JSX.Element {\n return (\n <div\n data-testid=\"CardAction\"\n data-slot=\"card-action\"\n class={cn(\"col-start-2 row-span-2 row-start-1 self-start justify-self-end\", className)}\n {...props}\n />\n );\n}\n\nexport function CardContent({ class: className, ...props }: CardProps): JSX.Element {\n return <div data-testid=\"CardContent\" data-slot=\"card-content\" class={cn(\"px-6\", className)} {...props} />;\n}\n\nexport function CardFooter({ class: className, ...props }: CardProps): JSX.Element {\n return (\n <div\n data-testid=\"CardFooter\"\n data-slot=\"card-footer\"\n class={cn(\"flex items-center px-6 [.border-t]:pt-6\", className)}\n {...props}\n />\n );\n}\n",
|
|
63
|
+
"import type { ComponentChildren, JSX } from \"preact\";\n\nimport { Card, CardContent, CardHeader, CardTitle } from \"./Card\";\n\ninterface ITitledCardProps {\n title: string;\n icon: JSX.Element;\n action?: JSX.Element;\n children: ComponentChildren;\n class?: string;\n contentClass?: string;\n}\n\nexport function TitledCard({\n title,\n icon,\n action,\n children,\n class: className,\n contentClass,\n}: ITitledCardProps): JSX.Element {\n return (\n <Card class={className}>\n <CardHeader class=\"pb-2\">\n <div class=\"flex items-center justify-between\">\n <CardTitle class=\"flex items-center gap-2 text-lg font-semibold\">\n {icon}\n {title}\n </CardTitle>\n {action}\n </div>\n </CardHeader>\n <CardContent class={contentClass}>{children}</CardContent>\n </Card>\n );\n}\n",
|
|
64
|
+
"import { type JSX } from \"preact\";\nimport { AlertTriangle, CircleCheck, CircleX, HeartPulse } from \"../icons\";\n\nimport type { IHealthCheckResult, IHealthStatus } from \"../../shared/types\";\nimport { Card, CardContent } from \"../components/ui/Card\";\nimport { TitledCard } from \"../components/ui/TitledCard\";\nimport { useFetch } from \"../hooks/useFetch\";\n\nfunction getStatusIcon(status: string): JSX.Element {\n switch (status) {\n case \"pass\":\n return <CircleCheck class=\"h-4 w-4\" />;\n case \"warn\":\n return <AlertTriangle class=\"h-4 w-4\" />;\n case \"fail\":\n return <CircleX class=\"h-4 w-4\" />;\n default:\n return <CircleCheck class=\"h-4 w-4\" />;\n }\n}\n\ntype HealthCheckCardProps = {\n check: IHealthCheckResult;\n};\n\nfunction HealthCheckCard({ check }: HealthCheckCardProps): JSX.Element {\n return (\n <TitledCard title={check.name} icon={getStatusIcon(check.status)}>\n {check.message && <p class=\"text-sm font-bold text-foreground\">{check.message}</p>}\n {(check.details?.length || 0) > 0 && (\n <ul class=\"text-xs text-muted-foreground/70 mt-2 ml-4 space-y-1 list-disc\">\n {check.details?.map((detail, index) => (\n <li key={index}>{detail}</li>\n ))}\n </ul>\n )}\n </TitledCard>\n );\n}\n\nexport function Health(): JSX.Element {\n const { data: health, loading } = useFetch<IHealthStatus>(\"/health\");\n\n if (loading) {\n return (\n <div data-testid=\"Health\" class=\"flex items-center justify-center h-64\">\n <div class=\"text-muted-foreground\">Loading...</div>\n </div>\n );\n }\n\n const statusColors: Record<string, string> = {\n healthy: \"bg-green-500\",\n warning: \"bg-amber-500\",\n unhealthy: \"bg-red-500\",\n };\n\n return (\n <div data-testid=\"Health\" class=\"space-y-6\">\n <div class=\"flex items-center space-x-2\">\n <HeartPulse class=\"h-6 w-6\" />\n <h1 class=\"text-2xl font-bold\">Health Checks</h1>\n </div>\n\n <Card class=\"text-center\">\n <CardContent class=\"pt-6\">\n <div class={`w-4 h-4 rounded-full mx-auto mb-4 ${statusColors[health?.overall || \"healthy\"]}`} />\n <h2 class=\"text-2xl font-bold capitalize\">{health?.overall || \"Unknown\"}</h2>\n <p class=\"text-muted-foreground text-sm mt-2\">\n Last check: {health?.lastCheck ? new Date(health.lastCheck).toLocaleString() : \"Never\"}\n </p>\n </CardContent>\n </Card>\n\n <div class=\"space-y-4\">\n {health?.checks?.map((check, index) => <HealthCheckCard key={index} check={check} />) || (\n <div class=\"text-muted-foreground\">No checks available</div>\n )}\n </div>\n </div>\n );\n}\n",
|
|
65
|
+
"import { type JSX } from \"preact\";\n\nimport { Button } from \"../components/ui/Button\";\n\nexport function NotFound(): JSX.Element {\n return (\n <div data-testid=\"NotFound\" class=\"py-8 text-center\">\n <h1 class=\"mb-4 text-2xl font-bold\">404 - Not Found</h1>\n <Button variant=\"link\" asChild>\n <a href=\"/\">Go to Dashboard</a>\n </Button>\n </div>\n );\n}\n",
|
|
66
|
+
"import { type JSX } from \"preact\";\nimport { FolderCog } from \"../icons\";\n\nimport type { IConfigSummary } from \"../../shared/types\";\nimport { TitledCard } from \"../components/ui/TitledCard\";\nimport { useFetch } from \"../hooks/useFetch\";\n\nexport function Settings(): JSX.Element {\n const { data: config, loading } = useFetch<IConfigSummary>(\"/config\");\n\n if (loading) {\n return (\n <div data-testid=\"Settings\" class=\"flex items-center justify-center h-64\">\n <div class=\"text-muted-foreground\">Loading...</div>\n </div>\n );\n }\n\n const paths = [\n { label: \"Dotfiles Directory\", value: config?.dotfilesDir },\n { label: \"Generated Directory\", value: config?.generatedDir },\n { label: \"Binaries Directory\", value: config?.binariesDir },\n { label: \"Target Directory\", value: config?.targetDir },\n { label: \"Tool Configs Directory\", value: config?.toolConfigsDir },\n ];\n\n return (\n <div data-testid=\"Settings\" class=\"space-y-6\">\n <TitledCard title=\"Project Paths\" icon={<FolderCog class=\"h-4 w-4\" />}>\n <div class=\"space-y-4\">\n {paths.map((path, index) => (\n <div key={index}>\n <div class=\"mb-1 text-sm text-muted-foreground\">{path.label}</div>\n <code class=\"block overflow-x-auto rounded bg-muted px-3 py-2 text-sm\">\n {path.value || \"Not configured\"}\n </code>\n </div>\n ))}\n </div>\n </TitledCard>\n </div>\n );\n}\n",
|
|
67
|
+
"import { cva, type VariantProps } from \"class-variance-authority\";\nimport { type ComponentChildren, type JSX } from \"preact\";\n\nimport { cn } from \"../../lib/utils\";\n\nconst badgeVariants = cva(\n \"inline-flex items-center rounded-md border px-2.5 py-0.5 text-xs font-semibold transition-colors focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2\",\n {\n variants: {\n variant: {\n default: \"border-transparent bg-primary text-primary-foreground shadow hover:bg-primary/80\",\n secondary: \"border-transparent bg-secondary text-secondary-foreground hover:bg-secondary/80\",\n destructive: \"border-transparent bg-destructive text-destructive-foreground shadow hover:bg-destructive/80\",\n outline: \"text-foreground\",\n success: \"border-transparent bg-green-500/20 text-green-500 border-green-500/30\",\n warning: \"border-transparent bg-yellow-500/20 text-yellow-400 border-yellow-500/30\",\n error: \"border-transparent bg-red-500 text-white\",\n },\n },\n defaultVariants: {\n variant: \"default\",\n },\n },\n);\n\ntype BadgeProps = JSX.HTMLAttributes<HTMLDivElement> &\n VariantProps<typeof badgeVariants> & {\n children?: ComponentChildren;\n };\n\nexport function Badge({ class: className, variant, ...props }: BadgeProps): JSX.Element {\n return <div data-testid=\"Badge\" class={cn(badgeVariants({ variant }), className)} {...props} />;\n}\n",
|
|
68
|
+
"import { type JSX } from \"preact\";\nimport { Box, Download, FileCode, GitBranch, Package, Terminal, Wrench } from \"../icons\";\n\nimport { Badge } from \"./ui/Badge\";\n\ninterface IInstallMethodBadgeProps {\n method: string;\n ghCli?: boolean;\n}\n\nconst methodIcons: Record<string, JSX.Element> = {\n \"github-release\": <GitBranch class=\"h-3 w-3\" />,\n \"github-release:cli\": <GitBranch class=\"h-3 w-3\" />,\n homebrew: <Package class=\"h-3 w-3\" />,\n brew: <Package class=\"h-3 w-3\" />,\n cargo: <Box class=\"h-3 w-3\" />,\n \"curl-tar\": <Download class=\"h-3 w-3\" />,\n \"curl-script\": <FileCode class=\"h-3 w-3\" />,\n \"zsh-plugin\": <Terminal class=\"h-3 w-3\" />,\n manual: <Wrench class=\"h-3 w-3\" />,\n};\n\nexport function InstallMethodBadge({ method, ghCli }: IInstallMethodBadgeProps): JSX.Element {\n const displayMethod = method === \"github-release\" && ghCli ? \"github-release:cli\" : method;\n const icon = methodIcons[displayMethod] || <Package class=\"h-3 w-3\" />;\n\n return (\n <Badge variant=\"outline\" class=\"gap-1\">\n {icon}\n {displayMethod}\n </Badge>\n );\n}\n",
|
|
69
|
+
"import { type JSX } from \"preact\";\nimport { ExternalLink } from \"../../icons\";\n\nimport { Button } from \"./Button\";\n\ninterface IExternalLinkButtonProps {\n href: string;\n children: JSX.Element | string;\n}\n\nexport function ExternalLinkButton({ href, children }: IExternalLinkButtonProps): JSX.Element {\n return (\n <Button variant=\"outline\" size=\"sm\" asChild>\n <a\n href={href}\n target=\"_blank\"\n rel=\"noopener noreferrer\"\n class=\"inline-flex items-center gap-1.5 whitespace-nowrap\"\n >\n <ExternalLink class=\"h-4 w-4\" />\n {children}\n </a>\n </Button>\n );\n}\n",
|
|
70
|
+
"import \"github-markdown-css/github-markdown-light.css\";\n\nimport { type JSX } from \"preact\";\nimport Markdown, { type Components } from \"react-markdown\";\nimport rehypeRaw from \"rehype-raw\";\nimport remarkGfm from \"remark-gfm\";\nimport type { IToolReadmePayload } from \"../../shared/types\";\nimport { BookOpen, ExternalLink } from \"../icons\";\n\nimport { useFetch } from \"../hooks/useFetch\";\nimport { ExternalLinkButton } from \"./ui/ExternalLinkButton\";\nimport { TitledCard } from \"./ui/TitledCard\";\n\ntype ReadmeCardProps = {\n toolName: string;\n repo: string;\n};\n\nfunction resolveGitHubUrl(url: string | undefined, repo: string, forImage: boolean = false): string | undefined {\n if (!url) return url;\n // Already absolute URL\n if (url.startsWith(\"http://\") || url.startsWith(\"https://\") || url.startsWith(\"//\")) {\n return url;\n }\n // Anchor links\n if (url.startsWith(\"#\")) {\n return url;\n }\n // Relative URL - use raw for images, blob for other files (like .md)\n const cleanPath = url.startsWith(\"./\") ? url.slice(2) : url;\n const urlType = forImage ? \"raw\" : \"blob\";\n return `https://github.com/${repo}/${urlType}/HEAD/${cleanPath}`;\n}\n\nfunction createMarkdownComponents(repo: string): Components {\n return {\n a: ({ href, children, ...props }) => {\n const hrefStr = typeof href === \"string\" ? href : undefined;\n const resolvedHref = resolveGitHubUrl(hrefStr, repo, false);\n const isAnchor = hrefStr?.startsWith(\"#\");\n return (\n <a\n {...props}\n href={resolvedHref}\n target={isAnchor ? undefined : \"_blank\"}\n rel={isAnchor ? undefined : \"noopener noreferrer\"}\n >\n {children}\n </a>\n );\n },\n img: ({ src, alt, ...props }) => {\n const srcStr = typeof src === \"string\" ? src : undefined;\n return <img {...props} src={resolveGitHubUrl(srcStr, repo, true)} alt={alt} />;\n },\n };\n}\n\nexport function ReadmeCard({ toolName, repo }: ReadmeCardProps): JSX.Element {\n const { data, loading, error } = useFetch<IToolReadmePayload>(`/tools/${encodeURIComponent(toolName)}/readme`, [\n toolName,\n ]);\n\n if (loading) {\n return (\n <TitledCard title=\"README\" icon={<BookOpen class=\"h-4 w-4\" />}>\n <div class=\"text-muted-foreground text-center py-8\">Loading README...</div>\n </TitledCard>\n );\n }\n\n if (error || !data?.content) {\n return (\n <TitledCard title=\"README\" icon={<BookOpen class=\"h-4 w-4\" />}>\n <div class=\"text-muted-foreground text-center py-8\">\n <p class=\"mb-2\">README not available</p>\n <a\n href={`https://github.com/${repo}#readme`}\n target=\"_blank\"\n rel=\"noopener noreferrer\"\n class=\"text-sm text-blue-500 hover:underline inline-flex items-center gap-1\"\n >\n View on GitHub <ExternalLink class=\"h-3 w-3\" />\n </a>\n </div>\n </TitledCard>\n );\n }\n\n return (\n <TitledCard\n title=\"README\"\n icon={<BookOpen class=\"h-4 w-4\" />}\n action={<ExternalLinkButton href={`https://github.com/${repo}#readme`}>View on GitHub</ExternalLinkButton>}\n >\n <div class=\"markdown-body p-4 text-lg\">\n <Markdown remarkPlugins={[remarkGfm]} rehypePlugins={[rehypeRaw]} components={createMarkdownComponents(repo)}>\n {data.content}\n </Markdown>\n </div>\n </TitledCard>\n );\n}\n",
|
|
71
|
+
"import { type JSX } from \"preact\";\n\nimport { Badge } from \"./ui/Badge\";\n\ntype ToolStatus = \"installed\" | \"not-installed\" | \"error\";\n\ninterface IStatusBadgeProps {\n status: ToolStatus;\n}\n\nexport function StatusBadge({ status }: IStatusBadgeProps): JSX.Element {\n switch (status) {\n case \"installed\":\n return <Badge variant=\"success\">✓ Installed</Badge>;\n case \"not-installed\":\n return <Badge variant=\"error\">Not Installed</Badge>;\n case \"error\":\n return <Badge variant=\"error\">Error</Badge>;\n }\n}\n",
|
|
72
|
+
"import { type JSX } from \"preact\";\nimport { Clock, Copy, File, FilePlus, FolderPlus, Link, Shield, Trash2 } from \"../icons\";\n\nimport type { IToolHistoryEntry } from \"../../shared/types\";\n\ninterface IToolHistoryProps {\n entries: IToolHistoryEntry[];\n installedAt: string | null;\n dotfilesDir: string;\n}\n\nconst operationIcons: Record<string, JSX.Element> = {\n writeFile: <FilePlus class=\"h-4 w-4\" />,\n chmod: <Shield class=\"h-4 w-4\" />,\n rm: <Trash2 class=\"h-4 w-4\" />,\n mkdir: <FolderPlus class=\"h-4 w-4\" />,\n symlink: <Link class=\"h-4 w-4\" />,\n rename: <File class=\"h-4 w-4\" />,\n cp: <Copy class=\"h-4 w-4\" />,\n};\n\nconst operationLabels: Record<string, string> = {\n writeFile: \"Created\",\n chmod: \"Permissions\",\n rm: \"Removed\",\n mkdir: \"Directory\",\n symlink: \"Linked\",\n rename: \"Renamed\",\n cp: \"Copied\",\n};\n\nfunction getDisplayPath(filePath: string, dotfilesDir: string): string {\n if (filePath.startsWith(dotfilesDir)) {\n const relativePath = filePath.slice(dotfilesDir.length);\n return `<dotfiles>${relativePath}`;\n }\n return filePath;\n}\n\nexport function ToolHistory({ entries, installedAt, dotfilesDir }: IToolHistoryProps): JSX.Element {\n if (entries.length === 0 && !installedAt) {\n return (\n <div data-testid=\"ToolHistory\" class=\"text-muted-foreground py-4 text-center\">\n No history recorded\n </div>\n );\n }\n\n return (\n <div data-testid=\"ToolHistory\" class=\"space-y-4\">\n {installedAt && (\n <div class=\"flex items-center gap-3 rounded-lg bg-muted/50 p-3\">\n <div class=\"flex h-8 w-8 items-center justify-center rounded-full bg-green-500/20 text-green-500\">\n <Clock class=\"h-4 w-4\" />\n </div>\n <div>\n <div class=\"font-medium\">Installed</div>\n <div class=\"text-sm text-muted-foreground\">{new Date(installedAt).toLocaleString()}</div>\n </div>\n </div>\n )}\n\n {entries.length > 0 && (\n <div class=\"relative\">\n <div class=\"absolute left-4 top-0 bottom-0 w-px bg-border\" />\n <div class=\"space-y-3\">\n {entries.map((entry) => (\n <div key={entry.id} class=\"relative flex items-start gap-3 pl-8\">\n <div class=\"absolute left-2 top-1 flex h-4 w-4 items-center justify-center rounded-full border border-border bg-background\">\n <div class=\"h-2 w-2 rounded-full bg-muted-foreground\" />\n </div>\n <div class=\"min-w-0 flex-1\">\n <div class=\"flex items-center gap-2\">\n <span class=\"text-muted-foreground\">\n {operationIcons[entry.operationType] || <File class=\"h-4 w-4\" />}\n </span>\n <span class=\"font-medium\">{operationLabels[entry.operationType] || entry.operationType}</span>\n <span class=\"ml-auto text-xs text-muted-foreground\">{entry.relativeTime}</span>\n </div>\n <div class=\"mt-1 truncate text-sm text-muted-foreground\" title={entry.filePath}>\n {getDisplayPath(entry.filePath, dotfilesDir)}\n </div>\n </div>\n </div>\n ))}\n </div>\n </div>\n )}\n </div>\n );\n}\n",
|
|
73
73
|
"import{Component as n,createElement as t,options as e,toChildArray as r,Fragment as u,render as o,hydrate as i,createContext as l,createRef as c,cloneElement as f}from\"preact\";export{Component,Fragment,createContext,createElement,createRef}from\"preact\";import{useState as a,useLayoutEffect as s,useEffect as h,useCallback as v,useContext as d,useDebugValue as m,useId as p,useImperativeHandle as y,useMemo as _,useReducer as b,useRef as S}from\"preact/hooks\";export*from\"preact/hooks\";function g(n,t){for(var e in t)n[e]=t[e];return n}function E(n,t){for(var e in n)if(\"__source\"!==e&&!(e in t))return!0;for(var r in t)if(\"__source\"!==r&&n[r]!==t[r])return!0;return!1}function C(n,t){var e=t(),r=a({t:{__:e,u:t}}),u=r[0].t,o=r[1];return s(function(){u.__=e,u.u=t,R(u)&&o({t:u})},[n,e,t]),h(function(){return R(u)&&o({t:u}),n(function(){R(u)&&o({t:u})})},[n]),e}function R(n){try{return!((t=n.__)===(e=n.u())&&(0!==t||1/t==1/e)||t!=t&&e!=e)}catch(n){return!0}var t,e}function x(n){n()}function w(n){return n}function k(){return[!1,x]}var I=s;function N(n,t){this.props=n,this.context=t}function M(n,e){function r(n){var t=this.props.ref,r=t==n.ref;return!r&&t&&(t.call?t(null):t.current=null),e?!e(this.props,n)||!r:E(this.props,n)}function u(e){return this.shouldComponentUpdate=r,t(n,e)}return u.displayName=\"Memo(\"+(n.displayName||n.name)+\")\",u.prototype.isReactComponent=!0,u.__f=!0,u.type=n,u}(N.prototype=new n).isPureReactComponent=!0,N.prototype.shouldComponentUpdate=function(n,t){return E(this.props,n)||E(this.state,t)};var T=e.__b;e.__b=function(n){n.type&&n.type.__f&&n.ref&&(n.props.ref=n.ref,n.ref=null),T&&T(n)};var A=\"undefined\"!=typeof Symbol&&Symbol.for&&Symbol.for(\"react.forward_ref\")||3911;function D(n){function t(t){var e=g({},t);return delete e.ref,n(e,t.ref||null)}return t.$$typeof=A,t.render=n,t.prototype.isReactComponent=t.__f=!0,t.displayName=\"ForwardRef(\"+(n.displayName||n.name)+\")\",t}var L=function(n,t){return null==n?null:r(r(n).map(t))},O={map:L,forEach:L,count:function(n){return n?r(n).length:0},only:function(n){var t=r(n);if(1!==t.length)throw\"Children.only\";return t[0]},toArray:r},U=e.__e;e.__e=function(n,t,e,r){if(n.then)for(var u,o=t;o=o.__;)if((u=o.__c)&&u.__c)return null==t.__e&&(t.__e=e.__e,t.__k=e.__k),u.__c(n,t);U(n,t,e,r)};var F=e.unmount;function V(n,t,e){return n&&(n.__c&&n.__c.__H&&(n.__c.__H.__.forEach(function(n){\"function\"==typeof n.__c&&n.__c()}),n.__c.__H=null),null!=(n=g({},n)).__c&&(n.__c.__P===e&&(n.__c.__P=t),n.__c.__e=!0,n.__c=null),n.__k=n.__k&&n.__k.map(function(n){return V(n,t,e)})),n}function W(n,t,e){return n&&e&&(n.__v=null,n.__k=n.__k&&n.__k.map(function(n){return W(n,t,e)}),n.__c&&n.__c.__P===t&&(n.__e&&e.appendChild(n.__e),n.__c.__e=!0,n.__c.__P=e)),n}function P(){this.__u=0,this.o=null,this.__b=null}function j(n){if(!n.__)return null;var t=n.__.__c;return t&&t.__a&&t.__a(n)}function z(n){var e,r,u,o=null;function i(i){if(e||(e=n()).then(function(n){n&&(o=n.default||n),u=!0},function(n){r=n,u=!0}),r)throw r;if(!u)throw e;return o?t(o,i):null}return i.displayName=\"Lazy\",i.__f=!0,i}function B(){this.i=null,this.l=null}e.unmount=function(n){var t=n.__c;t&&(t.__z=!0),t&&t.__R&&t.__R(),t&&32&n.__u&&(n.type=null),F&&F(n)},(P.prototype=new n).__c=function(n,t){var e=t.__c,r=this;null==r.o&&(r.o=[]),r.o.push(e);var u=j(r.__v),o=!1,i=function(){o||r.__z||(o=!0,e.__R=null,u?u(c):c())};e.__R=i;var l=e.__P;e.__P=null;var c=function(){if(!--r.__u){if(r.state.__a){var n=r.state.__a;r.__v.__k[0]=W(n,n.__c.__P,n.__c.__O)}var t;for(r.setState({__a:r.__b=null});t=r.o.pop();)t.__P=l,t.forceUpdate()}};r.__u++||32&t.__u||r.setState({__a:r.__b=r.__v.__k[0]}),n.then(i,i)},P.prototype.componentWillUnmount=function(){this.o=[]},P.prototype.render=function(n,e){if(this.__b){if(this.__v.__k){var r=document.createElement(\"div\"),o=this.__v.__k[0].__c;this.__v.__k[0]=V(this.__b,r,o.__O=o.__P)}this.__b=null}var i=e.__a&&t(u,null,n.fallback);return i&&(i.__u&=-33),[t(u,null,e.__a?null:n.children),i]};var H=function(n,t,e){if(++e[1]===e[0]&&n.l.delete(t),n.props.revealOrder&&(\"t\"!==n.props.revealOrder[0]||!n.l.size))for(e=n.i;e;){for(;e.length>3;)e.pop()();if(e[1]<e[0])break;n.i=e=e[2]}};function Z(n){return this.getChildContext=function(){return n.context},n.children}function Y(n){var e=this,r=n.h;if(e.componentWillUnmount=function(){o(null,e.v),e.v=null,e.h=null},e.h&&e.h!==r&&e.componentWillUnmount(),!e.v){for(var u=e.__v;null!==u&&!u.__m&&null!==u.__;)u=u.__;e.h=r,e.v={nodeType:1,parentNode:r,childNodes:[],__k:{__m:u.__m},contains:function(){return!0},namespaceURI:r.namespaceURI,insertBefore:function(n,t){this.childNodes.push(n),e.h.insertBefore(n,t)},removeChild:function(n){this.childNodes.splice(this.childNodes.indexOf(n)>>>1,1),e.h.removeChild(n)}}}o(t(Z,{context:e.context},n.__v),e.v)}function $(n,e){var r=t(Y,{__v:n,h:e});return r.containerInfo=e,r}(B.prototype=new n).__a=function(n){var t=this,e=j(t.__v),r=t.l.get(n);return r[0]++,function(u){var o=function(){t.props.revealOrder?(r.push(u),H(t,n,r)):u()};e?e(o):o()}},B.prototype.render=function(n){this.i=null,this.l=new Map;var t=r(n.children);n.revealOrder&&\"b\"===n.revealOrder[0]&&t.reverse();for(var e=t.length;e--;)this.l.set(t[e],this.i=[1,0,this.i]);return n.children},B.prototype.componentDidUpdate=B.prototype.componentDidMount=function(){var n=this;this.l.forEach(function(t,e){H(n,e,t)})};var q=\"undefined\"!=typeof Symbol&&Symbol.for&&Symbol.for(\"react.element\")||60103,G=/^(?:accent|alignment|arabic|baseline|cap|clip(?!PathU)|color|dominant|fill|flood|font|glyph(?!R)|horiz|image(!S)|letter|lighting|marker(?!H|W|U)|overline|paint|pointer|shape|stop|strikethrough|stroke|text(?!L)|transform|underline|unicode|units|v|vector|vert|word|writing|x(?!C))[A-Z]/,J=/^on(Ani|Tra|Tou|BeforeInp|Compo)/,K=/[A-Z0-9]/g,Q=\"undefined\"!=typeof document,X=function(n){return(\"undefined\"!=typeof Symbol&&\"symbol\"==typeof Symbol()?/fil|che|rad/:/fil|che|ra/).test(n)};function nn(n,t,e){return null==t.__k&&(t.textContent=\"\"),o(n,t),\"function\"==typeof e&&e(),n?n.__c:null}function tn(n,t,e){return i(n,t),\"function\"==typeof e&&e(),n?n.__c:null}n.prototype.isReactComponent={},[\"componentWillMount\",\"componentWillReceiveProps\",\"componentWillUpdate\"].forEach(function(t){Object.defineProperty(n.prototype,t,{configurable:!0,get:function(){return this[\"UNSAFE_\"+t]},set:function(n){Object.defineProperty(this,t,{configurable:!0,writable:!0,value:n})}})});var en=e.event;function rn(){}function un(){return this.cancelBubble}function on(){return this.defaultPrevented}e.event=function(n){return en&&(n=en(n)),n.persist=rn,n.isPropagationStopped=un,n.isDefaultPrevented=on,n.nativeEvent=n};var ln,cn={enumerable:!1,configurable:!0,get:function(){return this.class}},fn=e.vnode;e.vnode=function(n){\"string\"==typeof n.type&&function(n){var t=n.props,e=n.type,u={},o=-1===e.indexOf(\"-\");for(var i in t){var l=t[i];if(!(\"value\"===i&&\"defaultValue\"in t&&null==l||Q&&\"children\"===i&&\"noscript\"===e||\"class\"===i||\"className\"===i)){var c=i.toLowerCase();\"defaultValue\"===i&&\"value\"in t&&null==t.value?i=\"value\":\"download\"===i&&!0===l?l=\"\":\"translate\"===c&&\"no\"===l?l=!1:\"o\"===c[0]&&\"n\"===c[1]?\"ondoubleclick\"===c?i=\"ondblclick\":\"onchange\"!==c||\"input\"!==e&&\"textarea\"!==e||X(t.type)?\"onfocus\"===c?i=\"onfocusin\":\"onblur\"===c?i=\"onfocusout\":J.test(i)&&(i=c):c=i=\"oninput\":o&&G.test(i)?i=i.replace(K,\"-$&\").toLowerCase():null===l&&(l=void 0),\"oninput\"===c&&u[i=c]&&(i=\"oninputCapture\"),u[i]=l}}\"select\"==e&&u.multiple&&Array.isArray(u.value)&&(u.value=r(t.children).forEach(function(n){n.props.selected=-1!=u.value.indexOf(n.props.value)})),\"select\"==e&&null!=u.defaultValue&&(u.value=r(t.children).forEach(function(n){n.props.selected=u.multiple?-1!=u.defaultValue.indexOf(n.props.value):u.defaultValue==n.props.value})),t.class&&!t.className?(u.class=t.class,Object.defineProperty(u,\"className\",cn)):t.className&&(u.class=u.className=t.className),n.props=u}(n),n.$$typeof=q,fn&&fn(n)};var an=e.__r;e.__r=function(n){an&&an(n),ln=n.__c};var sn=e.diffed;e.diffed=function(n){sn&&sn(n);var t=n.props,e=n.__e;null!=e&&\"textarea\"===n.type&&\"value\"in t&&t.value!==e.value&&(e.value=null==t.value?\"\":t.value),ln=null};var hn={ReactCurrentDispatcher:{current:{readContext:function(n){return ln.__n[n.__c].props.value},useCallback:v,useContext:d,useDebugValue:m,useDeferredValue:w,useEffect:h,useId:p,useImperativeHandle:y,useInsertionEffect:I,useLayoutEffect:s,useMemo:_,useReducer:b,useRef:S,useState:a,useSyncExternalStore:C,useTransition:k}}},vn=\"18.3.1\";function dn(n){return t.bind(null,n)}function mn(n){return!!n&&n.$$typeof===q}function pn(n){return mn(n)&&n.type===u}function yn(n){return!!n&&\"string\"==typeof n.displayName&&n.displayName.startsWith(\"Memo(\")}function _n(n){return mn(n)?f.apply(null,arguments):n}function bn(n){return!!n.__k&&(o(null,n),!0)}function Sn(n){return n&&(n.base||1===n.nodeType&&n)||null}var gn=function(n,t){return n(t)},En=function(n,t){return n(t)},Cn=u,Rn=mn,xn={useState:a,useId:p,useReducer:b,useEffect:h,useLayoutEffect:s,useInsertionEffect:I,useTransition:k,useDeferredValue:w,useSyncExternalStore:C,startTransition:x,useRef:S,useImperativeHandle:y,useMemo:_,useCallback:v,useContext:d,useDebugValue:m,version:\"18.3.1\",Children:O,render:nn,hydrate:tn,unmountComponentAtNode:bn,createPortal:$,createElement:t,createContext:l,createFactory:dn,cloneElement:_n,createRef:c,Fragment:u,isValidElement:mn,isElement:Rn,isFragment:pn,isMemo:yn,findDOMNode:Sn,Component:n,PureComponent:N,memo:M,forwardRef:D,flushSync:En,unstable_batchedUpdates:gn,StrictMode:Cn,Suspense:P,SuspenseList:B,lazy:z,__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED:hn};export{O as Children,N as PureComponent,Cn as StrictMode,P as Suspense,B as SuspenseList,hn as __SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED,_n as cloneElement,dn as createFactory,$ as createPortal,xn as default,Sn as findDOMNode,En as flushSync,D as forwardRef,tn as hydrate,Rn as isElement,pn as isFragment,yn as isMemo,mn as isValidElement,z as lazy,M as memo,nn as render,x as startTransition,bn as unmountComponentAtNode,gn as unstable_batchedUpdates,w as useDeferredValue,I as useInsertionEffect,C as useSyncExternalStore,k as useTransition,vn as version};\n//# sourceMappingURL=compat.module.js.map\n",
|
|
74
74
|
"var has = Object.prototype.hasOwnProperty;\n\nfunction find(iter, tar, key) {\n\tfor (key of iter.keys()) {\n\t\tif (dequal(key, tar)) return key;\n\t}\n}\n\nexport function dequal(foo, bar) {\n\tvar ctor, len, tmp;\n\tif (foo === bar) return true;\n\n\tif (foo && bar && (ctor=foo.constructor) === bar.constructor) {\n\t\tif (ctor === Date) return foo.getTime() === bar.getTime();\n\t\tif (ctor === RegExp) return foo.toString() === bar.toString();\n\n\t\tif (ctor === Array) {\n\t\t\tif ((len=foo.length) === bar.length) {\n\t\t\t\twhile (len-- && dequal(foo[len], bar[len]));\n\t\t\t}\n\t\t\treturn len === -1;\n\t\t}\n\n\t\tif (ctor === Set) {\n\t\t\tif (foo.size !== bar.size) {\n\t\t\t\treturn false;\n\t\t\t}\n\t\t\tfor (len of foo) {\n\t\t\t\ttmp = len;\n\t\t\t\tif (tmp && typeof tmp === 'object') {\n\t\t\t\t\ttmp = find(bar, tmp);\n\t\t\t\t\tif (!tmp) return false;\n\t\t\t\t}\n\t\t\t\tif (!bar.has(tmp)) return false;\n\t\t\t}\n\t\t\treturn true;\n\t\t}\n\n\t\tif (ctor === Map) {\n\t\t\tif (foo.size !== bar.size) {\n\t\t\t\treturn false;\n\t\t\t}\n\t\t\tfor (len of foo) {\n\t\t\t\ttmp = len[0];\n\t\t\t\tif (tmp && typeof tmp === 'object') {\n\t\t\t\t\ttmp = find(bar, tmp);\n\t\t\t\t\tif (!tmp) return false;\n\t\t\t\t}\n\t\t\t\tif (!dequal(len[1], bar.get(tmp))) {\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn true;\n\t\t}\n\n\t\tif (ctor === ArrayBuffer) {\n\t\t\tfoo = new Uint8Array(foo);\n\t\t\tbar = new Uint8Array(bar);\n\t\t} else if (ctor === DataView) {\n\t\t\tif ((len=foo.byteLength) === bar.byteLength) {\n\t\t\t\twhile (len-- && foo.getInt8(len) === bar.getInt8(len));\n\t\t\t}\n\t\t\treturn len === -1;\n\t\t}\n\n\t\tif (ArrayBuffer.isView(foo)) {\n\t\t\tif ((len=foo.byteLength) === bar.byteLength) {\n\t\t\t\twhile (len-- && foo[len] === bar[len]);\n\t\t\t}\n\t\t\treturn len === -1;\n\t\t}\n\n\t\tif (!ctor || typeof foo === 'object') {\n\t\t\tlen = 0;\n\t\t\tfor (ctor in foo) {\n\t\t\t\tif (has.call(foo, ctor) && ++len && !has.call(bar, ctor)) return false;\n\t\t\t\tif (!(ctor in bar) || !dequal(foo[ctor], bar[ctor])) return false;\n\t\t\t}\n\t\t\treturn Object.keys(bar).length === len;\n\t\t}\n\t}\n\n\treturn foo !== foo && bar !== bar;\n}\n",
|
|
75
75
|
"// src/lib/hook.ts\nimport {\n useEffect,\n useMemo,\n useRef as useRef2,\n useState\n} from \"react\";\nimport { jsx, jsxs, Fragment } from \"react/jsx-runtime\";\nimport { toJsxRuntime } from \"hast-util-to-jsx-runtime\";\n\n// src/lib/utils.ts\nimport { useRef } from \"react\";\nimport { dequal } from \"dequal\";\nvar useStableOptions = (value) => {\n const ref = useRef(value);\n const revision = useRef(0);\n if (typeof value !== \"object\" || value === null) {\n if (value !== ref.current) {\n ref.current = value;\n revision.current += 1;\n }\n return [value, revision.current];\n }\n if (value !== ref.current) {\n if (!dequal(value, ref.current)) {\n ref.current = value;\n revision.current += 1;\n }\n }\n return [ref.current, revision.current];\n};\nvar throttleHighlighting = (performHighlight, timeoutControl, throttleMs) => {\n const now = Date.now();\n clearTimeout(timeoutControl.current.timeoutId);\n const delay = Math.max(0, timeoutControl.current.nextAllowedTime - now);\n timeoutControl.current.timeoutId = setTimeout(() => {\n performHighlight().catch(console.error);\n timeoutControl.current.nextAllowedTime = now + throttleMs;\n }, delay);\n};\n\n// src/lib/resolvers.ts\nvar resolveLanguage = (lang, customLanguages, langAliases) => {\n const normalizedCustomLangs = customLanguages ? Array.isArray(customLanguages) ? customLanguages : [customLanguages] : [];\n if (lang == null || typeof lang === \"string\" && !lang.trim()) {\n return {\n languageId: \"plaintext\",\n displayLanguageId: \"plaintext\",\n langsToLoad: void 0\n };\n }\n if (typeof lang === \"object\") {\n return {\n languageId: lang.name,\n displayLanguageId: lang.name || null,\n langsToLoad: lang\n };\n }\n const lowerLang = lang.toLowerCase();\n const matches = (str) => str?.toLowerCase() === lowerLang;\n const customMatch = normalizedCustomLangs.find(\n (cl) => matches(cl.name) || matches(cl.scopeName) || matches(cl.scopeName?.split(\".\").pop()) || cl.aliases?.some(matches) || cl.fileTypes?.some(matches)\n );\n if (customMatch) {\n return {\n languageId: customMatch.name || lang,\n displayLanguageId: lang,\n langsToLoad: customMatch\n };\n }\n if (langAliases?.[lang]) {\n return {\n languageId: langAliases[lang],\n displayLanguageId: lang,\n langsToLoad: langAliases[lang]\n };\n }\n return {\n languageId: lang,\n displayLanguageId: lang,\n langsToLoad: lang\n };\n};\nvar isTextmateTheme = (value) => typeof value === \"object\" && value !== null && \"tokenColors\" in value && Array.isArray(value.tokenColors);\nfunction resolveTheme(themeInput) {\n const inputIsTextmateTheme = isTextmateTheme(themeInput);\n const isMultiThemeConfig = typeof themeInput === \"object\" && themeInput !== null && !inputIsTextmateTheme;\n const validMultiThemeObj = typeof themeInput === \"object\" && themeInput !== null && !inputIsTextmateTheme && Object.entries(themeInput).some(\n ([key, value]) => key && value && key.trim() !== \"\" && value !== \"\" && (typeof value === \"string\" || isTextmateTheme(value))\n );\n if (isMultiThemeConfig) {\n const themeId = validMultiThemeObj ? `multi-${Object.values(themeInput).map(\n (theme) => (typeof theme === \"string\" ? theme : theme?.name) || \"custom\"\n ).sort().join(\"-\")}` : \"multi-default\";\n return {\n isMultiTheme: true,\n themeId,\n multiTheme: validMultiThemeObj ? themeInput : null,\n themesToLoad: validMultiThemeObj ? Object.values(themeInput) : []\n };\n }\n return {\n isMultiTheme: false,\n themeId: typeof themeInput === \"string\" ? themeInput : themeInput?.name || \"custom\",\n singleTheme: themeInput,\n themesToLoad: [themeInput]\n };\n}\n\n// src/lib/transformers.ts\nfunction lineNumbersTransformer(startLine = 1) {\n return {\n name: \"react-shiki:line-numbers\",\n code(node) {\n this.addClassToHast(node, \"has-line-numbers\");\n if (startLine !== 1) {\n const existingStyle = node.properties?.style || \"\";\n const newStyle = existingStyle ? `${existingStyle}; --line-start: ${startLine}` : `--line-start: ${startLine}`;\n node.properties = {\n ...node.properties,\n style: newStyle\n };\n }\n },\n line(node) {\n this.addClassToHast(node, \"line-numbers\");\n return node;\n }\n };\n}\n\n// src/lib/hook.ts\nvar DEFAULT_THEMES = {\n light: \"github-light\",\n dark: \"github-dark\"\n};\nvar useShikiHighlighter = (code, lang, themeInput, options = {}, highlighterFactory) => {\n const [highlightedCode, setHighlightedCode] = useState(null);\n const [stableLang, langRev] = useStableOptions(lang);\n const [stableTheme, themeRev] = useStableOptions(themeInput);\n const [stableOpts, optsRev] = useStableOptions(options);\n const { languageId, langsToLoad } = useMemo(\n () => resolveLanguage(\n stableLang,\n stableOpts.customLanguages,\n stableOpts.langAlias\n ),\n [stableLang, stableOpts.customLanguages, stableOpts.langAlias]\n );\n const { isMultiTheme, themeId, multiTheme, singleTheme, themesToLoad } = useMemo(() => resolveTheme(stableTheme), [stableTheme]);\n const timeoutControl = useRef2({\n nextAllowedTime: 0,\n timeoutId: void 0\n });\n const shikiOptions = useMemo(() => {\n const languageOption = { lang: languageId };\n const {\n defaultColor,\n cssVariablePrefix,\n showLineNumbers,\n startingLineNumber,\n ...restOptions\n } = stableOpts;\n const themeOptions = isMultiTheme ? {\n themes: multiTheme || DEFAULT_THEMES,\n defaultColor,\n cssVariablePrefix\n } : {\n theme: singleTheme || DEFAULT_THEMES.dark\n };\n const transformers = restOptions.transformers || [];\n if (showLineNumbers) {\n transformers.push(lineNumbersTransformer(startingLineNumber));\n }\n return {\n ...languageOption,\n ...themeOptions,\n ...restOptions,\n transformers\n };\n }, [languageId, themeId, langRev, themeRev, optsRev]);\n useEffect(() => {\n let isMounted = true;\n const highlightCode = async () => {\n if (!languageId) return;\n const highlighter = stableOpts.highlighter ? stableOpts.highlighter : await highlighterFactory(\n langsToLoad,\n themesToLoad,\n stableOpts.engine\n );\n const loadedLanguages = highlighter.getLoadedLanguages();\n const langToUse = loadedLanguages.includes(languageId) ? languageId : \"plaintext\";\n const finalOptions = { ...shikiOptions, lang: langToUse };\n if (isMounted) {\n const output = stableOpts.outputFormat === \"html\" ? highlighter.codeToHtml(code, finalOptions) : toJsxRuntime(highlighter.codeToHast(code, finalOptions), {\n jsx,\n jsxs,\n Fragment\n });\n setHighlightedCode(output);\n }\n };\n const { delay } = stableOpts;\n if (delay) {\n throttleHighlighting(highlightCode, timeoutControl, delay);\n } else {\n highlightCode().catch(console.error);\n }\n return () => {\n isMounted = false;\n clearTimeout(timeoutControl.current.timeoutId);\n };\n }, [\n code,\n shikiOptions,\n stableOpts.delay,\n stableOpts.highlighter,\n langsToLoad,\n themesToLoad\n ]);\n return highlightedCode;\n};\n\n// src/lib/plugins.ts\nimport { visit } from \"unist-util-visit\";\nfunction rehypeInlineCodeProperty() {\n return (tree) => {\n visit(tree, \"element\", (node, _index, parent) => {\n if (node.tagName === \"code\" && parent.tagName !== \"pre\") {\n node.properties.inline = true;\n }\n });\n };\n}\nvar isInlineCode = (node) => {\n const textContent = (node.children || []).filter((child) => child.type === \"text\").map((child) => child.value).join(\"\");\n return !textContent.includes(\"\\n\");\n};\n\n// #style-inject:#style-inject\nfunction styleInject(css, { insertAt } = {}) {\n if (!css || typeof document === \"undefined\") return;\n const head = document.head || document.getElementsByTagName(\"head\")[0];\n const style = document.createElement(\"style\");\n style.type = \"text/css\";\n if (insertAt === \"top\") {\n if (head.firstChild) {\n head.insertBefore(style, head.firstChild);\n } else {\n head.appendChild(style);\n }\n } else {\n head.appendChild(style);\n }\n if (style.styleSheet) {\n style.styleSheet.cssText = css;\n } else {\n style.appendChild(document.createTextNode(css));\n }\n}\n\n// src/lib/styles.css\nstyleInject(\".relative {\\n position: relative;\\n}\\n.defaultStyles pre {\\n overflow: auto;\\n border-radius: 0.5rem;\\n padding-left: 1.5rem;\\n padding-right: 1.5rem;\\n padding-top: 1.25rem;\\n padding-bottom: 1.25rem;\\n}\\n.languageLabel {\\n position: absolute;\\n right: 0.75rem;\\n top: 0.5rem;\\n font-family: monospace;\\n font-size: 0.75rem;\\n letter-spacing: -0.05em;\\n color: rgba(107, 114, 128, 0.85);\\n}\\n.line-numbers::before {\\n counter-increment: line-number;\\n content: counter(line-number);\\n display: inline-flex;\\n justify-content: flex-end;\\n align-items: flex-start;\\n box-sizing: content-box;\\n min-width: var(--line-numbers-width, 2ch);\\n padding-left: var(--line-numbers-padding-left, 2ch);\\n padding-right: var(--line-numbers-padding-right, 2ch);\\n color: var(--line-numbers-foreground, rgba(107, 114, 128, 0.6));\\n font-size: var(--line-numbers-font-size, inherit);\\n font-weight: var(--line-numbers-font-weight, inherit);\\n line-height: var(--line-numbers-line-height, inherit);\\n font-family: var(--line-numbers-font-family, inherit);\\n opacity: var(--line-numbers-opacity, 1);\\n user-select: none;\\n pointer-events: none;\\n}\\n.has-line-numbers {\\n counter-reset: line-number calc(var(--line-start, 1) - 1);\\n --line-numbers-foreground: rgba(107, 114, 128, 0.5);\\n --line-numbers-width: 2ch;\\n --line-numbers-padding-left: 0ch;\\n --line-numbers-padding-right: 2ch;\\n --line-numbers-font-size: inherit;\\n --line-numbers-font-weight: inherit;\\n --line-numbers-line-height: inherit;\\n --line-numbers-font-family: inherit;\\n --line-numbers-opacity: 1;\\n}\\n\");\n\n// src/lib/component.tsx\nimport { clsx } from \"clsx\";\nimport { forwardRef } from \"react\";\nimport { jsx as jsx2, jsxs as jsxs2 } from \"react/jsx-runtime\";\nvar createShikiHighlighterComponent = (useShikiHighlighterImpl) => {\n return forwardRef(\n ({\n language,\n theme,\n delay,\n transformers,\n defaultColor,\n cssVariablePrefix,\n addDefaultStyles = true,\n style,\n langStyle,\n className,\n langClassName,\n showLanguage = true,\n showLineNumbers = false,\n startingLineNumber = 1,\n children: code,\n as: Element = \"pre\",\n customLanguages,\n ...shikiOptions\n }, ref) => {\n const options = {\n delay,\n transformers,\n customLanguages,\n showLineNumbers,\n defaultColor,\n cssVariablePrefix,\n startingLineNumber,\n ...shikiOptions\n };\n const { displayLanguageId } = resolveLanguage(\n language,\n customLanguages\n );\n const highlightedCode = useShikiHighlighterImpl(\n code,\n language,\n theme,\n options\n );\n const isHtmlOutput = typeof highlightedCode === \"string\";\n return /* @__PURE__ */ jsxs2(\n Element,\n {\n ref,\n \"data-testid\": \"shiki-container\",\n className: clsx(\n \"relative\",\n \"not-prose\",\n addDefaultStyles && \"defaultStyles\",\n className\n ),\n style,\n id: \"shiki-container\",\n children: [\n showLanguage && displayLanguageId ? /* @__PURE__ */ jsx2(\n \"span\",\n {\n className: clsx(\"languageLabel\", langClassName),\n style: langStyle,\n id: \"language-label\",\n children: displayLanguageId\n }\n ) : null,\n isHtmlOutput ? /* @__PURE__ */ jsx2(\"div\", { dangerouslySetInnerHTML: { __html: highlightedCode } }) : highlightedCode\n ]\n }\n );\n }\n );\n};\n\nexport {\n useShikiHighlighter,\n rehypeInlineCodeProperty,\n isInlineCode,\n createShikiHighlighterComponent\n};\n//# sourceMappingURL=chunk-EXJNTVNR.js.map",
|
|
@@ -82,21 +82,21 @@
|
|
|
82
82
|
"import {Context, forEachUnescaped, getGroupContents, hasUnescaped, replaceUnescaped} from 'regex-utilities';\n\nconst r = String.raw;\nconst gRToken = r`\\\\g<(?<gRNameOrNum>[^>&]+)&R=(?<gRDepth>[^>]+)>`;\nconst recursiveToken = r`\\(\\?R=(?<rDepth>[^\\)]+)\\)|${gRToken}`;\nconst namedCaptureDelim = r`\\(\\?<(?![=!])(?<captureName>[^>]+)>`;\nconst captureDelim = r`${namedCaptureDelim}|(?<unnamed>\\()(?!\\?)`;\nconst token = new RegExp(r`${namedCaptureDelim}|${recursiveToken}|\\(\\?|\\\\?.`, 'gsu');\nconst overlappingRecursionMsg = 'Cannot use multiple overlapping recursions';\n\n/**\n@param {string} pattern\n@param {{\n flags?: string;\n captureTransfers?: Map<number, Array<number>>;\n hiddenCaptures?: Array<number>;\n mode?: 'plugin' | 'external';\n}} [data]\n@returns {{\n pattern: string;\n captureTransfers: Map<number, Array<number>>;\n hiddenCaptures: Array<number>;\n}}\n*/\nfunction recursion(pattern, data) {\n const {hiddenCaptures, mode} = {\n hiddenCaptures: [],\n mode: 'plugin',\n ...data,\n };\n // Capture transfer is used by <github.com/slevithan/oniguruma-to-es>\n let captureTransfers = data?.captureTransfers ?? new Map();\n // Keep the initial fail-check (which avoids unneeded processing) as fast as possible by testing\n // without the accuracy improvement of using `hasUnescaped` with `Context.DEFAULT`\n if (!(new RegExp(recursiveToken, 'su').test(pattern))) {\n return {\n pattern,\n captureTransfers,\n hiddenCaptures,\n };\n }\n if (mode === 'plugin' && hasUnescaped(pattern, r`\\(\\?\\(DEFINE\\)`, Context.DEFAULT)) {\n throw new Error('DEFINE groups cannot be used with recursion');\n }\n\n const addedHiddenCaptures = [];\n const hasNumberedBackref = hasUnescaped(pattern, r`\\\\[1-9]`, Context.DEFAULT);\n const groupContentsStartPos = new Map();\n const openGroups = [];\n let hasRecursed = false;\n let numCharClassesOpen = 0;\n let numCapturesPassed = 0;\n let match;\n token.lastIndex = 0;\n while ((match = token.exec(pattern))) {\n const {0: m, groups: {captureName, rDepth, gRNameOrNum, gRDepth}} = match;\n if (m === '[') {\n numCharClassesOpen++;\n } else if (!numCharClassesOpen) {\n\n // `(?R=N)`\n if (rDepth) {\n assertMaxInBounds(rDepth);\n if (hasRecursed) {\n throw new Error(overlappingRecursionMsg);\n }\n if (hasNumberedBackref) {\n // Could add support for numbered backrefs with extra effort, but it's probably not worth\n // it. To trigger this error, the regex must include recursion and one of the following:\n // - An interpolated regex that contains a numbered backref (since other numbered\n // backrefs are prevented by implicit flag n).\n // - A numbered backref, when flag n is explicitly disabled.\n // Note that Regex+'s extended syntax (atomic groups and sometimes subroutines) can also\n // add numbered backrefs, but those work fine because external plugins like this one run\n // *before* the transformation of built-in syntax extensions\n throw new Error(\n // When used in `external` mode by transpilers other than Regex+, backrefs might have\n // gone through conversion from named to numbered, so avoid a misleading error\n `${mode === 'external' ? 'Backrefs' : 'Numbered backrefs'} cannot be used with global recursion`\n );\n }\n const left = pattern.slice(0, match.index);\n const right = pattern.slice(token.lastIndex);\n if (hasUnescaped(right, recursiveToken, Context.DEFAULT)) {\n throw new Error(overlappingRecursionMsg);\n }\n const reps = +rDepth - 1;\n pattern = makeRecursive(\n left,\n right,\n reps,\n false,\n hiddenCaptures,\n addedHiddenCaptures,\n numCapturesPassed\n );\n captureTransfers = mapCaptureTransfers(\n captureTransfers,\n left,\n reps,\n addedHiddenCaptures.length,\n 0,\n numCapturesPassed\n );\n // No need to parse further\n break;\n // `\\g<name&R=N>`, `\\g<number&R=N>`\n } else if (gRNameOrNum) {\n assertMaxInBounds(gRDepth);\n let isWithinReffedGroup = false;\n for (const g of openGroups) {\n if (g.name === gRNameOrNum || g.num === +gRNameOrNum) {\n isWithinReffedGroup = true;\n if (g.hasRecursedWithin) {\n throw new Error(overlappingRecursionMsg);\n }\n break;\n }\n }\n if (!isWithinReffedGroup) {\n throw new Error(r`Recursive \\g cannot be used outside the referenced group \"${\n mode === 'external' ? gRNameOrNum : r`\\g<${gRNameOrNum}&R=${gRDepth}>`\n }\"`);\n }\n const startPos = groupContentsStartPos.get(gRNameOrNum);\n const groupContents = getGroupContents(pattern, startPos);\n if (\n hasNumberedBackref &&\n hasUnescaped(groupContents, r`${namedCaptureDelim}|\\((?!\\?)`, Context.DEFAULT)\n ) {\n throw new Error(\n // When used in `external` mode by transpilers other than Regex+, backrefs might have\n // gone through conversion from named to numbered, so avoid a misleading error\n `${mode === 'external' ? 'Backrefs' : 'Numbered backrefs'} cannot be used with recursion of capturing groups`\n );\n }\n const groupContentsLeft = pattern.slice(startPos, match.index);\n const groupContentsRight = groupContents.slice(groupContentsLeft.length + m.length);\n const numAddedHiddenCapturesPreExpansion = addedHiddenCaptures.length;\n const reps = +gRDepth - 1;\n const expansion = makeRecursive(\n groupContentsLeft,\n groupContentsRight,\n reps,\n true,\n hiddenCaptures,\n addedHiddenCaptures,\n numCapturesPassed\n );\n captureTransfers = mapCaptureTransfers(\n captureTransfers,\n groupContentsLeft,\n reps,\n addedHiddenCaptures.length - numAddedHiddenCapturesPreExpansion,\n numAddedHiddenCapturesPreExpansion,\n numCapturesPassed\n );\n const pre = pattern.slice(0, startPos);\n const post = pattern.slice(startPos + groupContents.length);\n // Modify the string we're looping over\n pattern = `${pre}${expansion}${post}`;\n // Step forward for the next loop iteration\n token.lastIndex += expansion.length - m.length - groupContentsLeft.length - groupContentsRight.length;\n openGroups.forEach(g => g.hasRecursedWithin = true);\n hasRecursed = true;\n } else if (captureName) {\n numCapturesPassed++;\n groupContentsStartPos.set(String(numCapturesPassed), token.lastIndex);\n groupContentsStartPos.set(captureName, token.lastIndex);\n openGroups.push({\n num: numCapturesPassed,\n name: captureName,\n });\n } else if (m[0] === '(') {\n const isUnnamedCapture = m === '(';\n if (isUnnamedCapture) {\n numCapturesPassed++;\n groupContentsStartPos.set(String(numCapturesPassed), token.lastIndex);\n }\n openGroups.push(isUnnamedCapture ? {num: numCapturesPassed} : {});\n } else if (m === ')') {\n openGroups.pop();\n }\n\n } else if (m === ']') {\n numCharClassesOpen--;\n }\n }\n\n hiddenCaptures.push(...addedHiddenCaptures);\n\n return {\n pattern,\n captureTransfers,\n hiddenCaptures,\n };\n}\n\n/**\n@param {string} max\n*/\nfunction assertMaxInBounds(max) {\n const errMsg = `Max depth must be integer between 2 and 100; used ${max}`;\n if (!/^[1-9]\\d*$/.test(max)) {\n throw new Error(errMsg);\n }\n max = +max;\n if (max < 2 || max > 100) {\n throw new Error(errMsg);\n }\n}\n\n/**\n@param {string} left\n@param {string} right\n@param {number} reps\n@param {boolean} isSubpattern\n@param {Array<number>} hiddenCaptures\n@param {Array<number>} addedHiddenCaptures\n@param {number} numCapturesPassed\n@returns {string}\n*/\nfunction makeRecursive(\n left,\n right,\n reps,\n isSubpattern,\n hiddenCaptures,\n addedHiddenCaptures,\n numCapturesPassed\n) {\n const namesInRecursed = new Set();\n // Can skip this work if not needed\n if (isSubpattern) {\n forEachUnescaped(left + right, namedCaptureDelim, ({groups: {captureName}}) => {\n namesInRecursed.add(captureName);\n }, Context.DEFAULT);\n }\n const rest = [\n reps,\n isSubpattern ? namesInRecursed : null,\n hiddenCaptures,\n addedHiddenCaptures,\n numCapturesPassed,\n ];\n // Depth 2: 'left(?:left(?:)right)right'\n // Depth 3: 'left(?:left(?:left(?:)right)right)right'\n // Empty group in the middle separates tokens and absorbs a following quantifier if present\n return `${left}${\n repeatWithDepth(`(?:${left}`, 'forward', ...rest)\n }(?:)${\n repeatWithDepth(`${right})`, 'backward', ...rest)\n }${right}`;\n}\n\n/**\n@param {string} pattern\n@param {'forward' | 'backward'} direction\n@param {number} reps\n@param {Set<string> | null} namesInRecursed\n@param {Array<number>} hiddenCaptures\n@param {Array<number>} addedHiddenCaptures\n@param {number} numCapturesPassed\n@returns {string}\n*/\nfunction repeatWithDepth(\n pattern,\n direction,\n reps,\n namesInRecursed,\n hiddenCaptures,\n addedHiddenCaptures,\n numCapturesPassed\n) {\n const startNum = 2;\n const getDepthNum = i => direction === 'forward' ? (i + startNum) : (reps - i + startNum - 1);\n let result = '';\n for (let i = 0; i < reps; i++) {\n const depthNum = getDepthNum(i);\n result += replaceUnescaped(\n pattern,\n r`${captureDelim}|\\\\k<(?<backref>[^>]+)>`,\n ({0: m, groups: {captureName, unnamed, backref}}) => {\n if (backref && namesInRecursed && !namesInRecursed.has(backref)) {\n // Don't alter backrefs to groups outside the recursed subpattern\n return m;\n }\n const suffix = `_$${depthNum}`;\n if (unnamed || captureName) {\n const addedCaptureNum = numCapturesPassed + addedHiddenCaptures.length + 1;\n addedHiddenCaptures.push(addedCaptureNum);\n incrementIfAtLeast(hiddenCaptures, addedCaptureNum);\n return unnamed ? m : `(?<${captureName}${suffix}>`;\n }\n return r`\\k<${backref}${suffix}>`;\n },\n Context.DEFAULT\n );\n }\n return result;\n}\n\n/**\nUpdates the array in place by incrementing each value greater than or equal to the threshold.\n@param {Array<number>} arr\n@param {number} threshold\n*/\nfunction incrementIfAtLeast(arr, threshold) {\n for (let i = 0; i < arr.length; i++) {\n if (arr[i] >= threshold) {\n arr[i]++;\n }\n }\n}\n\n/**\n@param {Map<number, Array<number>>} captureTransfers\n@param {string} left\n@param {number} reps\n@param {number} numCapturesAddedInExpansion\n@param {number} numAddedHiddenCapturesPreExpansion\n@param {number} numCapturesPassed\n@returns {Map<number, Array<number>>}\n*/\nfunction mapCaptureTransfers(captureTransfers, left, reps, numCapturesAddedInExpansion, numAddedHiddenCapturesPreExpansion, numCapturesPassed) {\n if (captureTransfers.size && numCapturesAddedInExpansion) {\n let numCapturesInLeft = 0;\n forEachUnescaped(left, captureDelim, () => numCapturesInLeft++, Context.DEFAULT);\n // Is 0 for global recursion\n const recursionDelimCaptureNum = numCapturesPassed - numCapturesInLeft + numAddedHiddenCapturesPreExpansion;\n const newCaptureTransfers = new Map();\n captureTransfers.forEach((from, to) => {\n const numCapturesInRight = (numCapturesAddedInExpansion - (numCapturesInLeft * reps)) / reps;\n const numCapturesAddedInLeft = numCapturesInLeft * reps;\n const newTo = to > (recursionDelimCaptureNum + numCapturesInLeft) ? to + numCapturesAddedInExpansion : to;\n const newFrom = [];\n for (const f of from) {\n // Before the recursed subpattern\n if (f <= recursionDelimCaptureNum) {\n newFrom.push(f);\n // After the recursed subpattern\n } else if (f > (recursionDelimCaptureNum + numCapturesInLeft + numCapturesInRight)) {\n newFrom.push(f + numCapturesAddedInExpansion);\n // Within the recursed subpattern, on the left of the recursion token\n } else if (f <= (recursionDelimCaptureNum + numCapturesInLeft)) {\n for (let i = 0; i <= reps; i++) {\n newFrom.push(f + (numCapturesInLeft * i));\n }\n // Within the recursed subpattern, on the right of the recursion token\n } else {\n for (let i = 0; i <= reps; i++) {\n newFrom.push(f + numCapturesAddedInLeft + (numCapturesInRight * i));\n }\n }\n }\n newCaptureTransfers.set(newTo, newFrom);\n });\n return newCaptureTransfers;\n }\n return captureTransfers;\n}\n\nexport {\n recursion,\n};\n",
|
|
83
83
|
"// src/utils.js\nvar cp = String.fromCodePoint;\nvar r = String.raw;\nvar envFlags = {\n flagGroups: (() => {\n try {\n new RegExp(\"(?i:)\");\n } catch {\n return false;\n }\n return true;\n })(),\n unicodeSets: (() => {\n try {\n new RegExp(\"[[]]\", \"v\");\n } catch {\n return false;\n }\n return true;\n })()\n};\nenvFlags.bugFlagVLiteralHyphenIsRange = envFlags.unicodeSets ? (() => {\n try {\n new RegExp(r`[\\d\\-a]`, \"v\");\n } catch {\n return true;\n }\n return false;\n})() : false;\nenvFlags.bugNestedClassIgnoresNegation = envFlags.unicodeSets && new RegExp(\"[[^a]]\", \"v\").test(\"a\");\nfunction getNewCurrentFlags(current, { enable, disable }) {\n return {\n dotAll: !disable?.dotAll && !!(enable?.dotAll || current.dotAll),\n ignoreCase: !disable?.ignoreCase && !!(enable?.ignoreCase || current.ignoreCase)\n };\n}\nfunction getOrInsert(map, key, defaultValue) {\n if (!map.has(key)) {\n map.set(key, defaultValue);\n }\n return map.get(key);\n}\nfunction isMinTarget(target, min) {\n return EsVersion[target] >= EsVersion[min];\n}\nfunction throwIfNullish(value, msg) {\n if (value == null) {\n throw new Error(msg ?? \"Value expected\");\n }\n return value;\n}\n\n// src/options.js\nvar EsVersion = {\n ES2025: 2025,\n ES2024: 2024,\n ES2018: 2018\n};\nvar Target = (\n /** @type {const} */\n {\n auto: \"auto\",\n ES2025: \"ES2025\",\n ES2024: \"ES2024\",\n ES2018: \"ES2018\"\n }\n);\nfunction getOptions(options = {}) {\n if ({}.toString.call(options) !== \"[object Object]\") {\n throw new Error(\"Unexpected options\");\n }\n if (options.target !== void 0 && !Target[options.target]) {\n throw new Error(`Unexpected target \"${options.target}\"`);\n }\n const opts = {\n // Sets the level of emulation rigor/strictness.\n accuracy: \"default\",\n // Disables advanced emulation that relies on returning a `RegExp` subclass, resulting in\n // certain patterns not being emulatable.\n avoidSubclass: false,\n // Oniguruma flags; a string with `i`, `m`, `x`, `D`, `S`, `W`, `y{g}` in any order (all\n // optional). Oniguruma's `m` is equivalent to JavaScript's `s` (`dotAll`).\n flags: \"\",\n // Include JavaScript flag `g` (`global`) in the result.\n global: false,\n // Include JavaScript flag `d` (`hasIndices`) in the result.\n hasIndices: false,\n // Delay regex construction until first use if the transpiled pattern is at least this length.\n lazyCompileLength: Infinity,\n // JavaScript version used for generated regexes. Using `auto` detects the best value based on\n // your environment. Later targets allow faster processing, simpler generated source, and\n // support for additional features.\n target: \"auto\",\n // Disables minifications that simplify the pattern without changing the meaning.\n verbose: false,\n ...options,\n // Advanced options that override standard behavior, error checking, and flags when enabled.\n rules: {\n // Useful with TextMate grammars that merge backreferences across patterns.\n allowOrphanBackrefs: false,\n // Use ASCII `\\b` and `\\B`, which increases search performance of generated regexes.\n asciiWordBoundaries: false,\n // Allow unnamed captures and numbered calls (backreferences and subroutines) when using\n // named capture. This is Oniguruma option `ONIG_OPTION_CAPTURE_GROUP`; on by default in\n // `vscode-oniguruma`.\n captureGroup: false,\n // Change the recursion depth limit from Oniguruma's `20` to an integer `2`–`20`.\n recursionLimit: 20,\n // `^` as `\\A`; `$` as`\\Z`. Improves search performance of generated regexes without changing\n // the meaning if searching line by line. This is Oniguruma option `ONIG_OPTION_SINGLELINE`.\n singleline: false,\n ...options.rules\n }\n };\n if (opts.target === \"auto\") {\n opts.target = envFlags.flagGroups ? \"ES2025\" : envFlags.unicodeSets ? \"ES2024\" : \"ES2018\";\n }\n return opts;\n}\n\n// src/unicode.js\nimport { slug } from \"oniguruma-parser/parser\";\nvar asciiSpaceChar = \"[\t-\\r ]\";\nvar CharsWithoutIgnoreCaseExpansion = /* @__PURE__ */ new Set([\n cp(304),\n // İ\n cp(305)\n // ı\n]);\nvar defaultWordChar = r`[\\p{L}\\p{M}\\p{N}\\p{Pc}]`;\nfunction getIgnoreCaseMatchChars(char) {\n if (CharsWithoutIgnoreCaseExpansion.has(char)) {\n return [char];\n }\n const set = /* @__PURE__ */ new Set();\n const lower = char.toLowerCase();\n const upper = lower.toUpperCase();\n const title = LowerToTitleCaseMap.get(lower);\n const altLower = LowerToAlternativeLowerCaseMap.get(lower);\n const altUpper = LowerToAlternativeUpperCaseMap.get(lower);\n if ([...upper].length === 1) {\n set.add(upper);\n }\n altUpper && set.add(altUpper);\n title && set.add(title);\n set.add(lower);\n altLower && set.add(altLower);\n return [...set];\n}\nvar JsUnicodePropertyMap = /* @__PURE__ */ new Map(\n `C Other\nCc Control cntrl\nCf Format\nCn Unassigned\nCo Private_Use\nCs Surrogate\nL Letter\nLC Cased_Letter\nLl Lowercase_Letter\nLm Modifier_Letter\nLo Other_Letter\nLt Titlecase_Letter\nLu Uppercase_Letter\nM Mark Combining_Mark\nMc Spacing_Mark\nMe Enclosing_Mark\nMn Nonspacing_Mark\nN Number\nNd Decimal_Number digit\nNl Letter_Number\nNo Other_Number\nP Punctuation punct\nPc Connector_Punctuation\nPd Dash_Punctuation\nPe Close_Punctuation\nPf Final_Punctuation\nPi Initial_Punctuation\nPo Other_Punctuation\nPs Open_Punctuation\nS Symbol\nSc Currency_Symbol\nSk Modifier_Symbol\nSm Math_Symbol\nSo Other_Symbol\nZ Separator\nZl Line_Separator\nZp Paragraph_Separator\nZs Space_Separator\nASCII\nASCII_Hex_Digit AHex\nAlphabetic Alpha\nAny\nAssigned\nBidi_Control Bidi_C\nBidi_Mirrored Bidi_M\nCase_Ignorable CI\nCased\nChanges_When_Casefolded CWCF\nChanges_When_Casemapped CWCM\nChanges_When_Lowercased CWL\nChanges_When_NFKC_Casefolded CWKCF\nChanges_When_Titlecased CWT\nChanges_When_Uppercased CWU\nDash\nDefault_Ignorable_Code_Point DI\nDeprecated Dep\nDiacritic Dia\nEmoji\nEmoji_Component EComp\nEmoji_Modifier EMod\nEmoji_Modifier_Base EBase\nEmoji_Presentation EPres\nExtended_Pictographic ExtPict\nExtender Ext\nGrapheme_Base Gr_Base\nGrapheme_Extend Gr_Ext\nHex_Digit Hex\nIDS_Binary_Operator IDSB\nIDS_Trinary_Operator IDST\nID_Continue IDC\nID_Start IDS\nIdeographic Ideo\nJoin_Control Join_C\nLogical_Order_Exception LOE\nLowercase Lower\nMath\nNoncharacter_Code_Point NChar\nPattern_Syntax Pat_Syn\nPattern_White_Space Pat_WS\nQuotation_Mark QMark\nRadical\nRegional_Indicator RI\nSentence_Terminal STerm\nSoft_Dotted SD\nTerminal_Punctuation Term\nUnified_Ideograph UIdeo\nUppercase Upper\nVariation_Selector VS\nWhite_Space space\nXID_Continue XIDC\nXID_Start XIDS`.split(/\\s/).map((p) => [slug(p), p])\n);\nvar LowerToAlternativeLowerCaseMap = /* @__PURE__ */ new Map([\n [\"s\", cp(383)],\n // s, ſ\n [cp(383), \"s\"]\n // ſ, s\n]);\nvar LowerToAlternativeUpperCaseMap = /* @__PURE__ */ new Map([\n [cp(223), cp(7838)],\n // ß, ẞ\n [cp(107), cp(8490)],\n // k, K (Kelvin)\n [cp(229), cp(8491)],\n // å, Å (Angstrom)\n [cp(969), cp(8486)]\n // ω, Ω (Ohm)\n]);\nvar LowerToTitleCaseMap = new Map([\n titleEntry(453),\n titleEntry(456),\n titleEntry(459),\n titleEntry(498),\n ...titleRange(8072, 8079),\n ...titleRange(8088, 8095),\n ...titleRange(8104, 8111),\n titleEntry(8124),\n titleEntry(8140),\n titleEntry(8188)\n]);\nvar PosixClassMap = /* @__PURE__ */ new Map([\n [\"alnum\", r`[\\p{Alpha}\\p{Nd}]`],\n [\"alpha\", r`\\p{Alpha}`],\n [\"ascii\", r`\\p{ASCII}`],\n [\"blank\", r`[\\p{Zs}\\t]`],\n [\"cntrl\", r`\\p{Cc}`],\n [\"digit\", r`\\p{Nd}`],\n [\"graph\", r`[\\P{space}&&\\P{Cc}&&\\P{Cn}&&\\P{Cs}]`],\n [\"lower\", r`\\p{Lower}`],\n [\"print\", r`[[\\P{space}&&\\P{Cc}&&\\P{Cn}&&\\P{Cs}]\\p{Zs}]`],\n [\"punct\", r`[\\p{P}\\p{S}]`],\n // Updated value from Onig 6.9.9; changed from Unicode `\\p{punct}`\n [\"space\", r`\\p{space}`],\n [\"upper\", r`\\p{Upper}`],\n [\"word\", r`[\\p{Alpha}\\p{M}\\p{Nd}\\p{Pc}]`],\n [\"xdigit\", r`\\p{AHex}`]\n]);\nfunction range(start, end) {\n const range2 = [];\n for (let i = start; i <= end; i++) {\n range2.push(i);\n }\n return range2;\n}\nfunction titleEntry(codePoint) {\n const char = cp(codePoint);\n return [char.toLowerCase(), char];\n}\nfunction titleRange(start, end) {\n return range(start, end).map((codePoint) => titleEntry(codePoint));\n}\nvar UnicodePropertiesWithSpecificCase = /* @__PURE__ */ new Set([\n \"Lower\",\n \"Lowercase\",\n \"Upper\",\n \"Uppercase\",\n \"Ll\",\n \"Lowercase_Letter\",\n \"Lt\",\n \"Titlecase_Letter\",\n \"Lu\",\n \"Uppercase_Letter\"\n // The `Changes_When_*` properties (and their aliases) could be included, but they're very rare.\n // Some other properties include a handful of chars with specific cases only, but these chars are\n // generally extreme edge cases and using such properties case insensitively generally produces\n // undesired behavior anyway\n]);\n\n// src/transform.js\nimport { createAlternative, createAssertion, createBackreference, createCapturingGroup, createCharacter, createCharacterClass, createCharacterSet, createGroup, createLookaroundAssertion, createQuantifier, createSubroutine, createUnicodeProperty, hasOnlyChild, parse, slug as slug2 } from \"oniguruma-parser/parser\";\nimport { traverse } from \"oniguruma-parser/traverser\";\nfunction transform(ast, options) {\n const opts = {\n // A couple edge cases exist where options `accuracy` and `bestEffortTarget` are used:\n // - `CharacterSet` kind `text_segment` (`\\X`): An exact representation would require heavy\n // Unicode data; a best-effort approximation requires knowing the target.\n // - `CharacterSet` kind `posix` with values `graph` and `print`: Their complex Unicode\n // representations would be hard to change to ASCII versions after the fact in the generator\n // based on `target`/`accuracy`, so produce the appropriate structure here.\n accuracy: \"default\",\n asciiWordBoundaries: false,\n avoidSubclass: false,\n bestEffortTarget: \"ES2025\",\n ...options\n };\n addParentProperties(ast);\n const firstPassState = {\n accuracy: opts.accuracy,\n asciiWordBoundaries: opts.asciiWordBoundaries,\n avoidSubclass: opts.avoidSubclass,\n flagDirectivesByAlt: /* @__PURE__ */ new Map(),\n jsGroupNameMap: /* @__PURE__ */ new Map(),\n minTargetEs2024: isMinTarget(opts.bestEffortTarget, \"ES2024\"),\n passedLookbehind: false,\n strategy: null,\n // Subroutines can appear before the groups they ref, so collect reffed nodes for a second pass \n subroutineRefMap: /* @__PURE__ */ new Map(),\n supportedGNodes: /* @__PURE__ */ new Set(),\n digitIsAscii: ast.flags.digitIsAscii,\n spaceIsAscii: ast.flags.spaceIsAscii,\n wordIsAscii: ast.flags.wordIsAscii\n };\n traverse(ast, FirstPassVisitor, firstPassState);\n const globalFlags = {\n dotAll: ast.flags.dotAll,\n ignoreCase: ast.flags.ignoreCase\n };\n const secondPassState = {\n currentFlags: globalFlags,\n prevFlags: null,\n globalFlags,\n groupOriginByCopy: /* @__PURE__ */ new Map(),\n groupsByName: /* @__PURE__ */ new Map(),\n multiplexCapturesToLeftByRef: /* @__PURE__ */ new Map(),\n openRefs: /* @__PURE__ */ new Map(),\n reffedNodesByReferencer: /* @__PURE__ */ new Map(),\n subroutineRefMap: firstPassState.subroutineRefMap\n };\n traverse(ast, SecondPassVisitor, secondPassState);\n const thirdPassState = {\n groupsByName: secondPassState.groupsByName,\n highestOrphanBackref: 0,\n numCapturesToLeft: 0,\n reffedNodesByReferencer: secondPassState.reffedNodesByReferencer\n };\n traverse(ast, ThirdPassVisitor, thirdPassState);\n ast._originMap = secondPassState.groupOriginByCopy;\n ast._strategy = firstPassState.strategy;\n return ast;\n}\nvar FirstPassVisitor = {\n AbsenceFunction({ node, parent, replaceWith }) {\n const { body, kind } = node;\n if (kind === \"repeater\") {\n const innerGroup = createGroup();\n innerGroup.body[0].body.push(\n // Insert own alts as `body`\n createLookaroundAssertion({ negate: true, body }),\n createUnicodeProperty(\"Any\")\n );\n const outerGroup = createGroup();\n outerGroup.body[0].body.push(\n createQuantifier(\"greedy\", 0, Infinity, innerGroup)\n );\n replaceWith(setParentDeep(outerGroup, parent), { traverse: true });\n } else {\n throw new Error(`Unsupported absence function \"(?~|\"`);\n }\n },\n Alternative: {\n enter({ node, parent, key }, { flagDirectivesByAlt }) {\n const flagDirectives = node.body.filter((el) => el.kind === \"flags\");\n for (let i = key + 1; i < parent.body.length; i++) {\n const forwardSiblingAlt = parent.body[i];\n getOrInsert(flagDirectivesByAlt, forwardSiblingAlt, []).push(...flagDirectives);\n }\n },\n exit({ node }, { flagDirectivesByAlt }) {\n if (flagDirectivesByAlt.get(node)?.length) {\n const flags = getCombinedFlagModsFromFlagNodes(flagDirectivesByAlt.get(node));\n if (flags) {\n const flagGroup = createGroup({ flags });\n flagGroup.body[0].body = node.body;\n node.body = [setParentDeep(flagGroup, node)];\n }\n }\n }\n },\n Assertion({ node, parent, key, container, root, remove, replaceWith }, state) {\n const { kind, negate } = node;\n const { asciiWordBoundaries, avoidSubclass, supportedGNodes, wordIsAscii } = state;\n if (kind === \"text_segment_boundary\") {\n throw new Error(`Unsupported text segment boundary \"\\\\${negate ? \"Y\" : \"y\"}\"`);\n } else if (kind === \"line_end\") {\n replaceWith(setParentDeep(createLookaroundAssertion({ body: [\n createAlternative({ body: [createAssertion(\"string_end\")] }),\n createAlternative({ body: [createCharacter(10)] })\n // `\\n`\n ] }), parent));\n } else if (kind === \"line_start\") {\n replaceWith(setParentDeep(parseFragment(r`(?<=\\A|\\n(?!\\z))`, { skipLookbehindValidation: true }), parent));\n } else if (kind === \"search_start\") {\n if (supportedGNodes.has(node)) {\n root.flags.sticky = true;\n remove();\n } else {\n const prev = container[key - 1];\n if (prev && isAlwaysNonZeroLength(prev)) {\n replaceWith(setParentDeep(createLookaroundAssertion({ negate: true }), parent));\n } else if (avoidSubclass) {\n throw new Error(r`Uses \"\\G\" in a way that requires a subclass`);\n } else {\n replaceWith(setParent(createAssertion(\"string_start\"), parent));\n state.strategy = \"clip_search\";\n }\n }\n } else if (kind === \"string_end\" || kind === \"string_start\") {\n } else if (kind === \"string_end_newline\") {\n replaceWith(setParentDeep(parseFragment(r`(?=\\n?\\z)`), parent));\n } else if (kind === \"word_boundary\") {\n if (!wordIsAscii && !asciiWordBoundaries) {\n const b = `(?:(?<=${defaultWordChar})(?!${defaultWordChar})|(?<!${defaultWordChar})(?=${defaultWordChar}))`;\n const B = `(?:(?<=${defaultWordChar})(?=${defaultWordChar})|(?<!${defaultWordChar})(?!${defaultWordChar}))`;\n replaceWith(setParentDeep(parseFragment(negate ? B : b), parent));\n }\n } else {\n throw new Error(`Unexpected assertion kind \"${kind}\"`);\n }\n },\n Backreference({ node }, { jsGroupNameMap }) {\n let { ref } = node;\n if (typeof ref === \"string\" && !isValidJsGroupName(ref)) {\n ref = getAndStoreJsGroupName(ref, jsGroupNameMap);\n node.ref = ref;\n }\n },\n CapturingGroup({ node }, { jsGroupNameMap, subroutineRefMap }) {\n let { name } = node;\n if (name && !isValidJsGroupName(name)) {\n name = getAndStoreJsGroupName(name, jsGroupNameMap);\n node.name = name;\n }\n subroutineRefMap.set(node.number, node);\n if (name) {\n subroutineRefMap.set(name, node);\n }\n },\n CharacterClassRange({ node, parent, replaceWith }) {\n if (parent.kind === \"intersection\") {\n const cc = createCharacterClass({ body: [node] });\n replaceWith(setParentDeep(cc, parent), { traverse: true });\n }\n },\n CharacterSet({ node, parent, replaceWith }, { accuracy, minTargetEs2024, digitIsAscii, spaceIsAscii, wordIsAscii }) {\n const { kind, negate, value } = node;\n if (digitIsAscii && (kind === \"digit\" || value === \"digit\")) {\n replaceWith(setParent(createCharacterSet(\"digit\", { negate }), parent));\n return;\n }\n if (spaceIsAscii && (kind === \"space\" || value === \"space\")) {\n replaceWith(setParentDeep(setNegate(parseFragment(asciiSpaceChar), negate), parent));\n return;\n }\n if (wordIsAscii && (kind === \"word\" || value === \"word\")) {\n replaceWith(setParent(createCharacterSet(\"word\", { negate }), parent));\n return;\n }\n if (kind === \"any\") {\n replaceWith(setParent(createUnicodeProperty(\"Any\"), parent));\n } else if (kind === \"digit\") {\n replaceWith(setParent(createUnicodeProperty(\"Nd\", { negate }), parent));\n } else if (kind === \"dot\") {\n } else if (kind === \"text_segment\") {\n if (accuracy === \"strict\") {\n throw new Error(r`Use of \"\\X\" requires non-strict accuracy`);\n }\n const eBase = \"\\\\p{Emoji}(?:\\\\p{EMod}|\\\\uFE0F\\\\u20E3?|[\\\\x{E0020}-\\\\x{E007E}]+\\\\x{E007F})?\";\n const emoji = r`\\p{RI}{2}|${eBase}(?:\\u200D${eBase})*`;\n replaceWith(setParentDeep(parseFragment(\n // Close approximation of an extended grapheme cluster; see <unicode.org/reports/tr29/>\n r`(?>\\r\\n|${minTargetEs2024 ? r`\\p{RGI_Emoji}` : emoji}|\\P{M}\\p{M}*)`,\n // Allow JS property `RGI_Emoji` through\n { skipPropertyNameValidation: true }\n ), parent));\n } else if (kind === \"hex\") {\n replaceWith(setParent(createUnicodeProperty(\"AHex\", { negate }), parent));\n } else if (kind === \"newline\") {\n replaceWith(setParentDeep(parseFragment(negate ? \"[^\\n]\" : \"(?>\\r\\n?|[\\n\\v\\f\\x85\\u2028\\u2029])\"), parent));\n } else if (kind === \"posix\") {\n if (!minTargetEs2024 && (value === \"graph\" || value === \"print\")) {\n if (accuracy === \"strict\") {\n throw new Error(`POSIX class \"${value}\" requires min target ES2024 or non-strict accuracy`);\n }\n let ascii = {\n graph: \"!-~\",\n print: \" -~\"\n }[value];\n if (negate) {\n ascii = `\\0-${cp(ascii.codePointAt(0) - 1)}${cp(ascii.codePointAt(2) + 1)}-\\u{10FFFF}`;\n }\n replaceWith(setParentDeep(parseFragment(`[${ascii}]`), parent));\n } else {\n replaceWith(setParentDeep(setNegate(parseFragment(PosixClassMap.get(value)), negate), parent));\n }\n } else if (kind === \"property\") {\n if (!JsUnicodePropertyMap.has(slug2(value))) {\n node.key = \"sc\";\n }\n } else if (kind === \"space\") {\n replaceWith(setParent(createUnicodeProperty(\"space\", { negate }), parent));\n } else if (kind === \"word\") {\n replaceWith(setParentDeep(setNegate(parseFragment(defaultWordChar), negate), parent));\n } else {\n throw new Error(`Unexpected character set kind \"${kind}\"`);\n }\n },\n Directive({ node, parent, root, remove, replaceWith, removeAllPrevSiblings, removeAllNextSiblings }) {\n const { kind, flags } = node;\n if (kind === \"flags\") {\n if (!flags.enable && !flags.disable) {\n remove();\n } else {\n const flagGroup = createGroup({ flags });\n flagGroup.body[0].body = removeAllNextSiblings();\n replaceWith(setParentDeep(flagGroup, parent), { traverse: true });\n }\n } else if (kind === \"keep\") {\n const firstAlt = root.body[0];\n const hasWrapperGroup = root.body.length === 1 && // Not emulatable if within a `CapturingGroup`\n hasOnlyChild(firstAlt, { type: \"Group\" }) && firstAlt.body[0].body.length === 1;\n const topLevel = hasWrapperGroup ? firstAlt.body[0] : root;\n if (parent.parent !== topLevel || topLevel.body.length > 1) {\n throw new Error(r`Uses \"\\K\" in a way that's unsupported`);\n }\n const lookbehind = createLookaroundAssertion({ behind: true });\n lookbehind.body[0].body = removeAllPrevSiblings();\n replaceWith(setParentDeep(lookbehind, parent));\n } else {\n throw new Error(`Unexpected directive kind \"${kind}\"`);\n }\n },\n Flags({ node, parent }) {\n if (node.posixIsAscii) {\n throw new Error('Unsupported flag \"P\"');\n }\n if (node.textSegmentMode === \"word\") {\n throw new Error('Unsupported flag \"y{w}\"');\n }\n [\n \"digitIsAscii\",\n // Flag D\n \"extended\",\n // Flag x\n \"posixIsAscii\",\n // Flag P\n \"spaceIsAscii\",\n // Flag S\n \"wordIsAscii\",\n // Flag W\n \"textSegmentMode\"\n // Flag y{g} or y{w}\n ].forEach((f) => delete node[f]);\n Object.assign(node, {\n // JS flag g; no Onig equiv\n global: false,\n // JS flag d; no Onig equiv\n hasIndices: false,\n // JS flag m; no Onig equiv but its behavior is always on in Onig. Onig's only line break\n // char is line feed, unlike JS, so this flag isn't used since it would produce inaccurate\n // results (also allows `^` and `$` to be used in the generator for string start and end)\n multiline: false,\n // JS flag y; no Onig equiv, but used for `\\G` emulation\n sticky: node.sticky ?? false\n // Note: Regex+ doesn't allow explicitly adding flags it handles implicitly, so leave out\n // properties `unicode` (JS flag u) and `unicodeSets` (JS flag v). Keep the existing values\n // for `ignoreCase` (flag i) and `dotAll` (JS flag s, but Onig flag m)\n });\n parent.options = {\n disable: {\n // Onig uses different rules for flag x than Regex+, so disable the implicit flag\n x: true,\n // Onig has no flag to control \"named capture only\" mode but contextually applies its\n // behavior when named capturing is used, so disable Regex+'s implicit flag for it\n n: true\n },\n force: {\n // Always add flag v because we're generating an AST that relies on it (it enables JS\n // support for Onig features nested classes, intersection, Unicode properties, etc.).\n // However, the generator might disable flag v based on its `target` option\n v: true\n }\n };\n },\n Group({ node }) {\n if (!node.flags) {\n return;\n }\n const { enable, disable } = node.flags;\n enable?.extended && delete enable.extended;\n disable?.extended && delete disable.extended;\n enable?.dotAll && disable?.dotAll && delete enable.dotAll;\n enable?.ignoreCase && disable?.ignoreCase && delete enable.ignoreCase;\n enable && !Object.keys(enable).length && delete node.flags.enable;\n disable && !Object.keys(disable).length && delete node.flags.disable;\n !node.flags.enable && !node.flags.disable && delete node.flags;\n },\n LookaroundAssertion({ node }, state) {\n const { kind } = node;\n if (kind === \"lookbehind\") {\n state.passedLookbehind = true;\n }\n },\n NamedCallout({ node, parent, replaceWith }) {\n const { kind } = node;\n if (kind === \"fail\") {\n replaceWith(setParentDeep(createLookaroundAssertion({ negate: true }), parent));\n } else {\n throw new Error(`Unsupported named callout \"(*${kind.toUpperCase()}\"`);\n }\n },\n Quantifier({ node }) {\n if (node.body.type === \"Quantifier\") {\n const group = createGroup();\n group.body[0].body.push(node.body);\n node.body = setParentDeep(group, node);\n }\n },\n Regex: {\n enter({ node }, { supportedGNodes }) {\n const leadingGs = [];\n let hasAltWithLeadG = false;\n let hasAltWithoutLeadG = false;\n for (const alt of node.body) {\n if (alt.body.length === 1 && alt.body[0].kind === \"search_start\") {\n alt.body.pop();\n } else {\n const leadingG = getLeadingG(alt.body);\n if (leadingG) {\n hasAltWithLeadG = true;\n Array.isArray(leadingG) ? leadingGs.push(...leadingG) : leadingGs.push(leadingG);\n } else {\n hasAltWithoutLeadG = true;\n }\n }\n }\n if (hasAltWithLeadG && !hasAltWithoutLeadG) {\n leadingGs.forEach((g) => supportedGNodes.add(g));\n }\n },\n exit(_, { accuracy, passedLookbehind, strategy }) {\n if (accuracy === \"strict\" && passedLookbehind && strategy) {\n throw new Error(r`Uses \"\\G\" in a way that requires non-strict accuracy`);\n }\n }\n },\n Subroutine({ node }, { jsGroupNameMap }) {\n let { ref } = node;\n if (typeof ref === \"string\" && !isValidJsGroupName(ref)) {\n ref = getAndStoreJsGroupName(ref, jsGroupNameMap);\n node.ref = ref;\n }\n }\n};\nvar SecondPassVisitor = {\n Backreference({ node }, { multiplexCapturesToLeftByRef, reffedNodesByReferencer }) {\n const { orphan, ref } = node;\n if (!orphan) {\n reffedNodesByReferencer.set(node, [...multiplexCapturesToLeftByRef.get(ref).map(({ node: node2 }) => node2)]);\n }\n },\n CapturingGroup: {\n enter({\n node,\n parent,\n replaceWith,\n skip\n }, {\n groupOriginByCopy,\n groupsByName,\n multiplexCapturesToLeftByRef,\n openRefs,\n reffedNodesByReferencer\n }) {\n const origin = groupOriginByCopy.get(node);\n if (origin && openRefs.has(node.number)) {\n const recursion2 = setParent(createRecursion(node.number), parent);\n reffedNodesByReferencer.set(recursion2, openRefs.get(node.number));\n replaceWith(recursion2);\n return;\n }\n openRefs.set(node.number, node);\n multiplexCapturesToLeftByRef.set(node.number, []);\n if (node.name) {\n getOrInsert(multiplexCapturesToLeftByRef, node.name, []);\n }\n const multiplexNodes = multiplexCapturesToLeftByRef.get(node.name ?? node.number);\n for (let i = 0; i < multiplexNodes.length; i++) {\n const multiplex = multiplexNodes[i];\n if (\n // This group is from subroutine expansion, and there's a multiplex value from either the\n // origin node or a prior subroutine expansion group with the same origin\n origin === multiplex.node || origin && origin === multiplex.origin || // This group is not from subroutine expansion, and it comes after a subroutine expansion\n // group that refers to this group\n node === multiplex.origin\n ) {\n multiplexNodes.splice(i, 1);\n break;\n }\n }\n multiplexCapturesToLeftByRef.get(node.number).push({ node, origin });\n if (node.name) {\n multiplexCapturesToLeftByRef.get(node.name).push({ node, origin });\n }\n if (node.name) {\n const groupsWithSameName = getOrInsert(groupsByName, node.name, /* @__PURE__ */ new Map());\n let hasDuplicateNameToRemove = false;\n if (origin) {\n hasDuplicateNameToRemove = true;\n } else {\n for (const groupInfo of groupsWithSameName.values()) {\n if (!groupInfo.hasDuplicateNameToRemove) {\n hasDuplicateNameToRemove = true;\n break;\n }\n }\n }\n groupsByName.get(node.name).set(node, { node, hasDuplicateNameToRemove });\n }\n },\n exit({ node }, { openRefs }) {\n openRefs.delete(node.number);\n }\n },\n Group: {\n enter({ node }, state) {\n state.prevFlags = state.currentFlags;\n if (node.flags) {\n state.currentFlags = getNewCurrentFlags(state.currentFlags, node.flags);\n }\n },\n exit(_, state) {\n state.currentFlags = state.prevFlags;\n }\n },\n Subroutine({ node, parent, replaceWith }, state) {\n const { isRecursive, ref } = node;\n if (isRecursive) {\n let reffed = parent;\n while (reffed = reffed.parent) {\n if (reffed.type === \"CapturingGroup\" && (reffed.name === ref || reffed.number === ref)) {\n break;\n }\n }\n state.reffedNodesByReferencer.set(node, reffed);\n return;\n }\n const reffedGroupNode = state.subroutineRefMap.get(ref);\n const isGlobalRecursion = ref === 0;\n const expandedSubroutine = isGlobalRecursion ? createRecursion(0) : (\n // The reffed group might itself contain subroutines, which are expanded during sub-traversal\n cloneCapturingGroup(reffedGroupNode, state.groupOriginByCopy, null)\n );\n let replacement = expandedSubroutine;\n if (!isGlobalRecursion) {\n const reffedGroupFlagMods = getCombinedFlagModsFromFlagNodes(getAllParents(\n reffedGroupNode,\n (p) => p.type === \"Group\" && !!p.flags\n ));\n const reffedGroupFlags = reffedGroupFlagMods ? getNewCurrentFlags(state.globalFlags, reffedGroupFlagMods) : state.globalFlags;\n if (!areFlagsEqual(reffedGroupFlags, state.currentFlags)) {\n replacement = createGroup({\n flags: getFlagModsFromFlags(reffedGroupFlags)\n });\n replacement.body[0].body.push(expandedSubroutine);\n }\n }\n replaceWith(setParentDeep(replacement, parent), { traverse: !isGlobalRecursion });\n }\n};\nvar ThirdPassVisitor = {\n Backreference({ node, parent, replaceWith }, state) {\n if (node.orphan) {\n state.highestOrphanBackref = Math.max(state.highestOrphanBackref, node.ref);\n return;\n }\n const reffedNodes = state.reffedNodesByReferencer.get(node);\n const participants = reffedNodes.filter((reffed) => canParticipateWithNode(reffed, node));\n if (!participants.length) {\n replaceWith(setParentDeep(createLookaroundAssertion({ negate: true }), parent));\n } else if (participants.length > 1) {\n const group = createGroup({\n atomic: true,\n body: participants.reverse().map((reffed) => createAlternative({\n body: [createBackreference(reffed.number)]\n }))\n });\n replaceWith(setParentDeep(group, parent));\n } else {\n node.ref = participants[0].number;\n }\n },\n CapturingGroup({ node }, state) {\n node.number = ++state.numCapturesToLeft;\n if (node.name) {\n if (state.groupsByName.get(node.name).get(node).hasDuplicateNameToRemove) {\n delete node.name;\n }\n }\n },\n Regex: {\n exit({ node }, state) {\n const numCapsNeeded = Math.max(state.highestOrphanBackref - state.numCapturesToLeft, 0);\n for (let i = 0; i < numCapsNeeded; i++) {\n const emptyCapture = createCapturingGroup();\n node.body.at(-1).body.push(emptyCapture);\n }\n }\n },\n Subroutine({ node }, state) {\n if (!node.isRecursive || node.ref === 0) {\n return;\n }\n node.ref = state.reffedNodesByReferencer.get(node).number;\n }\n};\nfunction addParentProperties(root) {\n traverse(root, {\n \"*\"({ node, parent }) {\n node.parent = parent;\n }\n });\n}\nfunction areFlagsEqual(a, b) {\n return a.dotAll === b.dotAll && a.ignoreCase === b.ignoreCase;\n}\nfunction canParticipateWithNode(capture, node) {\n let rightmostPoint = node;\n do {\n if (rightmostPoint.type === \"Regex\") {\n return false;\n }\n if (rightmostPoint.type === \"Alternative\") {\n continue;\n }\n if (rightmostPoint === capture) {\n return false;\n }\n const kidsOfParent = getKids(rightmostPoint.parent);\n for (const kid of kidsOfParent) {\n if (kid === rightmostPoint) {\n break;\n }\n if (kid === capture || isAncestorOf(kid, capture)) {\n return true;\n }\n }\n } while (rightmostPoint = rightmostPoint.parent);\n throw new Error(\"Unexpected path\");\n}\nfunction cloneCapturingGroup(obj, originMap, up, up2) {\n const store = Array.isArray(obj) ? [] : {};\n for (const [key, value] of Object.entries(obj)) {\n if (key === \"parent\") {\n store.parent = Array.isArray(up) ? up2 : up;\n } else if (value && typeof value === \"object\") {\n store[key] = cloneCapturingGroup(value, originMap, store, up);\n } else {\n if (key === \"type\" && value === \"CapturingGroup\") {\n originMap.set(store, originMap.get(obj) ?? obj);\n }\n store[key] = value;\n }\n }\n return store;\n}\nfunction createRecursion(ref) {\n const node = createSubroutine(ref);\n node.isRecursive = true;\n return node;\n}\nfunction getAllParents(node, filterFn) {\n const results = [];\n while (node = node.parent) {\n if (!filterFn || filterFn(node)) {\n results.push(node);\n }\n }\n return results;\n}\nfunction getAndStoreJsGroupName(name, map) {\n if (map.has(name)) {\n return map.get(name);\n }\n const jsName = `$${map.size}_${name.replace(/^[^$_\\p{IDS}]|[^$\\u200C\\u200D\\p{IDC}]/ug, \"_\")}`;\n map.set(name, jsName);\n return jsName;\n}\nfunction getCombinedFlagModsFromFlagNodes(flagNodes) {\n const flagProps = [\"dotAll\", \"ignoreCase\"];\n const combinedFlags = { enable: {}, disable: {} };\n flagNodes.forEach(({ flags }) => {\n flagProps.forEach((prop) => {\n if (flags.enable?.[prop]) {\n delete combinedFlags.disable[prop];\n combinedFlags.enable[prop] = true;\n }\n if (flags.disable?.[prop]) {\n combinedFlags.disable[prop] = true;\n }\n });\n });\n if (!Object.keys(combinedFlags.enable).length) {\n delete combinedFlags.enable;\n }\n if (!Object.keys(combinedFlags.disable).length) {\n delete combinedFlags.disable;\n }\n if (combinedFlags.enable || combinedFlags.disable) {\n return combinedFlags;\n }\n return null;\n}\nfunction getFlagModsFromFlags({ dotAll, ignoreCase }) {\n const mods = {};\n if (dotAll || ignoreCase) {\n mods.enable = {};\n dotAll && (mods.enable.dotAll = true);\n ignoreCase && (mods.enable.ignoreCase = true);\n }\n if (!dotAll || !ignoreCase) {\n mods.disable = {};\n !dotAll && (mods.disable.dotAll = true);\n !ignoreCase && (mods.disable.ignoreCase = true);\n }\n return mods;\n}\nfunction getKids(node) {\n if (!node) {\n throw new Error(\"Node expected\");\n }\n const { body } = node;\n return Array.isArray(body) ? body : body ? [body] : null;\n}\nfunction getLeadingG(els) {\n const firstToConsider = els.find((el) => el.kind === \"search_start\" || isLoneGLookaround(el, { negate: false }) || !isAlwaysZeroLength(el));\n if (!firstToConsider) {\n return null;\n }\n if (firstToConsider.kind === \"search_start\") {\n return firstToConsider;\n }\n if (firstToConsider.type === \"LookaroundAssertion\") {\n return firstToConsider.body[0].body[0];\n }\n if (firstToConsider.type === \"CapturingGroup\" || firstToConsider.type === \"Group\") {\n const gNodesForGroup = [];\n for (const alt of firstToConsider.body) {\n const leadingG = getLeadingG(alt.body);\n if (!leadingG) {\n return null;\n }\n Array.isArray(leadingG) ? gNodesForGroup.push(...leadingG) : gNodesForGroup.push(leadingG);\n }\n return gNodesForGroup;\n }\n return null;\n}\nfunction isAncestorOf(node, descendant) {\n const kids = getKids(node) ?? [];\n for (const kid of kids) {\n if (kid === descendant || isAncestorOf(kid, descendant)) {\n return true;\n }\n }\n return false;\n}\nfunction isAlwaysZeroLength({ type }) {\n return type === \"Assertion\" || type === \"Directive\" || type === \"LookaroundAssertion\";\n}\nfunction isAlwaysNonZeroLength(node) {\n const types = [\n \"Character\",\n \"CharacterClass\",\n \"CharacterSet\"\n ];\n return types.includes(node.type) || node.type === \"Quantifier\" && node.min && types.includes(node.body.type);\n}\nfunction isLoneGLookaround(node, options) {\n const opts = {\n negate: null,\n ...options\n };\n return node.type === \"LookaroundAssertion\" && (opts.negate === null || node.negate === opts.negate) && node.body.length === 1 && hasOnlyChild(node.body[0], {\n type: \"Assertion\",\n kind: \"search_start\"\n });\n}\nfunction isValidJsGroupName(name) {\n return /^[$_\\p{IDS}][$\\u200C\\u200D\\p{IDC}]*$/u.test(name);\n}\nfunction parseFragment(pattern, options) {\n const ast = parse(pattern, {\n ...options,\n // Providing a custom set of Unicode property names avoids converting some JS Unicode\n // properties (ex: `\\p{Alpha}`) to Onig POSIX classes\n unicodePropertyMap: JsUnicodePropertyMap\n });\n const alts = ast.body;\n if (alts.length > 1 || alts[0].body.length > 1) {\n return createGroup({ body: alts });\n }\n return alts[0].body[0];\n}\nfunction setNegate(node, negate) {\n node.negate = negate;\n return node;\n}\nfunction setParent(node, parent) {\n node.parent = parent;\n return node;\n}\nfunction setParentDeep(node, parent) {\n addParentProperties(node);\n node.parent = parent;\n return node;\n}\n\n// src/generate.js\nimport { createAlternative as createAlternative2, createCharacter as createCharacter2, createGroup as createGroup2 } from \"oniguruma-parser/parser\";\nimport { traverse as traverse2 } from \"oniguruma-parser/traverser\";\nfunction generate(ast, options) {\n const opts = getOptions(options);\n const minTargetEs2024 = isMinTarget(opts.target, \"ES2024\");\n const minTargetEs2025 = isMinTarget(opts.target, \"ES2025\");\n const recursionLimit = opts.rules.recursionLimit;\n if (!Number.isInteger(recursionLimit) || recursionLimit < 2 || recursionLimit > 20) {\n throw new Error(\"Invalid recursionLimit; use 2-20\");\n }\n let hasCaseInsensitiveNode = null;\n let hasCaseSensitiveNode = null;\n if (!minTargetEs2025) {\n const iStack = [ast.flags.ignoreCase];\n traverse2(ast, FlagModifierVisitor, {\n getCurrentModI: () => iStack.at(-1),\n popModI() {\n iStack.pop();\n },\n pushModI(isIOn) {\n iStack.push(isIOn);\n },\n setHasCasedChar() {\n if (iStack.at(-1)) {\n hasCaseInsensitiveNode = true;\n } else {\n hasCaseSensitiveNode = true;\n }\n }\n });\n }\n const appliedGlobalFlags = {\n dotAll: ast.flags.dotAll,\n // - Turn global flag i on if a case insensitive node was used and no case sensitive nodes were\n // used (to avoid unnecessary node expansion).\n // - Turn global flag i off if a case sensitive node was used (since case sensitivity can't be\n // forced without the use of ES2025 flag groups)\n ignoreCase: !!((ast.flags.ignoreCase || hasCaseInsensitiveNode) && !hasCaseSensitiveNode)\n };\n let lastNode = ast;\n const state = {\n accuracy: opts.accuracy,\n appliedGlobalFlags,\n captureMap: /* @__PURE__ */ new Map(),\n currentFlags: {\n dotAll: ast.flags.dotAll,\n ignoreCase: ast.flags.ignoreCase\n },\n inCharClass: false,\n lastNode,\n originMap: ast._originMap,\n recursionLimit,\n useAppliedIgnoreCase: !!(!minTargetEs2025 && hasCaseInsensitiveNode && hasCaseSensitiveNode),\n useFlagMods: minTargetEs2025,\n useFlagV: minTargetEs2024,\n verbose: opts.verbose\n };\n function gen(node) {\n state.lastNode = lastNode;\n lastNode = node;\n const fn = throwIfNullish(generator[node.type], `Unexpected node type \"${node.type}\"`);\n return fn(node, state, gen);\n }\n const result = {\n pattern: ast.body.map(gen).join(\"|\"),\n // Could reset `lastNode` at this point via `lastNode = ast`, but it isn't needed by flags\n flags: gen(ast.flags),\n options: { ...ast.options }\n };\n if (!minTargetEs2024) {\n delete result.options.force.v;\n result.options.disable.v = true;\n result.options.unicodeSetsPlugin = null;\n }\n result._captureTransfers = /* @__PURE__ */ new Map();\n result._hiddenCaptures = [];\n state.captureMap.forEach((value, key) => {\n if (value.hidden) {\n result._hiddenCaptures.push(key);\n }\n if (value.transferTo) {\n getOrInsert(result._captureTransfers, value.transferTo, []).push(key);\n }\n });\n return result;\n}\nvar FlagModifierVisitor = {\n \"*\": {\n enter({ node }, state) {\n if (isAnyGroup(node)) {\n const currentModI = state.getCurrentModI();\n state.pushModI(\n node.flags ? getNewCurrentFlags({ ignoreCase: currentModI }, node.flags).ignoreCase : currentModI\n );\n }\n },\n exit({ node }, state) {\n if (isAnyGroup(node)) {\n state.popModI();\n }\n }\n },\n Backreference(_, state) {\n state.setHasCasedChar();\n },\n Character({ node }, state) {\n if (charHasCase(cp(node.value))) {\n state.setHasCasedChar();\n }\n },\n CharacterClassRange({ node, skip }, state) {\n skip();\n if (getCasesOutsideCharClassRange(node, { firstOnly: true }).length) {\n state.setHasCasedChar();\n }\n },\n CharacterSet({ node }, state) {\n if (node.kind === \"property\" && UnicodePropertiesWithSpecificCase.has(node.value)) {\n state.setHasCasedChar();\n }\n }\n};\nvar generator = {\n /**\n @param {AlternativeNode} node\n */\n Alternative({ body }, _, gen) {\n return body.map(gen).join(\"\");\n },\n /**\n @param {AssertionNode} node\n */\n Assertion({ kind, negate }) {\n if (kind === \"string_end\") {\n return \"$\";\n }\n if (kind === \"string_start\") {\n return \"^\";\n }\n if (kind === \"word_boundary\") {\n return negate ? r`\\B` : r`\\b`;\n }\n throw new Error(`Unexpected assertion kind \"${kind}\"`);\n },\n /**\n @param {BackreferenceNode} node\n */\n Backreference({ ref }, state) {\n if (typeof ref !== \"number\") {\n throw new Error(\"Unexpected named backref in transformed AST\");\n }\n if (!state.useFlagMods && state.accuracy === \"strict\" && state.currentFlags.ignoreCase && !state.captureMap.get(ref).ignoreCase) {\n throw new Error(\"Use of case-insensitive backref to case-sensitive group requires target ES2025 or non-strict accuracy\");\n }\n return \"\\\\\" + ref;\n },\n /**\n @param {CapturingGroupNode} node\n */\n CapturingGroup(node, state, gen) {\n const { body, name, number } = node;\n const data = { ignoreCase: state.currentFlags.ignoreCase };\n const origin = state.originMap.get(node);\n if (origin) {\n data.hidden = true;\n if (number > origin.number) {\n data.transferTo = origin.number;\n }\n }\n state.captureMap.set(number, data);\n return `(${name ? `?<${name}>` : \"\"}${body.map(gen).join(\"|\")})`;\n },\n /**\n @param {CharacterNode} node\n */\n Character({ value }, state) {\n const char = cp(value);\n const escaped = getCharEscape(value, {\n escDigit: state.lastNode.type === \"Backreference\",\n inCharClass: state.inCharClass,\n useFlagV: state.useFlagV\n });\n if (escaped !== char) {\n return escaped;\n }\n if (state.useAppliedIgnoreCase && state.currentFlags.ignoreCase && charHasCase(char)) {\n const cases = getIgnoreCaseMatchChars(char);\n return state.inCharClass ? cases.join(\"\") : cases.length > 1 ? `[${cases.join(\"\")}]` : cases[0];\n }\n return char;\n },\n /**\n @param {CharacterClassNode} node\n */\n CharacterClass(node, state, gen) {\n const { kind, negate, parent } = node;\n let { body } = node;\n if (kind === \"intersection\" && !state.useFlagV) {\n throw new Error(\"Use of character class intersection requires min target ES2024\");\n }\n if (envFlags.bugFlagVLiteralHyphenIsRange && state.useFlagV && body.some(isLiteralHyphen)) {\n body = [createCharacter2(45), ...body.filter((kid) => !isLiteralHyphen(kid))];\n }\n const genClass = () => `[${negate ? \"^\" : \"\"}${body.map(gen).join(kind === \"intersection\" ? \"&&\" : \"\")}]`;\n if (!state.inCharClass) {\n if (\n // Already established `kind !== 'intersection'` if `!state.useFlagV`; don't check again\n (!state.useFlagV || envFlags.bugNestedClassIgnoresNegation) && !negate\n ) {\n const negatedChildClasses = body.filter(\n (kid) => kid.type === \"CharacterClass\" && kid.kind === \"union\" && kid.negate\n );\n if (negatedChildClasses.length) {\n const group = createGroup2();\n const groupFirstAlt = group.body[0];\n group.parent = parent;\n groupFirstAlt.parent = group;\n body = body.filter((kid) => !negatedChildClasses.includes(kid));\n node.body = body;\n if (body.length) {\n node.parent = groupFirstAlt;\n groupFirstAlt.body.push(node);\n } else {\n group.body.pop();\n }\n negatedChildClasses.forEach((cc) => {\n const newAlt = createAlternative2({ body: [cc] });\n cc.parent = newAlt;\n newAlt.parent = group;\n group.body.push(newAlt);\n });\n return gen(group);\n }\n }\n state.inCharClass = true;\n const result = genClass();\n state.inCharClass = false;\n return result;\n }\n const firstEl = body[0];\n if (\n // Already established that the parent is a char class via `inCharClass`; don't check again\n kind === \"union\" && !negate && firstEl && // Allows many nested classes to work with `target` ES2018 which doesn't support nesting\n ((!state.useFlagV || !state.verbose) && parent.kind === \"union\" && !(envFlags.bugFlagVLiteralHyphenIsRange && state.useFlagV) || !state.verbose && parent.kind === \"intersection\" && // JS doesn't allow intersection with union or ranges\n body.length === 1 && firstEl.type !== \"CharacterClassRange\")\n ) {\n return body.map(gen).join(\"\");\n }\n if (!state.useFlagV && parent.type === \"CharacterClass\") {\n throw new Error(\"Uses nested character class in a way that requires min target ES2024\");\n }\n return genClass();\n },\n /**\n @param {CharacterClassRangeNode} node\n */\n CharacterClassRange(node, state) {\n const min = node.min.value;\n const max = node.max.value;\n const escOpts = {\n escDigit: false,\n inCharClass: true,\n useFlagV: state.useFlagV\n };\n const minStr = getCharEscape(min, escOpts);\n const maxStr = getCharEscape(max, escOpts);\n const extraChars = /* @__PURE__ */ new Set();\n if (state.useAppliedIgnoreCase && state.currentFlags.ignoreCase) {\n const charsOutsideRange = getCasesOutsideCharClassRange(node);\n const ranges = getCodePointRangesFromChars(charsOutsideRange);\n ranges.forEach((value) => {\n extraChars.add(\n Array.isArray(value) ? `${getCharEscape(value[0], escOpts)}-${getCharEscape(value[1], escOpts)}` : getCharEscape(value, escOpts)\n );\n });\n }\n return `${minStr}-${maxStr}${[...extraChars].join(\"\")}`;\n },\n /**\n @param {CharacterSetNode} node\n */\n CharacterSet({ kind, negate, value, key }, state) {\n if (kind === \"dot\") {\n return state.currentFlags.dotAll ? state.appliedGlobalFlags.dotAll || state.useFlagMods ? \".\" : \"[^]\" : (\n // Onig's only line break char is line feed, unlike JS\n r`[^\\n]`\n );\n }\n if (kind === \"digit\") {\n return negate ? r`\\D` : r`\\d`;\n }\n if (kind === \"property\") {\n if (state.useAppliedIgnoreCase && state.currentFlags.ignoreCase && UnicodePropertiesWithSpecificCase.has(value)) {\n throw new Error(`Unicode property \"${value}\" can't be case-insensitive when other chars have specific case`);\n }\n return `${negate ? r`\\P` : r`\\p`}{${key ? `${key}=` : \"\"}${value}}`;\n }\n if (kind === \"word\") {\n return negate ? r`\\W` : r`\\w`;\n }\n throw new Error(`Unexpected character set kind \"${kind}\"`);\n },\n /**\n @param {FlagsNode} node\n */\n Flags(node, state) {\n return (\n // The transformer should never turn on the properties for flags d, g, m since Onig doesn't\n // have equivs. Flag m is never used since Onig uses different line break chars than JS\n // (node.hasIndices ? 'd' : '') +\n // (node.global ? 'g' : '') +\n // (node.multiline ? 'm' : '') +\n (state.appliedGlobalFlags.ignoreCase ? \"i\" : \"\") + (node.dotAll ? \"s\" : \"\") + (node.sticky ? \"y\" : \"\")\n );\n },\n /**\n @param {GroupNode} node\n */\n Group({ atomic: atomic2, body, flags, parent }, state, gen) {\n const currentFlags = state.currentFlags;\n if (flags) {\n state.currentFlags = getNewCurrentFlags(currentFlags, flags);\n }\n const contents = body.map(gen).join(\"|\");\n const result = !state.verbose && body.length === 1 && // Single alt\n parent.type !== \"Quantifier\" && !atomic2 && (!state.useFlagMods || !flags) ? contents : `(?${getGroupPrefix(atomic2, flags, state.useFlagMods)}${contents})`;\n state.currentFlags = currentFlags;\n return result;\n },\n /**\n @param {LookaroundAssertionNode} node\n */\n LookaroundAssertion({ body, kind, negate }, _, gen) {\n const prefix = `${kind === \"lookahead\" ? \"\" : \"<\"}${negate ? \"!\" : \"=\"}`;\n return `(?${prefix}${body.map(gen).join(\"|\")})`;\n },\n /**\n @param {QuantifierNode} node\n */\n Quantifier(node, _, gen) {\n return gen(node.body) + getQuantifierStr(node);\n },\n /**\n @param {SubroutineNode & {isRecursive: true}} node\n */\n Subroutine({ isRecursive, ref }, state) {\n if (!isRecursive) {\n throw new Error(\"Unexpected non-recursive subroutine in transformed AST\");\n }\n const limit = state.recursionLimit;\n return ref === 0 ? `(?R=${limit})` : r`\\g<${ref}&R=${limit}>`;\n }\n};\nvar BaseEscapeChars = /* @__PURE__ */ new Set([\n \"$\",\n \"(\",\n \")\",\n \"*\",\n \"+\",\n \".\",\n \"?\",\n \"[\",\n \"\\\\\",\n \"]\",\n \"^\",\n \"{\",\n \"|\",\n \"}\"\n]);\nvar CharClassEscapeChars = /* @__PURE__ */ new Set([\n \"-\",\n \"\\\\\",\n \"]\",\n \"^\",\n // Literal `[` doesn't require escaping with flag u, but this can help work around regex source\n // linters and regex syntax processors that expect unescaped `[` to create a nested class\n \"[\"\n]);\nvar CharClassEscapeCharsFlagV = /* @__PURE__ */ new Set([\n \"(\",\n \")\",\n \"-\",\n \"/\",\n \"[\",\n \"\\\\\",\n \"]\",\n \"^\",\n \"{\",\n \"|\",\n \"}\",\n // Double punctuators; also includes already-listed `-` and `^`\n \"!\",\n \"#\",\n \"$\",\n \"%\",\n \"&\",\n \"*\",\n \"+\",\n \",\",\n \".\",\n \":\",\n \";\",\n \"<\",\n \"=\",\n \">\",\n \"?\",\n \"@\",\n \"`\",\n \"~\"\n]);\nvar CharCodeEscapeMap = /* @__PURE__ */ new Map([\n [9, r`\\t`],\n // horizontal tab\n [10, r`\\n`],\n // line feed\n [11, r`\\v`],\n // vertical tab\n [12, r`\\f`],\n // form feed\n [13, r`\\r`],\n // carriage return\n [8232, r`\\u2028`],\n // line separator\n [8233, r`\\u2029`],\n // paragraph separator\n [65279, r`\\uFEFF`]\n // ZWNBSP/BOM\n]);\nvar casedRe = /^\\p{Cased}$/u;\nfunction charHasCase(char) {\n return casedRe.test(char);\n}\nfunction getCasesOutsideCharClassRange(node, options) {\n const firstOnly = !!options?.firstOnly;\n const min = node.min.value;\n const max = node.max.value;\n const found = [];\n if (min < 65 && (max === 65535 || max >= 131071) || min === 65536 && max >= 131071) {\n return found;\n }\n for (let i = min; i <= max; i++) {\n const char = cp(i);\n if (!charHasCase(char)) {\n continue;\n }\n const charsOutsideRange = getIgnoreCaseMatchChars(char).filter((caseOfChar) => {\n const num = caseOfChar.codePointAt(0);\n return num < min || num > max;\n });\n if (charsOutsideRange.length) {\n found.push(...charsOutsideRange);\n if (firstOnly) {\n break;\n }\n }\n }\n return found;\n}\nfunction getCharEscape(codePoint, { escDigit, inCharClass, useFlagV }) {\n if (CharCodeEscapeMap.has(codePoint)) {\n return CharCodeEscapeMap.get(codePoint);\n }\n if (\n // Control chars, etc.; condition modeled on the Chrome developer console's display for strings\n codePoint < 32 || codePoint > 126 && codePoint < 160 || // Unicode planes 4-16; unassigned, special purpose, and private use area\n codePoint > 262143 || // Avoid corrupting a preceding backref by immediately following it with a literal digit\n escDigit && isDigitCharCode(codePoint)\n ) {\n return codePoint > 255 ? `\\\\u{${codePoint.toString(16).toUpperCase()}}` : `\\\\x${codePoint.toString(16).toUpperCase().padStart(2, \"0\")}`;\n }\n const escapeChars = inCharClass ? useFlagV ? CharClassEscapeCharsFlagV : CharClassEscapeChars : BaseEscapeChars;\n const char = cp(codePoint);\n return (escapeChars.has(char) ? \"\\\\\" : \"\") + char;\n}\nfunction getCodePointRangesFromChars(chars) {\n const codePoints = chars.map((char) => char.codePointAt(0)).sort((a, b) => a - b);\n const values = [];\n let start = null;\n for (let i = 0; i < codePoints.length; i++) {\n if (codePoints[i + 1] === codePoints[i] + 1) {\n start ??= codePoints[i];\n } else if (start === null) {\n values.push(codePoints[i]);\n } else {\n values.push([start, codePoints[i]]);\n start = null;\n }\n }\n return values;\n}\nfunction getGroupPrefix(atomic2, flagMods, useFlagMods) {\n if (atomic2) {\n return \">\";\n }\n let mods = \"\";\n if (flagMods && useFlagMods) {\n const { enable, disable } = flagMods;\n mods = (enable?.ignoreCase ? \"i\" : \"\") + (enable?.dotAll ? \"s\" : \"\") + (disable ? \"-\" : \"\") + (disable?.ignoreCase ? \"i\" : \"\") + (disable?.dotAll ? \"s\" : \"\");\n }\n return `${mods}:`;\n}\nfunction getQuantifierStr({ kind, max, min }) {\n let base;\n if (!min && max === 1) {\n base = \"?\";\n } else if (!min && max === Infinity) {\n base = \"*\";\n } else if (min === 1 && max === Infinity) {\n base = \"+\";\n } else if (min === max) {\n base = `{${min}}`;\n } else {\n base = `{${min},${max === Infinity ? \"\" : max}}`;\n }\n return base + {\n greedy: \"\",\n lazy: \"?\",\n possessive: \"+\"\n }[kind];\n}\nfunction isAnyGroup({ type }) {\n return type === \"CapturingGroup\" || type === \"Group\" || type === \"LookaroundAssertion\";\n}\nfunction isDigitCharCode(value) {\n return value > 47 && value < 58;\n}\nfunction isLiteralHyphen({ type, value }) {\n return type === \"Character\" && value === 45;\n}\n\n// src/subclass.js\nvar EmulatedRegExp = class _EmulatedRegExp extends RegExp {\n /**\n @type {Map<number, {\n hidden?: true;\n transferTo?: number;\n }>}\n */\n #captureMap = /* @__PURE__ */ new Map();\n /**\n @type {RegExp | EmulatedRegExp | null}\n */\n #compiled = null;\n /**\n @type {string}\n */\n #pattern;\n /**\n @type {Map<number, string>?}\n */\n #nameMap = null;\n /**\n @type {string?}\n */\n #strategy = null;\n /**\n Can be used to serialize the instance.\n @type {EmulatedRegExpOptions}\n */\n rawOptions = {};\n // Override the getter with one that works with lazy-compiled regexes\n get source() {\n return this.#pattern || \"(?:)\";\n }\n /**\n @overload\n @param {string} pattern\n @param {string} [flags]\n @param {EmulatedRegExpOptions} [options]\n */\n /**\n @overload\n @param {EmulatedRegExp} pattern\n @param {string} [flags]\n */\n constructor(pattern, flags, options) {\n const lazyCompile = !!options?.lazyCompile;\n if (pattern instanceof RegExp) {\n if (options) {\n throw new Error(\"Cannot provide options when copying a regexp\");\n }\n const re = pattern;\n super(re, flags);\n this.#pattern = re.source;\n if (re instanceof _EmulatedRegExp) {\n this.#captureMap = re.#captureMap;\n this.#nameMap = re.#nameMap;\n this.#strategy = re.#strategy;\n this.rawOptions = re.rawOptions;\n }\n } else {\n const opts = {\n hiddenCaptures: [],\n strategy: null,\n transfers: [],\n ...options\n };\n super(lazyCompile ? \"\" : pattern, flags);\n this.#pattern = pattern;\n this.#captureMap = createCaptureMap(opts.hiddenCaptures, opts.transfers);\n this.#strategy = opts.strategy;\n this.rawOptions = options ?? {};\n }\n if (!lazyCompile) {\n this.#compiled = this;\n }\n }\n /**\n Called internally by all String/RegExp methods that use regexes.\n @override\n @param {string} str\n @returns {RegExpExecArray?}\n */\n exec(str) {\n if (!this.#compiled) {\n const { lazyCompile, ...rest } = this.rawOptions;\n this.#compiled = new _EmulatedRegExp(this.#pattern, this.flags, rest);\n }\n const useLastIndex = this.global || this.sticky;\n const pos = this.lastIndex;\n if (this.#strategy === \"clip_search\" && useLastIndex && pos) {\n this.lastIndex = 0;\n const match = this.#execCore(str.slice(pos));\n if (match) {\n adjustMatchDetailsForOffset(match, pos, str, this.hasIndices);\n this.lastIndex += pos;\n }\n return match;\n }\n return this.#execCore(str);\n }\n /**\n Adds support for hidden and transfer captures.\n @param {string} str\n @returns\n */\n #execCore(str) {\n this.#compiled.lastIndex = this.lastIndex;\n const match = super.exec.call(this.#compiled, str);\n this.lastIndex = this.#compiled.lastIndex;\n if (!match || !this.#captureMap.size) {\n return match;\n }\n const matchCopy = [...match];\n match.length = 1;\n let indicesCopy;\n if (this.hasIndices) {\n indicesCopy = [...match.indices];\n match.indices.length = 1;\n }\n const mappedNums = [0];\n for (let i = 1; i < matchCopy.length; i++) {\n const { hidden, transferTo } = this.#captureMap.get(i) ?? {};\n if (hidden) {\n mappedNums.push(null);\n } else {\n mappedNums.push(match.length);\n match.push(matchCopy[i]);\n if (this.hasIndices) {\n match.indices.push(indicesCopy[i]);\n }\n }\n if (transferTo && matchCopy[i] !== void 0) {\n const to = mappedNums[transferTo];\n if (!to) {\n throw new Error(`Invalid capture transfer to \"${to}\"`);\n }\n match[to] = matchCopy[i];\n if (this.hasIndices) {\n match.indices[to] = indicesCopy[i];\n }\n if (match.groups) {\n if (!this.#nameMap) {\n this.#nameMap = createNameMap(this.source);\n }\n const name = this.#nameMap.get(transferTo);\n if (name) {\n match.groups[name] = matchCopy[i];\n if (this.hasIndices) {\n match.indices.groups[name] = indicesCopy[i];\n }\n }\n }\n }\n }\n return match;\n }\n};\nfunction adjustMatchDetailsForOffset(match, offset, input, hasIndices) {\n match.index += offset;\n match.input = input;\n if (hasIndices) {\n const indices = match.indices;\n for (let i = 0; i < indices.length; i++) {\n const arr = indices[i];\n if (arr) {\n indices[i] = [arr[0] + offset, arr[1] + offset];\n }\n }\n const groupIndices = indices.groups;\n if (groupIndices) {\n Object.keys(groupIndices).forEach((key) => {\n const arr = groupIndices[key];\n if (arr) {\n groupIndices[key] = [arr[0] + offset, arr[1] + offset];\n }\n });\n }\n }\n}\nfunction createCaptureMap(hiddenCaptures, transfers) {\n const captureMap = /* @__PURE__ */ new Map();\n for (const num of hiddenCaptures) {\n captureMap.set(num, {\n hidden: true\n });\n }\n for (const [to, from] of transfers) {\n for (const num of from) {\n getOrInsert(captureMap, num, {}).transferTo = to;\n }\n }\n return captureMap;\n}\nfunction createNameMap(pattern) {\n const re = /(?<capture>\\((?:\\?<(?![=!])(?<name>[^>]+)>|(?!\\?)))|\\\\?./gsu;\n const map = /* @__PURE__ */ new Map();\n let numCharClassesOpen = 0;\n let numCaptures = 0;\n let match;\n while (match = re.exec(pattern)) {\n const { 0: m, groups: { capture, name } } = match;\n if (m === \"[\") {\n numCharClassesOpen++;\n } else if (!numCharClassesOpen) {\n if (capture) {\n numCaptures++;\n if (name) {\n map.set(numCaptures, name);\n }\n }\n } else if (m === \"]\") {\n numCharClassesOpen--;\n }\n }\n return map;\n}\n\n// src/index.js\nimport { parse as parse2 } from \"oniguruma-parser/parser\";\nimport { atomic, possessive } from \"regex/internals\";\nimport { recursion } from \"regex-recursion\";\nfunction toRegExp(pattern, options) {\n const d = toRegExpDetails(pattern, options);\n if (d.options) {\n return new EmulatedRegExp(d.pattern, d.flags, d.options);\n }\n return new RegExp(d.pattern, d.flags);\n}\nfunction toRegExpDetails(pattern, options) {\n const opts = getOptions(options);\n const onigurumaAst = parse2(pattern, {\n flags: opts.flags,\n normalizeUnknownPropertyNames: true,\n rules: {\n captureGroup: opts.rules.captureGroup,\n singleline: opts.rules.singleline\n },\n skipBackrefValidation: opts.rules.allowOrphanBackrefs,\n unicodePropertyMap: JsUnicodePropertyMap\n });\n const regexPlusAst = transform(onigurumaAst, {\n accuracy: opts.accuracy,\n asciiWordBoundaries: opts.rules.asciiWordBoundaries,\n avoidSubclass: opts.avoidSubclass,\n bestEffortTarget: opts.target\n });\n const generated = generate(regexPlusAst, opts);\n const recursionResult = recursion(generated.pattern, {\n captureTransfers: generated._captureTransfers,\n hiddenCaptures: generated._hiddenCaptures,\n mode: \"external\"\n });\n const possessiveResult = possessive(recursionResult.pattern);\n const atomicResult = atomic(possessiveResult.pattern, {\n captureTransfers: recursionResult.captureTransfers,\n hiddenCaptures: recursionResult.hiddenCaptures\n });\n const details = {\n pattern: atomicResult.pattern,\n flags: `${opts.hasIndices ? \"d\" : \"\"}${opts.global ? \"g\" : \"\"}${generated.flags}${generated.options.disable.v ? \"u\" : \"v\"}`\n };\n if (opts.avoidSubclass) {\n if (opts.lazyCompileLength !== Infinity) {\n throw new Error(\"Lazy compilation requires subclass\");\n }\n } else {\n const hiddenCaptures = atomicResult.hiddenCaptures.sort((a, b) => a - b);\n const transfers = Array.from(atomicResult.captureTransfers);\n const strategy = regexPlusAst._strategy;\n const lazyCompile = details.pattern.length >= opts.lazyCompileLength;\n if (hiddenCaptures.length || transfers.length || strategy || lazyCompile) {\n details.options = {\n ...hiddenCaptures.length && { hiddenCaptures },\n ...transfers.length && { transfers },\n ...strategy && { strategy },\n ...lazyCompile && { lazyCompile }\n };\n }\n }\n return details;\n}\nexport {\n EmulatedRegExp,\n toRegExp,\n toRegExpDetails\n};\n//# sourceMappingURL=index.js.map\n",
|
|
84
84
|
"import {\n createShikiHighlighterComponent,\n isInlineCode,\n rehypeInlineCodeProperty,\n useShikiHighlighter\n} from \"./chunk-EXJNTVNR.js\";\n\n// src/bundles/full.ts\nimport {\n getSingletonHighlighter\n} from \"shiki\";\nimport { createOnigurumaEngine } from \"shiki/engine/oniguruma\";\nasync function createFullHighlighter(langsToLoad, themesToLoad, engine) {\n try {\n return await getSingletonHighlighter({\n langs: [langsToLoad],\n themes: themesToLoad,\n engine: engine ?? createOnigurumaEngine(import(\"shiki/wasm\"))\n });\n } catch (error) {\n if (error instanceof Error && error.message.includes(\"Language\")) {\n return await getSingletonHighlighter({\n langs: [\"plaintext\"],\n themes: themesToLoad,\n engine: engine ?? createOnigurumaEngine(import(\"shiki/wasm\"))\n });\n }\n throw error;\n }\n}\n\n// src/index.ts\nimport {\n createJavaScriptRegexEngine,\n createJavaScriptRawEngine\n} from \"shiki/engine/javascript\";\nvar useShikiHighlighter2 = (code, lang, themeInput, options = {}) => {\n return useShikiHighlighter(\n code,\n lang,\n themeInput,\n options,\n createFullHighlighter\n );\n};\nvar ShikiHighlighter = createShikiHighlighterComponent(\n useShikiHighlighter2\n);\nvar src_default = ShikiHighlighter;\nexport {\n ShikiHighlighter,\n createJavaScriptRawEngine,\n createJavaScriptRegexEngine,\n src_default as default,\n isInlineCode,\n rehypeInlineCodeProperty,\n useShikiHighlighter2 as useShikiHighlighter\n};\n//# sourceMappingURL=index.js.map",
|
|
85
|
-
"import { type JSX } from
|
|
86
|
-
"import { type ComponentChildren, type JSX } from
|
|
87
|
-
"import { type JSX } from
|
|
88
|
-
"/**\n * Formats a byte count into a human-readable string.\n *\n * @param bytes - The number of bytes to format\n * @returns A human-readable string representation (e.g., \"1.5 MB\")\n */\nexport function formatBytes(bytes: number): string {\n if (bytes === 0) return
|
|
89
|
-
"interface
|
|
90
|
-
"import type {\n
|
|
91
|
-
"import { type JSX } from 'preact';\nimport { useCallback, useMemo, useState } from 'preact/hooks';\nimport { ArrowUpCircle, Download, File, History, Info, Layers, RefreshCw, Search, Zap } from '../icons';\n\nimport type {\n ICheckUpdateResponse,\n IInstallToolRequest,\n IInstallToolResponse,\n ISerializablePlatformConfigEntry,\n ISerializableToolConfig,\n IToolDetail,\n IToolHistory,\n IUpdateToolResponse,\n} from '../../shared/types';\nimport { postApi } from '../api';\nimport { InstallMethodBadge } from '../components/InstallMethodBadge';\nimport { ReadmeCard } from '../components/ReadmeCard';\nimport { StatusBadge } from '../components/StatusBadge';\nimport { ToolHistory } from '../components/ToolHistory';\nimport { ToolSourceCard } from '../components/ToolSourceCard';\nimport { FileTree } from '../components/TreeNode';\nimport { Button } from '../components/ui/Button';\nimport { TitledCard } from '../components/ui/TitledCard';\nimport { useFetch } from '../hooks/useFetch';\nimport { formatBytes } from '../utils/format';\nimport { buildTreeForTool } from '../utils/tree';\nimport {\n buildBinaryToToolMap,\n findDependentTools,\n getBinaryName,\n getReadmeRepo,\n getSourceInfo,\n} from './tool-detail-utils';\n\nfunction getSourceDisplay(config: ISerializableToolConfig): JSX.Element | null {\n const sourceInfo = getSourceInfo(config);\n if (!sourceInfo) return null;\n\n return (\n <div class='flex items-center gap-2'>\n <span class='text-sm text-muted-foreground w-24'>Source</span>\n {sourceInfo.url ?\n (\n <a\n href={sourceInfo.url}\n target='_blank'\n rel='noopener noreferrer'\n class='text-sm text-blue-500 hover:underline break-all'\n >\n {sourceInfo.value}\n </a>\n ) :\n (\n <span class='text-sm font-medium break-all'>\n {sourceInfo.value}\n </span>\n )}\n </div>\n );\n}\n\nfunction PlatformConfigEntry({ entry }: { entry: ISerializablePlatformConfigEntry; }): JSX.Element {\n const platformLabel = entry.platforms.join(', ');\n const archLabel = entry.architectures ? ` (${entry.architectures.join(', ')})` : '';\n\n return (\n <div class='border border-border rounded-md p-3 space-y-2'>\n <div class='flex items-center gap-2'>\n <span class='text-sm font-medium text-foreground'>\n {platformLabel}\n {archLabel}\n </span>\n </div>\n <div class='pl-2 space-y-1.5 text-sm'>\n {entry.installationMethod && (\n <div class='flex items-center gap-2'>\n <span class='text-muted-foreground'>Method:</span>\n <InstallMethodBadge method={entry.installationMethod} ghCli={entry.installParams?.ghCli} />\n </div>\n )}\n {entry.installParams?.repo && (\n <div class='flex items-center gap-2'>\n <span class='text-muted-foreground'>Repo:</span>\n <a\n href={`https://github.com/${entry.installParams.repo}`}\n target='_blank'\n rel='noopener noreferrer'\n class='text-blue-500 hover:underline'\n >\n {entry.installParams.repo}\n </a>\n </div>\n )}\n {entry.installParams?.formula && (\n <div class='flex items-center gap-2'>\n <span class='text-muted-foreground'>Formula:</span>\n <span class='font-mono'>{entry.installParams.formula}</span>\n </div>\n )}\n {entry.installParams?.crate && (\n <div class='flex items-center gap-2'>\n <span class='text-muted-foreground'>Crate:</span>\n <span class='font-mono'>{entry.installParams.crate}</span>\n </div>\n )}\n {entry.installParams?.url && (\n <div class='flex items-center gap-2'>\n <span class='text-muted-foreground'>URL:</span>\n <span class='font-mono text-xs break-all'>{entry.installParams.url}</span>\n </div>\n )}\n {entry.binaries && entry.binaries.length > 0 && (\n <div class='flex items-start gap-2'>\n <span class='text-muted-foreground'>Binaries:</span>\n <span class='font-mono'>{entry.binaries.map((b) => typeof b === 'string' ? b : b.name).join(', ')}</span>\n </div>\n )}\n {entry.symlinks && entry.symlinks.length > 0 && (\n <div class='flex flex-col gap-1'>\n <span class='text-muted-foreground'>Symlinks:</span>\n <div class='pl-2'>\n {entry.symlinks.map((s, i) => (\n <div key={i} class='font-mono text-xs'>\n {s.source} → {s.target}\n </div>\n ))}\n </div>\n </div>\n )}\n </div>\n </div>\n );\n}\n\ninterface ToolDetailProps {\n params: { name: string; };\n}\n\nexport function ToolDetail({ params }: ToolDetailProps): JSX.Element {\n const toolName = decodeURIComponent(params.name);\n const { data: tools, loading: toolsLoading } = useFetch<IToolDetail[]>('/tools', [toolName]);\n const { data: history, loading: historyLoading } = useFetch<IToolHistory>(\n `/tools/${encodeURIComponent(toolName)}/history`,\n [toolName],\n );\n\n const [installing, setInstalling] = useState(false);\n const [installError, setInstallError] = useState<string | null>(null);\n const [installSuccess, setInstallSuccess] = useState<string | null>(null);\n const [checkingUpdate, setCheckingUpdate] = useState(false);\n const [checkUpdateResult, setCheckUpdateResult] = useState<ICheckUpdateResponse | null>(null);\n const [updating, setUpdating] = useState(false);\n const [updateResult, setUpdateResult] = useState<IUpdateToolResponse | null>(null);\n\n const tool = tools?.find((t) => t.config.name === toolName) || null;\n const loading = toolsLoading || historyLoading;\n\n const binaryToToolMap = useMemo(() => buildBinaryToToolMap(tools ?? []), [tools]);\n\n const currentToolBinaries = useMemo(\n () => (tool?.config.binaries ?? []).map(getBinaryName),\n [tool],\n );\n\n const dependentTools = useMemo(\n () => findDependentTools(tools ?? [], currentToolBinaries),\n [tools, currentToolBinaries],\n );\n\n const handleInstall = useCallback(async (force: boolean) => {\n setInstalling(true);\n setInstallError(null);\n setInstallSuccess(null);\n\n try {\n const result = await postApi<IInstallToolResponse, IInstallToolRequest>(\n `/tools/${encodeURIComponent(toolName)}/install`,\n { force },\n );\n\n if (result.installed) {\n const message = result.alreadyInstalled\n ? `Already installed (${result.version})`\n : `Installed ${result.version}`;\n setInstallSuccess(message);\n // Reload the page to refresh tool status\n setTimeout(() => window.location.reload(), 1500);\n } else {\n setInstallError(result.error ?? 'Installation failed');\n }\n } catch (err) {\n setInstallError(err instanceof Error ? err.message : 'Installation failed');\n } finally {\n setInstalling(false);\n }\n }, [toolName]);\n\n const handleCheckUpdate = useCallback(async () => {\n setCheckingUpdate(true);\n setCheckUpdateResult(null);\n\n try {\n const result = await postApi<ICheckUpdateResponse>(\n `/tools/${encodeURIComponent(toolName)}/check-update`,\n {},\n );\n setCheckUpdateResult(result);\n } catch (err) {\n setCheckUpdateResult({\n hasUpdate: false,\n currentVersion: 'unknown',\n latestVersion: 'unknown',\n supported: false,\n error: err instanceof Error ? err.message : 'Check failed',\n });\n } finally {\n setCheckingUpdate(false);\n }\n }, [toolName]);\n\n const handleUpdate = useCallback(async () => {\n setUpdating(true);\n setUpdateResult(null);\n\n try {\n const result = await postApi<IUpdateToolResponse>(\n `/tools/${encodeURIComponent(toolName)}/update`,\n {},\n );\n setUpdateResult(result);\n if (result.updated) {\n setTimeout(() => window.location.reload(), 1500);\n }\n } catch (err) {\n setUpdateResult({\n updated: false,\n supported: false,\n error: err instanceof Error ? err.message : 'Update failed',\n });\n } finally {\n setUpdating(false);\n }\n }, [toolName]);\n\n if (loading) {\n return (\n <div class='flex items-center justify-center h-64'>\n <div class='text-muted-foreground'>Loading...</div>\n </div>\n );\n }\n\n if (!tool) {\n return (\n <div class='text-center py-8'>\n <div class='text-muted-foreground mb-4'>Tool not found</div>\n <Button variant='link' asChild>\n <a href='/'>← Back to Home</a>\n </Button>\n </div>\n );\n }\n\n const fileRoots = buildTreeForTool(tool.files || []);\n const readmeRepo = getReadmeRepo(tool.config);\n\n return (\n <div class='space-y-4'>\n {/* Header */}\n <div class='flex items-center justify-between'>\n <div class='flex items-center gap-4'>\n <h1 class='text-2xl font-bold'>{tool.config.name}</h1>\n <StatusBadge status={tool.runtime.status} />\n </div>\n <div class='flex items-center gap-2'>\n {tool.runtime.status === 'installed' ?\n (\n <>\n <Button\n variant='outline'\n size='sm'\n onClick={handleCheckUpdate}\n disabled={checkingUpdate || installing || updating}\n >\n <Search class={`h-4 w-4 ${checkingUpdate ? 'animate-spin' : ''}`} />\n {checkingUpdate ? 'Checking...' : 'Check for updates'}\n </Button>\n <Button\n variant='outline'\n size='sm'\n onClick={handleUpdate}\n disabled={updating || installing || checkingUpdate}\n >\n <ArrowUpCircle class={`h-4 w-4 ${updating ? 'animate-spin' : ''}`} />\n {updating ? 'Updating...' : 'Update'}\n </Button>\n <Button\n variant='outline'\n size='sm'\n onClick={() => handleInstall(true)}\n disabled={installing || updating || checkingUpdate}\n >\n <RefreshCw class={`h-4 w-4 ${installing ? 'animate-spin' : ''}`} />\n {installing ? 'Installing...' : 'Re-install'}\n </Button>\n </>\n ) :\n (\n <Button\n variant='default'\n size='sm'\n onClick={() => handleInstall(false)}\n disabled={installing}\n >\n <Download class='h-4 w-4' />\n {installing ? 'Installing...' : 'Install'}\n </Button>\n )}\n </div>\n </div>\n\n {/* Install status messages */}\n {installError && (\n <div class='bg-destructive/10 border border-destructive/20 text-destructive px-4 py-2 rounded-md text-sm'>\n {installError}\n </div>\n )}\n {installSuccess && (\n <div class='bg-green-500/10 border border-green-500/20 text-green-600 dark:text-green-400 px-4 py-2 rounded-md text-sm'>\n {installSuccess}\n </div>\n )}\n\n {/* Check update status messages */}\n {checkUpdateResult && !checkUpdateResult.error && (\n <div\n class={`px-4 py-2 rounded-md text-sm ${\n checkUpdateResult.hasUpdate\n ? 'bg-yellow-500/10 border border-yellow-500/20 text-yellow-600 dark:text-yellow-400'\n : 'bg-green-500/10 border border-green-500/20 text-green-600 dark:text-green-400'\n }`}\n >\n {checkUpdateResult.hasUpdate\n ? `Update available: ${checkUpdateResult.currentVersion} → ${checkUpdateResult.latestVersion}`\n : `Up to date (${checkUpdateResult.currentVersion})`}\n </div>\n )}\n {checkUpdateResult?.error && (\n <div class='bg-destructive/10 border border-destructive/20 text-destructive px-4 py-2 rounded-md text-sm'>\n {checkUpdateResult.error}\n </div>\n )}\n\n {/* Update status messages */}\n {updateResult && !updateResult.error && updateResult.updated && (\n <div class='bg-green-500/10 border border-green-500/20 text-green-600 dark:text-green-400 px-4 py-2 rounded-md text-sm'>\n {`Updated: ${updateResult.oldVersion} → ${updateResult.newVersion}`}\n </div>\n )}\n {updateResult?.error && (\n <div class='bg-destructive/10 border border-destructive/20 text-destructive px-4 py-2 rounded-md text-sm'>\n {updateResult.error}\n </div>\n )}\n\n {/* Overview + Usage Section */}\n <div class={`grid gap-4 ${tool.usage.totalCount > 0 ? 'lg:grid-cols-2' : ''}`}>\n <TitledCard title='Overview' icon={<Info class='h-4 w-4' />}>\n <div class='space-y-3'>\n <div class='flex items-center gap-2'>\n <span class='text-sm text-muted-foreground w-24'>Method</span>\n <InstallMethodBadge\n method={tool.config.installationMethod}\n ghCli={tool.config.installParams.ghCli}\n />\n </div>\n {getSourceDisplay(tool.config)}\n <div class='flex items-center gap-2'>\n <span class='text-sm text-muted-foreground w-24'>Version</span>\n <span class='font-medium'>\n {tool.runtime.installedVersion || tool.config.version || 'Unknown'}\n </span>\n </div>\n <div class='flex items-center gap-2'>\n <span class='text-sm text-muted-foreground w-24'>Installed</span>\n <span class='font-medium'>\n {tool.runtime.installedAt ? new Date(tool.runtime.installedAt).toLocaleDateString() : 'Not installed'}\n </span>\n </div>\n {tool.binaryDiskSize > 0 && (\n <div class='flex items-center gap-2'>\n <span class='text-sm text-muted-foreground w-24'>Binary Size</span>\n <span class='font-medium'>\n {formatBytes(tool.binaryDiskSize)}\n </span>\n </div>\n )}\n {tool.config.hostname && (\n <div class='flex items-center gap-2'>\n <span class='text-sm text-muted-foreground w-24'>Hostname</span>\n <code class='text-sm font-mono bg-muted px-1.5 py-0.5 rounded'>\n {tool.config.hostname}\n </code>\n </div>\n )}\n {tool.config.dependencies && tool.config.dependencies.length > 0 && (\n <div class='flex items-start gap-2'>\n <span class='text-sm text-muted-foreground w-24'>Depends on</span>\n <div class='flex flex-wrap gap-2'>\n {tool.config.dependencies.map((binaryName, i) => {\n const linkedToolName = binaryToToolMap.get(binaryName);\n return (\n <a\n key={i}\n href={`/tools/${encodeURIComponent(linkedToolName ?? binaryName)}`}\n class='text-sm text-blue-500 hover:underline'\n >\n {linkedToolName ?? binaryName}\n </a>\n );\n })}\n </div>\n </div>\n )}\n {dependentTools.length > 0 && (\n <div class='flex items-start gap-2'>\n <span class='text-sm text-muted-foreground w-24'>Required by</span>\n <div class='flex flex-wrap gap-2'>\n {dependentTools.map((depTool, i) => (\n <a\n key={i}\n href={`/tools/${encodeURIComponent(depTool.config.name)}`}\n class='text-sm text-blue-500 hover:underline'\n >\n {depTool.config.name}\n </a>\n ))}\n </div>\n </div>\n )}\n </div>\n </TitledCard>\n\n {tool.usage.totalCount > 0 && (\n <TitledCard title='Usage' icon={<Zap class='h-4 w-4' />}>\n <div class='space-y-3'>\n <div class='flex items-center gap-2'>\n <span class='text-sm text-muted-foreground w-24'>Total Runs</span>\n <span class='font-medium'>{tool.usage.totalCount.toLocaleString()}</span>\n </div>\n <div class='space-y-2'>\n {tool.usage.binaries.map((entry) => (\n <div key={entry.binaryName} class='rounded-md border border-border p-2'>\n <div class='flex items-center justify-between gap-2'>\n <code class='text-xs font-mono bg-muted px-1.5 py-0.5 rounded'>\n {entry.binaryName}\n </code>\n <span class='text-sm font-medium'>{entry.count.toLocaleString()} runs</span>\n </div>\n {entry.lastUsedAt && (\n <div class='mt-1 text-xs text-muted-foreground'>\n Last used {new Date(entry.lastUsedAt).toLocaleString()}\n </div>\n )}\n </div>\n ))}\n </div>\n </div>\n </TitledCard>\n )}\n </div>\n\n {/* Source Section */}\n <ToolSourceCard toolName={tool.config.name} />\n\n {/* Platform Configs Section - only shown when platform overrides exist */}\n {tool.config.platformConfigs && tool.config.platformConfigs.length > 0 && (\n <TitledCard title='Platform Configurations' icon={<Layers class='h-4 w-4' />}>\n <div class='space-y-3'>\n {tool.config.platformConfigs.map((entry, i) => <PlatformConfigEntry key={i} entry={entry} />)}\n </div>\n </TitledCard>\n )}\n\n {/* Files Section - only shown when tool is installed */}\n {tool.runtime.status === 'installed' && (\n <TitledCard title='Files' icon={<File class='h-4 w-4' />}>\n {(tool.files?.length || 0) > 0 ?\n <FileTree nodes={fileRoots} /> :\n <div class='text-muted-foreground text-center py-4'>No files tracked</div>}\n </TitledCard>\n )}\n\n {/* History Section - only shown when tool is installed */}\n {tool.runtime.status === 'installed' && (\n <TitledCard title='History' icon={<History class='h-4 w-4' />}>\n <ToolHistory\n entries={history?.entries ?? []}\n installedAt={history?.installedAt ?? null}\n dotfilesDir={history?.dotfilesDir ?? ''}\n />\n </TitledCard>\n )}\n\n {/* README Section - only for installers with GitHub repos */}\n {readmeRepo && <ReadmeCard toolName={tool.config.name} repo={readmeRepo} />}\n </div>\n );\n}\n",
|
|
92
|
-
"import { type JSX } from
|
|
93
|
-
"import { type
|
|
94
|
-
"import type { ComponentChildren } from
|
|
95
|
-
"import { type JSX } from
|
|
96
|
-
"import { type JSX } from
|
|
97
|
-
"import { hydrate } from
|
|
85
|
+
"import { type JSX } from \"preact\";\nimport { ShikiHighlighter } from \"react-shiki\";\nimport type { IToolSourcePayload } from \"../../shared/types\";\nimport { Code } from \"../icons\";\n\nimport { useFetch } from \"../hooks/useFetch\";\nimport { ExternalLinkButton } from \"./ui/ExternalLinkButton\";\nimport { TitledCard } from \"./ui/TitledCard\";\n\ntype ToolSourceCardProps = {\n toolName: string;\n};\n\nexport function ToolSourceCard({ toolName }: ToolSourceCardProps): JSX.Element {\n const { data, loading, error } = useFetch<IToolSourcePayload>(`/tools/${encodeURIComponent(toolName)}/source`, [\n toolName,\n ]);\n\n if (loading) {\n return (\n <TitledCard title=\"Source\" icon={<Code class=\"h-4 w-4\" />}>\n <div class=\"text-muted-foreground text-center py-8\">Loading source...</div>\n </TitledCard>\n );\n }\n\n if (error || !data?.content) {\n return (\n <TitledCard title=\"Source\" icon={<Code class=\"h-4 w-4\" />}>\n <div class=\"text-muted-foreground text-center py-8\">Source not available</div>\n </TitledCard>\n );\n }\n\n return (\n <TitledCard\n title=\"Source\"\n icon={<Code class=\"h-4 w-4\" />}\n action={<ExternalLinkButton href={`vscode://file/${data.filePath}`}>Open in VSCode</ExternalLinkButton>}\n >\n <div class=\"overflow-x-auto rounded-md border border-border [&_pre]:!bg-muted/25\">\n <ShikiHighlighter language=\"typescript\" theme=\"github-light\">\n {data.content.trim()}\n </ShikiHighlighter>\n </div>\n </TitledCard>\n );\n}\n",
|
|
86
|
+
"import { type ComponentChildren, type JSX } from \"preact\";\nimport { useState } from \"preact/hooks\";\nimport { ChevronDown, ChevronRight } from \"../../icons\";\n\nimport { cn } from \"../../lib/utils\";\n\nexport interface ITreeItemData<T = unknown> {\n id: string;\n label: string;\n icon?: JSX.Element;\n iconDecorator?: JSX.Element;\n children?: ITreeItemData<T>[];\n data?: T;\n}\n\nexport interface ITreeItemProps<T = unknown> {\n item: ITreeItemData<T>;\n depth?: number;\n defaultExpanded?: boolean;\n renderActions?: (item: ITreeItemData<T>) => ComponentChildren;\n renderLabel?: (item: ITreeItemData<T>) => ComponentChildren;\n onItemClick?: (item: ITreeItemData<T>) => void;\n iconClassName?: string;\n}\n\nexport interface ITreeProps<T = unknown> {\n items: ITreeItemData<T>[];\n defaultExpanded?: boolean;\n renderActions?: (item: ITreeItemData<T>) => ComponentChildren;\n renderLabel?: (item: ITreeItemData<T>) => ComponentChildren;\n onItemClick?: (item: ITreeItemData<T>) => void;\n iconClassName?: string;\n class?: string;\n}\n\nexport function TreeItem<T = unknown>({\n item,\n depth = 0,\n defaultExpanded = true,\n renderActions,\n renderLabel,\n onItemClick,\n iconClassName,\n}: ITreeItemProps<T>): JSX.Element {\n const [isExpanded, setIsExpanded] = useState(defaultExpanded);\n const hasChildren = item.children && item.children.length > 0;\n const indent = depth * 16;\n\n function handleClick(): void {\n if (hasChildren) {\n setIsExpanded(!isExpanded);\n }\n onItemClick?.(item);\n }\n\n function renderChevron(): JSX.Element {\n if (!hasChildren) {\n return <span class=\"w-4 mr-1\" />;\n }\n return (\n <span class=\"w-4 mr-1 flex items-center justify-center\">\n {isExpanded ? (\n <ChevronDown class=\"h-4 w-4 text-muted-foreground\" />\n ) : (\n <ChevronRight class=\"h-4 w-4 text-muted-foreground\" />\n )}\n </span>\n );\n }\n\n return (\n <div data-testid=\"TreeItem\">\n <div\n class=\"flex items-center py-1 hover:bg-accent rounded cursor-pointer text-sm group\"\n style={{ paddingLeft: `${indent}px` }}\n onClick={handleClick}\n >\n {renderChevron()}\n {item.iconDecorator && <span class=\"flex-shrink-0 mr-1\">{item.iconDecorator}</span>}\n {item.icon && <span class={cn(\"flex-shrink-0\", iconClassName)}>{item.icon}</span>}\n <span class={cn(\"ml-2 flex-1 min-w-0\", hasChildren && \"font-medium\")}>\n {renderLabel ? renderLabel(item) : item.label}\n </span>\n {renderActions && (\n <span class=\"ml-2 flex-shrink-0 opacity-0 group-hover:opacity-100 transition-opacity\">\n {renderActions(item)}\n </span>\n )}\n </div>\n {hasChildren && isExpanded && (\n <div>\n {item.children?.map((child) => (\n <TreeItem\n key={child.id}\n item={child}\n depth={depth + 1}\n defaultExpanded={defaultExpanded}\n renderActions={renderActions}\n renderLabel={renderLabel}\n onItemClick={onItemClick}\n iconClassName={iconClassName}\n />\n ))}\n </div>\n )}\n </div>\n );\n}\n\nexport function Tree<T = unknown>({\n items,\n defaultExpanded = true,\n renderActions,\n renderLabel,\n onItemClick,\n iconClassName,\n class: className,\n}: ITreeProps<T>): JSX.Element {\n return (\n <div data-testid=\"Tree\" class={cn(\"space-y-1\", className)}>\n {items.map((item) => (\n <TreeItem\n key={item.id}\n item={item}\n defaultExpanded={defaultExpanded}\n renderLabel={renderLabel}\n renderActions={renderActions}\n onItemClick={onItemClick}\n iconClassName={iconClassName}\n />\n ))}\n </div>\n );\n}\n",
|
|
87
|
+
"import { type JSX } from \"preact\";\nimport {\n File,\n FileCode,\n FileCog,\n FileSymlink,\n FileTerminal,\n Folder,\n FolderOpen,\n Link,\n Package,\n Settings,\n Zap,\n} from \"../icons\";\n\nimport { Badge } from \"./ui/Badge\";\nimport { Tree, type ITreeItemData } from \"./ui/Tree\";\n\ninterface IFileTreeNodeData {\n name: string;\n path: string;\n type: \"file\" | \"directory\";\n fileType?: string;\n lastOperation?: string;\n children?: IFileTreeNodeData[];\n}\n\ninterface IFileTreeProps {\n nodes: IFileTreeNodeData[];\n}\n\nconst FILE_TYPE_COLORS: Record<string, string> = {\n shim: \"text-blue-400\",\n binary: \"text-green-400\",\n \"binary-path\": \"text-cyan-400\",\n symlink: \"text-purple-400\",\n config: \"text-amber-400\",\n completion: \"text-cyan-400\",\n init: \"text-pink-400\",\n \"hook-generated\": \"text-orange-400\",\n catalog: \"text-muted-foreground\",\n install: \"text-green-400\",\n source: \"text-purple-400\",\n};\n\nfunction getFileIcon(fileType?: string): JSX.Element {\n const iconClass = \"h-4 w-4\";\n switch (fileType) {\n case \"shim\":\n return <FileCode class={iconClass} />;\n case \"binary\":\n return <FileTerminal class={iconClass} />;\n case \"binary-path\":\n return <Zap class={iconClass} />;\n case \"symlink\":\n return <FileSymlink class={iconClass} />;\n case \"config\":\n return <FileCog class={iconClass} />;\n case \"completion\":\n return <Settings class={iconClass} />;\n case \"init\":\n case \"hook-generated\":\n return <FileCode class={iconClass} />;\n case \"catalog\":\n case \"install\":\n return <Package class={iconClass} />;\n case \"source\":\n return <Link class={iconClass} />;\n default:\n return <File class={iconClass} />;\n }\n}\n\nfunction getIcon(node: IFileTreeNodeData): JSX.Element {\n const isDirectory = node.type === \"directory\";\n const hasChildren = node.children && node.children.length > 0;\n const colorClass = isDirectory ? \"text-amber-300\" : FILE_TYPE_COLORS[node.fileType || \"\"] || \"text-muted-foreground\";\n\n if (isDirectory) {\n return <span class={colorClass}>{hasChildren ? <FolderOpen class=\"h-4 w-4\" /> : <Folder class=\"h-4 w-4\" />}</span>;\n }\n return <span class={colorClass}>{getFileIcon(node.fileType)}</span>;\n}\n\nfunction convertToTreeItems(nodes: IFileTreeNodeData[]): ITreeItemData<IFileTreeNodeData>[] {\n return nodes.map((node) => ({\n id: node.path,\n label: node.name,\n icon: getIcon(node),\n data: node,\n children: node.children ? convertToTreeItems(node.children) : undefined,\n }));\n}\n\nfunction renderFileLabel(item: ITreeItemData<IFileTreeNodeData>): JSX.Element {\n const node = item.data;\n const isDirectory = node?.type === \"directory\";\n\n return (\n <span class=\"flex items-center\">\n <span>{item.label}</span>\n {!isDirectory && node?.fileType && (\n <Badge variant=\"outline\" class=\"ml-2 text-xs\">\n {node.fileType}\n </Badge>\n )}\n </span>\n );\n}\n\nexport function FileTree({ nodes }: IFileTreeProps): JSX.Element {\n const treeItems = convertToTreeItems(nodes);\n return <Tree items={treeItems} renderLabel={renderFileLabel} />;\n}\n",
|
|
88
|
+
"/**\n * Formats a byte count into a human-readable string.\n *\n * @param bytes - The number of bytes to format\n * @returns A human-readable string representation (e.g., \"1.5 MB\")\n */\nexport function formatBytes(bytes: number): string {\n if (bytes === 0) return \"0 B\";\n\n const units = [\"B\", \"KB\", \"MB\", \"GB\"];\n let size = bytes;\n let unitIndex = 0;\n\n while (size >= 1024 && unitIndex < units.length - 1) {\n size /= 1024;\n unitIndex++;\n }\n\n return `${size.toFixed(size >= 10 ? 0 : 1)} ${units[unitIndex]}`;\n}\n",
|
|
89
|
+
"interface IFileData {\n filePath: string;\n fileType?: string;\n lastOperation?: string;\n}\n\ninterface ITreeNodeData {\n name: string;\n path: string;\n type: \"file\" | \"directory\";\n fileType?: string;\n lastOperation?: string;\n children?: ITreeNodeData[];\n}\n\nfunction sortTreeNode(node: ITreeNodeData): void {\n if (node.children) {\n node.children.sort((leftNode, rightNode) => {\n if (leftNode.type !== rightNode.type) return leftNode.type === \"directory\" ? -1 : 1;\n return leftNode.name.localeCompare(rightNode.name);\n });\n node.children.forEach(sortTreeNode);\n }\n}\n\nexport function buildTreeForTool(files: IFileData[]): ITreeNodeData[] {\n if (!files.length) return [];\n\n const paths = files.map((file) => file.filePath);\n let basePath = \"\";\n\n if (paths.length === 1) {\n const firstPath = paths[0];\n if (firstPath) {\n const parts = firstPath.split(\"/\").filter(Boolean);\n if (parts.length >= 2) {\n basePath = \"/\" + parts.slice(0, parts.length - 2).join(\"/\");\n if (basePath === \"/\") basePath = \"\";\n }\n }\n } else {\n const pathParts = paths.map((path) => path.split(\"/\").filter(Boolean));\n const minLength = Math.min(...pathParts.map((path) => path.length));\n const common: string[] = [];\n const firstParts = pathParts[0];\n if (firstParts) {\n for (let index = 0; index < minLength - 1; index += 1) {\n const part = firstParts[index];\n if (part && pathParts.every((path) => path[index] === part)) {\n common.push(part);\n } else {\n break;\n }\n }\n }\n if (common.length > 1) {\n basePath = \"/\" + common.slice(0, -1).join(\"/\");\n }\n }\n\n const tree = new Map<string, ITreeNodeData>();\n\n for (const file of files) {\n let relativePath = file.filePath;\n if (basePath && relativePath.startsWith(basePath)) relativePath = relativePath.substring(basePath.length);\n if (!relativePath.startsWith(\"/\")) relativePath = \"/\" + relativePath;\n const fileParts = relativePath.split(\"/\").filter(Boolean);\n let currentPath = \"\";\n\n for (let index = 0; index < fileParts.length - 1; index += 1) {\n const part = fileParts[index];\n if (!part) continue;\n const parentPath = currentPath;\n currentPath = currentPath ? currentPath + \"/\" + part : \"/\" + part;\n const existingNode = tree.get(currentPath);\n if (!existingNode) {\n const node: ITreeNodeData = {\n name: part,\n path: basePath + currentPath,\n type: \"directory\",\n children: [],\n };\n tree.set(currentPath, node);\n const parentNode = parentPath ? tree.get(parentPath) : undefined;\n if (parentNode?.children) parentNode.children.push(node);\n } else if (existingNode.type === \"file\") {\n existingNode.type = \"directory\";\n existingNode.children = [];\n }\n }\n\n const fileName = fileParts[fileParts.length - 1];\n if (fileName) {\n const filePath = currentPath ? currentPath + \"/\" + fileName : \"/\" + fileName;\n const node: ITreeNodeData = {\n name: fileName,\n path: basePath + filePath,\n type: \"file\",\n fileType: file.fileType,\n lastOperation: file.lastOperation,\n };\n tree.set(filePath, node);\n const parentNode = currentPath ? tree.get(currentPath) : undefined;\n if (parentNode?.children) parentNode.children.push(node);\n }\n }\n\n const roots: ITreeNodeData[] = [];\n for (const [path, node] of tree) {\n const parentPath = path.substring(0, path.lastIndexOf(\"/\"));\n if (!parentPath || !tree.has(parentPath)) roots.push(node);\n }\n\n roots.forEach(sortTreeNode);\n roots.sort((leftNode, rightNode) => {\n if (leftNode.type !== rightNode.type) return leftNode.type === \"directory\" ? -1 : 1;\n return leftNode.name.localeCompare(rightNode.name);\n });\n\n return roots;\n}\n",
|
|
90
|
+
"import type {\n SerializableBinary,\n ISerializableInstallParams,\n ISerializableToolConfig,\n IToolDetail,\n} from \"../../shared/types\";\n\nexport interface ISourceInfo {\n value: string;\n url?: string;\n}\n\ninterface IInstallConfigCandidate {\n installationMethod: string;\n installParams: ISerializableInstallParams;\n}\n\nfunction getInstallConfigCandidates(config: ISerializableToolConfig): IInstallConfigCandidate[] {\n const candidates: IInstallConfigCandidate[] = [\n {\n installationMethod: config.installationMethod,\n installParams: config.installParams,\n },\n ];\n\n for (const platformConfig of config.platformConfigs ?? []) {\n candidates.push({\n installationMethod: platformConfig.installationMethod ?? config.installationMethod,\n installParams: platformConfig.installParams ?? config.installParams,\n });\n }\n\n return candidates;\n}\n\nfunction getSourceInfoForInstallConfig(\n installationMethod: string,\n installParams: ISerializableInstallParams,\n): ISourceInfo | null {\n switch (installationMethod) {\n case \"github-release\":\n if (installParams.repo) {\n return {\n value: installParams.repo,\n url: `https://github.com/${installParams.repo}`,\n };\n }\n break;\n case \"cargo\":\n if (installParams.crate) {\n return {\n value: installParams.crate,\n url: `https://crates.io/crates/${installParams.crate}`,\n };\n }\n break;\n case \"brew\":\n if (installParams.formula) {\n return {\n value: installParams.formula,\n url: `https://formulae.brew.sh/formula/${installParams.formula}`,\n };\n }\n break;\n case \"zsh-plugin\":\n if (installParams.repo) {\n return {\n value: installParams.repo,\n url: `https://github.com/${installParams.repo}`,\n };\n }\n break;\n case \"curl-script\":\n case \"curl-tar\":\n if (installParams.url) {\n return {\n value: installParams.url,\n url: installParams.url,\n };\n }\n break;\n default:\n return null;\n }\n\n return null;\n}\n\nexport function getBinaryName(binary: SerializableBinary): string {\n return typeof binary === \"string\" ? binary : binary.name;\n}\n\nexport function buildBinaryToToolMap(tools: IToolDetail[]): Map<string, string> {\n const map = new Map<string, string>();\n for (const tool of tools) {\n const binaries = tool.config.binaries ?? [];\n for (const binary of binaries) {\n const name = getBinaryName(binary);\n map.set(name, tool.config.name);\n }\n }\n return map;\n}\n\nexport function findDependentTools(tools: IToolDetail[], currentToolBinaries: string[]): IToolDetail[] {\n const binarySet = new Set(currentToolBinaries);\n return tools.filter((tool) => {\n const dependencies = tool.config.dependencies ?? [];\n return dependencies.some((dependency) => binarySet.has(dependency));\n });\n}\n\nexport function getReadmeRepo(config: ISerializableToolConfig): string | null {\n if (config.installParams.repo) {\n return config.installParams.repo;\n }\n\n for (const platformConfig of config.platformConfigs ?? []) {\n if (platformConfig.installParams?.repo) {\n return platformConfig.installParams.repo;\n }\n }\n\n return null;\n}\n\nexport function getSourceInfo(config: ISerializableToolConfig): ISourceInfo | null {\n for (const installConfig of getInstallConfigCandidates(config)) {\n const sourceInfo = getSourceInfoForInstallConfig(installConfig.installationMethod, installConfig.installParams);\n if (sourceInfo) {\n return sourceInfo;\n }\n }\n\n return null;\n}\n",
|
|
91
|
+
"import { type JSX } from \"preact\";\nimport { useCallback, useMemo, useState } from \"preact/hooks\";\nimport { ArrowUpCircle, Download, File, History, Info, Layers, RefreshCw, Search, Zap } from \"../icons\";\n\nimport type {\n ICheckUpdateResponse,\n IInstallToolRequest,\n IInstallToolResponse,\n ISerializablePlatformConfigEntry,\n ISerializableToolConfig,\n IToolDetail,\n IToolHistory,\n IUpdateToolResponse,\n} from \"../../shared/types\";\nimport { postApi } from \"../api\";\nimport { InstallMethodBadge } from \"../components/InstallMethodBadge\";\nimport { ReadmeCard } from \"../components/ReadmeCard\";\nimport { StatusBadge } from \"../components/StatusBadge\";\nimport { ToolHistory } from \"../components/ToolHistory\";\nimport { ToolSourceCard } from \"../components/ToolSourceCard\";\nimport { FileTree } from \"../components/FileTree\";\nimport { Button } from \"../components/ui/Button\";\nimport { TitledCard } from \"../components/ui/TitledCard\";\nimport { useFetch } from \"../hooks/useFetch\";\nimport { formatBytes } from \"../utils/format\";\nimport { buildTreeForTool } from \"../utils/tree\";\nimport {\n buildBinaryToToolMap,\n findDependentTools,\n getBinaryName,\n getReadmeRepo,\n getSourceInfo,\n} from \"./tool-detail-utils\";\n\nfunction getSourceDisplay(config: ISerializableToolConfig): JSX.Element | null {\n const sourceInfo = getSourceInfo(config);\n if (!sourceInfo) return null;\n\n return (\n <div class=\"flex items-center gap-2\">\n <span class=\"text-sm text-muted-foreground w-24\">Source</span>\n {sourceInfo.url ? (\n <a\n href={sourceInfo.url}\n target=\"_blank\"\n rel=\"noopener noreferrer\"\n class=\"text-sm text-blue-500 hover:underline break-all\"\n >\n {sourceInfo.value}\n </a>\n ) : (\n <span class=\"text-sm font-medium break-all\">{sourceInfo.value}</span>\n )}\n </div>\n );\n}\n\ntype PlatformConfigEntryProps = {\n entry: ISerializablePlatformConfigEntry;\n};\n\nfunction PlatformConfigEntry({ entry }: PlatformConfigEntryProps): JSX.Element {\n const platformLabel = entry.platforms.join(\", \");\n const archLabel = entry.architectures ? ` (${entry.architectures.join(\", \")})` : \"\";\n\n return (\n <div class=\"border border-border rounded-md p-3 space-y-2\">\n <div class=\"flex items-center gap-2\">\n <span class=\"text-sm font-medium text-foreground\">\n {platformLabel}\n {archLabel}\n </span>\n </div>\n <div class=\"pl-2 space-y-1.5 text-sm\">\n {entry.installationMethod && (\n <div class=\"flex items-center gap-2\">\n <span class=\"text-muted-foreground\">Method:</span>\n <InstallMethodBadge method={entry.installationMethod} ghCli={entry.installParams?.ghCli} />\n </div>\n )}\n {entry.installParams?.repo && (\n <div class=\"flex items-center gap-2\">\n <span class=\"text-muted-foreground\">Repo:</span>\n <a\n href={`https://github.com/${entry.installParams.repo}`}\n target=\"_blank\"\n rel=\"noopener noreferrer\"\n class=\"text-blue-500 hover:underline\"\n >\n {entry.installParams.repo}\n </a>\n </div>\n )}\n {entry.installParams?.formula && (\n <div class=\"flex items-center gap-2\">\n <span class=\"text-muted-foreground\">Formula:</span>\n <span class=\"font-mono\">{entry.installParams.formula}</span>\n </div>\n )}\n {entry.installParams?.crate && (\n <div class=\"flex items-center gap-2\">\n <span class=\"text-muted-foreground\">Crate:</span>\n <span class=\"font-mono\">{entry.installParams.crate}</span>\n </div>\n )}\n {entry.installParams?.url && (\n <div class=\"flex items-center gap-2\">\n <span class=\"text-muted-foreground\">URL:</span>\n <span class=\"font-mono text-xs break-all\">{entry.installParams.url}</span>\n </div>\n )}\n {entry.binaries && entry.binaries.length > 0 && (\n <div class=\"flex items-start gap-2\">\n <span class=\"text-muted-foreground\">Binaries:</span>\n <span class=\"font-mono\">{entry.binaries.map((b) => (typeof b === \"string\" ? b : b.name)).join(\", \")}</span>\n </div>\n )}\n {entry.symlinks && entry.symlinks.length > 0 && (\n <div class=\"flex flex-col gap-1\">\n <span class=\"text-muted-foreground\">Symlinks:</span>\n <div class=\"pl-2\">\n {entry.symlinks.map((s, i) => (\n <div key={i} class=\"font-mono text-xs\">\n {s.source} → {s.target}\n </div>\n ))}\n </div>\n </div>\n )}\n </div>\n </div>\n );\n}\n\ntype ToolDetailProps = {\n params: {\n name: string;\n };\n};\n\nexport function ToolDetail({ params }: ToolDetailProps): JSX.Element {\n const toolName = decodeURIComponent(params.name);\n const { data: tools, loading: toolsLoading } = useFetch<IToolDetail[]>(\"/tools\", [toolName]);\n const { data: history, loading: historyLoading } = useFetch<IToolHistory>(\n `/tools/${encodeURIComponent(toolName)}/history`,\n [toolName],\n );\n\n const [installing, setInstalling] = useState(false);\n const [installError, setInstallError] = useState<string | null>(null);\n const [installSuccess, setInstallSuccess] = useState<string | null>(null);\n const [checkingUpdate, setCheckingUpdate] = useState(false);\n const [checkUpdateResult, setCheckUpdateResult] = useState<ICheckUpdateResponse | null>(null);\n const [updating, setUpdating] = useState(false);\n const [updateResult, setUpdateResult] = useState<IUpdateToolResponse | null>(null);\n\n const tool = tools?.find((t) => t.config.name === toolName) || null;\n const loading = toolsLoading || historyLoading;\n\n const binaryToToolMap = useMemo(() => buildBinaryToToolMap(tools ?? []), [tools]);\n\n const currentToolBinaries = useMemo(() => (tool?.config.binaries ?? []).map(getBinaryName), [tool]);\n\n const dependentTools = useMemo(\n () => findDependentTools(tools ?? [], currentToolBinaries),\n [tools, currentToolBinaries],\n );\n\n const handleInstall = useCallback(\n async (force: boolean) => {\n setInstalling(true);\n setInstallError(null);\n setInstallSuccess(null);\n\n try {\n const result = await postApi<IInstallToolResponse, IInstallToolRequest>(\n `/tools/${encodeURIComponent(toolName)}/install`,\n { force },\n );\n\n if (result.installed) {\n const message = result.alreadyInstalled\n ? `Already installed (${result.version})`\n : `Installed ${result.version}`;\n setInstallSuccess(message);\n // Reload the page to refresh tool status\n setTimeout(() => window.location.reload(), 1500);\n } else {\n setInstallError(result.error ?? \"Installation failed\");\n }\n } catch (error) {\n setInstallError(error instanceof Error ? error.message : \"Installation failed\");\n } finally {\n setInstalling(false);\n }\n },\n [toolName],\n );\n\n const handleCheckUpdate = useCallback(async () => {\n setCheckingUpdate(true);\n setCheckUpdateResult(null);\n\n try {\n const result = await postApi<ICheckUpdateResponse>(`/tools/${encodeURIComponent(toolName)}/check-update`, {});\n setCheckUpdateResult(result);\n } catch (error) {\n setCheckUpdateResult({\n hasUpdate: false,\n currentVersion: \"unknown\",\n latestVersion: \"unknown\",\n supported: false,\n error: error instanceof Error ? error.message : \"Check failed\",\n });\n } finally {\n setCheckingUpdate(false);\n }\n }, [toolName]);\n\n const handleUpdate = useCallback(async () => {\n setUpdating(true);\n setUpdateResult(null);\n\n try {\n const result = await postApi<IUpdateToolResponse>(`/tools/${encodeURIComponent(toolName)}/update`, {});\n setUpdateResult(result);\n if (result.updated) {\n setTimeout(() => window.location.reload(), 1500);\n }\n } catch (error) {\n setUpdateResult({\n updated: false,\n supported: false,\n error: error instanceof Error ? error.message : \"Update failed\",\n });\n } finally {\n setUpdating(false);\n }\n }, [toolName]);\n\n if (loading) {\n return (\n <div data-testid=\"ToolDetail\" class=\"flex items-center justify-center h-64\">\n <div class=\"text-muted-foreground\">Loading...</div>\n </div>\n );\n }\n\n if (!tool) {\n return (\n <div data-testid=\"ToolDetail\" class=\"text-center py-8\">\n <div class=\"text-muted-foreground mb-4\">Tool not found</div>\n <Button variant=\"link\" asChild>\n <a href=\"/\">← Back to Home</a>\n </Button>\n </div>\n );\n }\n\n const fileRoots = buildTreeForTool(tool.files || []);\n const readmeRepo = getReadmeRepo(tool.config);\n\n return (\n <div data-testid=\"ToolDetail\" class=\"space-y-4\">\n {/* Header */}\n <div class=\"flex items-center justify-between\">\n <div class=\"flex items-center gap-4\">\n <h1 class=\"text-2xl font-bold\">{tool.config.name}</h1>\n <StatusBadge status={tool.runtime.status} />\n </div>\n <div class=\"flex items-center gap-2\">\n {tool.runtime.status === \"installed\" ? (\n <>\n <Button\n variant=\"outline\"\n size=\"sm\"\n onClick={handleCheckUpdate}\n disabled={checkingUpdate || installing || updating}\n >\n <Search class={`h-4 w-4 ${checkingUpdate ? \"animate-spin\" : \"\"}`} />\n {checkingUpdate ? \"Checking...\" : \"Check for updates\"}\n </Button>\n <Button\n variant=\"outline\"\n size=\"sm\"\n onClick={handleUpdate}\n disabled={updating || installing || checkingUpdate}\n >\n <ArrowUpCircle class={`h-4 w-4 ${updating ? \"animate-spin\" : \"\"}`} />\n {updating ? \"Updating...\" : \"Update\"}\n </Button>\n <Button\n variant=\"outline\"\n size=\"sm\"\n onClick={() => handleInstall(true)}\n disabled={installing || updating || checkingUpdate}\n >\n <RefreshCw class={`h-4 w-4 ${installing ? \"animate-spin\" : \"\"}`} />\n {installing ? \"Installing...\" : \"Re-install\"}\n </Button>\n </>\n ) : (\n <Button variant=\"default\" size=\"sm\" onClick={() => handleInstall(false)} disabled={installing}>\n <Download class=\"h-4 w-4\" />\n {installing ? \"Installing...\" : \"Install\"}\n </Button>\n )}\n </div>\n </div>\n\n {/* Install status messages */}\n {installError && (\n <div class=\"bg-destructive/10 border border-destructive/20 text-destructive px-4 py-2 rounded-md text-sm\">\n {installError}\n </div>\n )}\n {installSuccess && (\n <div class=\"bg-green-500/10 border border-green-500/20 text-green-600 dark:text-green-400 px-4 py-2 rounded-md text-sm\">\n {installSuccess}\n </div>\n )}\n\n {/* Check update status messages */}\n {checkUpdateResult && !checkUpdateResult.error && (\n <div\n class={`px-4 py-2 rounded-md text-sm ${\n checkUpdateResult.hasUpdate\n ? \"bg-yellow-500/10 border border-yellow-500/20 text-yellow-600 dark:text-yellow-400\"\n : \"bg-green-500/10 border border-green-500/20 text-green-600 dark:text-green-400\"\n }`}\n >\n {checkUpdateResult.hasUpdate\n ? `Update available: ${checkUpdateResult.currentVersion} → ${checkUpdateResult.latestVersion}`\n : `Up to date (${checkUpdateResult.currentVersion})`}\n </div>\n )}\n {checkUpdateResult?.error && (\n <div class=\"bg-destructive/10 border border-destructive/20 text-destructive px-4 py-2 rounded-md text-sm\">\n {checkUpdateResult.error}\n </div>\n )}\n\n {/* Update status messages */}\n {updateResult && !updateResult.error && updateResult.updated && (\n <div class=\"bg-green-500/10 border border-green-500/20 text-green-600 dark:text-green-400 px-4 py-2 rounded-md text-sm\">\n {`Updated: ${updateResult.oldVersion} → ${updateResult.newVersion}`}\n </div>\n )}\n {updateResult?.error && (\n <div class=\"bg-destructive/10 border border-destructive/20 text-destructive px-4 py-2 rounded-md text-sm\">\n {updateResult.error}\n </div>\n )}\n\n {/* Overview + Usage Section */}\n <div class={`grid gap-4 ${tool.usage.totalCount > 0 ? \"lg:grid-cols-2\" : \"\"}`}>\n <TitledCard title=\"Overview\" icon={<Info class=\"h-4 w-4\" />}>\n <div class=\"space-y-3\">\n <div class=\"flex items-center gap-2\">\n <span class=\"text-sm text-muted-foreground w-24\">Method</span>\n <InstallMethodBadge method={tool.config.installationMethod} ghCli={tool.config.installParams.ghCli} />\n </div>\n {getSourceDisplay(tool.config)}\n <div class=\"flex items-center gap-2\">\n <span class=\"text-sm text-muted-foreground w-24\">Version</span>\n <span class=\"font-medium\">{tool.runtime.installedVersion || tool.config.version || \"Unknown\"}</span>\n </div>\n <div class=\"flex items-center gap-2\">\n <span class=\"text-sm text-muted-foreground w-24\">Installed</span>\n <span class=\"font-medium\">\n {tool.runtime.installedAt ? new Date(tool.runtime.installedAt).toLocaleDateString() : \"Not installed\"}\n </span>\n </div>\n {tool.binaryDiskSize > 0 && (\n <div class=\"flex items-center gap-2\">\n <span class=\"text-sm text-muted-foreground w-24\">Binary Size</span>\n <span class=\"font-medium\">{formatBytes(tool.binaryDiskSize)}</span>\n </div>\n )}\n {tool.config.hostname && (\n <div class=\"flex items-center gap-2\">\n <span class=\"text-sm text-muted-foreground w-24\">Hostname</span>\n <code class=\"text-sm font-mono bg-muted px-1.5 py-0.5 rounded\">{tool.config.hostname}</code>\n </div>\n )}\n {tool.config.dependencies && tool.config.dependencies.length > 0 && (\n <div class=\"flex items-start gap-2\">\n <span class=\"text-sm text-muted-foreground w-24\">Depends on</span>\n <div class=\"flex flex-wrap gap-2\">\n {tool.config.dependencies.map((binaryName, i) => {\n const linkedToolName = binaryToToolMap.get(binaryName);\n return (\n <a\n key={i}\n href={`/tools/${encodeURIComponent(linkedToolName ?? binaryName)}`}\n class=\"text-sm text-blue-500 hover:underline\"\n >\n {linkedToolName ?? binaryName}\n </a>\n );\n })}\n </div>\n </div>\n )}\n {dependentTools.length > 0 && (\n <div class=\"flex items-start gap-2\">\n <span class=\"text-sm text-muted-foreground w-24\">Required by</span>\n <div class=\"flex flex-wrap gap-2\">\n {dependentTools.map((depTool, i) => (\n <a\n key={i}\n href={`/tools/${encodeURIComponent(depTool.config.name)}`}\n class=\"text-sm text-blue-500 hover:underline\"\n >\n {depTool.config.name}\n </a>\n ))}\n </div>\n </div>\n )}\n </div>\n </TitledCard>\n\n {tool.usage.totalCount > 0 && (\n <TitledCard title=\"Usage\" icon={<Zap class=\"h-4 w-4\" />}>\n <div class=\"space-y-3\">\n <div class=\"flex items-center gap-2\">\n <span class=\"text-sm text-muted-foreground w-24\">Total Runs</span>\n <span class=\"font-medium\">{tool.usage.totalCount.toLocaleString()}</span>\n </div>\n <div class=\"space-y-2\">\n {tool.usage.binaries.map((entry) => (\n <div key={entry.binaryName} class=\"rounded-md border border-border p-2\">\n <div class=\"flex items-center justify-between gap-2\">\n <code class=\"text-xs font-mono bg-muted px-1.5 py-0.5 rounded\">{entry.binaryName}</code>\n <span class=\"text-sm font-medium\">{entry.count.toLocaleString()} runs</span>\n </div>\n {entry.lastUsedAt && (\n <div class=\"mt-1 text-xs text-muted-foreground\">\n Last used {new Date(entry.lastUsedAt).toLocaleString()}\n </div>\n )}\n </div>\n ))}\n </div>\n </div>\n </TitledCard>\n )}\n </div>\n\n {/* Source Section */}\n <ToolSourceCard toolName={tool.config.name} />\n\n {/* Platform Configs Section - only shown when platform overrides exist */}\n {tool.config.platformConfigs && tool.config.platformConfigs.length > 0 && (\n <TitledCard title=\"Platform Configurations\" icon={<Layers class=\"h-4 w-4\" />}>\n <div class=\"space-y-3\">\n {tool.config.platformConfigs.map((entry, i) => (\n <PlatformConfigEntry key={i} entry={entry} />\n ))}\n </div>\n </TitledCard>\n )}\n\n {/* Files Section - only shown when tool is installed */}\n {tool.runtime.status === \"installed\" && (\n <TitledCard title=\"Files\" icon={<File class=\"h-4 w-4\" />}>\n {(tool.files?.length || 0) > 0 ? (\n <FileTree nodes={fileRoots} />\n ) : (\n <div class=\"text-muted-foreground text-center py-4\">No files tracked</div>\n )}\n </TitledCard>\n )}\n\n {/* History Section - only shown when tool is installed */}\n {tool.runtime.status === \"installed\" && (\n <TitledCard title=\"History\" icon={<History class=\"h-4 w-4\" />}>\n <ToolHistory\n entries={history?.entries ?? []}\n installedAt={history?.installedAt ?? null}\n dotfilesDir={history?.dotfilesDir ?? \"\"}\n />\n </TitledCard>\n )}\n\n {/* README Section - only for installers with GitHub repos */}\n {readmeRepo && <ReadmeCard toolName={tool.config.name} repo={readmeRepo} />}\n </div>\n );\n}\n",
|
|
92
|
+
"import { type JSX } from \"preact\";\nimport { Clock, FileCode, GitBranch, HardDrive } from \"../icons\";\n\nimport type { IRecentTools, TimestampSource } from \"../../shared/types\";\nimport { useFetch } from \"../hooks/useFetch\";\nimport { TitledCard } from \"./ui/TitledCard\";\n\ntype TimestampSourceIconProps = {\n source: TimestampSource;\n};\n\nfunction TimestampSourceIcon({ source }: TimestampSourceIconProps): JSX.Element {\n if (source === \"git\") {\n return <GitBranch class=\"h-3 w-3 text-green-500\" title=\"From git commit date\" />;\n }\n return <HardDrive class=\"h-3 w-3 text-amber-500\" title=\"From file modification time\" />;\n}\n\nexport function RecentTools(): JSX.Element {\n const { data, loading } = useFetch<IRecentTools>(\"/recent-tools\");\n\n const tools = data?.tools || [];\n\n return (\n <TitledCard\n title=\"Recently Added\"\n icon={<Clock class=\"h-4 w-4 text-muted-foreground\" />}\n class=\"h-full\"\n contentClass=\"flex-1 overflow-auto\"\n >\n {loading ? (\n <div class=\"text-muted-foreground text-sm\">Loading...</div>\n ) : tools.length === 0 ? (\n <div class=\"text-muted-foreground text-sm text-center py-4\">No tools added yet</div>\n ) : (\n <div class=\"space-y-0\">\n {tools.map((tool) => (\n <a\n key={tool.configFilePath}\n href={`/tools/${encodeURIComponent(tool.name)}`}\n class=\"flex items-center gap-2 py-1 rounded hover:bg-accent cursor-pointer text-sm group\"\n >\n <FileCode class=\"h-4 w-4 text-muted-foreground group-hover:text-foreground transition-colors flex-shrink-0\" />\n <span class=\"font-medium truncate text-sm flex-1 min-w-0\">{tool.name}</span>\n <span class=\"flex items-center gap-1 text-xs text-muted-foreground flex-shrink-0\">\n <TimestampSourceIcon source={tool.timestampSource} />\n {tool.relativeTime}\n </span>\n </a>\n ))}\n </div>\n )}\n </TitledCard>\n );\n}\n",
|
|
93
|
+
"import { type JSX } from \"preact\";\n\nimport { cn } from \"../lib/utils\";\nimport { Card, CardContent } from \"./ui/Card\";\n\ninterface IStatCardProps {\n value: number | string;\n label: string;\n color?: string;\n}\n\nexport function StatCard({ value, label, color = \"text-foreground\" }: IStatCardProps): JSX.Element {\n return (\n <Card class=\"text-center py-4\">\n <CardContent class=\"space-y-1\">\n <div class={cn(\"text-3xl font-bold\", color)}>{value}</div>\n <div class=\"text-muted-foreground text-sm\">{label}</div>\n </CardContent>\n </Card>\n );\n}\n",
|
|
94
|
+
"import type { ComponentChildren } from \"preact\";\nimport { type JSX } from \"preact\";\nimport { FileCode, FolderOpen, FolderTree } from \"../icons\";\n\nimport type { IFileTreeEntry, IToolConfigsTree, IToolDetail, ToolRuntimeStatus } from \"../../shared/types\";\nimport { useFetch } from \"../hooks/useFetch\";\nimport { formatBytes } from \"../utils/format\";\nimport { InstallMethodBadge } from \"./InstallMethodBadge\";\nimport { TitledCard } from \"./ui/TitledCard\";\nimport { Tree, type ITreeItemData } from \"./ui/Tree\";\n\ntype ToolsTreeViewProps = {\n tools: IToolDetail[];\n};\n\ntype ToolTreeData = {\n toolName?: string;\n isFile?: boolean;\n installMethod?: string;\n ghCli?: boolean;\n fileCount?: number;\n status?: ToolRuntimeStatus;\n binaryDiskSize?: number;\n};\n\n/**\n * Convert API file tree entries to Tree component items.\n */\nfunction fileTreeToTreeItems(\n entries: IFileTreeEntry[],\n toolStatusMap: Map<string, ToolRuntimeStatus>,\n toolMethodMap: Map<string, string>,\n toolGhCliMap: Map<string, boolean>,\n toolFileCountMap: Map<string, number>,\n toolBinarySizeMap: Map<string, number>,\n): ITreeItemData<ToolTreeData>[] {\n return entries.map((entry) => {\n if (entry.type === \"directory\") {\n return {\n id: entry.path,\n label: entry.name,\n icon: <FolderOpen class=\"h-4 w-4 text-amber-300\" />,\n children: entry.children\n ? fileTreeToTreeItems(\n entry.children,\n toolStatusMap,\n toolMethodMap,\n toolGhCliMap,\n toolFileCountMap,\n toolBinarySizeMap,\n )\n : [],\n };\n }\n\n // File entry\n const status = entry.toolName ? toolStatusMap.get(entry.toolName) : undefined;\n const statusColor =\n status === \"installed\" ? \"text-green-400\" : status === \"error\" ? \"text-red-400\" : \"text-blue-400\";\n const dotColor = getStatusDotColor(status);\n\n return {\n id: entry.path,\n label: entry.name,\n icon: <FileCode class={`h-4 w-4 ${statusColor}`} />,\n iconDecorator: <span class={`inline-block w-2 h-2 rounded-full ${dotColor}`} />,\n data: {\n toolName: entry.toolName,\n isFile: true,\n installMethod: entry.toolName ? toolMethodMap.get(entry.toolName) : undefined,\n ghCli: entry.toolName ? toolGhCliMap.get(entry.toolName) : undefined,\n fileCount: entry.toolName ? toolFileCountMap.get(entry.toolName) : undefined,\n status,\n binaryDiskSize: entry.toolName ? toolBinarySizeMap.get(entry.toolName) : undefined,\n },\n };\n });\n}\n\n/**\n * Get the status dot color based on tool status.\n */\nfunction getStatusDotColor(status?: ToolRuntimeStatus): string {\n switch (status) {\n case \"installed\":\n return \"bg-green-500\";\n case \"error\":\n return \"bg-red-500\";\n default:\n return \"bg-gray-300\";\n }\n}\n\n/**\n * Custom label renderer that shows .tool.ts extension in gray for files,\n * and adds install method badge with file count and binary size, right-aligned.\n */\nfunction renderLabel(item: ITreeItemData<ToolTreeData>): ComponentChildren {\n if (item.data?.isFile && item.label.endsWith(\".tool.ts\")) {\n const baseName = item.label.replace(/\\.tool\\.ts$/, \"\");\n const fileCount = item.data.fileCount ?? 0;\n const binarySize = item.data.binaryDiskSize ?? 0;\n return (\n <span class=\"flex items-center justify-between flex-1\">\n <span>\n {baseName}\n <span class=\"text-gray-400\">.tool.ts</span>\n </span>\n <span class=\"flex items-center gap-2\">\n {item.data.installMethod && <InstallMethodBadge method={item.data.installMethod} ghCli={item.data.ghCli} />}\n <span class=\"text-xs text-muted-foreground\">{fileCount} files</span>\n {binarySize > 0 && <span class=\"text-xs font-bold text-orange-400\">{formatBytes(binarySize)}</span>}\n </span>\n </span>\n );\n }\n return item.label;\n}\n\nfunction handleItemClick(item: ITreeItemData<ToolTreeData>): void {\n if (item.data?.toolName) {\n window.location.href = `/tools/${encodeURIComponent(item.data.toolName)}`;\n }\n}\n\nexport function ToolsTreeView({ tools }: ToolsTreeViewProps): JSX.Element {\n const { data: treeData, loading } = useFetch<IToolConfigsTree>(\"/tool-configs-tree\");\n\n // Build maps from tools\n const toolStatusMap = new Map<string, ToolRuntimeStatus>();\n const toolMethodMap = new Map<string, string>();\n const toolGhCliMap = new Map<string, boolean>();\n const toolFileCountMap = new Map<string, number>();\n const toolBinarySizeMap = new Map<string, number>();\n for (const tool of tools) {\n toolStatusMap.set(tool.config.name, tool.runtime.status);\n toolMethodMap.set(tool.config.name, tool.config.installationMethod);\n toolGhCliMap.set(tool.config.name, tool.config.installParams.ghCli ?? false);\n toolFileCountMap.set(tool.config.name, tool.files.length);\n toolBinarySizeMap.set(tool.config.name, tool.binaryDiskSize);\n }\n\n if (loading) {\n return (\n <TitledCard title=\"Tool Files\" icon={<FolderTree class=\"h-4 w-4\" />}>\n <div class=\"text-muted-foreground text-sm\">Loading...</div>\n </TitledCard>\n );\n }\n\n const treeItems = treeData\n ? fileTreeToTreeItems(\n treeData.entries,\n toolStatusMap,\n toolMethodMap,\n toolGhCliMap,\n toolFileCountMap,\n toolBinarySizeMap,\n )\n : [];\n\n if (treeItems.length === 0) {\n return (\n <TitledCard title=\"Tool Files\" icon={<FolderTree class=\"h-4 w-4\" />}>\n <div class=\"text-muted-foreground text-sm\">No tool files found</div>\n </TitledCard>\n );\n }\n\n return (\n <TitledCard title=\"Tool Files\" icon={<FolderTree class=\"h-4 w-4\" />}>\n <Tree\n items={treeItems}\n defaultExpanded={true}\n onItemClick={handleItemClick}\n renderLabel={renderLabel}\n iconClassName=\"mr-1\"\n />\n </TitledCard>\n );\n}\n",
|
|
95
|
+
"import { type JSX } from \"preact\";\n\nimport type { IToolDetail } from \"../../shared/types\";\nimport { RecentTools } from \"../components/RecentTools\";\nimport { StatCard } from \"../components/StatCard\";\nimport { ToolsTreeView } from \"../components/ToolsTreeView\";\nimport { TitledCard } from \"../components/ui/TitledCard\";\nimport { useFetch } from \"../hooks/useFetch\";\nimport { History, Zap } from \"../icons\";\nimport { formatBytes } from \"../utils/format\";\n\ninterface IUsageListItem {\n name: string;\n count: number;\n lastUsedAt: number;\n}\n\nfunction formatRelativeTime(timestamp: number): string {\n const now = Date.now();\n const diff = now - timestamp;\n\n const seconds = Math.floor(diff / 1000);\n if (seconds < 60) {\n return \"just now\";\n }\n\n const minutes = Math.floor(seconds / 60);\n if (minutes < 60) {\n return `${minutes} minute${minutes === 1 ? \"\" : \"s\"} ago`;\n }\n\n const hours = Math.floor(minutes / 60);\n if (hours < 24) {\n return `${hours} hour${hours === 1 ? \"\" : \"s\"} ago`;\n }\n\n const days = Math.floor(hours / 24);\n if (days < 30) {\n return `${days} day${days === 1 ? \"\" : \"s\"} ago`;\n }\n\n const months = Math.floor(days / 30);\n return `${months} month${months === 1 ? \"\" : \"s\"} ago`;\n}\n\nfunction getToolLastUsedAt(tool: IToolDetail): number {\n return tool.usage.binaries.reduce((latest, item) => {\n if (!item.lastUsedAt) {\n return latest;\n }\n\n const timestamp = Date.parse(item.lastUsedAt);\n if (Number.isNaN(timestamp)) {\n return latest;\n }\n\n return Math.max(latest, timestamp);\n }, 0);\n}\n\nfunction buildUsageItems(tools: IToolDetail[]): IUsageListItem[] {\n return tools\n .map((tool) => ({\n name: tool.config.name,\n count: tool.usage.totalCount,\n lastUsedAt: getToolLastUsedAt(tool),\n }))\n .filter((tool) => tool.count > 0);\n}\n\ntype UsageListCardProps = {\n title: string;\n icon: JSX.Element;\n items: IUsageListItem[];\n secondary: (item: IUsageListItem) => string;\n emptyText: string;\n};\n\nfunction UsageListCard({ title, icon, items, secondary, emptyText }: UsageListCardProps): JSX.Element {\n return (\n <TitledCard title={title} icon={icon} class=\"h-full\" contentClass=\"flex-1 overflow-auto\">\n {items.length === 0 ? (\n <div class=\"text-muted-foreground py-4 text-center text-sm\">{emptyText}</div>\n ) : (\n <div class=\"space-y-0\">\n {items.map((item) => (\n <a\n key={item.name}\n href={`/tools/${encodeURIComponent(item.name)}`}\n class=\"group flex cursor-pointer items-center gap-2 rounded py-1 text-sm hover:bg-accent\"\n >\n <span class=\"min-w-0 flex-1 truncate text-sm font-medium\">{item.name}</span>\n <span class=\"flex-shrink-0 text-xs text-muted-foreground\">{secondary(item)}</span>\n </a>\n ))}\n </div>\n )}\n </TitledCard>\n );\n}\n\nexport function Tools(): JSX.Element {\n const { data: tools, loading } = useFetch<IToolDetail[]>(\"/tools\");\n\n const toolsList = tools || [];\n const totalFiles = toolsList.reduce((sum, tool) => sum + (tool.files?.length || 0), 0);\n const installedCount = toolsList.filter((tool) => tool.runtime.status === \"installed\").length;\n const binariesDiskSize = toolsList.reduce((sum, tool) => sum + (tool.binaryDiskSize || 0), 0);\n const usageItems = buildUsageItems(toolsList);\n const mostUsed = usageItems\n .toSorted((leftItem, rightItem) => rightItem.count - leftItem.count || rightItem.lastUsedAt - leftItem.lastUsedAt)\n .slice(0, 10);\n const mostRecentlyUsed = usageItems\n .toSorted((leftItem, rightItem) => rightItem.lastUsedAt - leftItem.lastUsedAt || rightItem.count - leftItem.count)\n .slice(0, 10);\n\n if (loading) {\n return (\n <div data-testid=\"Tools\" class=\"flex items-center justify-center h-64\">\n <div class=\"text-muted-foreground\">Loading...</div>\n </div>\n );\n }\n\n return (\n <div data-testid=\"Tools\" class=\"space-y-4\">\n <div class=\"grid grid-cols-4 gap-4\">\n <StatCard value={toolsList.length} label=\"Total Tools\" color=\"text-blue-400\" />\n <StatCard value={installedCount} label=\"Installed\" color=\"text-green-400\" />\n <StatCard value={totalFiles} label=\"Files Tracked\" color=\"text-purple-400\" />\n <StatCard value={formatBytes(binariesDiskSize)} label=\"Binary Size\" color=\"text-orange-400\" />\n </div>\n\n <div class=\"grid gap-4 lg:grid-cols-3\">\n <RecentTools />\n <UsageListCard\n title=\"Most Recently Used\"\n icon={<History class=\"h-4 w-4 text-muted-foreground\" />}\n items={mostRecentlyUsed}\n secondary={(item) => formatRelativeTime(item.lastUsedAt)}\n emptyText=\"No usage recorded yet\"\n />\n <UsageListCard\n title=\"Most Used\"\n icon={<Zap class=\"h-4 w-4 text-muted-foreground\" />}\n items={mostUsed}\n secondary={(item) => `${item.count.toLocaleString()} runs`}\n emptyText=\"No usage recorded yet\"\n />\n </div>\n\n <div>\n <ToolsTreeView tools={toolsList} />\n </div>\n\n {toolsList.length === 0 && <div class=\"py-8 text-center text-muted-foreground\">No tools configured</div>}\n </div>\n );\n}\n",
|
|
96
|
+
"import { type JSX } from \"preact\";\nimport { LocationProvider, Route, Router } from \"preact-iso\";\n\nimport { CommandPalette } from \"./components/CommandPalette\";\nimport { Nav } from \"./components/Nav\";\nimport { Health } from \"./pages/Health\";\nimport { NotFound } from \"./pages/NotFound\";\nimport { Settings } from \"./pages/Settings\";\nimport { ToolDetail } from \"./pages/ToolDetail\";\nimport { Tools } from \"./pages/Tools\";\n\nexport function App(): JSX.Element {\n return (\n <LocationProvider>\n <div class=\"min-h-screen bg-background text-foreground\">\n <Nav />\n <main class=\"max-w-7xl mx-auto px-4 py-6\">\n <Router>\n <Route path=\"/\" component={Tools} />\n <Route path=\"/tools/:name\" component={ToolDetail} />\n <Route path=\"/health\" component={Health} />\n <Route path=\"/settings\" component={Settings} />\n <Route default component={NotFound} />\n </Router>\n </main>\n <CommandPalette />\n </div>\n </LocationProvider>\n );\n}\n",
|
|
97
|
+
"import { h, hydrate } from \"preact\";\nimport { prerender as ssr } from \"preact-iso\";\n\nimport \"./styles/globals.css\";\nimport { App } from \"./App\";\n\ntype DashboardPrerenderResult = Awaited<ReturnType<typeof ssr>>;\n\nif (typeof window !== \"undefined\") {\n const appElement = document.getElementById(\"app\");\n if (appElement) {\n hydrate(h(App, {}), appElement);\n }\n}\n\nexport async function prerender(): Promise<DashboardPrerenderResult> {\n return await ssr(h(App, {}));\n}\n\nimport.meta.hot.accept();\n"
|
|
98
98
|
],
|
|
99
|
-
"mappings": "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",
|
|
100
|
-
"debugId": "
|
|
99
|
+
"mappings": "4IAAiC,JAAI,GAAE,EAAE,GAAE,GAAE,GAAE,EAAE,GAAE,CAAC,EAAE,EAAE,EAAE,GAAE,EAAE,IAAI,GAAE,EAAE,IAAI,GAAE,EAAE,OAAO,GAAE,EAAE,IAAI,GAAE,EAAE,QAAQ,GAAE,EAAE,GAAG,SAAS,EAAC,CAAC,EAAE,EAAE,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE,IAAG,CAAC,EAAE,GAAE,EAAE,IAAI,EAAE,EAAE,MAAM,EAAE,IAAI,CAAC,GAAG,CAAC,EAAE,IAAI,CAAC,CAAC,GAAG,OAAO,GAAG,EAAE,GAAG,QAAQ,EAAE,GAAG,KAAK,CAAC,CAAC,EAAE,EAAE,GAAG,GAAG,SAAS,CAAC,CAAC,EAAE,CAAC,OAAO,GAAE,EAAE,GAAE,GAAE,CAAC,EAAE,SAAS,EAAC,CAAC,EAAE,EAAE,EAAE,CAAC,IAAI,EAAE,GAAE,KAAI,CAAC,EAAE,GAAG,EAAE,EAAE,EAAE,CAAC,EAAE,MAAM,EAAE,GAAG,CAAC,EAAE,EAAE,CAAC,EAAE,GAAO,OAAE,CAAC,EAAE,QAAQ,CAAC,EAAE,CAAC,IAAI,EAAE,EAAE,IAAI,EAAE,IAAI,GAAG,EAAE,GAAG,GAAG,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,IAAI,IAAI,EAAE,IAAI,CAAC,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,IAAI,SAAS,CAAC,CAAC,GAAG,EAAE,EAAE,IAAI,EAAE,CAAC,EAAE,KAAK,CAAC,IAAI,EAAE,QAAQ,CAAC,EAAE,EAAE,EAAE,CAAC,GAAG,CAAC,EAAE,IAAI,IAAI,MAAM,GAAG,IAAI,EAAE,EAAE,IAAI,IAAI,GAAG,OAAO,QAAQ,CAAC,EAAE,CAAC,OAAO,EAAE,IAAI,EAAE,GAAG,EAAE,MAAM,QAAQ,CAAC,EAAE,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,MAAM,CAAC,GAAG,EAAE,KAAK,KAAK,EAAE,EAAE,CAAC,EAAE,IAAI,EAAE,EAAE,IAAI,QAAQ,EAAE,OAAO,EAAE,KAAK,QAAQ,CAAC,EAAE,CAAC,GAAG,EAAE,IAAI,CAAC,IAAI,EAAE,EAAE,GAAG,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,IAAS,OAAE,IAAI,EAAE,GAAG,KAAK,EAAE,KAAK,EAAE,GAAG,EAAE,KAAK,KAAK,EAAE,EAAE,CAAC,GAAG,GAAG,EAAE,IAAI,GAAG,IAAQ,sBAAJ,EAA8B,oBAAJ,GAAE,EAAsB,EAAE,oBAAoB,QAAQ,CAAC,EAAE,EAAE,EAAE,CAAC,GAAG,KAAK,IAAI,CAAC,IAAI,EAAE,EAAE,EAAO,OAAE,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,GAAG,EAAE,KAAK,KAAK,EAAE,EAAE,CAAC,GAAG,EAAE,sBAAsB,EAAE,OAAO,EAAE,KAAK,EAAE,GAAG,SAAS,EAAC,CAAC,EAAE,EAAE,CAAC,IAAI,EAAE,GAAE,KAAI,CAAC,EAAE,CAAC,EAAE,KAAK,GAAE,EAAE,IAAI,CAAC,IAAI,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,IAAI,IAAI,KAAK,CAAC,GAAG,SAAS,EAAC,CAAC,EAAE,EAAE,CAAC,IAAI,EAAE,GAAE,KAAI,CAAC,EAAE,CAAC,EAAE,KAAK,GAAE,EAAE,IAAI,CAAC,IAAI,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,IAAI,KAAK,CAAC,GAAG,SAAS,CAAC,CAAC,EAAE,CAAC,OAAO,GAAE,EAAE,EAAE,QAAQ,EAAE,CAAC,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,EAAuN,SAAS,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,EAAE,GAAE,KAAI,CAAC,EAAE,OAAO,GAAE,EAAE,IAAI,CAAC,IAAI,EAAE,GAAG,EAAE,EAAE,EAAE,IAAI,EAAE,EAAE,IAAI,GAAG,EAAE,GAAG,SAAS,EAAC,CAAC,EAAE,EAAE,CAAC,OAAO,GAAE,EAAE,EAAE,QAAQ,EAAE,CAAC,OAAO,GAAG,CAAC,EAAE,SAAS,EAAC,CAAC,EAAE,CAAC,IAAI,EAAE,EAAE,QAAQ,EAAE,KAAK,EAAE,GAAE,KAAI,CAAC,EAAE,OAAO,EAAE,EAAE,EAAE,GAAS,EAAE,IAAR,OAAa,EAAE,GAAG,GAAG,EAAE,IAAI,CAAC,GAAG,EAAE,MAAM,OAAO,EAAE,GAA+X,SAAS,EAAC,EAAE,CAAC,QAAQ,EAAE,EAAE,GAAE,MAAM,GAAG,CAAC,IAAI,EAAE,EAAE,IAAI,GAAG,EAAE,KAAK,EAAE,GAAG,CAAC,EAAE,IAAI,KAAK,EAAC,EAAE,EAAE,IAAI,KAAK,EAAC,EAAE,EAAE,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,IAAI,CAAC,EAAE,EAAE,IAAI,EAAE,EAAE,GAAG,IAAI,EAAE,IAAI,QAAQ,CAAC,EAAE,CAAC,EAAE,KAAK,IAAG,GAAE,CAAC,GAAG,EAAE,GAAG,QAAQ,CAAC,EAAE,EAAE,CAAC,GAAG,EAAE,KAAK,EAAE,IAAI,MAAM,EAAE,IAAI,EAAE,IAAI,KAAK,IAAG,GAAE,EAAE,CAAC,GAAG,EAAE,IAAI,QAAQ,CAAC,EAAE,CAAC,IAAG,GAAE,CAAC,EAAE,GAAE,EAAE,IAAI,GAAG,EAAE,EAAE,KAAK,IAAI,IAAI,KAAI,GAAG,EAAE,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,EAAE,GAAG,KAAK,QAAQ,CAAC,EAAE,CAAC,EAAE,MAAM,EAAE,GAAG,EAAE,KAAK,EAAE,EAAE,EAAE,IAAS,OAAE,IAAI,EAAE,IAAI,KAAK,EAAC,EAAE,EAAE,IAAI,KAAK,EAAC,EAAE,EAAE,IAAI,CAAC,EAAE,GAAE,IAAI,GAAE,GAAG,EAAE,OAAO,QAAQ,CAAC,EAAE,CAAC,IAAG,GAAE,CAAC,EAAE,IAAI,EAAE,EAAE,IAAI,GAAG,EAAE,MAAM,EAAE,IAAI,IAAI,SAAa,GAAE,KAAK,CAAC,IAAZ,GAAe,KAAI,EAAE,yBAAyB,GAAE,EAAE,wBAAwB,IAAG,EAAC,GAAG,EAAE,IAAI,GAAG,KAAK,QAAQ,CAAC,EAAE,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,GAAG,EAAE,EAAO,OAAE,GAAG,GAAE,EAAE,MAAM,EAAE,IAAI,QAAQ,CAAC,EAAE,EAAE,CAAC,EAAE,KAAK,QAAQ,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,IAAI,KAAK,EAAC,EAAE,EAAE,IAAI,EAAE,IAAI,OAAO,QAAQ,CAAC,EAAE,CAAC,MAAM,CAAC,EAAE,IAAI,GAAE,CAAC,EAAE,EAAE,MAAM,EAAE,CAAC,EAAE,KAAK,QAAQ,CAAC,EAAE,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,GAAG,EAAE,EAAE,CAAC,EAAE,EAAE,IAAI,EAAE,EAAE,GAAG,GAAG,EAAE,IAAG,GAAE,EAAE,CAAC,GAAG,EAAE,QAAQ,QAAQ,CAAC,EAAE,CAAC,IAAG,GAAE,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE,IAAI,GAAG,EAAE,MAAM,EAAE,IAAI,GAAG,KAAK,QAAQ,CAAC,EAAE,CAAC,GAAG,CAAC,GAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,GAAG,EAAE,EAAE,IAAS,OAAE,GAAG,EAAE,IAAI,EAAE,EAAE,GAAG,IAAI,IAAI,GAAc,OAAO,uBAAnB,WAAyC,SAAS,EAAC,CAAC,EAAE,CAAC,IAAI,EAAE,EAAE,QAAQ,EAAE,CAAC,aAAa,CAAC,EAAE,IAAG,qBAAqB,CAAC,EAAE,WAAW,CAAC,GAAG,EAAE,WAAW,EAAE,EAAE,EAAE,KAAI,EAAE,sBAAsB,CAAC,GAAG,SAAS,EAAC,CAAC,EAAE,CAAC,IAAI,EAAE,EAAE,EAAE,EAAE,IAAgB,OAAO,GAAnB,aAAuB,EAAE,IAAS,OAAE,EAAE,GAAG,EAAE,EAAE,SAAS,EAAC,CAAC,EAAE,CAAC,IAAI,EAAE,EAAE,EAAE,IAAI,EAAE,GAAG,EAAE,EAAE,EAAE,SAAS,EAAC,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,GAAG,EAAE,SAAS,EAAE,QAAQ,EAAE,KAAK,QAAQ,CAAC,EAAE,EAAE,CAAC,OAAO,IAAI,EAAE,GAAG,EAAE,SAAS,EAAC,CAAC,EAAE,EAAE,CAAC,OAAkB,OAAO,GAAnB,WAAqB,EAAE,CAAC,EAAE,ECU14G,IAAI,GAEA,GAMJ,SAAS,EAAS,CAAC,EAAM,CACxB,MAAO,CAAC,KAAU,OAAO,IAAS,SAC/B,EAAK,WAAW,EAAK,EACrB,GAAM,KAAK,CAAI,GAQnB,SAAS,EAAS,CAAC,EAAO,EAAQ,CACjC,IAAI,EAAM,GAEV,GADA,GAAO,OACH,GAAU,EAAO,OAAS,QAAS,CAEtC,GAAI,EAAO,SAAW,EAAO,SAAW,EAAO,QAAU,EAAO,UAAY,EAAO,SAAW,EAC7F,OAAO,EAGR,IAAM,EAAO,EAAO,aAAa,EAAE,KAAK,KAAM,EAAG,UAAY,KAAO,EAAG,IAAI,EAC1E,EAAO,GAAQ,EAAK,aAAa,MAAM,EACxC,GACC,CAAC,GACD,EAAK,QAAU,SAAS,QACxB,KAAK,KAAK,CAAI,GACd,CAAC,eAAe,KAAK,EAAK,MAAM,GAChC,CAAC,GAAU,CAAI,GACf,EAAK,SAEL,OAAO,EAGR,GAAO,GACP,EAAO,eAAe,EACtB,EAAM,EAAK,KAAK,QAAQ,SAAS,OAAQ,EAAE,EACrC,QAAI,GAAU,EAAO,IAC3B,GAAO,CAAC,EAAO,QACf,EAAM,EAAO,IAEb,OAAM,SAAS,SAAW,SAAS,OAGpC,GAAI,KAAS,GAAM,QAAQ,UAAU,KAAM,GAAI,CAAG,EAC7C,QAAI,KAAS,GAAO,QAAQ,aAAa,KAAM,GAAI,CAAG,EAC3D,OAAO,EAGD,IAAM,GAAO,CAAC,EAAK,EAAO,EAAU,CAAC,IAAM,CAGjD,GAFA,EAAM,EAAI,MAAM,GAAG,EAAE,OAAO,OAAO,EACnC,GAAS,GAAS,IAAI,MAAM,GAAG,EAAE,OAAO,OAAO,EAC3C,CAAC,EAAQ,OAAQ,EAAQ,OAAS,CAAC,EACvC,QAAS,EAAI,EAAG,EAAK,EAAM,EAAI,KAAK,IAAI,EAAI,OAAQ,EAAM,MAAM,EAAG,IAAK,CACvE,KAAO,EAAG,EAAO,IAAS,EAAM,IAAM,IAAI,MAAM,qBAAqB,EAGrE,GAFA,EAAM,EAAI,GAEN,CAAC,GAAK,GAAS,EAAK,SAExB,GAAI,CAAC,GAAK,GAAO,GAAQ,IAAK,CAC7B,EAAQ,KAAO,IAAM,EAAI,MAAM,CAAC,EAAE,IAAI,kBAAkB,EAAE,KAAK,GAAG,EAClE,MAGD,GAAI,CAAC,GAAM,CAAC,GAAO,GAAQ,KAAO,GAAQ,IAAM,OAGhD,GAFA,EAAO,GAAQ,KAAO,GAAQ,IAE1B,EAAM,EAAM,EAAI,MAAM,CAAC,EAAE,IAAI,kBAAkB,EAAE,KAAK,GAAG,GAAK,OAE7D,QAAI,EAAK,EAAM,mBAAmB,CAAG,EAE1C,GADA,EAAQ,OAAO,GAAS,EACpB,EAAE,KAAS,GAAU,EAAQ,GAAS,EAC1C,GAAI,EAAM,MAEX,OAAO,GAQD,SAAS,EAAgB,CAAC,EAAO,CAEvC,IAAO,EAAK,GAAS,GAAW,GAAW,EAAM,KAAO,SAAS,SAAW,SAAS,MAAM,EAC3F,GAAI,EAAM,MAAO,GAAQ,EAAM,MAC/B,IAAM,EAAU,KAAS,GAEnB,EAAQ,EAAQ,IAAM,CAC3B,IAAM,EAAI,IAAI,IAAI,EAAK,SAAS,MAAM,EAChC,EAAO,EAAE,SAAS,QAAQ,QAAS,EAAE,GAAK,IAEhD,MAAO,CACN,MACA,OACA,MAAO,OAAO,YAAY,EAAE,YAAY,EACxC,MAAO,CAAC,EAAK,IAAY,EAAM,CAAE,MAAK,SAAQ,CAAC,EAC/C,SACD,GACE,CAAC,CAAG,CAAC,EAaR,OAXA,GAAgB,IAAM,CAIrB,OAHA,iBAAiB,QAAS,CAAK,EAC/B,iBAAiB,WAAY,CAAK,EAE3B,IAAM,CACZ,oBAAoB,QAAS,CAAK,EAClC,oBAAoB,WAAY,CAAK,IAEpC,CAAC,CAAC,EAGE,EAAE,GAAiB,IAAI,SAAU,CAAE,OAAM,EAAG,EAAM,QAAQ,EAGlE,IAAM,GAAW,QAAQ,QAAQ,EAE1B,SAAS,EAAM,CAAC,EAAO,CAC7B,IAAO,EAAG,GAAU,GAAW,KAAK,EAAI,EAAG,CAAC,GAEpC,MAAK,QAAO,UAAS,QAAS,GAAY,EAClD,GAAI,CAAC,EACJ,MAAU,MAAM,8HAA8H,EAE/I,IAAQ,OAAO,EAAM,SAAS,CAAC,GAAM,GAAW,EAAY,EAEtD,EAAY,EAAO,EAAK,EACxB,EAAY,EAAO,CAAI,EAEvB,EAAQ,EAAO,CAAC,EAEhB,EAA4C,EAAO,EAEnD,EAA6C,EAAO,EAEpD,EAAwD,EAAO,EAE/D,EAAmB,EAAO,EAAK,EAE/B,EAAgD,EAAO,EAC7D,EAAW,QAAU,GAErB,IAAI,EAAW,EAAc,EAC7B,GAAa,EAAM,QAAQ,EAAE,KAAK,CAA2B,IAAU,CAYtE,GAXgB,GACf,EACA,EAAM,MAAM,KACX,EAAa,IACV,EAAM,MACT,KAAM,EACN,QACA,OAAQ,OAAO,OAAO,CAAC,EAAG,CAAM,EAChC,KAAM,EACP,CACD,EACa,OAAQ,EAAY,GAAa,EAAO,CAAU,EAC/D,GAAI,EAAM,MAAM,QAAS,EAAe,GAAa,EAAO,CAAU,EACtE,EAGD,IAAI,EAAW,GAAa,EAEtB,EAAsB,EAAI,SAAW,EAAI,QAAQ,IAAM,IAAgB,EAAI,QAAQ,IAAM,GACzF,EAAkB,EAAI,SAAW,EAAI,QAAQ,IAC7C,EAAe,EAAQ,IAAM,CAClC,EAAK,QAAU,EAAI,QAEnB,EAAI,QAAqC,EAAE,GAAa,SAAU,CAAE,MAAO,CAAW,EAAG,CAAQ,EAGjG,IAAM,EAAW,EAAK,SAAW,EAAK,QAAQ,MAAM,SACpD,GAAI,CAAC,GAAY,CAAC,GAAY,EAAS,OAAS,EAAS,MAAQ,EAAS,MAAM,YAAc,EAAS,MAAM,UAAW,CAEvH,GAAI,KAAK,KAAO,KAAK,IAAI,IAAK,KAAK,IAAI,IAAI,QAAQ,EAEnD,OADA,EAAM,UACC,GAER,MAAO,IACL,CAAC,EAAK,KAAK,UAAU,CAAU,CAAC,CAAC,EAEpC,GAAI,EACH,EAAI,QAAQ,KAAO,GACnB,EAAI,QAAQ,KAAO,GACb,QAAI,EACV,EAAI,QAAQ,IAAM,GAInB,IAAM,EAAI,EAAK,QA6Ef,OA5EA,EAAK,QAAU,KAGf,KAAK,IAAM,CAAC,EAAG,IAAmB,CAQjC,GANA,EAAW,QAAU,GAGrB,EAAK,QAAU,EAGX,EAAM,YAAa,EAAM,YAAY,CAAG,EAC5C,EAAU,QAAU,GAGpB,IAAI,GAAI,EAAM,QACd,EAAE,KAAK,IAAM,CAEZ,GAAI,KAAM,EAAM,QAAS,OAIzB,GADA,EAAK,QAAU,KACX,EAAI,QAAS,CAChB,GAAI,EAAe,IAElB,EAAI,QAAQ,IAAM,EAAe,IAGlC,GAAI,EAAe,IAAM,GAExB,EAAI,QAAQ,KAAO,GAGpB,GAAI,EAAe,IAAM,GACxB,EAAI,QAAQ,KAAO,GAIrB,GAAS,KAAK,CAAM,EACpB,GAGF,GAAgB,IAAM,CACrB,IAAM,EAAa,KAAK,KAAO,KAAK,IAAI,IAGxC,GAAI,EAAW,QAAS,CAEvB,GAAI,CAAC,EAAiB,SAAW,CAAC,EAAY,QAC7C,EAAY,QAAU,EAEvB,OAID,GAAI,CAAC,EAAiB,SAAW,EAAY,QAAS,CACrD,GAAI,EAAY,UAAY,EAAY,EAAY,QAAQ,OAAO,EACnE,EAAY,QAAU,KAOvB,GAHA,EAAiB,QAAU,GAGvB,EAAU,UAAY,EAAM,CAC/B,GAAI,EAAS,SAAS,EAAG,CAAC,EAC1B,GAAI,EAAM,cAAe,EAAM,cAAc,CAAG,EAEhD,EAAU,QAAU,EAGrB,GAAI,EAAM,WAAa,EAAU,QAAS,EAAM,UAAU,CAAG,EAC7D,EAAU,QAAU,IAClB,CAAC,EAAM,EAAS,CAAC,CAAC,EAGd,EACJ,CAAC,EAAE,GAAW,CAAE,EAAG,CAAI,CAAC,EAAG,EAAE,GAAW,CAAE,EAAG,CAAK,CAAC,CAAC,EACpD,EAAE,GAAW,CAAE,EAAG,CAAI,CAAC,EAG3B,IAAM,GAAe,GACf,GAAiB,IAGjB,GAAY,EAAG,OAAQ,EAAE,QAE/B,GAAO,SAAW,GAElB,GAAiB,IAAM,GACsD,CAAC,CAC9E,EACA,IAAM,GAAe,GACiD,CAAC,CACvE,EAEa,GAAQ,KAAS,EAAE,EAAM,UAAW,CAAK,EAEzC,GAAc,IAAM,GAAW,GAAiB,GAAG,EC7ShE,IAAM,GAAU,EAAQ,IACxB,EAAQ,IAAM,CAAC,IAAU,CACxB,GAAI,EAAM,MAAQ,EAAM,KAAK,YAAc,EAAM,IAChD,EAAM,MAAM,IAAM,EAAM,IACxB,EAAM,IAAM,KAEb,GAAI,GAAS,GAAQ,CAAK,GA4B3B,IAAM,GAAgB,EAAQ,IAC9B,EAAQ,IAAM,CAAC,EAAK,EAAU,IAAa,CAC1C,GAAI,GAAO,EAAI,KAAM,CACpB,IAAI,EAAI,EACR,MAAQ,EAAI,EAAE,GACb,GAAI,EAAE,KAAO,EAAE,IAAI,IAAK,CACvB,GAAI,EAAS,KAAO,KACnB,EAAS,IAAI,IAAM,CAAC,EAAS,GAAG,EAChC,EAAS,IAAM,EAAS,IACxB,EAAS,IAAM,EAAS,IAEzB,GAAI,CAAC,EAAS,IAAK,EAAS,IAAM,CAAC,EACnC,OAAO,EAAE,IAAI,IAAI,EAAK,CAAQ,GAIjC,GAAI,GAAe,GAAc,EAAK,EAAU,CAAQ,GC9CzD,IAAM,GAAc,CAAC,IAAW,EAAO,QAAQ,qBAAsB,OAAO,EAAE,YAAY,EACpF,GAAc,CAAC,IAAW,EAAO,QACrC,wBACA,CAAC,EAAO,EAAI,IAAO,EAAK,EAAG,YAAY,EAAI,EAAG,YAAY,CAC5D,EACM,GAAe,CAAC,IAAW,CAC/B,IAAM,EAAY,GAAY,CAAM,EACpC,OAAO,EAAU,OAAO,CAAC,EAAE,YAAY,EAAI,EAAU,MAAM,CAAC,GAExD,GAAe,IAAI,IAAY,EAAQ,OAAO,CAAC,EAAW,EAAO,IAAU,CAC/E,OAAO,QAAQ,CAAS,GAAK,EAAU,KAAK,IAAM,IAAM,EAAM,QAAQ,CAAS,IAAM,EACtF,EAAE,KAAK,GAAG,EAAE,KAAK,ECXlB,IAAI,GAAoB,CACtB,MAAO,6BACP,MAAO,GACP,OAAQ,GACR,QAAS,YACT,KAAM,OACN,OAAQ,eACR,eAAgB,IAChB,iBAAkB,QAClB,kBAAmB,OACrB,ECPA,IAAM,GAAO,EACX,QAAQ,eACR,OAAO,GACP,cAAc,EACd,sBACA,WACA,WACA,MAAO,EAAU,MACd,KACC,EACJ,MACA,IACK,GACH,MAAO,OAAO,CAAI,EAClB,OAAQ,EACR,OAAQ,GACP,gBAAiB,EAAsB,OAAO,CAAW,EAAI,GAAK,OAAO,CAAI,EAAI,EAClF,MAAO,CAAC,SAAU,CAAO,EAAE,KAAK,GAAG,KAChC,CACL,EACA,CAAC,GAAG,EAAS,IAAI,EAAE,EAAK,KAAW,EAAE,EAAK,CAAK,CAAC,EAAG,GAAG,GAAa,CAAQ,CAAC,CAC9E,ECpBA,IAAM,EAAmB,CAAC,EAAU,IAAa,CAC/C,IAAM,EAAY,EAAG,MAAO,EAAU,GAAI,cAAa,KAAY,EACjE,GACA,IACK,EACH,WACA,MAAO,GACL,UAAU,GAAY,GAAa,CAAQ,CAAC,IAC5C,UAAU,GAAY,CAAQ,IAC9B,CACF,CACF,EACA,CACF,EAEA,OADA,EAAU,YAAc,GAAa,CAAQ,EACtC,GCjBT,IAAM,GAAW,EAAiB,YAAa,CAC7C,CAAC,OAAQ,CAAE,EAAG,WAAY,IAAK,QAAS,CAAC,EACzC,CACE,OACA,CACE,EAAG,qIACH,IAAK,OACP,CACF,CACF,CAAC,ECTD,IAAM,GAAM,EAAiB,MAAO,CAClC,CACE,OACA,CACE,EAAG,yHACH,IAAK,QACP,CACF,EACA,CAAC,OAAQ,CAAE,EAAG,qBAAsB,IAAK,QAAS,CAAC,EACnD,CAAC,OAAQ,CAAE,EAAG,YAAa,IAAK,QAAS,CAAC,CAC5C,CAAC,ECVD,IAAM,GAAc,EAAiB,eAAgB,CACnD,CAAC,OAAQ,CAAE,EAAG,eAAgB,IAAK,QAAS,CAAC,CAC/C,CAAC,ECFD,IAAM,GAAe,EAAiB,gBAAiB,CACrD,CAAC,OAAQ,CAAE,EAAG,gBAAiB,IAAK,QAAS,CAAC,CAChD,CAAC,ECFD,IAAM,GAAgB,EAAiB,kBAAmB,CACxD,CAAC,SAAU,CAAE,GAAI,KAAM,GAAI,KAAM,EAAG,KAAM,IAAK,QAAS,CAAC,EACzD,CAAC,OAAQ,CAAE,EAAG,iBAAkB,IAAK,QAAS,CAAC,EAC/C,CAAC,OAAQ,CAAE,EAAG,WAAY,IAAK,QAAS,CAAC,CAC3C,CAAC,ECJD,IAAM,GAAc,EAAiB,eAAgB,CACnD,CAAC,SAAU,CAAE,GAAI,KAAM,GAAI,KAAM,EAAG,KAAM,IAAK,QAAS,CAAC,EACzD,CAAC,OAAQ,CAAE,EAAG,gBAAiB,IAAK,QAAS,CAAC,CAChD,CAAC,ECHD,IAAM,GAAU,EAAiB,WAAY,CAC3C,CAAC,SAAU,CAAE,GAAI,KAAM,GAAI,KAAM,EAAG,KAAM,IAAK,QAAS,CAAC,EACzD,CAAC,OAAQ,CAAE,EAAG,YAAa,IAAK,QAAS,CAAC,EAC1C,CAAC,OAAQ,CAAE,EAAG,WAAY,IAAK,QAAS,CAAC,CAC3C,CAAC,ECJD,IAAM,GAAQ,EAAiB,QAAS,CACtC,CAAC,OAAQ,CAAE,EAAG,cAAe,IAAK,QAAS,CAAC,EAC5C,CAAC,SAAU,CAAE,GAAI,KAAM,GAAI,KAAM,EAAG,KAAM,IAAK,QAAS,CAAC,CAC3D,CAAC,ECHD,IAAM,GAAO,EAAiB,OAAQ,CACpC,CAAC,OAAQ,CAAE,EAAG,iBAAkB,IAAK,OAAQ,CAAC,EAC9C,CAAC,OAAQ,CAAE,EAAG,eAAgB,IAAK,QAAS,CAAC,CAC/C,CAAC,ECHD,IAAM,GAAO,EAAiB,OAAQ,CACpC,CAAC,OAAQ,CAAE,MAAO,KAAM,OAAQ,KAAM,EAAG,IAAK,EAAG,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,QAAS,CAAC,EACvF,CAAC,OAAQ,CAAE,EAAG,0DAA2D,IAAK,QAAS,CAAC,CAC1F,CAAC,ECHD,IAAM,GAAW,EAAiB,WAAY,CAC5C,CAAC,OAAQ,CAAE,EAAG,WAAY,IAAK,QAAS,CAAC,EACzC,CAAC,OAAQ,CAAE,EAAG,4CAA6C,IAAK,QAAS,CAAC,EAC1E,CAAC,OAAQ,CAAE,EAAG,gBAAiB,IAAK,QAAS,CAAC,CAChD,CAAC,ECJD,IAAM,GAAe,EAAiB,gBAAiB,CACrD,CAAC,OAAQ,CAAE,EAAG,YAAa,IAAK,QAAS,CAAC,EAC1C,CAAC,OAAQ,CAAE,EAAG,cAAe,IAAK,QAAS,CAAC,EAC5C,CAAC,OAAQ,CAAE,EAAG,2DAA4D,IAAK,QAAS,CAAC,CAC3F,CAAC,ECJD,IAAM,GAAW,EAAiB,YAAa,CAC7C,CAAC,OAAQ,CAAE,EAAG,sBAAuB,IAAK,QAAS,CAAC,EACpD,CAAC,OAAQ,CAAE,EAAG,uBAAwB,IAAK,QAAS,CAAC,EACrD,CAAC,OAAQ,CAAE,EAAG,0BAA2B,IAAK,QAAS,CAAC,EACxD,CAAC,OAAQ,CAAE,EAAG,6DAA8D,IAAK,QAAS,CAAC,CAC7F,CAAC,ECLD,IAAM,GAAU,EAAiB,WAAY,CAC3C,CAAC,OAAQ,CAAE,EAAG,0BAA2B,IAAK,QAAS,CAAC,EACxD,CAAC,OAAQ,CAAE,EAAG,wBAAyB,IAAK,QAAS,CAAC,EACtD,CAAC,OAAQ,CAAE,EAAG,0BAA2B,IAAK,QAAS,CAAC,EACxD,CACE,OACA,CACE,EAAG,4EACH,IAAK,QACP,CACF,EACA,CAAC,OAAQ,CAAE,EAAG,0BAA2B,IAAK,QAAS,CAAC,EACxD,CAAC,OAAQ,CAAE,EAAG,yBAA0B,IAAK,QAAS,CAAC,EACvD,CAAC,OAAQ,CAAE,EAAG,yBAA0B,IAAK,QAAS,CAAC,EACvD,CAAC,OAAQ,CAAE,EAAG,yBAA0B,IAAK,QAAS,CAAC,EACvD,CAAC,OAAQ,CAAE,EAAG,yBAA0B,IAAK,QAAS,CAAC,EACvD,CAAC,OAAQ,CAAE,EAAG,wBAAyB,IAAK,QAAS,CAAC,EACtD,CAAC,SAAU,CAAE,GAAI,IAAK,GAAI,KAAM,EAAG,IAAK,IAAK,QAAS,CAAC,CACzD,CAAC,EClBD,IAAM,GAAW,EAAiB,YAAa,CAC7C,CAAC,OAAQ,CAAE,EAAG,6DAA8D,IAAK,QAAS,CAAC,EAC3F,CAAC,OAAQ,CAAE,EAAG,0BAA2B,IAAK,QAAS,CAAC,EACxD,CAAC,OAAQ,CAAE,EAAG,UAAW,IAAK,QAAS,CAAC,EACxC,CAAC,OAAQ,CAAE,EAAG,YAAa,IAAK,QAAS,CAAC,CAC5C,CAAC,ECLD,IAAM,GAAc,EAAiB,eAAgB,CACnD,CAAC,OAAQ,CAAE,EAAG,iBAAkB,IAAK,QAAS,CAAC,EAC/C,CAAC,OAAQ,CAAE,EAAG,0BAA2B,IAAK,QAAS,CAAC,EACxD,CACE,OACA,CACE,EAAG,kFACH,IAAK,QACP,CACF,CACF,CAAC,ECVD,IAAM,GAAe,EAAiB,gBAAiB,CACrD,CAAC,OAAQ,CAAE,EAAG,6DAA8D,IAAK,QAAS,CAAC,EAC3F,CAAC,OAAQ,CAAE,EAAG,0BAA2B,IAAK,QAAS,CAAC,EACxD,CAAC,OAAQ,CAAE,EAAG,gBAAiB,IAAK,QAAS,CAAC,EAC9C,CAAC,OAAQ,CAAE,EAAG,WAAY,IAAK,QAAS,CAAC,CAC3C,CAAC,ECLD,IAAM,GAAO,EAAiB,OAAQ,CACpC,CAAC,OAAQ,CAAE,EAAG,6DAA8D,IAAK,QAAS,CAAC,EAC3F,CAAC,OAAQ,CAAE,EAAG,0BAA2B,IAAK,QAAS,CAAC,CAC1D,CAAC,ECHD,IAAM,GAAY,EAAiB,aAAc,CAC/C,CACE,OACA,CACE,EAAG,4GACH,IAAK,QACP,CACF,EACA,CAAC,OAAQ,CAAE,EAAG,yBAA0B,IAAK,QAAS,CAAC,EACvD,CAAC,OAAQ,CAAE,EAAG,2BAA4B,IAAK,QAAS,CAAC,EACzD,CAAC,OAAQ,CAAE,EAAG,2BAA4B,IAAK,QAAS,CAAC,EACzD,CAAC,OAAQ,CAAE,EAAG,0BAA2B,IAAK,QAAS,CAAC,EACxD,CAAC,OAAQ,CAAE,EAAG,0BAA2B,IAAK,QAAS,CAAC,EACxD,CAAC,OAAQ,CAAE,EAAG,0BAA2B,IAAK,QAAS,CAAC,EACxD,CAAC,OAAQ,CAAE,EAAG,0BAA2B,IAAK,QAAS,CAAC,EACxD,CAAC,OAAQ,CAAE,EAAG,yBAA0B,IAAK,QAAS,CAAC,EACvD,CAAC,SAAU,CAAE,GAAI,KAAM,GAAI,KAAM,EAAG,IAAK,IAAK,QAAS,CAAC,CAC1D,CAAC,ECjBD,IAAM,GAAa,EAAiB,cAAe,CACjD,CACE,OACA,CACE,EAAG,oLACH,IAAK,QACP,CACF,CACF,CAAC,ECRD,IAAM,GAAa,EAAiB,cAAe,CACjD,CAAC,OAAQ,CAAE,EAAG,WAAY,IAAK,QAAS,CAAC,EACzC,CAAC,OAAQ,CAAE,EAAG,UAAW,IAAK,QAAS,CAAC,EACxC,CACE,OACA,CACE,EAAG,yHACH,IAAK,QACP,CACF,CACF,CAAC,ECVD,IAAM,GAAa,EAAiB,cAAe,CACjD,CACE,OACA,CACE,EAAG,qHACH,IAAK,QACP,CACF,EACA,CACE,OACA,CACE,EAAG,2HACH,IAAK,QACP,CACF,EACA,CAAC,OAAQ,CAAE,EAAG,uBAAwB,IAAK,QAAS,CAAC,EACrD,CAAC,OAAQ,CAAE,EAAG,0BAA2B,IAAK,QAAS,CAAC,CAC1D,CAAC,ECjBD,IAAM,GAAS,EAAiB,SAAU,CACxC,CACE,OACA,CACE,EAAG,yHACH,IAAK,QACP,CACF,CACF,CAAC,ECRD,IAAM,GAAY,EAAiB,aAAc,CAC/C,CAAC,OAAQ,CAAE,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,KAAM,IAAK,QAAS,CAAC,EAC/D,CAAC,SAAU,CAAE,GAAI,KAAM,GAAI,IAAK,EAAG,IAAK,IAAK,QAAS,CAAC,EACvD,CAAC,SAAU,CAAE,GAAI,IAAK,GAAI,KAAM,EAAG,IAAK,IAAK,QAAS,CAAC,EACvD,CAAC,OAAQ,CAAE,EAAG,sBAAuB,IAAK,QAAS,CAAC,CACtD,CAAC,ECLD,IAAM,GAAY,EAAiB,aAAc,CAC/C,CAAC,OAAQ,CAAE,GAAI,KAAM,GAAI,IAAK,GAAI,KAAM,GAAI,KAAM,IAAK,QAAS,CAAC,EACjE,CACE,OACA,CACE,EAAG,6GACH,IAAK,QACP,CACF,EACA,CAAC,OAAQ,CAAE,GAAI,IAAK,GAAI,OAAQ,GAAI,KAAM,GAAI,KAAM,IAAK,QAAS,CAAC,EACnE,CAAC,OAAQ,CAAE,GAAI,KAAM,GAAI,QAAS,GAAI,KAAM,GAAI,KAAM,IAAK,QAAS,CAAC,CACvE,CAAC,ECXD,IAAM,GAAa,EAAiB,cAAe,CACjD,CACE,OACA,CACE,EAAG,wJACH,IAAK,QACP,CACF,EACA,CAAC,OAAQ,CAAE,EAAG,2CAA4C,IAAK,QAAS,CAAC,CAC3E,CAAC,ECTD,IAAM,GAAU,EAAiB,UAAW,CAC1C,CAAC,OAAQ,CAAE,EAAG,oDAAqD,IAAK,QAAS,CAAC,EAClF,CAAC,OAAQ,CAAE,EAAG,WAAY,IAAK,QAAS,CAAC,EACzC,CAAC,OAAQ,CAAE,EAAG,cAAe,IAAK,QAAS,CAAC,CAC9C,CAAC,ECJD,IAAM,GAAO,EAAiB,OAAQ,CACpC,CAAC,SAAU,CAAE,GAAI,KAAM,GAAI,KAAM,EAAG,KAAM,IAAK,QAAS,CAAC,EACzD,CAAC,OAAQ,CAAE,EAAG,YAAa,IAAK,QAAS,CAAC,EAC1C,CAAC,OAAQ,CAAE,EAAG,YAAa,IAAK,QAAS,CAAC,CAC5C,CAAC,ECJD,IAAM,GAAS,EAAiB,SAAU,CACxC,CACE,OACA,CACE,EAAG,+GACH,IAAK,OACP,CACF,EACA,CACE,OACA,CACE,EAAG,4EACH,IAAK,QACP,CACF,EACA,CACE,OACA,CACE,EAAG,4EACH,IAAK,QACP,CACF,CACF,CAAC,ECtBD,IAAM,GAAO,EAAiB,OAAQ,CACpC,CAAC,OAAQ,CAAE,EAAG,8DAA+D,IAAK,QAAS,CAAC,EAC5F,CAAC,OAAQ,CAAE,EAAG,+DAAgE,IAAK,QAAS,CAAC,CAC/F,CAAC,ECHD,IAAM,GAAU,EAAiB,UAAW,CAC1C,CACE,OACA,CACE,EAAG,2HACH,IAAK,QACP,CACF,EACA,CAAC,OAAQ,CAAE,EAAG,YAAa,IAAK,QAAS,CAAC,EAC1C,CAAC,WAAY,CAAE,OAAQ,uBAAwB,IAAK,QAAS,CAAC,EAC9D,CAAC,OAAQ,CAAE,EAAG,mBAAoB,IAAK,QAAS,CAAC,CACnD,CAAC,ECXD,IAAM,GAAY,EAAiB,aAAc,CAC/C,CAAC,OAAQ,CAAE,EAAG,qDAAsD,IAAK,QAAS,CAAC,EACnF,CAAC,OAAQ,CAAE,EAAG,aAAc,IAAK,QAAS,CAAC,EAC3C,CAAC,OAAQ,CAAE,EAAG,sDAAuD,IAAK,QAAS,CAAC,EACpF,CAAC,OAAQ,CAAE,EAAG,YAAa,IAAK,QAAS,CAAC,CAC5C,CAAC,ECLD,IAAM,GAAS,EAAiB,SAAU,CACxC,CAAC,OAAQ,CAAE,EAAG,mBAAoB,IAAK,QAAS,CAAC,EACjD,CAAC,SAAU,CAAE,GAAI,KAAM,GAAI,KAAM,EAAG,IAAK,IAAK,QAAS,CAAC,CAC1D,CAAC,ECHD,IAAM,GAAW,EAAiB,WAAY,CAC5C,CACE,OACA,CACE,EAAG,0UACH,IAAK,QACP,CACF,EACA,CAAC,SAAU,CAAE,GAAI,KAAM,GAAI,KAAM,EAAG,IAAK,IAAK,QAAS,CAAC,CAC1D,CAAC,ECTD,IAAM,GAAS,EAAiB,SAAU,CACxC,CACE,OACA,CACE,EAAG,qKACH,IAAK,QACP,CACF,CACF,CAAC,ECRD,IAAM,GAAW,EAAiB,WAAY,CAC5C,CAAC,OAAQ,CAAE,EAAG,WAAY,IAAK,QAAS,CAAC,EACzC,CAAC,OAAQ,CAAE,EAAG,gBAAiB,IAAK,QAAS,CAAC,CAChD,CAAC,ECHD,IAAM,GAAS,EAAiB,UAAW,CACzC,CAAC,OAAQ,CAAE,EAAG,WAAY,IAAK,QAAS,CAAC,EACzC,CAAC,OAAQ,CAAE,EAAG,WAAY,IAAK,QAAS,CAAC,EACzC,CAAC,OAAQ,CAAE,EAAG,2CAA4C,IAAK,QAAS,CAAC,EACzE,CAAC,OAAQ,CAAE,EAAG,UAAW,IAAK,QAAS,CAAC,EACxC,CAAC,OAAQ,CAAE,EAAG,yCAA0C,IAAK,QAAS,CAAC,CACzE,CAAC,ECND,IAAM,GAAgB,EAAiB,iBAAkB,CACvD,CACE,OACA,CACE,EAAG,2EACH,IAAK,QACP,CACF,EACA,CAAC,OAAQ,CAAE,EAAG,UAAW,IAAK,QAAS,CAAC,EACxC,CAAC,OAAQ,CAAE,EAAG,aAAc,IAAK,QAAS,CAAC,CAC7C,CAAC,ECVD,IAAM,GAAS,EAAiB,SAAU,CACxC,CACE,OACA,CACE,EAAG,oMACH,IAAK,QACP,CACF,CACF,CAAC,ECRD,IAAM,GAAM,EAAiB,MAAO,CAClC,CACE,OACA,CACE,EAAG,8JACH,IAAK,QACP,CACF,CACF,CAAC,ECfD,eAAsB,EAAW,CAAC,EAA8B,CAE9D,IAAM,EAAO,MADD,MAAM,MAHH,OAGoB,CAAQ,GACpB,KAAK,EAC5B,GAAI,CAAC,EAAK,QAAS,MAAU,MAAM,EAAK,OAAS,WAAW,EAC5D,OAAO,EAAK,KAGd,eAAsB,EAAuB,CAAC,EAAkB,EAAqB,CAMnF,IAAM,EAAO,MALD,MAAM,MAVH,OAUoB,EAAU,CAC3C,OAAQ,OACR,QAAS,CAAE,eAAgB,kBAAmB,EAC9C,KAAM,KAAK,UAAU,CAAI,CAC3B,CAAC,GACsB,KAAK,EAC5B,GAAI,CAAC,EAAK,QAAS,MAAU,MAAM,EAAK,OAAS,WAAW,EAC5D,OAAO,EAAK,KCRP,SAAS,CAAW,CAAC,EAAkB,EAAkB,CAAC,EAAuB,CACtF,IAAO,EAAM,GAAW,EAAmB,IAAI,GACxC,EAAS,GAAc,EAAS,EAAI,GACpC,EAAO,GAAY,EAAuB,IAAI,EAG/C,EAAU,KAAK,UAAU,CAAI,EAkBnC,OAhBA,GAAU,IAAM,EACD,SAA2B,CACtC,EAAW,EAAI,EACf,EAAS,IAAI,EACb,GAAI,CACF,IAAM,EAAS,MAAM,GAAY,CAAQ,EACzC,EAAQ,CAAM,EACd,MAAO,EAAO,CACd,EAAS,aAAiB,MAAQ,EAAY,MAAM,OAAO,CAAK,CAAC,CAAC,SAClE,CACA,EAAW,EAAK,KAGf,GACJ,CAAC,EAAU,CAAO,CAAC,EAEf,CAAE,OAAM,UAAS,OAAM,ECjCkV,IAA0E,GAAE,EAAkB,SAAS,CAAC,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,IAAI,EAAE,CAAC,GAAG,IAAI,EAAE,EAAE,EAAE,EAAE,GAAG,QAAQ,EAAE,IAAI,KAAK,EAAE,CAAC,EAAE,EAAS,GAAP,MAAS,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,KAAK,GAAG,KAAK,IAAI,EAAE,IAAI,KAAK,IAAI,KAAK,YAAiB,OAAE,IAAI,EAAE,GAAE,IAAI,GAAG,IAAI,EAAE,SAAS,EAAE,OAAO,CAAC,EAAE,GAAe,OAAO,GAAnB,aAAuB,EAAE,EAAE,cAAc,IAAI,KAAK,EAAW,EAAE,KAAN,SAAW,EAAE,GAAG,EAAE,IAAI,OAAO,EAAE,OAAO,EAAE,MAAM,CAAC,EAAE,ECcnyB,SAAS,EAAc,EAAuB,CACnD,IAAO,EAAQ,GAAa,EAAS,EAAK,GACnC,EAAO,GAAY,EAAS,EAAE,GAC9B,EAAe,GAAoB,EAAS,CAAC,EAC9C,EAAW,EAAyB,IAAI,GACtC,SAAU,GAAY,GACtB,KAAM,GAAU,EAAwB,QAAQ,EAExD,GAAU,IAAM,CACd,IAAM,EAAgB,CAAC,IAAyB,CAC9C,IAAK,EAAM,SAAW,EAAM,UAAY,EAAM,MAAQ,IACpD,EAAM,eAAe,EACrB,EAAU,CAAC,IAAkB,CAAC,CAAa,EAE7C,GAAI,EAAM,MAAQ,UAAY,EAC5B,EAAU,EAAK,GAKnB,OADA,SAAS,iBAAiB,UAAW,CAAa,EAC3C,IAAM,SAAS,oBAAoB,UAAW,CAAa,GACjE,CAAC,CAAM,CAAC,EAEX,GAAU,IAAM,CACd,GAAI,EACF,EAAS,EAAE,EACX,EAAiB,CAAC,EAClB,WAAW,IAAM,EAAS,SAAS,MAAM,EAAG,CAAC,GAE9C,CAAC,CAAM,CAAC,EAEX,IAAM,EAAU,EAAQ,IAAuB,CAC7C,GAAI,CAAC,GAAS,CAAC,EAAM,KAAK,EAAG,MAAO,CAAC,EAErC,IAAM,EAAa,EAAM,YAAY,EAC/B,EAA2B,CAAC,EAElC,QAAW,KAAQ,EAAO,CACxB,GAAI,EAAK,OAAO,KAAK,YAAY,EAAE,SAAS,CAAU,EAAG,CACvD,EAAQ,KAAK,CAAE,OAAM,UAAW,OAAQ,aAAc,EAAK,OAAO,IAAK,CAAC,EACxE,SAGF,IAAM,EAAW,EAAK,OAAO,UAAY,CAAC,EAC1C,QAAW,KAAU,EAAU,CAC7B,IAAM,EAAa,OAAO,IAAW,SAAW,EAAS,EAAO,KAChE,GAAI,EAAW,YAAY,EAAE,SAAS,CAAU,EAAG,CACjD,EAAQ,KAAK,CAAE,OAAM,UAAW,SAAU,aAAc,CAAW,CAAC,EACpE,QAKN,OAAO,EAAQ,MAAM,EAAG,EAAE,GACzB,CAAC,EAAO,CAAK,CAAC,EAEX,EAAa,GACjB,CAAC,IAA0B,CACzB,EAAU,EAAK,EACf,EAAM,UAAU,mBAAmB,EAAO,KAAK,OAAO,IAAI,GAAG,GAE/D,CAAC,CAAK,CACR,EAEM,EAAgB,GACpB,CAAC,IAAyB,CACxB,GAAI,EAAM,MAAQ,YAChB,EAAM,eAAe,EACrB,EAAiB,CAAC,IAAU,KAAK,IAAI,EAAQ,EAAG,EAAQ,OAAS,CAAC,CAAC,EAC9D,QAAI,EAAM,MAAQ,UACvB,EAAM,eAAe,EACrB,EAAiB,CAAC,IAAU,KAAK,IAAI,EAAQ,EAAG,CAAC,CAAC,EAC7C,QAAI,EAAM,MAAQ,SAAW,EAAQ,GAC1C,EAAM,eAAe,EACrB,EAAW,EAAQ,EAAc,GAGrC,CAAC,EAAS,EAAe,CAAU,CACrC,EAEA,GAAI,CAAC,EAAQ,OAAO,KAEpB,OACE,EAwDE,MAxDF,CAAK,cAAY,iBAAiB,MAAM,+DAAxC,SAwDE,CAvDA,EAAC,MAAD,CAAK,MAAM,4BAA4B,QAAS,IAAM,EAAU,EAAK,EAAG,EAExE,EAoDE,MApDF,CAAK,MAAM,6FAAX,SAoDE,CAnDA,EAeE,MAfF,CAAK,MAAM,gDAAX,SAeE,CAdA,EAAC,GAAD,CAAQ,MAAM,gCAAgC,EAC9C,EAAC,QAAD,CACE,IAAK,EACL,KAAK,OACL,MAAO,EACP,QAAS,CAAC,IAAU,CAClB,EAAU,EAAM,OAA4B,KAAK,EACjD,EAAiB,CAAC,GAEpB,UAAW,EACX,YAAY,oCACZ,MAAM,qDACR,EACA,EAA+E,MAA/E,CAAK,MAAM,+DAAX,eAA+E,GAC/E,EAED,EAAM,KAAK,GACV,EA2BE,MA3BF,CAAK,MAAM,2BAAX,SACG,EAAQ,SAAW,EAClB,EAAyE,MAAzE,CAAK,MAAM,8CAAX,0BAAyE,EAEzE,EAqBE,KArBF,UACG,EAAQ,IAAI,CAAC,EAAQ,IACpB,EAiBE,KAjBF,CAEE,MAAO,8DACL,IAAU,EAAgB,YAAc,uBAE1C,QAAS,IAAM,EAAW,CAAM,EAChC,aAAc,IAAM,EAAiB,CAAK,EAN5C,SAiBE,CATA,EAOE,MAPF,UAOE,CANA,EAAoD,MAApD,CAAK,MAAM,cAAX,SAA0B,EAAO,KAAK,OAAO,KAAO,EACnD,EAAO,YAAc,UACpB,EAEE,MAFF,CAAK,MAAM,gCAAX,SAEE,CAFF,WACU,EAA2D,OAA3D,CAAM,MAAM,wBAAZ,SAAqC,EAAO,aAAe,GACnE,GAEJ,EACF,EAAqF,OAArF,CAAM,MAAM,gCAAZ,SAA6C,EAAO,KAAK,OAAO,mBAAqB,IAfhF,EAAO,KAAK,OAAO,IAgBxB,CACH,EACD,EAEJ,EAGH,CAAC,EAAM,KAAK,GACX,EAAgG,MAAhG,CAAK,MAAM,0CAAX,qDAAgG,GAElG,GACF,ECzJN,SAAS,EAAC,CAAC,EAAE,CAAC,IAAI,EAAE,EAAE,EAAE,GAAG,GAAa,OAAO,GAAjB,UAA8B,OAAO,GAAjB,SAAmB,GAAG,EAAO,QAAa,OAAO,GAAjB,SAAmB,GAAG,MAAM,QAAQ,CAAC,EAAE,CAAC,IAAI,EAAE,EAAE,OAAO,IAAI,EAAE,EAAE,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,GAAE,EAAE,EAAE,KAAK,IAAI,GAAG,KAAK,GAAG,GAAQ,SAAI,KAAK,EAAE,EAAE,KAAK,IAAI,GAAG,KAAK,GAAG,GAAG,OAAO,EAAS,SAAS,EAAI,EAAE,CAAC,QAAQ,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,UAAU,OAAO,EAAE,EAAE,KAAK,EAAE,UAAU,MAAM,EAAE,GAAE,CAAC,KAAK,IAAI,GAAG,KAAK,GAAG,GAAG,OAAO,ECG9W,IAAM,GAAe,CAAC,EAAQ,IAAW,CAEvC,IAAM,EAAoB,MAAM,EAAO,OAAS,EAAO,MAAM,EAC7D,QAAS,EAAI,EAAG,EAAI,EAAO,OAAQ,IACjC,EAAc,GAAK,EAAO,GAE5B,QAAS,EAAI,EAAG,EAAI,EAAO,OAAQ,IACjC,EAAc,EAAO,OAAS,GAAK,EAAO,GAE5C,OAAO,GAIH,GAA6B,CAAC,EAAc,KAAe,CAC/D,eACA,WACF,GAEM,GAAwB,CAAC,EAAW,IAAI,IAAO,EAAa,KAAM,KAAkB,CACxF,WACA,aACA,cACF,GAEA,IAAM,GAAkB,CAAC,EAGzB,IAAM,GAAwB,KAAU,CACtC,IAAM,EAAW,GAAe,CAAM,GAEpC,yBACA,kCACE,EA2BJ,MAAO,CACL,gBA3BsB,KAAa,CACnC,GAAI,EAAU,WAAW,GAAG,GAAK,EAAU,SAAS,GAAG,EACrD,OAAO,GAA+B,CAAS,EAEjD,IAAM,EAAa,EAAU,MAdJ,GAc8B,EAEjD,EAAa,EAAW,KAAO,IAAM,EAAW,OAAS,EAAI,EAAI,EACvE,OAAO,GAAkB,EAAY,EAAY,CAAQ,GAqBzD,4BAnBkC,CAAC,EAAc,IAAuB,CACxE,GAAI,EAAoB,CACtB,IAAM,EAAoB,EAA+B,GACnD,EAAgB,EAAuB,GAC7C,GAAI,EAAmB,CACrB,GAAI,EAEF,OAAO,GAAa,EAAe,CAAiB,EAGtD,OAAO,EAGT,OAAO,GAAiB,GAE1B,OAAO,EAAuB,IAAiB,GAKjD,GAEI,GAAoB,CAAC,EAAY,EAAY,IAAoB,CAErE,GADyB,EAAW,OAAS,IACpB,EACvB,OAAO,EAAgB,aAEzB,IAAM,EAAmB,EAAW,GAC9B,EAAsB,EAAgB,SAAS,IAAI,CAAgB,EACzE,GAAI,EAAqB,CACvB,IAAM,EAAS,GAAkB,EAAY,EAAa,EAAG,CAAmB,EAChF,GAAI,EAAQ,OAAO,EAErB,IAAM,EAAa,EAAgB,WACnC,GAAI,IAAe,KACjB,OAGF,IAAM,EAAY,IAAe,EAAI,EAAW,KAzDrB,GAyD8C,EAAI,EAAW,MAAM,CAAU,EAAE,KAzD/E,GAyDwG,EAC7H,EAAmB,EAAW,OACpC,QAAS,EAAI,EAAG,EAAI,EAAkB,IAAK,CACzC,IAAM,EAAe,EAAW,GAChC,GAAI,EAAa,UAAU,CAAS,EAClC,OAAO,EAAa,aAGxB,QAOI,GAAiC,KAAa,EAAU,MAAM,EAAG,EAAE,EAAE,QAAQ,GAAG,IAAM,GAAK,QAAa,IAAM,CAClH,IAAM,EAAU,EAAU,MAAM,EAAG,EAAE,EAC/B,EAAa,EAAQ,QAAQ,GAAG,EAChC,EAAW,EAAQ,MAAM,EAAG,CAAU,EAC5C,OAAO,EAzEyB,cAyEc,EAAW,SACxD,EAIG,GAAiB,KAAU,CAC/B,IACE,QACA,eACE,EACJ,OAAO,GAAmB,EAAa,CAAK,GAGxC,GAAqB,CAAC,EAAa,IAAU,CACjD,IAAM,EAAW,GAAsB,EACvC,QAAW,KAAgB,EAAa,CACtC,IAAM,EAAQ,EAAY,GAC1B,GAA0B,EAAO,EAAU,EAAc,CAAK,EAEhE,OAAO,GAEH,GAA4B,CAAC,EAAY,EAAiB,EAAc,IAAU,CACtF,IAAM,EAAM,EAAW,OACvB,QAAS,EAAI,EAAG,EAAI,EAAK,IAAK,CAC5B,IAAM,EAAkB,EAAW,GACnC,GAAuB,EAAiB,EAAiB,EAAc,CAAK,IAI1E,GAAyB,CAAC,EAAiB,EAAiB,EAAc,IAAU,CACxF,GAAI,OAAO,IAAoB,SAAU,CACvC,GAAwB,EAAiB,EAAiB,CAAY,EACtE,OAEF,GAAI,OAAO,IAAoB,WAAY,CACzC,GAA0B,EAAiB,EAAiB,EAAc,CAAK,EAC/E,OAEF,GAAwB,EAAiB,EAAiB,EAAc,CAAK,GAEzE,GAA0B,CAAC,EAAiB,EAAiB,IAAiB,CAClF,IAAM,EAAwB,IAAoB,GAAK,EAAkB,GAAQ,EAAiB,CAAe,EACjH,EAAsB,aAAe,GAEjC,GAA4B,CAAC,EAAiB,EAAiB,EAAc,IAAU,CAC3F,GAAI,GAAc,CAAe,EAAG,CAClC,GAA0B,EAAgB,CAAK,EAAG,EAAiB,EAAc,CAAK,EACtF,OAEF,GAAI,EAAgB,aAAe,KACjC,EAAgB,WAAa,CAAC,EAEhC,EAAgB,WAAW,KAAK,GAA2B,EAAc,CAAe,CAAC,GAErF,GAA0B,CAAC,EAAiB,EAAiB,EAAc,IAAU,CACzF,IAAM,EAAU,OAAO,QAAQ,CAAe,EACxC,EAAM,EAAQ,OACpB,QAAS,EAAI,EAAG,EAAI,EAAK,IAAK,CAC5B,IAAO,EAAK,GAAS,EAAQ,GAC7B,GAA0B,EAAO,GAAQ,EAAiB,CAAG,EAAG,EAAc,CAAK,IAGjF,GAAU,CAAC,EAAiB,IAAS,CACzC,IAAI,EAAU,EACR,EAAQ,EAAK,MA5IQ,GA4IkB,EACvC,EAAM,EAAM,OAClB,QAAS,EAAI,EAAG,EAAI,EAAK,IAAK,CAC5B,IAAM,EAAO,EAAM,GACf,EAAO,EAAQ,SAAS,IAAI,CAAI,EACpC,GAAI,CAAC,EACH,EAAO,GAAsB,EAC7B,EAAQ,SAAS,IAAI,EAAM,CAAI,EAEjC,EAAU,EAEZ,OAAO,GAGH,GAAgB,MAAQ,kBAAmB,IAAQ,EAAK,gBAAkB,GAG1E,GAAiB,KAAgB,CACrC,GAAI,EAAe,EACjB,MAAO,CACL,IAAK,IAAG,CAAG,QACX,IAAK,IAAM,EACb,EAEF,IAAI,EAAY,EACZ,EAAQ,OAAO,OAAO,IAAI,EAC1B,EAAgB,OAAO,OAAO,IAAI,EAChC,EAAS,CAAC,EAAK,IAAU,CAG7B,GAFA,EAAM,GAAO,EACb,IACI,EAAY,EACd,EAAY,EACZ,EAAgB,EAChB,EAAQ,OAAO,OAAO,IAAI,GAG9B,MAAO,CACL,GAAG,CAAC,EAAK,CACP,IAAI,EAAQ,EAAM,GAClB,GAAI,IAAU,OACZ,OAAO,EAET,IAAK,EAAQ,EAAc,MAAU,OAEnC,OADA,EAAO,EAAK,CAAK,EACV,GAGX,GAAG,CAAC,EAAK,EAAO,CACd,GAAI,KAAO,EACT,EAAM,GAAO,EAEb,OAAO,EAAK,CAAK,EAGvB,GAIF,IAAM,GAAkB,CAAC,EAEnB,GAAqB,CAAC,EAAW,EAAsB,EAAe,EAA8B,KAAgB,CACxH,YACA,uBACA,gBACA,+BACA,YACF,GACM,GAAuB,KAAU,CACrC,IACE,SACA,8BACE,EAOA,EAAiB,KAAa,CAEhC,IAAM,EAAY,CAAC,EACf,EAAe,EACf,EAAa,EACb,EAAgB,EAChB,EACE,EAAM,EAAU,OACtB,QAAS,EAAQ,EAAG,EAAQ,EAAK,IAAS,CACxC,IAAM,EAAmB,EAAU,GACnC,GAAI,IAAiB,GAAK,IAAe,EAAG,CAC1C,GAAI,IAhCe,IAgC0B,CAC3C,EAAU,KAAK,EAAU,MAAM,EAAe,CAAK,CAAC,EACpD,EAAgB,EAAQ,EACxB,SAEF,GAAI,IAAqB,IAAK,CAC5B,EAA0B,EAC1B,UAGJ,GAAI,IAAqB,IAAK,IAAoB,QAAI,IAAqB,IAAK,IAAoB,QAAI,IAAqB,IAAK,IAAkB,QAAI,IAAqB,IAAK,IAEpL,IAAM,EAAqC,EAAU,SAAW,EAAI,EAAY,EAAU,MAAM,CAAa,EAEzG,EAAgB,EAChB,EAAuB,GAC3B,GAAI,EAAmC,SAjDhB,GAiD2C,EAChE,EAAgB,EAAmC,MAAM,EAAG,EAAE,EAC9D,EAAuB,GAClB,QAKP,EAAmC,WAzDZ,GAyDyC,EAC9D,EAAgB,EAAmC,MAAM,CAAC,EAC1D,EAAuB,GAEzB,IAAM,EAA+B,GAA2B,EAA0B,EAAgB,EAA0B,EAAgB,OACpJ,OAAO,GAAmB,EAAW,EAAsB,EAAe,CAA4B,GAExG,GAAI,EAAQ,CACV,IAAM,EAAa,EAhEI,IAiEjB,EAAyB,EAC/B,EAAiB,KAAa,EAAU,WAAW,CAAU,EAAI,EAAuB,EAAU,MAAM,EAAW,MAAM,CAAC,EAAI,GAAmB,GAAiB,GAAO,EAAW,OAAW,EAAI,EAErM,GAAI,EAA4B,CAC9B,IAAM,EAAyB,EAC/B,EAAiB,KAAa,EAA2B,CACvD,YACA,eAAgB,CAClB,CAAC,EAEH,OAAO,GAQH,GAAsB,KAAU,CAEpC,IAAM,EAAkB,IAAI,IAK5B,OAHA,EAAO,wBAAwB,QAAQ,CAAC,EAAK,IAAU,CACrD,EAAgB,IAAI,EAAK,IAAU,CAAK,EACzC,EACM,KAAa,CAClB,IAAM,EAAS,CAAC,EACZ,EAAiB,CAAC,EAEtB,QAAS,EAAI,EAAG,EAAI,EAAU,OAAQ,IAAK,CACzC,IAAM,EAAW,EAAU,GAErB,EAAc,EAAS,KAAO,IAC9B,EAAmB,EAAgB,IAAI,CAAQ,EACrD,GAAI,GAAe,EAAkB,CAEnC,GAAI,EAAe,OAAS,EAC1B,EAAe,KAAK,EACpB,EAAO,KAAK,GAAG,CAAc,EAC7B,EAAiB,CAAC,EAEpB,EAAO,KAAK,CAAQ,EAGpB,OAAe,KAAK,CAAQ,EAIhC,GAAI,EAAe,OAAS,EAC1B,EAAe,KAAK,EACpB,EAAO,KAAK,GAAG,CAAc,EAE/B,OAAO,IAGL,GAAoB,MAAW,CACnC,MAAO,GAAe,EAAO,SAAS,EACtC,eAAgB,GAAqB,CAAM,EAC3C,cAAe,GAAoB,CAAM,KACtC,GAAsB,CAAM,CACjC,GACM,GAAsB,MACtB,GAAiB,CAAC,EAAW,IAAgB,CACjD,IACE,iBACA,kBACA,8BACA,iBACE,EAQE,EAAwB,CAAC,EACzB,EAAa,EAAU,KAAK,EAAE,MAAM,EAAmB,EACzD,EAAS,GACb,QAAS,EAAQ,EAAW,OAAS,EAAG,GAAS,EAAG,GAAS,EAAG,CAC9D,IAAM,EAAoB,EAAW,IAEnC,aACA,YACA,uBACA,gBACA,gCACE,EAAe,CAAiB,EACpC,GAAI,EAAY,CACd,EAAS,GAAqB,EAAO,OAAS,EAAI,IAAM,EAAS,GACjE,SAEF,IAAI,EAAqB,CAAC,CAAC,EACvB,EAAe,EAAgB,EAAqB,EAAc,UAAU,EAAG,CAA4B,EAAI,CAAa,EAChI,GAAI,CAAC,EAAc,CACjB,GAAI,CAAC,EAAoB,CAEvB,EAAS,GAAqB,EAAO,OAAS,EAAI,IAAM,EAAS,GACjE,SAGF,GADA,EAAe,EAAgB,CAAa,EACxC,CAAC,EAAc,CAEjB,EAAS,GAAqB,EAAO,OAAS,EAAI,IAAM,EAAS,GACjE,SAEF,EAAqB,GAGvB,IAAM,EAAkB,EAAU,SAAW,EAAI,GAAK,EAAU,SAAW,EAAI,EAAU,GAAK,EAAc,CAAS,EAAE,KAAK,GAAG,EACzH,EAAa,EAAuB,EAhLnB,IAgL0D,EAC3E,EAAU,EAAa,EAC7B,GAAI,EAAsB,QAAQ,CAAO,EAAI,GAE3C,SAEF,EAAsB,KAAK,CAAO,EAClC,IAAM,EAAiB,EAA4B,EAAc,CAAkB,EACnF,QAAS,EAAI,EAAG,EAAI,EAAe,OAAQ,EAAE,EAAG,CAC9C,IAAM,EAAQ,EAAe,GAC7B,EAAsB,KAAK,EAAa,CAAK,EAG/C,EAAS,GAAqB,EAAO,OAAS,EAAI,IAAM,EAAS,GAEnE,OAAO,GAYH,GAAS,IAAI,IAAe,CAChC,IAAI,EAAQ,EACR,EACA,EACA,EAAS,GACb,MAAO,EAAQ,EAAW,OACxB,GAAI,EAAW,EAAW,MACxB,GAAI,EAAgB,GAAQ,CAAQ,EAClC,IAAW,GAAU,KACrB,GAAU,EAIhB,OAAO,GAEH,GAAU,KAAO,CAErB,GAAI,OAAO,IAAQ,SACjB,OAAO,EAET,IAAI,EACA,EAAS,GACb,QAAS,EAAI,EAAG,EAAI,EAAI,OAAQ,IAC9B,GAAI,EAAI,IACN,GAAI,EAAgB,GAAQ,EAAI,EAAE,EAChC,IAAW,GAAU,KACrB,GAAU,EAIhB,OAAO,GAEH,GAAsB,CAAC,KAAsB,IAAqB,CACtE,IAAI,EACA,EACA,EACA,EACE,EAAoB,KAAa,CACrC,IAAM,EAAS,EAAiB,OAAO,CAAC,EAAgB,IAAwB,EAAoB,CAAc,EAAG,EAAkB,CAAC,EAKxI,OAJA,EAAc,GAAkB,CAAM,EACtC,EAAW,EAAY,MAAM,IAC7B,EAAW,EAAY,MAAM,IAC7B,EAAiB,EACV,EAAc,CAAS,GAE1B,EAAgB,KAAa,CACjC,IAAM,EAAe,EAAS,CAAS,EACvC,GAAI,EACF,OAAO,EAET,IAAM,EAAS,GAAe,EAAW,CAAW,EAEpD,OADA,EAAS,EAAW,CAAM,EACnB,GAGT,OADA,EAAiB,EACV,IAAI,IAAS,EAAe,GAAO,GAAG,CAAI,CAAC,GAE9C,GAAmB,CAAC,EACpB,EAAY,KAAO,CACvB,IAAM,EAAc,KAAS,EAAM,IAAQ,GAE3C,OADA,EAAY,cAAgB,GACrB,GAEH,GAAsB,8BACtB,GAAyB,8BACzB,GAAgB,iCAChB,GAAkB,mCAClB,GAAkB,4HAClB,GAAqB,qDAErB,GAAc,kEACd,GAAa,+FACb,GAAa,KAAS,GAAc,KAAK,CAAK,EAC9C,EAAW,KAAS,CAAC,CAAC,GAAS,CAAC,OAAO,MAAM,OAAO,CAAK,CAAC,EAC1D,GAAY,KAAS,CAAC,CAAC,GAAS,OAAO,UAAU,OAAO,CAAK,CAAC,EAC9D,GAAY,KAAS,EAAM,SAAS,GAAG,GAAK,EAAS,EAAM,MAAM,EAAG,EAAE,CAAC,EACvE,GAAe,KAAS,GAAgB,KAAK,CAAK,EAClD,GAAQ,IAAM,GACd,GAAe,KAIrB,GAAgB,KAAK,CAAK,GAAK,CAAC,GAAmB,KAAK,CAAK,EACvD,GAAU,IAAM,GAChB,GAAW,KAAS,GAAY,KAAK,CAAK,EAC1C,GAAU,KAAS,GAAW,KAAK,CAAK,EACxC,GAAoB,KAAS,CAAC,EAAiB,CAAK,GAAK,CAAC,EAAoB,CAAK,EACnF,GAAkB,KAAS,GAAoB,EAAO,GAAa,EAAO,EAC1E,EAAmB,KAAS,GAAoB,KAAK,CAAK,EAC1D,GAAoB,KAAS,GAAoB,EAAO,GAAe,EAAY,EACnF,GAAoB,KAAS,GAAoB,EAAO,GAAe,CAAQ,EAC/E,GAAoB,KAAS,GAAoB,EAAO,GAAe,EAAK,EAC5E,GAAwB,KAAS,GAAoB,EAAO,GAAmB,EAAO,EACtF,GAAsB,KAAS,GAAoB,EAAO,GAAiB,EAAO,EAClF,GAAmB,KAAS,GAAoB,EAAO,GAAc,EAAO,EAC5E,GAAoB,KAAS,GAAoB,EAAO,GAAe,EAAQ,EAC/E,EAAsB,KAAS,GAAuB,KAAK,CAAK,EAChE,GAA4B,KAAS,GAAuB,EAAO,EAAa,EAChF,GAAgC,KAAS,GAAuB,EAAO,EAAiB,EACxF,GAA8B,KAAS,GAAuB,EAAO,EAAe,EACpF,GAA0B,KAAS,GAAuB,EAAO,EAAW,EAC5E,GAA2B,KAAS,GAAuB,EAAO,EAAY,EAC9E,GAA4B,KAAS,GAAuB,EAAO,GAAe,EAAI,EACtF,GAA4B,KAAS,GAAuB,EAAO,GAAe,EAAI,EAEtF,GAAsB,CAAC,EAAO,EAAW,IAAc,CAC3D,IAAM,EAAS,GAAoB,KAAK,CAAK,EAC7C,GAAI,EAAQ,CACV,GAAI,EAAO,GACT,OAAO,EAAU,EAAO,EAAE,EAE5B,OAAO,EAAU,EAAO,EAAE,EAE5B,MAAO,IAEH,GAAyB,CAAC,EAAO,EAAW,EAAqB,KAAU,CAC/E,IAAM,EAAS,GAAuB,KAAK,CAAK,EAChD,GAAI,EAAQ,CACV,GAAI,EAAO,GACT,OAAO,EAAU,EAAO,EAAE,EAE5B,OAAO,EAET,MAAO,IAGH,GAAkB,KAAS,IAAU,YAAc,IAAU,aAC7D,GAAe,KAAS,IAAU,SAAW,IAAU,MACvD,GAAc,KAAS,IAAU,UAAY,IAAU,QAAU,IAAU,UAC3E,GAAgB,KAAS,IAAU,SACnC,GAAgB,KAAS,IAAU,SACnC,GAAoB,KAAS,IAAU,cACvC,GAAgB,KAAS,IAAU,UAAY,IAAU,SACzD,GAAgB,KAAS,IAAU,SA8BzC,IAAM,GAAmB,IAAM,CAM7B,IAAM,EAAa,EAAU,OAAO,EAC9B,EAAY,EAAU,MAAM,EAC5B,EAAY,EAAU,MAAM,EAC5B,EAAkB,EAAU,aAAa,EACzC,EAAgB,EAAU,UAAU,EACpC,EAAe,EAAU,SAAS,EAClC,EAAkB,EAAU,YAAY,EACxC,EAAiB,EAAU,WAAW,EACtC,EAAe,EAAU,SAAS,EAClC,EAAc,EAAU,QAAQ,EAChC,EAAc,EAAU,QAAQ,EAChC,EAAmB,EAAU,cAAc,EAC3C,EAAkB,EAAU,aAAa,EACzC,EAAkB,EAAU,aAAa,EACzC,EAAY,EAAU,MAAM,EAC5B,EAAmB,EAAU,aAAa,EAC1C,EAAc,EAAU,QAAQ,EAChC,EAAY,EAAU,MAAM,EAC5B,EAAe,EAAU,SAAS,EAQlC,EAAa,IAAM,CAAC,OAAQ,QAAS,MAAO,aAAc,OAAQ,OAAQ,QAAS,QAAQ,EAC3F,EAAgB,IAAM,CAAC,SAAU,MAAO,SAAU,OAAQ,QAAS,WAEzE,WAAY,YAEZ,YAAa,eAEb,eAAgB,cAEhB,aAAa,EACP,EAA6B,IAAM,CAAC,GAAG,EAAc,EAAG,EAAqB,CAAgB,EAC7F,EAAgB,IAAM,CAAC,OAAQ,SAAU,OAAQ,UAAW,QAAQ,EACpE,EAAkB,IAAM,CAAC,OAAQ,UAAW,MAAM,EAClD,EAA0B,IAAM,CAAC,EAAqB,EAAkB,CAAY,EACpF,EAAa,IAAM,CAAC,GAAY,OAAQ,OAAQ,GAAG,EAAwB,CAAC,EAC5E,EAA4B,IAAM,CAAC,GAAW,OAAQ,UAAW,EAAqB,CAAgB,EACtG,GAA6B,IAAM,CAAC,OAAQ,CAChD,KAAM,CAAC,OAAQ,GAAW,EAAqB,CAAgB,CACjE,EAAG,GAAW,EAAqB,CAAgB,EAC7C,GAA4B,IAAM,CAAC,GAAW,OAAQ,EAAqB,CAAgB,EAC3F,GAAwB,IAAM,CAAC,OAAQ,MAAO,MAAO,KAAM,EAAqB,CAAgB,EAChG,EAAwB,IAAM,CAAC,QAAS,MAAO,SAAU,UAAW,SAAU,SAAU,UAAW,WAAY,cAAe,UAAU,EACxI,EAA0B,IAAM,CAAC,QAAS,MAAO,SAAU,UAAW,cAAe,UAAU,EAC/F,EAAc,IAAM,CAAC,OAAQ,GAAG,EAAwB,CAAC,EACzD,GAAc,IAAM,CAAC,GAAY,OAAQ,OAAQ,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,GAAG,EAAwB,CAAC,EAC5I,GAAoB,IAAM,CAAC,GAAY,SAAU,OAAQ,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,GAAG,EAAwB,CAAC,EAC/H,GAAmB,IAAM,CAAC,GAAY,SAAU,OAAQ,KAAM,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,GAAG,EAAwB,CAAC,EACpI,EAAa,IAAM,CAAC,EAAY,EAAqB,CAAgB,EACrE,GAAkB,IAAM,CAAC,GAAG,EAAc,EAAG,GAA6B,GAAqB,CACnG,SAAU,CAAC,EAAqB,CAAgB,CAClD,CAAC,EACK,GAAgB,IAAM,CAAC,YAAa,CACxC,OAAQ,CAAC,GAAI,IAAK,IAAK,QAAS,OAAO,CACzC,CAAC,EACK,GAAc,IAAM,CAAC,OAAQ,QAAS,UAAW,GAAyB,GAAiB,CAC/F,KAAM,CAAC,EAAqB,CAAgB,CAC9C,CAAC,EACK,GAA4B,IAAM,CAAC,GAAW,GAA2B,EAAiB,EAC1F,EAAc,IAAM,CAE1B,GAAI,OAAQ,OAAQ,EAAa,EAAqB,CAAgB,EAChE,EAAmB,IAAM,CAAC,GAAI,EAAU,GAA2B,EAAiB,EACpF,GAAiB,IAAM,CAAC,QAAS,SAAU,SAAU,QAAQ,EAC7D,GAAiB,IAAM,CAAC,SAAU,WAAY,SAAU,UAAW,SAAU,UAAW,cAAe,aAAc,aAAc,aAAc,aAAc,YAAa,MAAO,aAAc,QAAS,YAAY,EACtN,EAAyB,IAAM,CAAC,EAAU,GAAW,GAA6B,EAAmB,EACrG,GAAY,IAAM,CAExB,GAAI,OAAQ,EAAW,EAAqB,CAAgB,EACtD,GAAc,IAAM,CAAC,OAAQ,EAAU,EAAqB,CAAgB,EAC5E,GAAa,IAAM,CAAC,OAAQ,EAAU,EAAqB,CAAgB,EAC3E,GAAY,IAAM,CAAC,EAAU,EAAqB,CAAgB,EAClE,GAAiB,IAAM,CAAC,GAAY,OAAQ,GAAG,EAAwB,CAAC,EAC9E,MAAO,CACL,UAAW,IACX,MAAO,CACL,QAAS,CAAC,OAAQ,OAAQ,QAAS,QAAQ,EAC3C,OAAQ,CAAC,OAAO,EAChB,KAAM,CAAC,EAAY,EACnB,WAAY,CAAC,EAAY,EACzB,MAAO,CAAC,EAAK,EACb,UAAW,CAAC,EAAY,EACxB,cAAe,CAAC,EAAY,EAC5B,KAAM,CAAC,KAAM,MAAO,QAAQ,EAC5B,KAAM,CAAC,EAAiB,EACxB,cAAe,CAAC,OAAQ,aAAc,QAAS,SAAU,SAAU,WAAY,OAAQ,YAAa,OAAO,EAC3G,eAAgB,CAAC,EAAY,EAC7B,QAAS,CAAC,OAAQ,QAAS,OAAQ,SAAU,UAAW,OAAO,EAC/D,YAAa,CAAC,WAAY,OAAQ,SAAU,WAAY,UAAW,MAAM,EACzE,OAAQ,CAAC,EAAY,EACrB,OAAQ,CAAC,EAAY,EACrB,QAAS,CAAC,KAAM,CAAQ,EACxB,KAAM,CAAC,EAAY,EACnB,cAAe,CAAC,EAAY,EAC5B,SAAU,CAAC,UAAW,QAAS,SAAU,OAAQ,QAAS,QAAQ,CACpE,EACA,YAAa,CAQX,OAAQ,CAAC,CACP,OAAQ,CAAC,OAAQ,SAAU,GAAY,EAAkB,EAAqB,CAAW,CAC3F,CAAC,EAMD,UAAW,CAAC,WAAW,EAKvB,QAAS,CAAC,CACR,QAAS,CAAC,EAAU,EAAkB,EAAqB,CAAc,CAC3E,CAAC,EAKD,cAAe,CAAC,CACd,cAAe,EAAW,CAC5B,CAAC,EAKD,eAAgB,CAAC,CACf,eAAgB,EAAW,CAC7B,CAAC,EAKD,eAAgB,CAAC,CACf,eAAgB,CAAC,OAAQ,QAAS,aAAc,cAAc,CAChE,CAAC,EAKD,iBAAkB,CAAC,CACjB,iBAAkB,CAAC,QAAS,OAAO,CACrC,CAAC,EAKD,IAAK,CAAC,CACJ,IAAK,CAAC,SAAU,SAAS,CAC3B,CAAC,EAKD,QAAS,CAAC,QAAS,eAAgB,SAAU,OAAQ,cAAe,QAAS,eAAgB,gBAAiB,aAAc,eAAgB,qBAAsB,qBAAsB,qBAAsB,kBAAmB,YAAa,YAAa,OAAQ,cAAe,WAAY,YAAa,QAAQ,EAKnT,GAAI,CAAC,UAAW,aAAa,EAK7B,MAAO,CAAC,CACN,MAAO,CAAC,QAAS,OAAQ,OAAQ,QAAS,KAAK,CACjD,CAAC,EAKD,MAAO,CAAC,CACN,MAAO,CAAC,OAAQ,QAAS,OAAQ,OAAQ,QAAS,KAAK,CACzD,CAAC,EAKD,UAAW,CAAC,UAAW,gBAAgB,EAKvC,aAAc,CAAC,CACb,OAAQ,CAAC,UAAW,QAAS,OAAQ,OAAQ,YAAY,CAC3D,CAAC,EAKD,kBAAmB,CAAC,CAClB,OAAQ,EAA2B,CACrC,CAAC,EAKD,SAAU,CAAC,CACT,SAAU,EAAc,CAC1B,CAAC,EAKD,aAAc,CAAC,CACb,aAAc,EAAc,CAC9B,CAAC,EAKD,aAAc,CAAC,CACb,aAAc,EAAc,CAC9B,CAAC,EAKD,WAAY,CAAC,CACX,WAAY,EAAgB,CAC9B,CAAC,EAKD,eAAgB,CAAC,CACf,eAAgB,EAAgB,CAClC,CAAC,EAKD,eAAgB,CAAC,CACf,eAAgB,EAAgB,CAClC,CAAC,EAKD,SAAU,CAAC,SAAU,QAAS,WAAY,WAAY,QAAQ,EAK9D,MAAO,CAAC,CACN,MAAO,EAAW,CACpB,CAAC,EAKD,UAAW,CAAC,CACV,UAAW,EAAW,CACxB,CAAC,EAKD,UAAW,CAAC,CACV,UAAW,EAAW,CACxB,CAAC,EAMD,MAAO,CAAC,CACN,UAAW,EAAW,EAKtB,MAAO,EAAW,CACpB,CAAC,EAMD,IAAK,CAAC,CACJ,UAAW,EAAW,EAKtB,IAAK,EAAW,CAClB,CAAC,EAKD,WAAY,CAAC,CACX,WAAY,EAAW,CACzB,CAAC,EAKD,WAAY,CAAC,CACX,WAAY,EAAW,CACzB,CAAC,EAKD,IAAK,CAAC,CACJ,IAAK,EAAW,CAClB,CAAC,EAKD,MAAO,CAAC,CACN,MAAO,EAAW,CACpB,CAAC,EAKD,OAAQ,CAAC,CACP,OAAQ,EAAW,CACrB,CAAC,EAKD,KAAM,CAAC,CACL,KAAM,EAAW,CACnB,CAAC,EAKD,WAAY,CAAC,UAAW,YAAa,UAAU,EAK/C,EAAG,CAAC,CACF,EAAG,CAAC,GAAW,OAAQ,EAAqB,CAAgB,CAC9D,CAAC,EAQD,MAAO,CAAC,CACN,MAAO,CAAC,GAAY,OAAQ,OAAQ,EAAgB,GAAG,EAAwB,CAAC,CAClF,CAAC,EAKD,iBAAkB,CAAC,CACjB,KAAM,CAAC,MAAO,cAAe,MAAO,aAAa,CACnD,CAAC,EAKD,YAAa,CAAC,CACZ,KAAM,CAAC,SAAU,OAAQ,cAAc,CACzC,CAAC,EAKD,KAAM,CAAC,CACL,KAAM,CAAC,EAAU,GAAY,OAAQ,UAAW,OAAQ,CAAgB,CAC1E,CAAC,EAKD,KAAM,CAAC,CACL,KAAM,CAAC,GAAI,EAAU,EAAqB,CAAgB,CAC5D,CAAC,EAKD,OAAQ,CAAC,CACP,OAAQ,CAAC,GAAI,EAAU,EAAqB,CAAgB,CAC9D,CAAC,EAKD,MAAO,CAAC,CACN,MAAO,CAAC,GAAW,QAAS,OAAQ,OAAQ,EAAqB,CAAgB,CACnF,CAAC,EAKD,YAAa,CAAC,CACZ,YAAa,EAA0B,CACzC,CAAC,EAKD,gBAAiB,CAAC,CAChB,IAAK,GAA2B,CAClC,CAAC,EAKD,YAAa,CAAC,CACZ,YAAa,GAA0B,CACzC,CAAC,EAKD,UAAW,CAAC,CACV,UAAW,GAA0B,CACvC,CAAC,EAKD,YAAa,CAAC,CACZ,YAAa,EAA0B,CACzC,CAAC,EAKD,gBAAiB,CAAC,CAChB,IAAK,GAA2B,CAClC,CAAC,EAKD,YAAa,CAAC,CACZ,YAAa,GAA0B,CACzC,CAAC,EAKD,UAAW,CAAC,CACV,UAAW,GAA0B,CACvC,CAAC,EAKD,YAAa,CAAC,CACZ,YAAa,CAAC,MAAO,MAAO,QAAS,YAAa,WAAW,CAC/D,CAAC,EAKD,YAAa,CAAC,CACZ,YAAa,GAAsB,CACrC,CAAC,EAKD,YAAa,CAAC,CACZ,YAAa,GAAsB,CACrC,CAAC,EAKD,IAAK,CAAC,CACJ,IAAK,EAAwB,CAC/B,CAAC,EAKD,QAAS,CAAC,CACR,QAAS,EAAwB,CACnC,CAAC,EAKD,QAAS,CAAC,CACR,QAAS,EAAwB,CACnC,CAAC,EAKD,kBAAmB,CAAC,CAClB,QAAS,CAAC,GAAG,EAAsB,EAAG,QAAQ,CAChD,CAAC,EAKD,gBAAiB,CAAC,CAChB,gBAAiB,CAAC,GAAG,EAAwB,EAAG,QAAQ,CAC1D,CAAC,EAKD,eAAgB,CAAC,CACf,eAAgB,CAAC,OAAQ,GAAG,EAAwB,CAAC,CACvD,CAAC,EAKD,gBAAiB,CAAC,CAChB,QAAS,CAAC,SAAU,GAAG,EAAsB,CAAC,CAChD,CAAC,EAKD,cAAe,CAAC,CACd,MAAO,CAAC,GAAG,EAAwB,EAAG,CACpC,SAAU,CAAC,GAAI,MAAM,CACvB,CAAC,CACH,CAAC,EAKD,aAAc,CAAC,CACb,KAAM,CAAC,OAAQ,GAAG,EAAwB,EAAG,CAC3C,SAAU,CAAC,GAAI,MAAM,CACvB,CAAC,CACH,CAAC,EAKD,gBAAiB,CAAC,CAChB,gBAAiB,EAAsB,CACzC,CAAC,EAKD,cAAe,CAAC,CACd,cAAe,CAAC,GAAG,EAAwB,EAAG,UAAU,CAC1D,CAAC,EAKD,aAAc,CAAC,CACb,aAAc,CAAC,OAAQ,GAAG,EAAwB,CAAC,CACrD,CAAC,EAMD,EAAG,CAAC,CACF,EAAG,EAAwB,CAC7B,CAAC,EAKD,GAAI,CAAC,CACH,GAAI,EAAwB,CAC9B,CAAC,EAKD,GAAI,CAAC,CACH,GAAI,EAAwB,CAC9B,CAAC,EAKD,GAAI,CAAC,CACH,GAAI,EAAwB,CAC9B,CAAC,EAKD,GAAI,CAAC,CACH,GAAI,EAAwB,CAC9B,CAAC,EAKD,IAAK,CAAC,CACJ,IAAK,EAAwB,CAC/B,CAAC,EAKD,IAAK,CAAC,CACJ,IAAK,EAAwB,CAC/B,CAAC,EAKD,GAAI,CAAC,CACH,GAAI,EAAwB,CAC9B,CAAC,EAKD,GAAI,CAAC,CACH,GAAI,EAAwB,CAC9B,CAAC,EAKD,GAAI,CAAC,CACH,GAAI,EAAwB,CAC9B,CAAC,EAKD,GAAI,CAAC,CACH,GAAI,EAAwB,CAC9B,CAAC,EAKD,EAAG,CAAC,CACF,EAAG,EAAY,CACjB,CAAC,EAKD,GAAI,CAAC,CACH,GAAI,EAAY,CAClB,CAAC,EAKD,GAAI,CAAC,CACH,GAAI,EAAY,CAClB,CAAC,EAKD,GAAI,CAAC,CACH,GAAI,EAAY,CAClB,CAAC,EAKD,GAAI,CAAC,CACH,GAAI,EAAY,CAClB,CAAC,EAKD,IAAK,CAAC,CACJ,IAAK,EAAY,CACnB,CAAC,EAKD,IAAK,CAAC,CACJ,IAAK,EAAY,CACnB,CAAC,EAKD,GAAI,CAAC,CACH,GAAI,EAAY,CAClB,CAAC,EAKD,GAAI,CAAC,CACH,GAAI,EAAY,CAClB,CAAC,EAKD,GAAI,CAAC,CACH,GAAI,EAAY,CAClB,CAAC,EAKD,GAAI,CAAC,CACH,GAAI,EAAY,CAClB,CAAC,EAKD,UAAW,CAAC,CACV,UAAW,EAAwB,CACrC,CAAC,EAKD,kBAAmB,CAAC,iBAAiB,EAKrC,UAAW,CAAC,CACV,UAAW,EAAwB,CACrC,CAAC,EAKD,kBAAmB,CAAC,iBAAiB,EAQrC,KAAM,CAAC,CACL,KAAM,GAAY,CACpB,CAAC,EAKD,cAAe,CAAC,CACd,OAAQ,CAAC,OAAQ,GAAG,GAAkB,CAAC,CACzC,CAAC,EAKD,kBAAmB,CAAC,CAClB,aAAc,CAAC,OAAQ,GAAG,GAAkB,CAAC,CAC/C,CAAC,EAKD,kBAAmB,CAAC,CAClB,aAAc,CAAC,OAAQ,GAAG,GAAkB,CAAC,CAC/C,CAAC,EAKD,aAAc,CAAC,CACb,MAAO,CAAC,OAAQ,GAAG,GAAiB,CAAC,CACvC,CAAC,EAKD,iBAAkB,CAAC,CACjB,YAAa,CAAC,OAAQ,GAAG,GAAiB,CAAC,CAC7C,CAAC,EAKD,iBAAkB,CAAC,CACjB,YAAa,CAAC,OAAQ,GAAG,GAAiB,CAAC,CAC7C,CAAC,EAKD,EAAG,CAAC,CACF,EAAG,CAAC,EAAgB,SAAU,GAAG,GAAY,CAAC,CAChD,CAAC,EAKD,QAAS,CAAC,CACR,QAAS,CAAC,EAAgB,SAC1B,OAAQ,GAAG,GAAY,CAAC,CAC1B,CAAC,EAKD,QAAS,CAAC,CACR,QAAS,CAAC,EAAgB,SAAU,OACpC,QACA,CACE,OAAQ,CAAC,CAAe,CAC1B,EAAG,GAAG,GAAY,CAAC,CACrB,CAAC,EAKD,EAAG,CAAC,CACF,EAAG,CAAC,SAAU,KAAM,GAAG,GAAY,CAAC,CACtC,CAAC,EAKD,QAAS,CAAC,CACR,QAAS,CAAC,SAAU,KAAM,OAAQ,GAAG,GAAY,CAAC,CACpD,CAAC,EAKD,QAAS,CAAC,CACR,QAAS,CAAC,SAAU,KAAM,GAAG,GAAY,CAAC,CAC5C,CAAC,EAQD,YAAa,CAAC,CACZ,KAAM,CAAC,OAAQ,EAAW,GAA2B,EAAiB,CACxE,CAAC,EAKD,iBAAkB,CAAC,cAAe,sBAAsB,EAKxD,aAAc,CAAC,SAAU,YAAY,EAKrC,cAAe,CAAC,CACd,KAAM,CAAC,EAAiB,GAA2B,EAAiB,CACtE,CAAC,EAKD,eAAgB,CAAC,CACf,eAAgB,CAAC,kBAAmB,kBAAmB,YAAa,iBAAkB,SAAU,gBAAiB,WAAY,iBAAkB,iBAAkB,GAAW,CAAgB,CAC9L,CAAC,EAKD,cAAe,CAAC,CACd,KAAM,CAAC,GAA+B,GAAuB,CAAS,CACxE,CAAC,EAKD,gBAAiB,CAAC,CAChB,gBAAiB,CAAC,CAAgB,CACpC,CAAC,EAKD,aAAc,CAAC,aAAa,EAK5B,cAAe,CAAC,SAAS,EAKzB,mBAAoB,CAAC,cAAc,EAKnC,aAAc,CAAC,cAAe,eAAe,EAK7C,cAAe,CAAC,oBAAqB,cAAc,EAKnD,eAAgB,CAAC,qBAAsB,mBAAmB,EAK1D,SAAU,CAAC,CACT,SAAU,CAAC,EAAe,EAAqB,CAAgB,CACjE,CAAC,EAKD,aAAc,CAAC,CACb,aAAc,CAAC,EAAU,OAAQ,EAAqB,EAAiB,CACzE,CAAC,EAKD,QAAS,CAAC,CACR,QAAS,CACT,EAAc,GAAG,EAAwB,CAAC,CAC5C,CAAC,EAKD,aAAc,CAAC,CACb,aAAc,CAAC,OAAQ,EAAqB,CAAgB,CAC9D,CAAC,EAKD,sBAAuB,CAAC,CACtB,KAAM,CAAC,SAAU,SAAS,CAC5B,CAAC,EAKD,kBAAmB,CAAC,CAClB,KAAM,CAAC,OAAQ,UAAW,OAAQ,EAAqB,CAAgB,CACzE,CAAC,EAKD,iBAAkB,CAAC,CACjB,KAAM,CAAC,OAAQ,SAAU,QAAS,UAAW,QAAS,KAAK,CAC7D,CAAC,EAMD,oBAAqB,CAAC,CACpB,YAAa,EAAW,CAC1B,CAAC,EAKD,aAAc,CAAC,CACb,KAAM,EAAW,CACnB,CAAC,EAKD,kBAAmB,CAAC,YAAa,WAAY,eAAgB,cAAc,EAK3E,wBAAyB,CAAC,CACxB,WAAY,CAAC,GAAG,GAAe,EAAG,MAAM,CAC1C,CAAC,EAKD,4BAA6B,CAAC,CAC5B,WAAY,CAAC,EAAU,YAAa,OAAQ,EAAqB,EAAiB,CACpF,CAAC,EAKD,wBAAyB,CAAC,CACxB,WAAY,EAAW,CACzB,CAAC,EAKD,mBAAoB,CAAC,CACnB,mBAAoB,CAAC,EAAU,OAAQ,EAAqB,CAAgB,CAC9E,CAAC,EAKD,iBAAkB,CAAC,YAAa,YAAa,aAAc,aAAa,EAKxE,gBAAiB,CAAC,WAAY,gBAAiB,WAAW,EAK1D,YAAa,CAAC,CACZ,KAAM,CAAC,OAAQ,SAAU,UAAW,QAAQ,CAC9C,CAAC,EAKD,OAAQ,CAAC,CACP,OAAQ,EAAwB,CAClC,CAAC,EAKD,iBAAkB,CAAC,CACjB,MAAO,CAAC,WAAY,MAAO,SAAU,SAAU,WAAY,cAAe,MAAO,QAAS,EAAqB,CAAgB,CACjI,CAAC,EAKD,WAAY,CAAC,CACX,WAAY,CAAC,SAAU,SAAU,MAAO,WAAY,WAAY,cAAc,CAChF,CAAC,EAKD,MAAO,CAAC,CACN,MAAO,CAAC,SAAU,QAAS,MAAO,MAAM,CAC1C,CAAC,EAKD,KAAM,CAAC,CACL,KAAM,CAAC,aAAc,WAAY,QAAQ,CAC3C,CAAC,EAKD,QAAS,CAAC,CACR,QAAS,CAAC,OAAQ,SAAU,MAAM,CACpC,CAAC,EAKD,QAAS,CAAC,CACR,QAAS,CAAC,OAAQ,EAAqB,CAAgB,CACzD,CAAC,EAQD,gBAAiB,CAAC,CAChB,GAAI,CAAC,QAAS,QAAS,QAAQ,CACjC,CAAC,EAKD,UAAW,CAAC,CACV,UAAW,CAAC,SAAU,UAAW,UAAW,MAAM,CACpD,CAAC,EAKD,YAAa,CAAC,CACZ,YAAa,CAAC,SAAU,UAAW,SAAS,CAC9C,CAAC,EAKD,cAAe,CAAC,CACd,GAAI,GAAgB,CACtB,CAAC,EAKD,YAAa,CAAC,CACZ,GAAI,GAAc,CACpB,CAAC,EAKD,UAAW,CAAC,CACV,GAAI,GAAY,CAClB,CAAC,EAKD,WAAY,CAAC,CACX,GAAI,CAAC,OAAQ,CACX,OAAQ,CAAC,CACP,GAAI,CAAC,IAAK,KAAM,IAAK,KAAM,IAAK,KAAM,IAAK,IAAI,CACjD,EAAG,GAAW,EAAqB,CAAgB,EACnD,OAAQ,CAAC,GAAI,EAAqB,CAAgB,EAClD,MAAO,CAAC,GAAW,EAAqB,CAAgB,CAC1D,EAAG,GAA0B,EAAgB,CAC/C,CAAC,EAKD,WAAY,CAAC,CACX,GAAI,EAAW,CACjB,CAAC,EAKD,oBAAqB,CAAC,CACpB,KAAM,GAA0B,CAClC,CAAC,EAKD,mBAAoB,CAAC,CACnB,IAAK,GAA0B,CACjC,CAAC,EAKD,kBAAmB,CAAC,CAClB,GAAI,GAA0B,CAChC,CAAC,EAKD,gBAAiB,CAAC,CAChB,KAAM,EAAW,CACnB,CAAC,EAKD,eAAgB,CAAC,CACf,IAAK,EAAW,CAClB,CAAC,EAKD,cAAe,CAAC,CACd,GAAI,EAAW,CACjB,CAAC,EAQD,QAAS,CAAC,CACR,QAAS,EAAY,CACvB,CAAC,EAKD,YAAa,CAAC,CACZ,YAAa,EAAY,CAC3B,CAAC,EAKD,YAAa,CAAC,CACZ,YAAa,EAAY,CAC3B,CAAC,EAKD,YAAa,CAAC,CACZ,YAAa,EAAY,CAC3B,CAAC,EAKD,YAAa,CAAC,CACZ,YAAa,EAAY,CAC3B,CAAC,EAKD,YAAa,CAAC,CACZ,YAAa,EAAY,CAC3B,CAAC,EAKD,YAAa,CAAC,CACZ,YAAa,EAAY,CAC3B,CAAC,EAKD,aAAc,CAAC,CACb,aAAc,EAAY,CAC5B,CAAC,EAKD,aAAc,CAAC,CACb,aAAc,EAAY,CAC5B,CAAC,EAKD,aAAc,CAAC,CACb,aAAc,EAAY,CAC5B,CAAC,EAKD,aAAc,CAAC,CACb,aAAc,EAAY,CAC5B,CAAC,EAKD,aAAc,CAAC,CACb,aAAc,EAAY,CAC5B,CAAC,EAKD,aAAc,CAAC,CACb,aAAc,EAAY,CAC5B,CAAC,EAKD,aAAc,CAAC,CACb,aAAc,EAAY,CAC5B,CAAC,EAKD,aAAc,CAAC,CACb,aAAc,EAAY,CAC5B,CAAC,EAKD,WAAY,CAAC,CACX,OAAQ,EAAiB,CAC3B,CAAC,EAKD,aAAc,CAAC,CACb,WAAY,EAAiB,CAC/B,CAAC,EAKD,aAAc,CAAC,CACb,WAAY,EAAiB,CAC/B,CAAC,EAKD,aAAc,CAAC,CACb,WAAY,EAAiB,CAC/B,CAAC,EAKD,aAAc,CAAC,CACb,WAAY,EAAiB,CAC/B,CAAC,EAKD,cAAe,CAAC,CACd,YAAa,EAAiB,CAChC,CAAC,EAKD,cAAe,CAAC,CACd,YAAa,EAAiB,CAChC,CAAC,EAKD,aAAc,CAAC,CACb,WAAY,EAAiB,CAC/B,CAAC,EAKD,aAAc,CAAC,CACb,WAAY,EAAiB,CAC/B,CAAC,EAKD,aAAc,CAAC,CACb,WAAY,EAAiB,CAC/B,CAAC,EAKD,aAAc,CAAC,CACb,WAAY,EAAiB,CAC/B,CAAC,EAKD,WAAY,CAAC,CACX,WAAY,EAAiB,CAC/B,CAAC,EAKD,mBAAoB,CAAC,kBAAkB,EAKvC,WAAY,CAAC,CACX,WAAY,EAAiB,CAC/B,CAAC,EAKD,mBAAoB,CAAC,kBAAkB,EAKvC,eAAgB,CAAC,CACf,OAAQ,CAAC,GAAG,GAAe,EAAG,SAAU,MAAM,CAChD,CAAC,EAKD,eAAgB,CAAC,CACf,OAAQ,CAAC,GAAG,GAAe,EAAG,SAAU,MAAM,CAChD,CAAC,EAKD,eAAgB,CAAC,CACf,OAAQ,EAAW,CACrB,CAAC,EAKD,iBAAkB,CAAC,CACjB,WAAY,EAAW,CACzB,CAAC,EAKD,iBAAkB,CAAC,CACjB,WAAY,EAAW,CACzB,CAAC,EAKD,iBAAkB,CAAC,CACjB,WAAY,EAAW,CACzB,CAAC,EAKD,iBAAkB,CAAC,CACjB,WAAY,EAAW,CACzB,CAAC,EAKD,kBAAmB,CAAC,CAClB,YAAa,EAAW,CAC1B,CAAC,EAKD,kBAAmB,CAAC,CAClB,YAAa,EAAW,CAC1B,CAAC,EAKD,iBAAkB,CAAC,CACjB,WAAY,EAAW,CACzB,CAAC,EAKD,iBAAkB,CAAC,CACjB,WAAY,EAAW,CACzB,CAAC,EAKD,iBAAkB,CAAC,CACjB,WAAY,EAAW,CACzB,CAAC,EAKD,iBAAkB,CAAC,CACjB,WAAY,EAAW,CACzB,CAAC,EAKD,eAAgB,CAAC,CACf,OAAQ,EAAW,CACrB,CAAC,EAKD,gBAAiB,CAAC,CAChB,QAAS,CAAC,GAAG,GAAe,EAAG,OAAQ,QAAQ,CACjD,CAAC,EAKD,iBAAkB,CAAC,CACjB,iBAAkB,CAAC,EAAU,EAAqB,CAAgB,CACpE,CAAC,EAKD,YAAa,CAAC,CACZ,QAAS,CAAC,GAAI,EAAU,GAA2B,EAAiB,CACtE,CAAC,EAKD,gBAAiB,CAAC,CAChB,QAAS,EAAW,CACtB,CAAC,EAQD,OAAQ,CAAC,CACP,OAAQ,CAER,GAAI,OAAQ,EAAa,GAA2B,EAAiB,CACvE,CAAC,EAKD,eAAgB,CAAC,CACf,OAAQ,EAAW,CACrB,CAAC,EAKD,eAAgB,CAAC,CACf,eAAgB,CAAC,OAAQ,EAAkB,GAA2B,EAAiB,CACzF,CAAC,EAKD,qBAAsB,CAAC,CACrB,eAAgB,EAAW,CAC7B,CAAC,EAKD,SAAU,CAAC,CACT,KAAM,EAAiB,CACzB,CAAC,EAOD,eAAgB,CAAC,YAAY,EAK7B,aAAc,CAAC,CACb,KAAM,EAAW,CACnB,CAAC,EAOD,gBAAiB,CAAC,CAChB,cAAe,CAAC,EAAU,EAAiB,CAC7C,CAAC,EAOD,oBAAqB,CAAC,CACpB,cAAe,EAAW,CAC5B,CAAC,EAKD,eAAgB,CAAC,CACf,aAAc,EAAiB,CACjC,CAAC,EAKD,mBAAoB,CAAC,CACnB,aAAc,EAAW,CAC3B,CAAC,EAKD,cAAe,CAAC,CACd,cAAe,CAAC,OAAQ,EAAiB,GAA2B,EAAiB,CACvF,CAAC,EAKD,oBAAqB,CAAC,CACpB,cAAe,EAAW,CAC5B,CAAC,EAKD,QAAS,CAAC,CACR,QAAS,CAAC,EAAU,EAAqB,CAAgB,CAC3D,CAAC,EAKD,YAAa,CAAC,CACZ,YAAa,CAAC,GAAG,GAAe,EAAG,cAAe,cAAc,CAClE,CAAC,EAKD,WAAY,CAAC,CACX,WAAY,GAAe,CAC7B,CAAC,EAKD,YAAa,CAAC,CACZ,YAAa,CAAC,SAAU,UAAW,UAAW,OAAQ,SAAU,MAAM,CACxE,EAAG,cAAc,EAKjB,iBAAkB,CAAC,CACjB,KAAM,CAAC,MAAO,WAAY,YAAa,SAAS,CAClD,CAAC,EAKD,wBAAyB,CAAC,CACxB,cAAe,CAAC,CAAQ,CAC1B,CAAC,EACD,6BAA8B,CAAC,CAC7B,mBAAoB,EAAuB,CAC7C,CAAC,EACD,2BAA4B,CAAC,CAC3B,iBAAkB,EAAuB,CAC3C,CAAC,EACD,+BAAgC,CAAC,CAC/B,mBAAoB,EAAW,CACjC,CAAC,EACD,6BAA8B,CAAC,CAC7B,iBAAkB,EAAW,CAC/B,CAAC,EACD,wBAAyB,CAAC,CACxB,cAAe,EAAuB,CACxC,CAAC,EACD,sBAAuB,CAAC,CACtB,YAAa,EAAuB,CACtC,CAAC,EACD,0BAA2B,CAAC,CAC1B,cAAe,EAAW,CAC5B,CAAC,EACD,wBAAyB,CAAC,CACxB,YAAa,EAAW,CAC1B,CAAC,EACD,wBAAyB,CAAC,CACxB,cAAe,EAAuB,CACxC,CAAC,EACD,sBAAuB,CAAC,CACtB,YAAa,EAAuB,CACtC,CAAC,EACD,0BAA2B,CAAC,CAC1B,cAAe,EAAW,CAC5B,CAAC,EACD,wBAAyB,CAAC,CACxB,YAAa,EAAW,CAC1B,CAAC,EACD,wBAAyB,CAAC,CACxB,cAAe,EAAuB,CACxC,CAAC,EACD,sBAAuB,CAAC,CACtB,YAAa,EAAuB,CACtC,CAAC,EACD,0BAA2B,CAAC,CAC1B,cAAe,EAAW,CAC5B,CAAC,EACD,wBAAyB,CAAC,CACxB,YAAa,EAAW,CAC1B,CAAC,EACD,wBAAyB,CAAC,CACxB,cAAe,EAAuB,CACxC,CAAC,EACD,sBAAuB,CAAC,CACtB,YAAa,EAAuB,CACtC,CAAC,EACD,0BAA2B,CAAC,CAC1B,cAAe,EAAW,CAC5B,CAAC,EACD,wBAAyB,CAAC,CACxB,YAAa,EAAW,CAC1B,CAAC,EACD,wBAAyB,CAAC,CACxB,cAAe,EAAuB,CACxC,CAAC,EACD,sBAAuB,CAAC,CACtB,YAAa,EAAuB,CACtC,CAAC,EACD,0BAA2B,CAAC,CAC1B,cAAe,EAAW,CAC5B,CAAC,EACD,wBAAyB,CAAC,CACxB,YAAa,EAAW,CAC1B,CAAC,EACD,wBAAyB,CAAC,CACxB,cAAe,EAAuB,CACxC,CAAC,EACD,sBAAuB,CAAC,CACtB,YAAa,EAAuB,CACtC,CAAC,EACD,0BAA2B,CAAC,CAC1B,cAAe,EAAW,CAC5B,CAAC,EACD,wBAAyB,CAAC,CACxB,YAAa,EAAW,CAC1B,CAAC,EACD,oBAAqB,CAAC,CACpB,cAAe,CAAC,EAAqB,CAAgB,CACvD,CAAC,EACD,6BAA8B,CAAC,CAC7B,mBAAoB,EAAuB,CAC7C,CAAC,EACD,2BAA4B,CAAC,CAC3B,iBAAkB,EAAuB,CAC3C,CAAC,EACD,+BAAgC,CAAC,CAC/B,mBAAoB,EAAW,CACjC,CAAC,EACD,6BAA8B,CAAC,CAC7B,iBAAkB,EAAW,CAC/B,CAAC,EACD,0BAA2B,CAAC,CAC1B,cAAe,CAAC,SAAU,SAAS,CACrC,CAAC,EACD,yBAA0B,CAAC,CACzB,cAAe,CAAC,CACd,QAAS,CAAC,OAAQ,QAAQ,EAC1B,SAAU,CAAC,OAAQ,QAAQ,CAC7B,CAAC,CACH,CAAC,EACD,wBAAyB,CAAC,CACxB,iBAAkB,EAAc,CAClC,CAAC,EACD,uBAAwB,CAAC,CACvB,aAAc,CAAC,CAAQ,CACzB,CAAC,EACD,4BAA6B,CAAC,CAC5B,kBAAmB,EAAuB,CAC5C,CAAC,EACD,0BAA2B,CAAC,CAC1B,gBAAiB,EAAuB,CAC1C,CAAC,EACD,8BAA+B,CAAC,CAC9B,kBAAmB,EAAW,CAChC,CAAC,EACD,4BAA6B,CAAC,CAC5B,gBAAiB,EAAW,CAC9B,CAAC,EAKD,YAAa,CAAC,CACZ,KAAM,CAAC,QAAS,YAAa,OAAO,CACtC,CAAC,EAKD,cAAe,CAAC,CACd,cAAe,CAAC,SAAU,UAAW,UAAW,OAAQ,SAAU,MAAM,CAC1E,CAAC,EAKD,gBAAiB,CAAC,CAChB,KAAM,GAAgB,CACxB,CAAC,EAKD,cAAe,CAAC,CACd,KAAM,GAAc,CACtB,CAAC,EAKD,YAAa,CAAC,CACZ,KAAM,GAAY,CACpB,CAAC,EAKD,YAAa,CAAC,CACZ,YAAa,CAAC,QAAS,WAAW,CACpC,CAAC,EAKD,aAAc,CAAC,CACb,KAAM,CAAC,OAAQ,EAAqB,CAAgB,CACtD,CAAC,EAQD,OAAQ,CAAC,CACP,OAAQ,CAER,GAAI,OAAQ,EAAqB,CAAgB,CACnD,CAAC,EAKD,KAAM,CAAC,CACL,KAAM,GAAU,CAClB,CAAC,EAKD,WAAY,CAAC,CACX,WAAY,CAAC,EAAU,EAAqB,CAAgB,CAC9D,CAAC,EAKD,SAAU,CAAC,CACT,SAAU,CAAC,EAAU,EAAqB,CAAgB,CAC5D,CAAC,EAKD,cAAe,CAAC,CACd,cAAe,CAEf,GAAI,OAAQ,EAAiB,GAA2B,EAAiB,CAC3E,CAAC,EAKD,oBAAqB,CAAC,CACpB,cAAe,EAAW,CAC5B,CAAC,EAKD,UAAW,CAAC,CACV,UAAW,CAAC,GAAI,EAAU,EAAqB,CAAgB,CACjE,CAAC,EAKD,aAAc,CAAC,CACb,aAAc,CAAC,EAAU,EAAqB,CAAgB,CAChE,CAAC,EAKD,OAAQ,CAAC,CACP,OAAQ,CAAC,GAAI,EAAU,EAAqB,CAAgB,CAC9D,CAAC,EAKD,SAAU,CAAC,CACT,SAAU,CAAC,EAAU,EAAqB,CAAgB,CAC5D,CAAC,EAKD,MAAO,CAAC,CACN,MAAO,CAAC,GAAI,EAAU,EAAqB,CAAgB,CAC7D,CAAC,EAKD,kBAAmB,CAAC,CAClB,kBAAmB,CAEnB,GAAI,OAAQ,EAAqB,CAAgB,CACnD,CAAC,EAKD,gBAAiB,CAAC,CAChB,gBAAiB,GAAU,CAC7B,CAAC,EAKD,sBAAuB,CAAC,CACtB,sBAAuB,CAAC,EAAU,EAAqB,CAAgB,CACzE,CAAC,EAKD,oBAAqB,CAAC,CACpB,oBAAqB,CAAC,EAAU,EAAqB,CAAgB,CACvE,CAAC,EAKD,qBAAsB,CAAC,CACrB,qBAAsB,CAAC,GAAI,EAAU,EAAqB,CAAgB,CAC5E,CAAC,EAKD,sBAAuB,CAAC,CACtB,sBAAuB,CAAC,EAAU,EAAqB,CAAgB,CACzE,CAAC,EAKD,kBAAmB,CAAC,CAClB,kBAAmB,CAAC,GAAI,EAAU,EAAqB,CAAgB,CACzE,CAAC,EAKD,mBAAoB,CAAC,CACnB,mBAAoB,CAAC,EAAU,EAAqB,CAAgB,CACtE,CAAC,EAKD,oBAAqB,CAAC,CACpB,oBAAqB,CAAC,EAAU,EAAqB,CAAgB,CACvE,CAAC,EAKD,iBAAkB,CAAC,CACjB,iBAAkB,CAAC,GAAI,EAAU,EAAqB,CAAgB,CACxE,CAAC,EAQD,kBAAmB,CAAC,CAClB,OAAQ,CAAC,WAAY,UAAU,CACjC,CAAC,EAKD,iBAAkB,CAAC,CACjB,iBAAkB,EAAwB,CAC5C,CAAC,EAKD,mBAAoB,CAAC,CACnB,mBAAoB,EAAwB,CAC9C,CAAC,EAKD,mBAAoB,CAAC,CACnB,mBAAoB,EAAwB,CAC9C,CAAC,EAKD,eAAgB,CAAC,CACf,MAAO,CAAC,OAAQ,OAAO,CACzB,CAAC,EAKD,QAAS,CAAC,CACR,QAAS,CAAC,MAAO,QAAQ,CAC3B,CAAC,EAQD,WAAY,CAAC,CACX,WAAY,CAAC,GAAI,MAAO,SAAU,UAAW,SAAU,YAAa,OAAQ,EAAqB,CAAgB,CACnH,CAAC,EAKD,sBAAuB,CAAC,CACtB,WAAY,CAAC,SAAU,UAAU,CACnC,CAAC,EAKD,SAAU,CAAC,CACT,SAAU,CAAC,EAAU,UAAW,EAAqB,CAAgB,CACvE,CAAC,EAKD,KAAM,CAAC,CACL,KAAM,CAAC,SAAU,UAAW,EAAW,EAAqB,CAAgB,CAC9E,CAAC,EAKD,MAAO,CAAC,CACN,MAAO,CAAC,EAAU,EAAqB,CAAgB,CACzD,CAAC,EAKD,QAAS,CAAC,CACR,QAAS,CAAC,OAAQ,EAAc,EAAqB,CAAgB,CACvE,CAAC,EAQD,SAAU,CAAC,CACT,SAAU,CAAC,SAAU,SAAS,CAChC,CAAC,EAKD,YAAa,CAAC,CACZ,YAAa,CAAC,EAAkB,EAAqB,CAAgB,CACvE,CAAC,EAKD,qBAAsB,CAAC,CACrB,qBAAsB,EAA2B,CACnD,CAAC,EAKD,OAAQ,CAAC,CACP,OAAQ,GAAY,CACtB,CAAC,EAKD,WAAY,CAAC,CACX,WAAY,GAAY,CAC1B,CAAC,EAKD,WAAY,CAAC,CACX,WAAY,GAAY,CAC1B,CAAC,EAKD,WAAY,CAAC,CACX,WAAY,GAAY,CAC1B,CAAC,EAKD,MAAO,CAAC,CACN,MAAO,GAAW,CACpB,CAAC,EAKD,UAAW,CAAC,CACV,UAAW,GAAW,CACxB,CAAC,EAKD,UAAW,CAAC,CACV,UAAW,GAAW,CACxB,CAAC,EAKD,UAAW,CAAC,CACV,UAAW,GAAW,CACxB,CAAC,EAKD,WAAY,CAAC,UAAU,EAKvB,KAAM,CAAC,CACL,KAAM,GAAU,CAClB,CAAC,EAKD,SAAU,CAAC,CACT,SAAU,GAAU,CACtB,CAAC,EAKD,SAAU,CAAC,CACT,SAAU,GAAU,CACtB,CAAC,EAKD,UAAW,CAAC,CACV,UAAW,CAAC,EAAqB,EAAkB,GAAI,OAAQ,MAAO,KAAK,CAC7E,CAAC,EAKD,mBAAoB,CAAC,CACnB,OAAQ,EAA2B,CACrC,CAAC,EAKD,kBAAmB,CAAC,CAClB,UAAW,CAAC,KAAM,MAAM,CAC1B,CAAC,EAKD,UAAW,CAAC,CACV,UAAW,GAAe,CAC5B,CAAC,EAKD,cAAe,CAAC,CACd,cAAe,GAAe,CAChC,CAAC,EAKD,cAAe,CAAC,CACd,cAAe,GAAe,CAChC,CAAC,EAKD,cAAe,CAAC,CACd,cAAe,GAAe,CAChC,CAAC,EAKD,iBAAkB,CAAC,gBAAgB,EAQnC,OAAQ,CAAC,CACP,OAAQ,EAAW,CACrB,CAAC,EAKD,WAAY,CAAC,CACX,WAAY,CAAC,OAAQ,MAAM,CAC7B,CAAC,EAKD,cAAe,CAAC,CACd,MAAO,EAAW,CACpB,CAAC,EAKD,eAAgB,CAAC,CACf,OAAQ,CAAC,SAAU,OAAQ,QAAS,aAAc,YAAa,YAAY,CAC7E,CAAC,EAKD,OAAQ,CAAC,CACP,OAAQ,CAAC,OAAQ,UAAW,UAAW,OAAQ,OAAQ,OAAQ,OAAQ,cAAe,OAAQ,eAAgB,WAAY,OAAQ,YAAa,gBAAiB,QAAS,OAAQ,UAAW,OAAQ,WAAY,aAAc,aAAc,aAAc,WAAY,WAAY,WAAY,WAAY,YAAa,YAAa,YAAa,YAAa,YAAa,YAAa,cAAe,cAAe,UAAW,WAAY,EAAqB,CAAgB,CACpd,CAAC,EAKD,eAAgB,CAAC,CACf,eAAgB,CAAC,QAAS,SAAS,CACrC,CAAC,EAKD,iBAAkB,CAAC,CACjB,iBAAkB,CAAC,OAAQ,MAAM,CACnC,CAAC,EAKD,OAAQ,CAAC,CACP,OAAQ,CAAC,OAAQ,GAAI,IAAK,GAAG,CAC/B,CAAC,EAKD,kBAAmB,CAAC,CAClB,OAAQ,CAAC,OAAQ,QAAQ,CAC3B,CAAC,EAKD,WAAY,CAAC,CACX,WAAY,EAAwB,CACtC,CAAC,EAKD,YAAa,CAAC,CACZ,YAAa,EAAwB,CACvC,CAAC,EAKD,YAAa,CAAC,CACZ,YAAa,EAAwB,CACvC,CAAC,EAKD,YAAa,CAAC,CACZ,YAAa,EAAwB,CACvC,CAAC,EAKD,YAAa,CAAC,CACZ,YAAa,EAAwB,CACvC,CAAC,EAKD,aAAc,CAAC,CACb,aAAc,EAAwB,CACxC,CAAC,EAKD,aAAc,CAAC,CACb,aAAc,EAAwB,CACxC,CAAC,EAKD,YAAa,CAAC,CACZ,YAAa,EAAwB,CACvC,CAAC,EAKD,YAAa,CAAC,CACZ,YAAa,EAAwB,CACvC,CAAC,EAKD,YAAa,CAAC,CACZ,YAAa,EAAwB,CACvC,CAAC,EAKD,YAAa,CAAC,CACZ,YAAa,EAAwB,CACvC,CAAC,EAKD,WAAY,CAAC,CACX,WAAY,EAAwB,CACtC,CAAC,EAKD,YAAa,CAAC,CACZ,YAAa,EAAwB,CACvC,CAAC,EAKD,YAAa,CAAC,CACZ,YAAa,EAAwB,CACvC,CAAC,EAKD,YAAa,CAAC,CACZ,YAAa,EAAwB,CACvC,CAAC,EAKD,YAAa,CAAC,CACZ,YAAa,EAAwB,CACvC,CAAC,EAKD,aAAc,CAAC,CACb,aAAc,EAAwB,CACxC,CAAC,EAKD,aAAc,CAAC,CACb,aAAc,EAAwB,CACxC,CAAC,EAKD,YAAa,CAAC,CACZ,YAAa,EAAwB,CACvC,CAAC,EAKD,YAAa,CAAC,CACZ,YAAa,EAAwB,CACvC,CAAC,EAKD,YAAa,CAAC,CACZ,YAAa,EAAwB,CACvC,CAAC,EAKD,YAAa,CAAC,CACZ,YAAa,EAAwB,CACvC,CAAC,EAKD,aAAc,CAAC,CACb,KAAM,CAAC,QAAS,MAAO,SAAU,YAAY,CAC/C,CAAC,EAKD,YAAa,CAAC,CACZ,KAAM,CAAC,SAAU,QAAQ,CAC3B,CAAC,EAKD,YAAa,CAAC,CACZ,KAAM,CAAC,OAAQ,IAAK,IAAK,MAAM,CACjC,CAAC,EAKD,kBAAmB,CAAC,CAClB,KAAM,CAAC,YAAa,WAAW,CACjC,CAAC,EAKD,MAAO,CAAC,CACN,MAAO,CAAC,OAAQ,OAAQ,cAAc,CACxC,CAAC,EAKD,UAAW,CAAC,CACV,YAAa,CAAC,IAAK,OAAQ,OAAO,CACpC,CAAC,EAKD,UAAW,CAAC,CACV,YAAa,CAAC,IAAK,KAAM,MAAM,CACjC,CAAC,EAKD,WAAY,CAAC,kBAAkB,EAK/B,OAAQ,CAAC,CACP,OAAQ,CAAC,OAAQ,OAAQ,MAAO,MAAM,CACxC,CAAC,EAKD,cAAe,CAAC,CACd,cAAe,CAAC,OAAQ,SAAU,WAAY,YAAa,EAAqB,CAAgB,CAClG,CAAC,EAQD,KAAM,CAAC,CACL,KAAM,CAAC,OAAQ,GAAG,EAAW,CAAC,CAChC,CAAC,EAKD,WAAY,CAAC,CACX,OAAQ,CAAC,EAAU,GAA2B,GAAmB,EAAiB,CACpF,CAAC,EAKD,OAAQ,CAAC,CACP,OAAQ,CAAC,OAAQ,GAAG,EAAW,CAAC,CAClC,CAAC,EAQD,sBAAuB,CAAC,CACtB,sBAAuB,CAAC,OAAQ,MAAM,CACxC,CAAC,CACH,EACA,uBAAwB,CACtB,SAAU,CAAC,aAAc,YAAY,EACrC,WAAY,CAAC,eAAgB,cAAc,EAC3C,MAAO,CAAC,UAAW,UAAW,WAAY,WAAY,QAAS,MAAO,MAAO,QAAS,SAAU,MAAM,EACtG,UAAW,CAAC,QAAS,MAAM,EAC3B,UAAW,CAAC,MAAO,QAAQ,EAC3B,KAAM,CAAC,QAAS,OAAQ,QAAQ,EAChC,IAAK,CAAC,QAAS,OAAO,EACtB,EAAG,CAAC,KAAM,KAAM,KAAM,KAAM,MAAO,MAAO,KAAM,KAAM,KAAM,IAAI,EAChE,GAAI,CAAC,KAAM,IAAI,EACf,GAAI,CAAC,KAAM,IAAI,EACf,EAAG,CAAC,KAAM,KAAM,KAAM,KAAM,MAAO,MAAO,KAAM,KAAM,KAAM,IAAI,EAChE,GAAI,CAAC,KAAM,IAAI,EACf,GAAI,CAAC,KAAM,IAAI,EACf,KAAM,CAAC,IAAK,GAAG,EACf,YAAa,CAAC,SAAS,EACvB,aAAc,CAAC,cAAe,mBAAoB,aAAc,cAAe,cAAc,EAC7F,cAAe,CAAC,YAAY,EAC5B,mBAAoB,CAAC,YAAY,EACjC,aAAc,CAAC,YAAY,EAC3B,cAAe,CAAC,YAAY,EAC5B,eAAgB,CAAC,YAAY,EAC7B,aAAc,CAAC,UAAW,UAAU,EACpC,QAAS,CAAC,YAAa,YAAa,YAAa,YAAa,YAAa,YAAa,aAAc,aAAc,aAAc,aAAc,aAAc,aAAc,aAAc,YAAY,EACtM,YAAa,CAAC,aAAc,YAAY,EACxC,YAAa,CAAC,aAAc,YAAY,EACxC,YAAa,CAAC,aAAc,YAAY,EACxC,YAAa,CAAC,aAAc,YAAY,EACxC,YAAa,CAAC,aAAc,YAAY,EACxC,YAAa,CAAC,aAAc,YAAY,EACxC,iBAAkB,CAAC,mBAAoB,kBAAkB,EACzD,WAAY,CAAC,aAAc,aAAc,aAAc,aAAc,cAAe,cAAe,aAAc,aAAc,aAAc,YAAY,EACzJ,aAAc,CAAC,aAAc,YAAY,EACzC,aAAc,CAAC,aAAc,YAAY,EACzC,eAAgB,CAAC,iBAAkB,iBAAkB,iBAAkB,iBAAkB,kBAAmB,kBAAmB,iBAAkB,iBAAkB,iBAAkB,gBAAgB,EACrM,iBAAkB,CAAC,iBAAkB,gBAAgB,EACrD,iBAAkB,CAAC,iBAAkB,gBAAgB,EACrD,UAAW,CAAC,cAAe,cAAe,gBAAgB,EAC1D,iBAAkB,CAAC,YAAa,cAAe,cAAe,aAAa,EAC3E,WAAY,CAAC,YAAa,YAAa,YAAa,YAAa,aAAc,aAAc,YAAa,YAAa,YAAa,WAAW,EAC/I,YAAa,CAAC,YAAa,WAAW,EACtC,YAAa,CAAC,YAAa,WAAW,EACtC,WAAY,CAAC,YAAa,YAAa,YAAa,YAAa,aAAc,aAAc,YAAa,YAAa,YAAa,WAAW,EAC/I,YAAa,CAAC,YAAa,WAAW,EACtC,YAAa,CAAC,YAAa,WAAW,EACtC,MAAO,CAAC,UAAW,UAAW,UAAU,EACxC,UAAW,CAAC,OAAO,EACnB,UAAW,CAAC,OAAO,EACnB,WAAY,CAAC,OAAO,CACtB,EACA,+BAAgC,CAC9B,YAAa,CAAC,SAAS,CACzB,EACA,wBAAyB,CAAC,IAAK,KAAM,QAAS,WAAY,SAAU,kBAAmB,OAAQ,eAAgB,aAAc,SAAU,cAAe,WAAW,CACnK,GAuDF,IAAM,GAAuB,GAAoB,EAAgB,EC5sG1D,SAAS,CAAE,IAAI,EAA8B,CAClD,OAAO,GAAQ,GAAK,CAAM,CAAC,ECW7B,IAAM,GAAgB,CAAC,IAAQ,OAAO,IAAU,UAAY,GAAG,IAAU,IAAU,EAAI,IAAM,EAChF,GAAK,GACL,GAAM,CAAC,EAAM,IAAS,CAAC,IAAQ,CACpC,IAAI,EACJ,IAAK,IAAW,MAAQ,IAAgB,OAAS,OAAI,EAAO,WAAa,KAAM,OAAO,GAAG,EAAM,IAAU,MAAQ,IAAe,OAAS,OAAI,EAAM,MAAO,IAAU,MAAQ,IAAe,OAAS,OAAI,EAAM,SAAS,EACvN,IAAQ,WAAU,mBAAoB,EAChC,EAAuB,OAAO,KAAK,CAAQ,EAAE,IAAI,CAAC,IAAU,CAC9D,IAAM,EAAc,IAAU,MAAQ,IAAe,OAAS,OAAI,EAAM,GAClE,EAAqB,IAAoB,MAAQ,IAAyB,OAAS,OAAI,EAAgB,GAC7G,GAAI,IAAgB,KAAM,OAAO,KACjC,IAAM,EAAa,GAAc,CAAW,GAAK,GAAc,CAAkB,EACjF,OAAO,EAAS,GAAS,GAC5B,EACK,EAAwB,GAAS,OAAO,QAAQ,CAAK,EAAE,OAAO,CAAC,EAAK,IAAQ,CAC9E,IAAK,EAAK,GAAS,EACnB,GAAI,IAAU,OACV,OAAO,EAGX,OADA,EAAI,GAAO,EACJ,GACR,CAAC,CAAC,EACC,EAA+B,IAAW,MAAQ,IAAgB,OAAS,QAAK,EAA2B,EAAO,oBAAsB,MAAQ,IAAkC,OAAS,OAAI,EAAyB,OAAO,CAAC,EAAK,IAAQ,CAC/O,IAAM,MAAO,EAAS,UAAW,KAAgB,GAA2B,EAC5E,OAAO,OAAO,QAAQ,CAAsB,EAAE,MAAM,CAAC,IAAQ,CACzD,IAAK,EAAK,GAAS,EACnB,OAAO,MAAM,QAAQ,CAAK,EAAI,EAAM,SAAS,IACtC,KACA,CACP,EAAE,EAAI,EAAK,IACJ,KACA,CACP,EAAG,KAAS,EACf,EAAI,CACD,GAAG,EACH,EACA,CACJ,EAAI,GACL,CAAC,CAAC,EACL,OAAO,GAAG,EAAM,EAAsB,EAA8B,IAAU,MAAQ,IAAe,OAAS,OAAI,EAAM,MAAO,IAAU,MAAQ,IAAe,OAAS,OAAI,EAAM,SAAS,GChDpM,IAAM,GAAiB,GACrB,6cACA,CACE,SAAU,CACR,QAAS,CACP,QAAS,yDACT,YACE,oJACF,QACE,wIACF,UAAW,+DACX,MAAO,uEACP,KAAM,iDACR,EACA,KAAM,CACJ,QAAS,gCACT,GAAI,gDACJ,GAAI,uCACJ,KAAM,SACN,UAAW,SACX,UAAW,SACb,CACF,EACA,gBAAiB,CACf,QAAS,UACT,KAAM,SACR,CACF,CACF,EAQO,SAAS,EAAM,EAAG,MAAO,EAAW,UAAS,UAAS,GAAmC,CAC9F,OACE,EAAC,SAAD,CACE,cAAY,SACZ,YAAU,SACV,MAAO,EAAG,GAAe,CAAE,UAAS,OAAM,WAAU,CAAC,CAAC,KAClD,EACN,ECzCJ,IAAM,GAAQ,CACZ,CAAE,KAAM,IAAK,MAAO,mBAAS,EAC7B,CAAE,KAAM,UAAW,MAAO,qBAAW,EACrC,CAAE,KAAM,YAAa,MAAO,aAAa,CAC3C,EAEA,SAAS,EAAkB,EAAS,CAClC,SAAS,cAAc,IAAI,cAAc,UAAW,CAAE,IAAK,IAAK,QAAS,EAAK,CAAC,CAAC,EAG3E,SAAS,EAAG,EAAgB,CACjC,IAAQ,OAAQ,GAAY,EAE5B,OACE,EA8BE,MA9BF,CAAK,cAAY,MAAM,MAAM,iCAA7B,SACE,EA4BE,MA5BF,CAAK,MAAM,yBAAX,SACE,EA0BE,MA1BF,CAAK,MAAM,yCAAX,SA0BE,CAzBA,EAcE,MAdF,CAAK,MAAM,8BAAX,SAcE,CAbA,EAAwD,OAAxD,CAAM,MAAM,iCAAZ,sBAAwD,EACxD,EAWE,MAXF,CAAK,MAAM,iBAAX,SACG,GAAM,IAAI,CAAC,IAAS,CACnB,IAAM,EAAW,IAAQ,EAAK,MAAS,EAAK,OAAS,KAAO,EAAI,WAAW,EAAK,IAAI,EACpF,OACE,EAIE,GAJF,CAAwB,QAAS,EAAW,YAAc,QAAS,KAAK,KAAK,QAAO,GAApF,SACE,EAEE,IAFF,CAAG,KAAM,EAAK,KAAM,MAAO,EAAG,GAAY,qBAAqB,EAA/D,SACG,EAAK,MACN,GAHS,EAAK,IAIhB,EAEL,EACD,GACF,EACF,EASE,MATF,CAAK,MAAM,8BAAX,SACE,EAOE,SAPF,CACE,QAAS,GACT,MAAM,+IAFR,SAOE,CAHA,EAAC,GAAD,CAAQ,MAAM,UAAU,EACxB,EAAiB,OAAjB,sBAAiB,EACjB,EAAuD,MAAvD,CAAK,MAAM,yCAAX,cAAuD,GACvD,EACF,GACF,EACF,EACF,EC3CC,SAAS,EAAI,EAAG,MAAO,KAAc,GAAiC,CAC3E,OACE,EAAC,MAAD,CACE,cAAY,OACZ,YAAU,OACV,MAAO,EAAG,oFAAqF,CAAS,KACpG,EACN,EAIG,SAAS,EAAU,EAAG,MAAO,KAAc,GAAiC,CACjF,OACE,EAAC,MAAD,CACE,cAAY,aACZ,YAAU,cACV,MAAO,EACL,2JACA,CACF,KACI,EACN,EAIG,SAAS,EAAS,EAAG,MAAO,KAAc,GAAiC,CAChF,OACE,EAAC,MAAD,CACE,cAAY,YACZ,YAAU,aACV,MAAO,EAAG,iCAAkC,CAAS,KACjD,EACN,EA0BG,SAAS,EAAW,EAAG,MAAO,KAAc,GAAiC,CAClF,OAAO,EAAC,MAAD,CAAK,cAAY,cAAc,YAAU,eAAe,MAAO,EAAG,OAAQ,CAAS,KAAO,EAAO,ECtDnG,SAAS,CAAU,EACxB,QACA,OACA,SACA,WACA,MAAO,EACP,gBACgC,CAChC,OACE,EAWE,GAXF,CAAM,MAAO,EAAb,SAWE,CAVA,EAQE,GARF,CAAY,MAAM,OAAlB,SACE,EAME,MANF,CAAK,MAAM,oCAAX,SAME,CALA,EAGE,GAHF,CAAW,MAAM,gDAAjB,SAGE,CAFC,EACA,GACD,EACD,GACD,EACF,EACF,EAA8C,GAA9C,CAAa,MAAO,EAApB,SAAmC,EAAW,GAC9C,ECzBN,SAAS,EAAa,CAAC,EAA6B,CAClD,OAAQ,OACD,OACH,OAAO,EAAC,GAAD,CAAa,MAAM,UAAU,MACjC,OACH,OAAO,EAAC,GAAD,CAAe,MAAM,UAAU,MACnC,OACH,OAAO,EAAC,GAAD,CAAS,MAAM,UAAU,UAEhC,OAAO,EAAC,GAAD,CAAa,MAAM,UAAU,GAQ1C,SAAS,EAAe,EAAG,SAA4C,CACrE,OACE,EASE,EATF,CAAY,MAAO,EAAM,KAAM,KAAM,GAAc,EAAM,MAAM,EAA/D,SASE,CARC,EAAM,SAAW,EAA8D,IAA9D,CAAG,MAAM,oCAAT,SAA8C,EAAM,QAAU,GAC9E,EAAM,SAAS,QAAU,GAAK,GAC9B,EAIE,KAJF,CAAI,MAAM,iEAAV,SACG,EAAM,SAAS,IAAI,CAAC,EAAQ,IAC3B,EAA0B,KAA1B,UAAiB,GAAR,CAAiB,CAC3B,EACD,GAEJ,EAIC,SAAS,EAAM,EAAgB,CACpC,IAAQ,KAAM,EAAQ,WAAY,EAAwB,SAAS,EAEnE,GAAI,EACF,OACE,EAEE,MAFF,CAAK,cAAY,SAAS,MAAM,wCAAhC,SACE,EAA+C,MAA/C,CAAK,MAAM,wBAAX,sBAA+C,EAC/C,EAUN,OACE,EAqBE,MArBF,CAAK,cAAY,SAAS,MAAM,YAAhC,SAqBE,CApBA,EAGE,MAHF,CAAK,MAAM,8BAAX,SAGE,CAFA,EAAC,GAAD,CAAY,MAAM,UAAU,EAC5B,EAA8C,KAA9C,CAAI,MAAM,qBAAV,yBAA8C,GAC9C,EAEF,EAQE,GARF,CAAM,MAAM,cAAZ,SACE,EAME,GANF,CAAa,MAAM,OAAnB,SAME,CALA,EAAC,MAAD,CAAK,MAAO,qCAfyB,CAC3C,QAAS,eACT,QAAS,eACT,UAAW,YACb,EAWsE,GAAQ,SAAW,aAAc,EAC/F,EAA0E,KAA1E,CAAI,MAAM,gCAAV,SAA2C,GAAQ,SAAW,UAAY,EAC1E,EAEE,IAFF,CAAG,MAAM,qCAAT,SAEE,CAFF,eACe,GAAQ,UAAY,IAAI,KAAK,EAAO,SAAS,EAAE,eAAe,EAAI,SAC/E,GACF,EACF,EAEF,EAIE,MAJF,CAAK,MAAM,YAAX,SACG,GAAQ,QAAQ,IAAI,CAAC,EAAO,IAAU,EAAC,GAAD,CAA6B,MAAO,GAAd,CAAqB,CAAE,GAClF,EAAwD,MAAxD,CAAK,MAAM,wBAAX,+BAAwD,EAE1D,GACF,EC3EC,SAAS,EAAQ,EAAgB,CACtC,OACE,EAKE,MALF,CAAK,cAAY,WAAW,MAAM,mBAAlC,SAKE,CAJA,EAAqD,KAArD,CAAI,MAAM,0BAAV,2BAAqD,EACrD,EAEE,GAFF,CAAQ,QAAQ,OAAO,QAAO,GAA9B,SACE,EAA6B,IAA7B,CAAG,KAAK,IAAR,2BAA6B,EAC7B,GACF,ECJC,SAAS,EAAQ,EAAgB,CACtC,IAAQ,KAAM,EAAQ,WAAY,EAAyB,SAAS,EAEpE,GAAI,EACF,OACE,EAEE,MAFF,CAAK,cAAY,WAAW,MAAM,wCAAlC,SACE,EAA+C,MAA/C,CAAK,MAAM,wBAAX,sBAA+C,EAC/C,EAIN,IAAM,EAAQ,CACZ,CAAE,MAAO,qBAAsB,MAAO,GAAQ,WAAY,EAC1D,CAAE,MAAO,sBAAuB,MAAO,GAAQ,YAAa,EAC5D,CAAE,MAAO,qBAAsB,MAAO,GAAQ,WAAY,EAC1D,CAAE,MAAO,mBAAoB,MAAO,GAAQ,SAAU,EACtD,CAAE,MAAO,yBAA0B,MAAO,GAAQ,cAAe,CACnE,EAEA,OACE,EAaE,MAbF,CAAK,cAAY,WAAW,MAAM,YAAlC,SACE,EAWE,EAXF,CAAY,MAAM,gBAAgB,KAAM,EAAC,GAAD,CAAW,MAAM,UAAU,EAAnE,SACE,EASE,MATF,CAAK,MAAM,YAAX,SACG,EAAM,IAAI,CAAC,EAAM,IAChB,EAKE,MALF,UAKE,CAJA,EAA8D,MAA9D,CAAK,MAAM,qCAAX,SAAiD,EAAK,MAAQ,EAC9D,EAEE,OAFF,CAAM,MAAM,2DAAZ,SACG,EAAK,OAAS,iBACf,IAJM,CAKR,CACH,EACD,EACF,EACF,ECnCN,IAAM,GAAgB,GACpB,uKACA,CACE,SAAU,CACR,QAAS,CACP,QAAS,mFACT,UAAW,kFACX,YAAa,+FACb,QAAS,kBACT,QAAS,wEACT,QAAS,2EACT,MAAO,0CACT,CACF,EACA,gBAAiB,CACf,QAAS,SACX,CACF,CACF,EAOO,SAAS,EAAK,EAAG,MAAO,EAAW,aAAY,GAAkC,CACtF,OAAO,EAAC,MAAD,CAAK,cAAY,QAAQ,MAAO,EAAG,GAAc,CAAE,SAAQ,CAAC,EAAG,CAAS,KAAO,EAAO,ECrB/F,IAAM,GAA2C,CAC/C,iBAAkB,EAAC,GAAD,CAAW,MAAM,UAAU,EAC7C,qBAAsB,EAAC,GAAD,CAAW,MAAM,UAAU,EACjD,SAAU,EAAC,GAAD,CAAS,MAAM,UAAU,EACnC,KAAM,EAAC,GAAD,CAAS,MAAM,UAAU,EAC/B,MAAO,EAAC,GAAD,CAAK,MAAM,UAAU,EAC5B,WAAY,EAAC,GAAD,CAAU,MAAM,UAAU,EACtC,cAAe,EAAC,GAAD,CAAU,MAAM,UAAU,EACzC,aAAc,EAAC,GAAD,CAAU,MAAM,UAAU,EACxC,OAAQ,EAAC,GAAD,CAAQ,MAAM,UAAU,CAClC,EAEO,SAAS,EAAkB,EAAG,SAAQ,SAAgD,CAC3F,IAAM,EAAgB,IAAW,kBAAoB,EAAQ,qBAAuB,EAC9E,EAAO,GAAY,IAAkB,EAAC,GAAD,CAAS,MAAM,UAAU,EAEpE,OACE,EAGE,GAHF,CAAO,QAAQ,UAAU,MAAM,QAA/B,SAGE,CAFC,EACA,GACD,ECpBC,SAAS,EAAkB,EAAG,OAAM,YAAmD,CAC5F,OACE,EAUE,GAVF,CAAQ,QAAQ,UAAU,KAAK,KAAK,QAAO,GAA3C,SACE,EAQE,IARF,CACE,KAAM,EACN,OAAO,SACP,IAAI,sBACJ,MAAM,qDAJR,SAQE,CAFA,EAAC,GAAD,CAAc,MAAM,UAAU,EAC7B,GACD,EACF,ECJN,SAAS,EAAgB,CAAC,EAAyB,EAAc,EAAoB,GAA2B,CAC9G,GAAI,CAAC,EAAK,OAAO,EAEjB,GAAI,EAAI,WAAW,SAAS,GAAK,EAAI,WAAW,UAAU,GAAK,EAAI,WAAW,IAAI,EAChF,OAAO,EAGT,GAAI,EAAI,WAAW,GAAG,EACpB,OAAO,EAGT,IAAM,EAAY,EAAI,WAAW,IAAI,EAAI,EAAI,MAAM,CAAC,EAAI,EAExD,MAAO,sBAAsB,KADb,EAAW,MAAQ,eACkB,IAGvD,SAAS,EAAwB,CAAC,EAA0B,CAC1D,MAAO,CACL,EAAG,EAAG,OAAM,cAAa,KAAY,CACnC,IAAM,EAAU,OAAO,IAAS,SAAW,EAAO,OAC5C,EAAe,GAAiB,EAAS,EAAM,EAAK,EACpD,EAAW,GAAS,WAAW,GAAG,EACxC,OACE,EAOE,IAPF,IACM,EACJ,KAAM,EACN,OAAQ,EAAW,OAAY,SAC/B,IAAK,EAAW,OAAY,sBAJ9B,SAMG,EACD,GAGN,IAAK,EAAG,MAAK,SAAQ,KAAY,CAE/B,OAAO,EAAC,MAAD,IAAS,EAAO,IAAK,GADb,OAAO,IAAQ,SAAW,EAAM,OACM,EAAM,EAAI,EAAG,IAAK,EAAK,EAEhF,EAGK,SAAS,EAAU,EAAG,WAAU,QAAsC,CAC3E,IAAQ,OAAM,UAAS,SAAU,EAA6B,UAAU,mBAAmB,CAAQ,WAAY,CAC7G,CACF,CAAC,EAED,GAAI,EACF,OACE,EAEE,EAFF,CAAY,MAAM,SAAS,KAAM,EAAC,GAAD,CAAU,MAAM,UAAU,EAA3D,SACE,EAAuE,MAAvE,CAAK,MAAM,yCAAX,6BAAuE,EACvE,EAIN,GAAI,GAAS,CAAC,GAAM,QAClB,OACE,EAYE,EAZF,CAAY,MAAM,SAAS,KAAM,EAAC,GAAD,CAAU,MAAM,UAAU,EAA3D,SACE,EAUE,MAVF,CAAK,MAAM,yCAAX,SAUE,CATA,EAAsC,IAAtC,CAAG,MAAM,OAAT,gCAAsC,EACtC,EAOE,IAPF,CACE,KAAM,sBAAsB,WAC5B,OAAO,SACP,IAAI,sBACJ,MAAM,uEAJR,SAOE,CAPF,kBAMiB,EAAC,GAAD,CAAc,MAAM,UAAU,GAC7C,GACF,EACF,EAIN,OACE,EAUE,EAVF,CACE,MAAM,SACN,KAAM,EAAC,GAAD,CAAU,MAAM,UAAU,EAChC,OAAQ,EAA+E,GAA/E,CAAoB,KAAM,sBAAsB,WAAhD,0BAA+E,EAHzF,SAKE,EAIE,MAJF,CAAK,MAAM,4BAAX,SACE,EAEE,GAFF,CAAU,cAAe,CAAC,EAAS,EAAG,cAAe,CAAC,EAAS,EAAG,WAAY,GAAyB,CAAI,EAA3G,SACG,EAAK,QACN,EACF,EACF,EC1FC,SAAS,EAAW,EAAG,UAA0C,CACtE,OAAQ,OACD,YACH,OAAO,EAAqC,GAArC,CAAO,QAAQ,UAAf,uBAAqC,MACzC,gBACH,OAAO,EAAsC,GAAtC,CAAO,QAAQ,QAAf,yBAAsC,MAC1C,QACH,OAAO,EAA8B,GAA9B,CAAO,QAAQ,QAAf,iBAA8B,GCN3C,IAAM,GAA8C,CAClD,UAAW,EAAC,GAAD,CAAU,MAAM,UAAU,EACrC,MAAO,EAAC,GAAD,CAAQ,MAAM,UAAU,EAC/B,GAAI,EAAC,GAAD,CAAQ,MAAM,UAAU,EAC5B,MAAO,EAAC,GAAD,CAAY,MAAM,UAAU,EACnC,QAAS,EAAC,GAAD,CAAM,MAAM,UAAU,EAC/B,OAAQ,EAAC,GAAD,CAAM,MAAM,UAAU,EAC9B,GAAI,EAAC,GAAD,CAAM,MAAM,UAAU,CAC5B,EAEM,GAA0C,CAC9C,UAAW,UACX,MAAO,cACP,GAAI,UACJ,MAAO,YACP,QAAS,SACT,OAAQ,UACR,GAAI,QACN,EAEA,SAAS,EAAc,CAAC,EAAkB,EAA6B,CACrE,GAAI,EAAS,WAAW,CAAW,EAEjC,MAAO,aADc,EAAS,MAAM,EAAY,MAAM,IAGxD,OAAO,EAGF,SAAS,EAAW,EAAG,UAAS,cAAa,eAA+C,CACjG,GAAI,EAAQ,SAAW,GAAK,CAAC,EAC3B,OACE,EAEE,MAFF,CAAK,cAAY,cAAc,MAAM,yCAArC,+BAEE,EAIN,OACE,EAuCE,MAvCF,CAAK,cAAY,cAAc,MAAM,YAArC,SAuCE,CAtCC,GACC,EAQE,MARF,CAAK,MAAM,qDAAX,SAQE,CAPA,EAEE,MAFF,CAAK,MAAM,uFAAX,SACE,EAAC,GAAD,CAAO,MAAM,UAAU,EACvB,EACF,EAGE,MAHF,UAGE,CAFA,EAAoC,MAApC,CAAK,MAAM,cAAX,qBAAoC,EACpC,EAAqF,MAArF,CAAK,MAAM,gCAAX,SAA4C,IAAI,KAAK,CAAW,EAAE,eAAe,EAAI,GACrF,GACF,EAGH,EAAQ,OAAS,GAChB,EAuBE,MAvBF,CAAK,MAAM,WAAX,SAuBE,CAtBA,EAAC,MAAD,CAAK,MAAM,gDAAgD,EAC3D,EAoBE,MApBF,CAAK,MAAM,YAAX,SACG,EAAQ,IAAI,CAAC,IACZ,EAgBE,MAhBF,CAAoB,MAAM,uCAA1B,SAgBE,CAfA,EAEE,MAFF,CAAK,MAAM,iHAAX,SACE,EAAC,MAAD,CAAK,MAAM,2CAA2C,EACtD,EACF,EAWE,MAXF,CAAK,MAAM,iBAAX,SAWE,CAVA,EAME,MANF,CAAK,MAAM,0BAAX,SAME,CALA,EAEE,OAFF,CAAM,MAAM,wBAAZ,SACG,GAAe,EAAM,gBAAkB,EAAC,GAAD,CAAM,MAAM,UAAU,EAC9D,EACF,EAAyF,OAAzF,CAAM,MAAM,cAAZ,SAA2B,GAAgB,EAAM,gBAAkB,EAAM,cAAgB,EACzF,EAA0E,OAA1E,CAAM,MAAM,wCAAZ,SAAqD,EAAM,aAAe,GAC1E,EACF,EAEE,MAFF,CAAK,MAAM,8CAA8C,MAAO,EAAM,SAAtE,SACG,GAAe,EAAM,SAAU,CAAW,EAC3C,GACF,IAfM,EAAM,EAgBd,CACH,EACD,GACF,GAEJ,ECxF8d,SAAS,EAAC,CAAC,EAAE,EAAE,CAAC,QAAQ,KAAK,EAAE,EAAE,GAAG,EAAE,GAAG,OAAO,EAAE,SAAS,EAAC,CAAC,EAAE,EAAE,CAAC,QAAQ,KAAK,EAAE,GAAgB,IAAb,YAAgB,EAAE,KAAK,GAAG,MAAM,GAAG,QAAQ,KAAK,EAAE,GAAgB,IAAb,YAAgB,EAAE,KAAK,EAAE,GAAG,MAAM,GAAG,MAAM,GAAwX,SAAS,EAAC,CAAC,EAAE,EAAE,CAAC,KAAK,MAAM,EAAE,KAAK,QAAQ,GAA2T,GAAE,UAAU,IAAI,IAAG,qBAAqB,GAAG,GAAE,UAAU,sBAAsB,QAAQ,CAAC,EAAE,EAAE,CAAC,OAAO,GAAE,KAAK,MAAM,CAAC,GAAG,GAAE,KAAK,MAAM,CAAC,GAAG,IAAI,GAAE,EAAE,IAAI,EAAE,IAAI,QAAQ,CAAC,EAAE,CAAC,EAAE,MAAM,EAAE,KAAK,KAAK,EAAE,MAAM,EAAE,MAAM,IAAI,EAAE,IAAI,EAAE,IAAI,MAAM,IAAG,GAAE,CAAC,GAAG,IAAI,GAAe,OAAO,OAApB,KAA4B,OAAO,KAAK,OAAO,IAAI,mBAAmB,GAAG,KAAK,SAAS,EAAC,CAAC,EAAE,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,IAAI,EAAE,GAAE,CAAC,EAAE,CAAC,EAAE,OAAO,OAAO,EAAE,IAAI,EAAE,EAAE,EAAE,KAAK,IAAI,EAAE,OAAO,EAAE,SAAS,GAAE,EAAE,OAAO,EAAE,EAAE,UAAU,iBAAiB,EAAE,IAAI,GAAG,EAAE,YAAY,eAAe,EAAE,aAAa,EAAE,MAAM,IAAI,EAAE,IAA8M,GAAE,EAAE,IAAI,EAAE,IAAI,QAAQ,CAAC,EAAE,EAAE,EAAE,EAAE,CAAC,GAAG,EAAE,MAAK,QAAQ,EAAE,EAAE,EAAE,EAAE,EAAE,IAAI,IAAI,EAAE,EAAE,MAAM,EAAE,IAAI,OAAa,EAAE,KAAR,OAAc,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,EAAE,GAAE,EAAE,EAAE,EAAE,CAAC,GAAG,IAAI,GAAE,EAAE,QAAQ,SAAS,EAAC,CAAC,EAAE,EAAE,EAAE,CAAC,OAAO,IAAI,EAAE,KAAK,EAAE,IAAI,MAAM,EAAE,IAAI,IAAI,GAAG,QAAQ,QAAQ,CAAC,EAAE,CAAa,OAAO,EAAE,KAArB,YAA0B,EAAE,IAAI,EAAE,EAAE,EAAE,IAAI,IAAI,OAAa,EAAE,GAAE,CAAC,EAAE,CAAC,GAAG,KAAlB,OAAwB,EAAE,IAAI,MAAM,IAAI,EAAE,IAAI,IAAI,GAAG,EAAE,IAAI,IAAI,GAAG,EAAE,IAAI,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,IAAI,QAAQ,CAAC,EAAE,CAAC,OAAO,GAAE,EAAE,EAAE,CAAC,EAAE,GAAG,EAAE,SAAS,EAAC,CAAC,EAAE,EAAE,EAAE,CAAC,OAAO,GAAG,IAAI,EAAE,IAAI,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,IAAI,QAAQ,CAAC,EAAE,CAAC,OAAO,GAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,KAAK,EAAE,IAAI,MAAM,IAAI,EAAE,KAAK,EAAE,YAAY,EAAE,GAAG,EAAE,EAAE,IAAI,IAAI,GAAG,EAAE,IAAI,IAAI,IAAI,EAAE,SAAS,EAAC,EAAE,CAAC,KAAK,IAAI,EAAE,KAAK,EAAE,KAAK,KAAK,IAAI,KAAK,SAAS,EAAC,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,GAAG,OAAO,KAAK,IAAI,EAAE,EAAE,GAAG,IAAI,OAAO,GAAG,EAAE,KAAK,EAAE,IAAI,CAAC,EAAmN,SAAS,EAAC,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,EAAE,KAAK,EAAE,QAAQ,QAAQ,CAAC,EAAE,CAAC,IAAI,EAAE,EAAE,IAAI,IAAI,EAAE,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,IAAI,EAAE,GAAG,GAAG,EAAE,MAAM,EAAE,KAAK,MAAM,IAAG,GAAE,CAAC,IAAI,GAAE,UAAU,IAAI,IAAG,IAAI,QAAQ,CAAC,EAAE,EAAE,CAAC,IAAI,EAAE,EAAE,IAAI,EAAE,KAAW,EAAE,GAAR,OAAY,EAAE,EAAE,CAAC,GAAG,EAAE,EAAE,KAAK,CAAC,EAAE,IAAI,EAAE,GAAE,EAAE,GAAG,EAAE,EAAE,GAAG,EAAE,QAAQ,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,IAAI,KAAK,EAAE,EAAE,CAAC,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE,IAAI,EAAE,IAAI,KAAK,IAAI,EAAE,QAAQ,EAAE,CAAC,GAAG,CAAC,EAAE,EAAE,IAAI,CAAC,GAAG,EAAE,MAAM,IAAI,CAAC,IAAI,EAAE,EAAE,MAAM,IAAI,EAAE,IAAI,IAAI,GAAG,GAAE,EAAE,EAAE,IAAI,IAAI,EAAE,IAAI,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,SAAS,CAAC,IAAI,EAAE,IAAI,IAAI,CAAC,EAAE,EAAE,EAAE,EAAE,IAAI,GAAG,EAAE,IAAI,EAAE,EAAE,YAAY,IAAI,EAAE,OAAO,GAAG,EAAE,KAAK,EAAE,SAAS,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,IAAI,EAAE,CAAC,EAAE,EAAE,KAAK,EAAE,CAAC,GAAG,GAAE,UAAU,qBAAqB,QAAQ,EAAE,CAAC,KAAK,EAAE,CAAC,GAAG,GAAE,UAAU,OAAO,QAAQ,CAAC,EAAE,EAAE,CAAC,GAAG,KAAK,IAAI,CAAC,GAAG,KAAK,IAAI,IAAI,CAAC,IAAI,EAAE,SAAS,cAAc,KAAK,EAAE,EAAE,KAAK,IAAI,IAAI,GAAG,IAAI,KAAK,IAAI,IAAI,GAAG,GAAE,KAAK,IAAI,EAAE,EAAE,IAAI,EAAE,GAAG,EAAE,KAAK,IAAI,KAAK,IAAI,EAAE,EAAE,KAAK,EAAE,GAAE,KAAK,EAAE,QAAQ,EAAE,OAAO,IAAI,EAAE,KAAK,KAAK,CAAC,EAAE,GAAE,KAAK,EAAE,IAAI,KAAK,EAAE,QAAQ,EAAE,CAAC,GAAG,IAAI,GAAE,QAAQ,CAAC,EAAE,EAAE,EAAE,CAAC,GAAG,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE,OAAO,CAAC,EAAE,EAAE,MAAM,cAAoB,EAAE,MAAM,YAAY,KAA1B,KAA8B,CAAC,EAAE,EAAE,MAAM,IAAI,EAAE,EAAE,EAAE,GAAG,CAAC,KAAK,EAAE,OAAO,GAAG,EAAE,IAAI,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,MAAM,EAAE,EAAE,EAAE,EAAE,MAAirB,GAAE,UAAU,IAAI,IAAG,IAAI,QAAQ,CAAC,EAAE,CAAC,IAAI,EAAE,KAAK,EAAE,GAAE,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,IAAI,CAAC,EAAE,OAAO,EAAE,KAAK,QAAQ,CAAC,EAAE,CAAC,IAAI,EAAE,QAAQ,EAAE,CAAC,EAAE,MAAM,aAAa,EAAE,KAAK,CAAC,EAAE,GAAE,EAAE,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE,CAAC,EAAE,EAAE,IAAI,GAAE,UAAU,OAAO,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,EAAE,IAAI,IAAI,IAAI,EAAE,GAAE,EAAE,QAAQ,EAAE,EAAE,aAAmB,EAAE,YAAY,KAApB,KAAwB,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,OAAO,KAAK,KAAK,EAAE,IAAI,EAAE,GAAG,KAAK,EAAE,CAAC,EAAE,EAAE,KAAK,CAAC,CAAC,EAAE,OAAO,EAAE,UAAU,GAAE,UAAU,mBAAmB,GAAE,UAAU,kBAAkB,QAAQ,EAAE,CAAC,IAAI,EAAE,KAAK,KAAK,EAAE,QAAQ,QAAQ,CAAC,EAAE,EAAE,CAAC,GAAE,EAAE,EAAE,CAAC,EAAE,GAAG,IAAI,GAAe,OAAO,OAApB,KAA4B,OAAO,KAAK,OAAO,IAAI,eAAe,GAAG,MAAM,GAAE,8RAA8R,GAAE,mCAAmC,GAAE,YAAY,GAAe,OAAO,SAApB,IAA6B,GAAE,QAAQ,CAAC,EAAE,CAAC,OAAoB,OAAO,OAApB,KAAsC,OAAO,OAAO,GAAxB,SAA0B,cAAc,cAAc,KAAK,CAAC,GAAmL,GAAE,UAAU,iBAAiB,CAAC,EAAE,CAAC,qBAAqB,4BAA4B,qBAAqB,EAAE,QAAQ,QAAQ,CAAC,EAAE,CAAC,OAAO,eAAe,GAAE,UAAU,EAAE,CAAC,aAAa,GAAG,IAAI,QAAQ,EAAE,CAAC,OAAO,KAAK,UAAU,IAAI,IAAI,QAAQ,CAAC,EAAE,CAAC,OAAO,eAAe,KAAK,EAAE,CAAC,aAAa,GAAG,SAAS,GAAG,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,IAAI,GAAG,EAAE,MAAM,SAAS,EAAE,EAAE,EAAE,SAAS,EAAE,EAAE,CAAC,OAAO,KAAK,aAAa,SAAS,EAAE,EAAE,CAAC,OAAO,KAAK,iBAAiB,EAAE,MAAM,QAAQ,CAAC,EAAE,CAAC,OAAO,KAAK,EAAE,GAAG,CAAC,GAAG,EAAE,QAAQ,GAAG,EAAE,qBAAqB,GAAG,EAAE,mBAAmB,GAAG,EAAE,YAAY,GAAG,IAAI,GAAG,GAAG,CAAC,WAAW,GAAG,aAAa,GAAG,IAAI,QAAQ,EAAE,CAAC,OAAO,KAAK,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC,EAAE,CAAW,OAAO,EAAE,MAAnB,UAAyB,QAAQ,CAAC,EAAE,CAAC,IAAQ,MAAJ,EAAc,KAAJ,GAAE,EAAO,EAAE,CAAC,EAAE,EAAO,EAAE,QAAQ,GAAG,IAAlB,GAAoB,QAAQ,KAAK,EAAE,CAAC,IAAI,EAAE,EAAE,GAAG,GAAG,EAAY,IAAV,UAAa,iBAAiB,IAAS,GAAN,MAAS,IAAgB,IAAb,YAA6B,IAAb,YAA0B,IAAV,SAA2B,IAAd,aAAiB,CAAC,IAAI,EAAE,EAAE,YAAY,EAAmB,IAAjB,gBAAoB,UAAU,GAAS,EAAE,OAAR,KAAc,EAAE,QAAqB,IAAb,YAAqB,IAAL,GAAO,EAAE,GAAiB,IAAd,aAAwB,IAAP,KAAS,EAAE,GAAS,EAAE,KAAR,KAAkB,EAAE,KAAR,IAA6B,IAAlB,gBAAoB,EAAE,aAA0B,IAAb,YAA0B,IAAV,SAA0B,IAAb,YAAgB,GAAE,EAAE,IAAI,EAAc,IAAZ,UAAc,EAAE,YAAuB,IAAX,SAAa,EAAE,aAAa,GAAE,KAAK,CAAC,IAAI,EAAE,GAAG,EAAE,EAAE,UAAU,GAAG,GAAE,KAAK,CAAC,EAAE,EAAE,EAAE,QAAQ,GAAE,KAAK,EAAE,YAAY,EAAS,IAAP,OAAW,EAAO,QAAe,IAAZ,WAAe,EAAE,EAAE,KAAK,EAAE,kBAAkB,EAAE,GAAG,GAAa,GAAV,UAAa,EAAE,UAAU,MAAM,QAAQ,EAAE,KAAK,IAAI,EAAE,MAAM,GAAE,EAAE,QAAQ,EAAE,QAAQ,QAAQ,CAAC,EAAE,CAAC,EAAE,MAAM,SAAa,EAAE,MAAM,QAAQ,EAAE,MAAM,KAAK,GAAjC,GAAmC,GAAa,GAAV,UAAmB,EAAE,cAAR,OAAuB,EAAE,MAAM,GAAE,EAAE,QAAQ,EAAE,QAAQ,QAAQ,CAAC,EAAE,CAAC,EAAE,MAAM,SAAS,EAAE,SAAa,EAAE,aAAa,QAAQ,EAAE,MAAM,KAAK,GAAxC,GAA0C,EAAE,cAAc,EAAE,MAAM,MAAM,GAAG,EAAE,OAAO,CAAC,EAAE,WAAW,EAAE,MAAM,EAAE,MAAM,OAAO,eAAe,EAAE,YAAY,EAAE,GAAG,EAAE,YAAY,EAAE,MAAM,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,GAAG,CAAC,EAAE,EAAE,SAAS,GAAE,IAAI,GAAG,CAAC,GAAG,IAAI,GAAG,EAAE,IAAI,EAAE,IAAI,QAAQ,CAAC,EAAE,CAAC,IAAI,GAAG,CAAC,EAAE,GAAG,EAAE,KAAK,IAAI,GAAG,EAAE,OAAO,EAAE,OAAO,QAAQ,CAAC,EAAE,CAAC,IAAI,GAAG,CAAC,EAAE,IAAQ,MAAJ,EAAc,IAAJ,GAAE,EAAY,GAAN,MAAsB,EAAE,OAAf,YAAqB,UAAU,GAAG,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAY,EAAE,OAAR,KAAc,GAAG,EAAE,OAAO,GAAG,MCA78P,IAAI,GAAM,OAAO,UAAU,eAE3B,SAAS,EAAI,CAAC,EAAM,EAAK,EAAK,CAC7B,IAAK,KAAO,EAAK,KAAK,EACrB,GAAI,GAAO,EAAK,CAAG,EAAG,OAAO,EAIxB,SAAS,EAAM,CAAC,EAAK,EAAK,CAChC,IAAI,EAAM,EAAK,EACf,GAAI,IAAQ,EAAK,MAAO,GAExB,GAAI,GAAO,IAAQ,EAAK,EAAI,eAAiB,EAAI,YAAa,CAC7D,GAAI,IAAS,KAAM,OAAO,EAAI,QAAQ,IAAM,EAAI,QAAQ,EACxD,GAAI,IAAS,OAAQ,OAAO,EAAI,SAAS,IAAM,EAAI,SAAS,EAE5D,GAAI,IAAS,MAAO,CACnB,IAAK,EAAI,EAAI,UAAY,EAAI,OAC5B,MAAO,KAAS,GAAO,EAAI,GAAM,EAAI,EAAI,GAE1C,OAAO,IAAQ,GAGhB,GAAI,IAAS,IAAK,CACjB,GAAI,EAAI,OAAS,EAAI,KACpB,MAAO,GAER,IAAK,KAAO,EAAK,CAEhB,GADA,EAAM,EACF,GAAO,OAAO,IAAQ,UAEzB,GADA,EAAM,GAAK,EAAK,CAAG,EACf,CAAC,EAAK,MAAO,GAElB,GAAI,CAAC,EAAI,IAAI,CAAG,EAAG,MAAO,GAE3B,MAAO,GAGR,GAAI,IAAS,IAAK,CACjB,GAAI,EAAI,OAAS,EAAI,KACpB,MAAO,GAER,IAAK,KAAO,EAAK,CAEhB,GADA,EAAM,EAAI,GACN,GAAO,OAAO,IAAQ,UAEzB,GADA,EAAM,GAAK,EAAK,CAAG,EACf,CAAC,EAAK,MAAO,GAElB,GAAI,CAAC,GAAO,EAAI,GAAI,EAAI,IAAI,CAAG,CAAC,EAC/B,MAAO,GAGT,MAAO,GAGR,GAAI,IAAS,YACZ,EAAM,IAAI,WAAW,CAAG,EACxB,EAAM,IAAI,WAAW,CAAG,EAClB,QAAI,IAAS,SAAU,CAC7B,IAAK,EAAI,EAAI,cAAgB,EAAI,WAChC,MAAO,KAAS,EAAI,QAAQ,CAAG,IAAM,EAAI,QAAQ,CAAG,GAErD,OAAO,IAAQ,GAGhB,GAAI,YAAY,OAAO,CAAG,EAAG,CAC5B,IAAK,EAAI,EAAI,cAAgB,EAAI,WAChC,MAAO,KAAS,EAAI,KAAS,EAAI,IAElC,OAAO,IAAQ,GAGhB,GAAI,CAAC,GAAQ,OAAO,IAAQ,SAAU,CACrC,EAAM,EACN,IAAK,KAAQ,EAAK,CACjB,GAAI,GAAI,KAAK,EAAK,CAAI,GAAK,EAAE,GAAO,CAAC,GAAI,KAAK,EAAK,CAAI,EAAG,MAAO,GACjE,GAAI,EAAE,KAAQ,IAAQ,CAAC,GAAO,EAAI,GAAO,EAAI,EAAK,EAAG,MAAO,GAE7D,OAAO,OAAO,KAAK,CAAG,EAAE,SAAW,GAIrC,OAAO,IAAQ,GAAO,IAAQ,ECrE/B,IAAI,GAAmB,CAAC,IAAU,CAChC,IAAM,EAAM,EAAO,CAAK,EAClB,EAAW,EAAO,CAAC,EACzB,GAAI,OAAO,IAAU,UAAY,IAAU,KAAM,CAC/C,GAAI,IAAU,EAAI,QAChB,EAAI,QAAU,EACd,EAAS,SAAW,EAEtB,MAAO,CAAC,EAAO,EAAS,OAAO,EAEjC,GAAI,IAAU,EAAI,SAChB,GAAI,CAAC,GAAO,EAAO,EAAI,OAAO,EAC5B,EAAI,QAAU,EACd,EAAS,SAAW,EAGxB,MAAO,CAAC,EAAI,QAAS,EAAS,OAAO,GAEnC,GAAuB,CAAC,EAAkB,EAAgB,IAAe,CAC3E,IAAM,EAAM,KAAK,IAAI,EACrB,aAAa,EAAe,QAAQ,SAAS,EAC7C,IAAM,EAAQ,KAAK,IAAI,EAAG,EAAe,QAAQ,gBAAkB,CAAG,EACtE,EAAe,QAAQ,UAAY,WAAW,IAAM,CAClD,EAAiB,EAAE,MAAM,QAAQ,KAAK,EACtC,EAAe,QAAQ,gBAAkB,EAAM,GAC9C,CAAK,GAIN,GAAkB,CAAC,EAAM,EAAiB,IAAgB,CAC5D,IAAM,EAAwB,EAAkB,MAAM,QAAQ,CAAe,EAAI,EAAkB,CAAC,CAAe,EAAI,CAAC,EACxH,GAAI,GAAQ,MAAQ,OAAO,IAAS,UAAY,CAAC,EAAK,KAAK,EACzD,MAAO,CACL,WAAY,YACZ,kBAAmB,YACnB,YAAkB,MACpB,EAEF,GAAI,OAAO,IAAS,SAClB,MAAO,CACL,WAAY,EAAK,KACjB,kBAAmB,EAAK,MAAQ,KAChC,YAAa,CACf,EAEF,IAAM,EAAY,EAAK,YAAY,EAC7B,EAAU,CAAC,IAAQ,GAAK,YAAY,IAAM,EAC1C,EAAc,EAAsB,KACxC,CAAC,IAAO,EAAQ,EAAG,IAAI,GAAK,EAAQ,EAAG,SAAS,GAAK,EAAQ,EAAG,WAAW,MAAM,GAAG,EAAE,IAAI,CAAC,GAAK,EAAG,SAAS,KAAK,CAAO,GAAK,EAAG,WAAW,KAAK,CAAO,CACzJ,EACA,GAAI,EACF,MAAO,CACL,WAAY,EAAY,MAAQ,EAChC,kBAAmB,EACnB,YAAa,CACf,EAEF,GAAI,IAAc,GAChB,MAAO,CACL,WAAY,EAAY,GACxB,kBAAmB,EACnB,YAAa,EAAY,EAC3B,EAEF,MAAO,CACL,WAAY,EACZ,kBAAmB,EACnB,YAAa,CACf,GAEE,GAAkB,CAAC,IAAU,OAAO,IAAU,UAAY,IAAU,OAAQ,gBAAiB,IAAS,MAAM,QAAQ,EAAM,WAAW,EACzI,SAAS,EAAY,CAAC,EAAY,CAChC,IAAM,EAAuB,GAAgB,CAAU,EACjD,EAAqB,OAAO,IAAe,UAAY,IAAe,MAAQ,CAAC,EAC/E,EAAqB,OAAO,IAAe,UAAY,IAAe,MAAQ,CAAC,GAAwB,OAAO,QAAQ,CAAU,EAAE,KACtI,EAAE,EAAK,KAAW,GAAO,GAAS,EAAI,KAAK,IAAM,IAAM,IAAU,KAAO,OAAO,IAAU,UAAY,GAAgB,CAAK,EAC5H,EACA,GAAI,EAIF,MAAO,CACL,aAAc,GACd,QALc,EAAqB,SAAS,OAAO,OAAO,CAAU,EAAE,IACtE,CAAC,KAAW,OAAO,IAAU,SAAW,EAAQ,GAAO,OAAS,QAClE,EAAE,KAAK,EAAE,KAAK,GAAG,IAAM,gBAIrB,WAAY,EAAqB,EAAa,KAC9C,aAAc,EAAqB,OAAO,OAAO,CAAU,EAAI,CAAC,CAClE,EAEF,MAAO,CACL,aAAc,GACd,QAAS,OAAO,IAAe,SAAW,EAAa,GAAY,MAAQ,SAC3E,YAAa,EACb,aAAc,CAAC,CAAU,CAC3B,EAIF,SAAS,EAAsB,CAAC,EAAY,EAAG,CAC7C,MAAO,CACL,KAAM,2BACN,IAAI,CAAC,EAAM,CAET,GADA,KAAK,eAAe,EAAM,kBAAkB,EACxC,IAAc,EAAG,CACnB,IAAM,EAAgB,EAAK,YAAY,OAAS,GAC1C,EAAW,EAAgB,GAAG,oBAAgC,IAAc,iBAAiB,IACnG,EAAK,WAAa,IACb,EAAK,WACR,MAAO,CACT,IAGJ,IAAI,CAAC,EAAM,CAET,OADA,KAAK,eAAe,EAAM,cAAc,EACjC,EAEX,EAIF,IAAI,GAAiB,CACnB,MAAO,eACP,KAAM,aACR,EACI,GAAsB,CAAC,EAAM,EAAM,EAAY,EAAU,CAAC,EAAG,IAAuB,CACtF,IAAO,EAAiB,GAAsB,EAAS,IAAI,GACpD,EAAY,GAAW,GAAiB,CAAI,GAC5C,EAAa,GAAY,GAAiB,CAAU,GACpD,EAAY,GAAW,GAAiB,CAAO,GAC9C,aAAY,eAAgB,EAClC,IAAM,GACJ,EACA,EAAW,gBACX,EAAW,SACb,EACA,CAAC,EAAY,EAAW,gBAAiB,EAAW,SAAS,CAC/D,GACQ,eAAc,UAAS,aAAY,cAAa,gBAAiB,EAAQ,IAAM,GAAa,CAAW,EAAG,CAAC,CAAW,CAAC,EACzH,EAAiB,EAAQ,CAC7B,gBAAiB,EACjB,UAAgB,MAClB,CAAC,EACK,EAAe,EAAQ,IAAM,CACjC,IAAM,EAAiB,CAAE,KAAM,CAAW,GAExC,eACA,oBACA,kBACA,wBACG,IACD,EACE,GAAe,EAAe,CAClC,OAAQ,GAAc,GACtB,eACA,mBACF,EAAI,CACF,MAAO,GAAe,GAAe,IACvC,EACM,GAAe,GAAY,cAAgB,CAAC,EAClD,GAAI,EACF,GAAa,KAAK,GAAuB,CAAkB,CAAC,EAE9D,MAAO,IACF,KACA,MACA,GACH,eACF,GACC,CAAC,EAAY,EAAS,EAAS,EAAU,CAAO,CAAC,EAwCpD,OAvCA,GAAU,IAAM,CACd,IAAI,EAAY,GACV,EAAgB,SAAY,CAChC,GAAI,CAAC,EAAY,OACjB,IAAM,EAAc,EAAW,YAAc,EAAW,YAAc,MAAM,EAC1E,EACA,EACA,EAAW,MACb,EAEM,GADkB,EAAY,mBAAmB,EACrB,SAAS,CAAU,EAAI,EAAa,YAChE,GAAe,IAAK,EAAc,KAAM,EAAU,EACxD,GAAI,EAAW,CACb,IAAM,GAAS,EAAW,eAAiB,OAAS,EAAY,WAAW,EAAM,EAAY,EAAI,GAAa,EAAY,WAAW,EAAM,EAAY,EAAG,CACxJ,MACA,OACA,WACF,CAAC,EACD,EAAmB,EAAM,KAGrB,SAAU,EAClB,GAAI,EACF,GAAqB,EAAe,EAAgB,CAAK,EAEzD,OAAc,EAAE,MAAM,QAAQ,KAAK,EAErC,MAAO,IAAM,CACX,EAAY,GACZ,aAAa,EAAe,QAAQ,SAAS,IAE9C,CACD,EACA,EACA,EAAW,MACX,EAAW,YACX,EACA,CACF,CAAC,EACM,GAoBT,SAAS,EAAW,CAAC,GAAO,YAAa,CAAC,EAAG,CAC3C,GAAI,CAAC,GAAO,OAAO,SAAa,IAAa,OAC7C,IAAM,EAAO,SAAS,MAAQ,SAAS,qBAAqB,MAAM,EAAE,GAC9D,EAAQ,SAAS,cAAc,OAAO,EAE5C,GADA,EAAM,KAAO,WACT,IAAa,MACf,GAAI,EAAK,WACP,EAAK,aAAa,EAAO,EAAK,UAAU,EAExC,OAAK,YAAY,CAAK,EAGxB,OAAK,YAAY,CAAK,EAExB,GAAI,EAAM,WACR,EAAM,WAAW,QAAU,EAE3B,OAAM,YAAY,SAAS,eAAe,CAAG,CAAC,EAKlD,GAAY;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,CAA+jD,EAM3kD,IAAI,GAAkC,CAAC,IAA4B,CACjE,OAAO,GACL,EACE,WACA,QACA,QACA,eACA,eACA,oBACA,mBAAmB,GACnB,QACA,YACA,YACA,gBACA,eAAe,GACf,kBAAkB,GAClB,qBAAqB,EACrB,SAAU,EACV,GAAI,EAAU,MACd,qBACG,GACF,IAAQ,CACT,IAAM,EAAU,CACd,QACA,eACA,kBACA,kBACA,eACA,oBACA,wBACG,CACL,GACQ,qBAAsB,GAC5B,EACA,CACF,EACM,EAAkB,EACtB,EACA,EACA,EACA,CACF,EACM,EAAe,OAAO,IAAoB,SAChD,OAAuB,EACrB,EACA,CACE,MACA,cAAe,kBACf,UAAW,GACT,WACA,YACA,GAAoB,gBACpB,CACF,EACA,QACA,GAAI,kBACJ,SAAU,CACR,GAAgB,EAAoC,EAClD,OACA,CACE,UAAW,GAAK,gBAAiB,CAAa,EAC9C,MAAO,EACP,GAAI,iBACJ,SAAU,CACZ,CACF,EAAI,KACJ,EAA+B,EAAK,MAAO,CAAE,wBAAyB,CAAE,OAAQ,CAAgB,CAAE,CAAC,EAAI,CACzG,CACF,CACF,EAEJ,GCpQF,SAAS,EAAM,CAAC,EAAG,EAAG,CACpB,GAAI,EAAI,EACN,MAAO,GAET,GAAI,EAAI,EACN,MAAO,GAET,MAAO,GAET,SAAS,EAAS,CAAC,EAAG,EAAG,CACvB,GAAI,IAAM,MAAQ,IAAM,KACtB,MAAO,GAET,GAAI,CAAC,EACH,MAAO,GAET,GAAI,CAAC,EACH,MAAO,GAET,IAAI,EAAO,EAAE,OACT,EAAO,EAAE,OACb,GAAI,IAAS,EAAM,CACjB,QAAS,EAAI,EAAG,EAAI,EAAM,IAAK,CAC7B,IAAI,EAAM,GAAO,EAAE,GAAI,EAAE,EAAE,EAC3B,GAAI,IAAQ,EACV,OAAO,EAGX,MAAO,GAET,OAAO,EAAO,EAEhB,SAAS,EAAe,CAAC,EAAK,CAC5B,GAAI,kBAAkB,KAAK,CAAG,EAC5B,MAAO,GAET,GAAI,kBAAkB,KAAK,CAAG,EAC5B,MAAO,GAET,GAAI,kBAAkB,KAAK,CAAG,EAC5B,MAAO,GAET,GAAI,kBAAkB,KAAK,CAAG,EAC5B,MAAO,GAET,MAAO,GAET,SAAS,EAAsB,CAAC,EAAO,CACrC,OAAO,EAAM,QAAQ,0CAA2C,MAAM,EAExE,IAAI,GAAW,KAAM,CACnB,WAAW,CAAC,EAAI,CACd,KAAK,GAAK,EAEZ,MAAwB,IAAI,IAC5B,GAAG,CAAC,EAAK,CACP,GAAI,KAAK,MAAM,IAAI,CAAG,EACpB,OAAO,KAAK,MAAM,IAAI,CAAG,EAE3B,IAAM,EAAQ,KAAK,GAAG,CAAG,EAEzB,OADA,KAAK,MAAM,IAAI,EAAK,CAAK,EAClB,EAEX,EAGI,GAAQ,KAAM,CAChB,WAAW,CAAC,EAAW,EAAW,EAAO,CACvC,KAAK,UAAY,EACjB,KAAK,UAAY,EACjB,KAAK,MAAQ,QAER,mBAAkB,CAAC,EAAQ,EAAU,CAC1C,OAAO,KAAK,sBAAsB,GAAW,CAAM,EAAG,CAAQ,QAEzD,sBAAqB,CAAC,EAAQ,EAAU,CAC7C,OAAO,GAAwB,EAAQ,CAAQ,EAEjD,iBAAmB,IAAI,GACrB,CAAC,IAAc,KAAK,MAAM,MAAM,CAAS,CAC3C,EACA,WAAW,EAAG,CACZ,OAAO,KAAK,UAAU,YAAY,EAEpC,WAAW,EAAG,CACZ,OAAO,KAAK,UAEd,KAAK,CAAC,EAAW,CACf,GAAI,IAAc,KAChB,OAAO,KAAK,UAEd,IAAM,EAAY,EAAU,UAEtB,EADuB,KAAK,iBAAiB,IAAI,CAAS,EACrB,KACzC,CAAC,IAAM,GAA8B,EAAU,OAAQ,EAAE,YAAY,CACvE,EACA,GAAI,CAAC,EACH,OAAO,KAET,OAAO,IAAI,GACT,EAAc,UACd,EAAc,WACd,EAAc,UAChB,EAEJ,EACI,GAAa,MAAM,CAAY,CACjC,WAAW,CAAC,EAAQ,EAAW,CAC7B,KAAK,OAAS,EACd,KAAK,UAAY,QAEZ,KAAI,CAAC,EAAM,EAAY,CAC5B,QAAW,KAAQ,EACjB,EAAO,IAAI,EAAY,EAAM,CAAI,EAEnC,OAAO,QAEF,KAAI,IAAI,EAAU,CACvB,IAAI,EAAS,KACb,QAAS,EAAI,EAAG,EAAI,EAAS,OAAQ,IACnC,EAAS,IAAI,EAAY,EAAQ,EAAS,EAAE,EAE9C,OAAO,EAET,IAAI,CAAC,EAAW,CACd,OAAO,IAAI,EAAY,KAAM,CAAS,EAExC,WAAW,EAAG,CACZ,IAAI,EAAO,KACL,EAAS,CAAC,EAChB,MAAO,EACL,EAAO,KAAK,EAAK,SAAS,EAC1B,EAAO,EAAK,OAGd,OADA,EAAO,QAAQ,EACR,EAET,QAAQ,EAAG,CACT,OAAO,KAAK,YAAY,EAAE,KAAK,GAAG,EAEpC,OAAO,CAAC,EAAO,CACb,GAAI,OAAS,EACX,MAAO,GAET,GAAI,KAAK,SAAW,KAClB,MAAO,GAET,OAAO,KAAK,OAAO,QAAQ,CAAK,EAElC,qBAAqB,CAAC,EAAM,CAC1B,IAAM,EAAS,CAAC,EACZ,EAAO,KACX,MAAO,GAAQ,IAAS,EACtB,EAAO,KAAK,EAAK,SAAS,EAC1B,EAAO,EAAK,OAEd,OAAO,IAAS,EAAO,EAAO,QAAQ,EAAS,OAEnD,EACA,SAAS,EAA6B,CAAC,EAAW,EAAc,CAC9D,GAAI,EAAa,SAAW,EAC1B,MAAO,GAET,QAAS,EAAQ,EAAG,EAAQ,EAAa,OAAQ,IAAS,CACxD,IAAI,EAAe,EAAa,GAC5B,EAAiB,GACrB,GAAI,IAAiB,IAAK,CACxB,GAAI,IAAU,EAAa,OAAS,EAClC,MAAO,GAET,EAAe,EAAa,EAAE,GAC9B,EAAiB,GAEnB,MAAO,EAAW,CAChB,GAAI,GAAc,EAAU,UAAW,CAAY,EACjD,MAEF,GAAI,EACF,MAAO,GAET,EAAY,EAAU,OAExB,GAAI,CAAC,EACH,MAAO,GAET,EAAY,EAAU,OAExB,MAAO,GAET,SAAS,EAAa,CAAC,EAAW,EAAc,CAC9C,OAAO,IAAiB,GAAa,EAAU,WAAW,CAAY,GAAK,EAAU,EAAa,UAAY,IAEhH,IAAI,GAAkB,KAAM,CAC1B,WAAW,CAAC,EAAW,EAAc,EAAc,CACjD,KAAK,UAAY,EACjB,KAAK,aAAe,EACpB,KAAK,aAAe,EAExB,EACA,SAAS,EAAU,CAAC,EAAQ,CAC1B,GAAI,CAAC,EACH,MAAO,CAAC,EAEV,GAAI,CAAC,EAAO,UAAY,CAAC,MAAM,QAAQ,EAAO,QAAQ,EACpD,MAAO,CAAC,EAEV,IAAI,EAAW,EAAO,SAClB,EAAS,CAAC,EAAG,EAAY,EAC7B,QAAS,EAAI,EAAG,EAAM,EAAS,OAAQ,EAAI,EAAK,IAAK,CACnD,IAAI,EAAQ,EAAS,GACrB,GAAI,CAAC,EAAM,SACT,SAEF,IAAI,EACJ,GAAI,OAAO,EAAM,QAAU,SAAU,CACnC,IAAI,EAAS,EAAM,MACnB,EAAS,EAAO,QAAQ,QAAS,EAAE,EACnC,EAAS,EAAO,QAAQ,QAAS,EAAE,EACnC,EAAS,EAAO,MAAM,GAAG,EACpB,QAAI,MAAM,QAAQ,EAAM,KAAK,EAClC,EAAS,EAAM,MAEf,OAAS,CAAC,EAAE,EAEd,IAAI,EAAY,GAChB,GAAI,OAAO,EAAM,SAAS,YAAc,SAAU,CAChD,EAAY,EACZ,IAAI,EAAW,EAAM,SAAS,UAAU,MAAM,GAAG,EACjD,QAAS,EAAI,EAAG,EAAO,EAAS,OAAQ,EAAI,EAAM,IAEhD,OADc,EAAS,QAEhB,SACH,EAAY,EAAY,EACxB,UACG,OACH,EAAY,EAAY,EACxB,UACG,YACH,EAAY,EAAY,EACxB,UACG,gBACH,EAAY,EAAY,EACxB,OAIR,IAAI,EAAa,KACjB,GAAI,OAAO,EAAM,SAAS,aAAe,UAAY,GAAgB,EAAM,SAAS,UAAU,EAC5F,EAAa,EAAM,SAAS,WAE9B,IAAI,EAAa,KACjB,GAAI,OAAO,EAAM,SAAS,aAAe,UAAY,GAAgB,EAAM,SAAS,UAAU,EAC5F,EAAa,EAAM,SAAS,WAE9B,QAAS,EAAI,EAAG,EAAO,EAAO,OAAQ,EAAI,EAAM,IAAK,CAEnD,IAAI,EADS,EAAO,GAAG,KAAK,EACN,MAAM,GAAG,EAC3B,EAAQ,EAAS,EAAS,OAAS,GACnC,EAAe,KACnB,GAAI,EAAS,OAAS,EACpB,EAAe,EAAS,MAAM,EAAG,EAAS,OAAS,CAAC,EACpD,EAAa,QAAQ,EAEvB,EAAO,KAAe,IAAI,GACxB,EACA,EACA,EACA,EACA,EACA,CACF,GAGJ,OAAO,EAET,IAAI,GAAkB,KAAM,CAC1B,WAAW,CAAC,EAAO,EAAc,EAAO,EAAW,EAAY,EAAY,CACzE,KAAK,MAAQ,EACb,KAAK,aAAe,EACpB,KAAK,MAAQ,EACb,KAAK,UAAY,EACjB,KAAK,WAAa,EAClB,KAAK,WAAa,EAEtB,EAUA,SAAS,EAAuB,CAAC,EAAkB,EAAW,CAC5D,EAAiB,KAAK,CAAC,EAAG,IAAM,CAC9B,IAAI,EAAI,GAAO,EAAE,MAAO,EAAE,KAAK,EAC/B,GAAI,IAAM,EACR,OAAO,EAGT,GADA,EAAI,GAAU,EAAE,aAAc,EAAE,YAAY,EACxC,IAAM,EACR,OAAO,EAET,OAAO,EAAE,MAAQ,EAAE,MACpB,EACD,IAAI,EAAmB,EACnB,EAAoB,UACpB,EAAoB,UACxB,MAAO,EAAiB,QAAU,GAAK,EAAiB,GAAG,QAAU,GAAI,CACvE,IAAI,EAAmB,EAAiB,MAAM,EAC9C,GAAI,EAAiB,YAAc,GACjC,EAAmB,EAAiB,UAEtC,GAAI,EAAiB,aAAe,KAClC,EAAoB,EAAiB,WAEvC,GAAI,EAAiB,aAAe,KAClC,EAAoB,EAAiB,WAGzC,IAAI,EAAW,IAAI,GAAS,CAAS,EACjC,EAAW,IAAI,GAAgB,EAAkB,EAAS,MAAM,CAAiB,EAAG,EAAS,MAAM,CAAiB,CAAC,EACrH,EAAO,IAAI,GAAiB,IAAI,GAAqB,EAAG,KAAM,GAAiB,EAAG,CAAC,EAAG,CAAC,CAAC,EAC5F,QAAS,EAAI,EAAG,EAAM,EAAiB,OAAQ,EAAI,EAAK,IAAK,CAC3D,IAAI,EAAO,EAAiB,GAC5B,EAAK,OAAO,EAAG,EAAK,MAAO,EAAK,aAAc,EAAK,UAAW,EAAS,MAAM,EAAK,UAAU,EAAG,EAAS,MAAM,EAAK,UAAU,CAAC,EAEhI,OAAO,IAAI,GAAM,EAAU,EAAU,CAAI,EAE3C,IAAI,GAAW,KAAM,CACnB,UACA,aACA,UACA,UACA,WAAW,CAAC,EAAW,CAIrB,GAHA,KAAK,aAAe,EACpB,KAAK,UAAY,CAAC,EAClB,KAAK,UAA4B,OAAO,OAAO,IAAI,EAC/C,MAAM,QAAQ,CAAS,EAAG,CAC5B,KAAK,UAAY,GACjB,QAAS,EAAI,EAAG,EAAM,EAAU,OAAQ,EAAI,EAAK,IAC/C,KAAK,UAAU,EAAU,IAAM,EAC/B,KAAK,UAAU,GAAK,EAAU,GAGhC,UAAK,UAAY,GAGrB,KAAK,CAAC,EAAO,CACX,GAAI,IAAU,KACZ,MAAO,GAET,EAAQ,EAAM,YAAY,EAC1B,IAAI,EAAQ,KAAK,UAAU,GAC3B,GAAI,EACF,OAAO,EAET,GAAI,KAAK,UACP,MAAU,MAAM,gCAAgC,GAAO,EAKzD,OAHA,EAAQ,EAAE,KAAK,aACf,KAAK,UAAU,GAAS,EACxB,KAAK,UAAU,GAAS,EACjB,EAET,WAAW,EAAG,CACZ,OAAO,KAAK,UAAU,MAAM,CAAC,EAEjC,EACI,GAAoB,OAAO,OAAO,CAAC,CAAC,EACpC,GAAuB,MAAM,CAAsB,CACrD,WACA,aACA,UACA,WACA,WACA,WAAW,CAAC,EAAY,EAAc,EAAW,EAAY,EAAY,CACvE,KAAK,WAAa,EAClB,KAAK,aAAe,GAAgB,GACpC,KAAK,UAAY,EACjB,KAAK,WAAa,EAClB,KAAK,WAAa,EAEpB,KAAK,EAAG,CACN,OAAO,IAAI,EAAsB,KAAK,WAAY,KAAK,aAAc,KAAK,UAAW,KAAK,WAAY,KAAK,UAAU,QAEhH,SAAQ,CAAC,EAAK,CACnB,IAAI,EAAI,CAAC,EACT,QAAS,EAAI,EAAG,EAAM,EAAI,OAAQ,EAAI,EAAK,IACzC,EAAE,GAAK,EAAI,GAAG,MAAM,EAEtB,OAAO,EAET,eAAe,CAAC,EAAY,EAAW,EAAY,EAAY,CAC7D,GAAI,KAAK,WAAa,EACpB,QAAQ,IAAI,sBAAsB,EAElC,UAAK,WAAa,EAEpB,GAAI,IAAc,GAChB,KAAK,UAAY,EAEnB,GAAI,IAAe,EACjB,KAAK,WAAa,EAEpB,GAAI,IAAe,EACjB,KAAK,WAAa,EAGxB,EACI,GAAmB,MAAM,CAAkB,CAC7C,WAAW,CAAC,EAAW,EAAwB,CAAC,EAAG,EAAY,CAAC,EAAG,CACjE,KAAK,UAAY,EACjB,KAAK,UAAY,EACjB,KAAK,uBAAyB,EAEhC,6BACO,kBAAiB,CAAC,EAAG,EAAG,CAC7B,GAAI,EAAE,aAAe,EAAE,WACrB,OAAO,EAAE,WAAa,EAAE,WAE1B,IAAI,EAAe,EACf,EAAe,EACnB,MAAO,GAAM,CACX,GAAI,EAAE,aAAa,KAAkB,IACnC,IAEF,GAAI,EAAE,aAAa,KAAkB,IACnC,IAEF,GAAI,GAAgB,EAAE,aAAa,QAAU,GAAgB,EAAE,aAAa,OAC1E,MAEF,IAAM,EAAwB,EAAE,aAAa,GAAc,OAAS,EAAE,aAAa,GAAc,OACjG,GAAI,IAA0B,EAC5B,OAAO,EAET,IACA,IAEF,OAAO,EAAE,aAAa,OAAS,EAAE,aAAa,OAEhD,KAAK,CAAC,EAAO,CACX,GAAI,IAAU,GAAI,CAChB,IAAI,EAAW,EAAM,QAAQ,GAAG,EAC5B,EACA,EACJ,GAAI,IAAa,GACf,EAAO,EACP,EAAO,GAEP,OAAO,EAAM,UAAU,EAAG,CAAQ,EAClC,EAAO,EAAM,UAAU,EAAW,CAAC,EAErC,GAAI,KAAK,UAAU,eAAe,CAAI,EACpC,OAAO,KAAK,UAAU,GAAM,MAAM,CAAI,EAG1C,IAAM,EAAQ,KAAK,uBAAuB,OAAO,KAAK,SAAS,EAE/D,OADA,EAAM,KAAK,EAAkB,iBAAiB,EACvC,EAET,MAAM,CAAC,EAAY,EAAO,EAAc,EAAW,EAAY,EAAY,CACzE,GAAI,IAAU,GAAI,CAChB,KAAK,cAAc,EAAY,EAAc,EAAW,EAAY,CAAU,EAC9E,OAEF,IAAI,EAAW,EAAM,QAAQ,GAAG,EAC5B,EACA,EACJ,GAAI,IAAa,GACf,EAAO,EACP,EAAO,GAEP,OAAO,EAAM,UAAU,EAAG,CAAQ,EAClC,EAAO,EAAM,UAAU,EAAW,CAAC,EAErC,IAAI,EACJ,GAAI,KAAK,UAAU,eAAe,CAAI,EACpC,EAAQ,KAAK,UAAU,GAEvB,OAAQ,IAAI,EAAkB,KAAK,UAAU,MAAM,EAAG,GAAqB,SAAS,KAAK,sBAAsB,CAAC,EAChH,KAAK,UAAU,GAAQ,EAEzB,EAAM,OAAO,EAAa,EAAG,EAAM,EAAc,EAAW,EAAY,CAAU,EAEpF,aAAa,CAAC,EAAY,EAAc,EAAW,EAAY,EAAY,CACzE,GAAI,IAAiB,KAAM,CACzB,KAAK,UAAU,gBAAgB,EAAY,EAAW,EAAY,CAAU,EAC5E,OAEF,QAAS,EAAI,EAAG,EAAM,KAAK,uBAAuB,OAAQ,EAAI,EAAK,IAAK,CACtE,IAAI,EAAO,KAAK,uBAAuB,GACvC,GAAI,GAAU,EAAK,aAAc,CAAY,IAAM,EAAG,CACpD,EAAK,gBAAgB,EAAY,EAAW,EAAY,CAAU,EAClE,QAGJ,GAAI,IAAc,GAChB,EAAY,KAAK,UAAU,UAE7B,GAAI,IAAe,EACjB,EAAa,KAAK,UAAU,WAE9B,GAAI,IAAe,EACjB,EAAa,KAAK,UAAU,WAE9B,KAAK,uBAAuB,KAAK,IAAI,GAAqB,EAAY,EAAc,EAAW,EAAY,CAAU,CAAC,EAE1H,EAGI,GAAuB,MAAM,CAAsB,OAC9C,YAAW,CAAC,EAAwB,CACzC,OAAO,EAAuB,SAAS,CAAC,EAAE,SAAS,GAAI,GAAG,QAErD,MAAK,CAAC,EAAwB,CACnC,IAAM,EAAa,EAAsB,cAAc,CAAsB,EACvE,EAAY,EAAsB,aAAa,CAAsB,EACrE,EAAY,EAAsB,aAAa,CAAsB,EACrE,EAAa,EAAsB,cAAc,CAAsB,EACvE,EAAa,EAAsB,cAAc,CAAsB,EAC7E,QAAQ,IAAI,CACV,aACA,YACA,YACA,aACA,YACF,CAAC,QAEI,cAAa,CAAC,EAAwB,CAC3C,OAAQ,EAAyB,OAA+B,QAE3D,aAAY,CAAC,EAAwB,CAC1C,OAAQ,EAAyB,OAA+B,QAE3D,yBAAwB,CAAC,EAAwB,CACtD,OAAQ,EAAyB,QAAuC,QAEnE,aAAY,CAAC,EAAwB,CAC1C,OAAQ,EAAyB,SAAiC,SAE7D,cAAa,CAAC,EAAwB,CAC3C,OAAQ,EAAyB,YAAoC,SAEhE,cAAa,CAAC,EAAwB,CAC3C,OAAQ,EAAyB,cAAsC,SAMlE,IAAG,CAAC,EAAwB,EAAY,EAAW,EAA0B,EAAW,EAAY,EAAY,CACrH,IAAI,EAAc,EAAsB,cAAc,CAAsB,EACxE,EAAa,EAAsB,aAAa,CAAsB,EACtE,EAA+B,EAAsB,yBAAyB,CAAsB,EAAI,EAAI,EAC5G,EAAa,EAAsB,aAAa,CAAsB,EACtE,EAAc,EAAsB,cAAc,CAAsB,EACxE,EAAc,EAAsB,cAAc,CAAsB,EAC5E,GAAI,IAAe,EACjB,EAAc,EAEhB,GAAI,IAAc,EAChB,EAAa,GAAsB,CAAS,EAE9C,GAAI,IAA6B,KAC/B,EAA+B,EAA2B,EAAI,EAEhE,GAAI,IAAc,GAChB,EAAa,EAEf,GAAI,IAAe,EACjB,EAAc,EAEhB,GAAI,IAAe,EACjB,EAAc,EAEhB,OAAQ,GAAe,EAA4B,GAAc,EAA4B,GAAgC,GAAoC,GAAc,GAA6B,GAAe,GAA6B,GAAe,MAAgC,EAE3S,EAIA,SAAS,EAAqB,CAAC,EAAc,CAC3C,OAAO,EAoUT,IAAI,GAAe,OAAO,QAAQ,EAGlC,SAAS,EAAgB,CAAC,EAAI,CAC5B,OAAO,EAET,SAAS,EAAc,CAAC,EAAI,CAC1B,OAAO,EA2rBT,IAAI,GAAuB,KAAM,CAC/B,WAAW,CAAC,EAAY,EAAW,CACjC,KAAK,WAAa,EAClB,KAAK,UAAY,EAErB,EACI,GAA+B,MAAM,CAA8B,CACrE,mBACA,0BACA,WAAW,CAAC,EAAmB,EAAmB,CAChD,KAAK,mBAAqB,IAAI,GAAqB,EAAmB,CAAc,EACpF,KAAK,0BAA4B,IAAI,GAAa,OAAO,QAAQ,GAAqB,CAAC,CAAC,CAAC,EAE3F,oBAAoB,EAAG,CACrB,OAAO,KAAK,mBAEd,uBAAuB,CAAC,EAAW,CACjC,GAAI,IAAc,KAChB,OAAO,EAA8B,qBAEvC,OAAO,KAAK,yBAAyB,IAAI,CAAS,QAE7C,sBAAuB,IAAI,GAAqB,EAAG,CAAC,EAC3D,yBAA2B,IAAI,GAAS,CAAC,IAAc,CACrD,IAAM,EAAa,KAAK,iBAAiB,CAAS,EAC5C,EAAoB,KAAK,qBAAqB,CAAS,EAC7D,OAAO,IAAI,GAAqB,EAAY,CAAiB,EAC9D,EAKD,gBAAgB,CAAC,EAAO,CACtB,OAAO,KAAK,0BAA0B,MAAM,CAAK,GAAK,EAExD,oBAAoB,CAAC,EAAW,CAC9B,IAAM,EAAI,EAAU,MAAM,EAA8B,0BAA0B,EAClF,GAAI,CAAC,EACH,MAAO,GAET,OAAQ,EAAE,QACH,UACH,MAAO,OACJ,SACH,MAAO,OACJ,QACH,MAAO,OACJ,gBACH,MAAO,GAEX,MAAU,MAAM,2CAA2C,QAEtD,4BAA6B,2CACtC,EACI,GAAe,KAAM,CACvB,OACA,aACA,WAAW,CAAC,EAAQ,CAClB,GAAI,EAAO,SAAW,EACpB,KAAK,OAAS,KACd,KAAK,aAAe,KACf,KACL,KAAK,OAAS,IAAI,IAAI,CAAM,EAC5B,IAAM,EAAgB,EAAO,IAC3B,EAAE,EAAW,KAAW,GAAuB,CAAS,CAC1D,EACA,EAAc,KAAK,EACnB,EAAc,QAAQ,EACtB,KAAK,aAAe,IAAI,OACtB,MAAM,EAAc,KAAK,KAAK,aAC9B,EACF,GAGJ,KAAK,CAAC,EAAO,CACX,GAAI,CAAC,KAAK,aACR,OAEF,IAAM,EAAI,EAAM,MAAM,KAAK,YAAY,EACvC,GAAI,CAAC,EACH,OAEF,OAAO,KAAK,OAAO,IAAI,EAAE,EAAE,EAE/B,EAGI,GAAa,CACf,YAAa,OAAO,QAAY,KAAe,CAAC,CAAC,QAAQ,IAAI,qBAC/D,EAmvBA,IAAI,GAAuB,MAAM,CAAsB,CASrD,WAAW,CAAC,EAAQ,EAAW,EAAiB,CAC9C,KAAK,OAAS,EACd,KAAK,UAAY,EACjB,KAAK,gBAAkB,QAElB,cAAa,CAAC,EAAgB,EAAuB,CAC1D,IAAI,EAAU,EACV,EAAa,GAAgB,WAAa,KAC9C,QAAW,KAAS,EAClB,EAAa,GAAW,KAAK,EAAY,EAAM,UAAU,EACzD,EAAU,IAAI,EAAsB,EAAS,EAAY,EAAM,sBAAsB,EAEvF,OAAO,QAEF,WAAU,CAAC,EAAW,EAAiB,CAC5C,OAAO,IAAI,EAAsB,KAAM,IAAI,GAAW,KAAM,CAAS,EAAG,CAAe,QAElF,6BAA4B,CAAC,EAAW,EAAiB,EAAS,CACvE,IAAM,EAAkB,EAAQ,oBAAoB,CAAS,EACvD,EAAY,IAAI,GAAW,KAAM,CAAS,EAC1C,EAAY,EAAQ,cAAc,WAAW,CAAS,EACtD,EAA0B,EAAsB,gBACpD,EACA,EACA,CACF,EACA,OAAO,IAAI,EAAsB,KAAM,EAAW,CAAuB,KAEvE,UAAS,EAAG,CACd,OAAO,KAAK,UAAU,UAExB,QAAQ,EAAG,CACT,OAAO,KAAK,cAAc,EAAE,KAAK,GAAG,EAEtC,MAAM,CAAC,EAAO,CACZ,OAAO,EAAsB,OAAO,KAAM,CAAK,QAE1C,OAAM,CAAC,EAAG,EAAG,CAClB,EAAG,CACD,GAAI,IAAM,EACR,MAAO,GAET,GAAI,CAAC,GAAK,CAAC,EACT,MAAO,GAET,GAAI,CAAC,GAAK,CAAC,EACT,MAAO,GAET,GAAI,EAAE,YAAc,EAAE,WAAa,EAAE,kBAAoB,EAAE,gBACzD,MAAO,GAET,EAAI,EAAE,OACN,EAAI,EAAE,aACC,UAEJ,gBAAe,CAAC,EAAyB,EAAsB,EAAiB,CACrF,IAAI,EAAY,GACZ,EAAa,EACb,EAAa,EACjB,GAAI,IAAoB,KACtB,EAAY,EAAgB,UAC5B,EAAa,EAAgB,aAC7B,EAAa,EAAgB,aAE/B,OAAO,GAAqB,IAC1B,EACA,EAAqB,WACrB,EAAqB,UACrB,KACA,EACA,EACA,CACF,EAEF,cAAc,CAAC,EAAW,EAAS,CACjC,GAAI,IAAc,KAChB,OAAO,KAET,GAAI,EAAU,QAAQ,GAAG,IAAM,GAC7B,OAAO,EAAsB,gBAAgB,KAAM,EAAW,CAAO,EAEvE,IAAM,EAAS,EAAU,MAAM,IAAI,EAC/B,EAAS,KACb,QAAW,KAAS,EAClB,EAAS,EAAsB,gBAAgB,EAAQ,EAAO,CAAO,EAEvE,OAAO,QAEF,gBAAe,CAAC,EAAQ,EAAW,EAAS,CACjD,IAAM,EAAc,EAAQ,oBAAoB,CAAS,EACnD,EAAU,EAAO,UAAU,KAAK,CAAS,EACzC,EAAwB,EAAQ,cAAc,WAAW,CAAO,EAChE,EAAW,EAAsB,gBACrC,EAAO,gBACP,EACA,CACF,EACA,OAAO,IAAI,EAAsB,EAAQ,EAAS,CAAQ,EAE5D,aAAa,EAAG,CACd,OAAO,KAAK,UAAU,YAAY,EAEpC,qBAAqB,CAAC,EAAM,CAC1B,IAAM,EAAS,CAAC,EACZ,EAAO,KACX,MAAO,GAAQ,IAAS,EACtB,EAAO,KAAK,CACV,uBAAwB,EAAK,gBAC7B,WAAY,EAAK,UAAU,sBAAsB,EAAK,QAAQ,WAAa,IAAI,CACjF,CAAC,EACD,EAAO,EAAK,OAEd,OAAO,IAAS,EAAO,EAAO,QAAQ,EAAS,OAEnD,EACI,GAAiB,MAAM,CAAgB,CAYzC,WAAW,CAAC,EAAQ,EAAQ,EAAU,EAAW,EAAsB,EAAS,EAAgB,EAAuB,CACrH,KAAK,OAAS,EACd,KAAK,OAAS,EACd,KAAK,qBAAuB,EAC5B,KAAK,QAAU,EACf,KAAK,eAAiB,EACtB,KAAK,sBAAwB,EAC7B,KAAK,MAAQ,KAAK,OAAS,KAAK,OAAO,MAAQ,EAAI,EACnD,KAAK,UAAY,EACjB,KAAK,WAAa,EAEpB,mBAA0B,aAEnB,MAAO,IAAI,EAChB,KACA,EACA,EACA,EACA,GACA,KACA,KACA,IACF,EAMA,UAMA,WAIA,MACA,MAAM,CAAC,EAAO,CACZ,GAAI,IAAU,KACZ,MAAO,GAET,OAAO,EAAgB,QAAQ,KAAM,CAAK,QAErC,QAAO,CAAC,EAAG,EAAG,CACnB,GAAI,IAAM,EACR,MAAO,GAET,GAAI,CAAC,KAAK,kBAAkB,EAAG,CAAC,EAC9B,MAAO,GAET,OAAO,GAAqB,OAAO,EAAE,sBAAuB,EAAE,qBAAqB,QAK9E,kBAAiB,CAAC,EAAG,EAAG,CAC7B,EAAG,CACD,GAAI,IAAM,EACR,MAAO,GAET,GAAI,CAAC,GAAK,CAAC,EACT,MAAO,GAET,GAAI,CAAC,GAAK,CAAC,EACT,MAAO,GAET,GAAI,EAAE,QAAU,EAAE,OAAS,EAAE,SAAW,EAAE,QAAU,EAAE,UAAY,EAAE,QAClE,MAAO,GAET,EAAI,EAAE,OACN,EAAI,EAAE,aACC,IAEX,KAAK,EAAG,CACN,OAAO,WAEF,OAAM,CAAC,EAAI,CAChB,MAAO,EACL,EAAG,UAAY,GACf,EAAG,WAAa,GAChB,EAAK,EAAG,OAGZ,KAAK,EAAG,CACN,EAAgB,OAAO,IAAI,EAE7B,GAAG,EAAG,CACJ,OAAO,KAAK,OAEd,OAAO,EAAG,CACR,GAAI,KAAK,OACP,OAAO,KAAK,OAEd,OAAO,KAET,IAAI,CAAC,EAAQ,EAAU,EAAW,EAAsB,EAAS,EAAgB,EAAuB,CACtG,OAAO,IAAI,EACT,KACA,EACA,EACA,EACA,EACA,EACA,EACA,CACF,EAEF,WAAW,EAAG,CACZ,OAAO,KAAK,UAEd,YAAY,EAAG,CACb,OAAO,KAAK,WAEd,OAAO,CAAC,EAAS,CACf,OAAO,EAAQ,QAAQ,KAAK,MAAM,EAEpC,QAAQ,EAAG,CACT,IAAM,EAAI,CAAC,EAEX,OADA,KAAK,aAAa,EAAG,CAAC,EACf,IAAM,EAAE,KAAK,GAAG,EAAI,IAE7B,YAAY,CAAC,EAAK,EAAU,CAC1B,GAAI,KAAK,OACP,EAAW,KAAK,OAAO,aAAa,EAAK,CAAQ,EAGnD,OADA,EAAI,KAAc,IAAI,KAAK,WAAW,KAAK,gBAAgB,SAAS,MAAM,KAAK,uBAAuB,SAAS,KACxG,EAET,yBAAyB,CAAC,EAAuB,CAC/C,GAAI,KAAK,wBAA0B,EACjC,OAAO,KAET,OAAO,KAAK,OAAO,KACjB,KAAK,OACL,KAAK,UACL,KAAK,WACL,KAAK,qBACL,KAAK,QACL,KAAK,eACL,CACF,EAEF,WAAW,CAAC,EAAS,CACnB,GAAI,KAAK,UAAY,EACnB,OAAO,KAET,OAAO,IAAI,EACT,KAAK,OACL,KAAK,OACL,KAAK,UACL,KAAK,WACL,KAAK,qBACL,EACA,KAAK,eACL,KAAK,qBACP,EAGF,aAAa,CAAC,EAAO,CACnB,IAAI,EAAK,KACT,MAAO,GAAM,EAAG,YAAc,EAAM,UAAW,CAC7C,GAAI,EAAG,SAAW,EAAM,OACtB,MAAO,GAET,EAAK,EAAG,OAEV,MAAO,GAET,iBAAiB,EAAG,CAClB,MAAO,CACL,OAAQ,GAAe,KAAK,MAAM,EAClC,qBAAsB,KAAK,qBAC3B,QAAS,KAAK,QACd,eAAgB,KAAK,gBAAgB,sBAAsB,KAAK,QAAQ,gBAAkB,IAAI,GAAK,CAAC,EACpG,sBAAuB,KAAK,uBAAuB,sBAAsB,KAAK,cAAc,GAAK,CAAC,CACpG,QAEK,UAAS,CAAC,EAAM,EAAO,CAC5B,IAAM,EAAiB,GAAqB,cAAc,GAAM,gBAAkB,KAAM,EAAM,cAAc,EAC5G,OAAO,IAAI,EACT,EACA,GAAiB,EAAM,MAAM,EAC7B,EAAM,UAAY,GAClB,EAAM,WAAa,GACnB,EAAM,qBACN,EAAM,QACN,EACA,GAAqB,cAAc,EAAgB,EAAM,qBAAqB,CAChF,EAEJ,EAoVA,IAAI,GAAU,GAAe,KCtoG7B,MAAM,WAAmB,KAAM,CAC7B,WAAW,CAAC,EAAS,CACnB,MAAM,CAAO,EACb,KAAK,KAAO,aAEhB,CAEA,SAAS,EAAU,EAAG,CACpB,MAAO,YAET,SAAS,EAAmB,EAAG,CAC7B,OAAO,OAAO,YAAgB,IAAc,YAAY,IAAI,EAAI,KAAK,IAAI,EAE3E,IAAM,GAAU,CAAC,EAAG,IAAa,GAAK,EAAW,EAAI,GAAY,EACjE,eAAe,EAAI,CAAC,EAAM,CACxB,IAAI,EACA,EACE,EAAU,CAAC,EACjB,SAAS,CAA0B,CAAC,EAAK,CACvC,EAAS,EACT,EAAQ,OAAS,IAAI,WAAW,CAAG,EACnC,EAAQ,QAAU,IAAI,YAAY,CAAG,EAEvC,SAAS,CAAsB,CAAC,EAAM,EAAK,EAAK,CAC9C,EAAQ,OAAO,WAAW,EAAM,EAAK,EAAM,CAAG,EAEhD,SAAS,CAAyB,CAAC,EAAM,CACvC,GAAI,CAGF,OAFA,EAAW,KAAK,EAAO,EAAO,WAAa,QAAU,EAAE,EACvD,EAA2B,EAAW,MAAM,EACrC,EACP,KAAM,GAGV,SAAS,CAAuB,CAAC,EAAe,CAC9C,IAAM,EAAU,EAAQ,OAAO,OAC/B,EAAgB,IAAkB,EAClC,IAAM,EAAc,GAAW,EAC/B,GAAI,EAAgB,EAClB,MAAO,GACT,QAAS,EAAU,EAAG,GAAW,EAAG,GAAW,EAAG,CAChD,IAAI,EAAoB,GAAW,EAAI,IAAM,GAC7C,EAAoB,KAAK,IAAI,EAAmB,EAAgB,SAAS,EACzE,IAAM,EAAU,KAAK,IAAI,EAAa,GAAQ,KAAK,IAAI,EAAe,CAAiB,EAAG,KAAK,CAAC,EAEhG,GADoB,EAA0B,CAAO,EAEnD,MAAO,GAEX,MAAO,GAET,IAAM,EAAc,OAAO,YAAe,IAAc,IAAI,YAAY,MAAM,EAAS,OACvF,SAAS,CAAiB,CAAC,EAAa,EAAK,EAAiB,KAAM,CAClE,IAAM,EAAS,EAAM,EACjB,EAAS,EACb,MAAO,EAAY,IAAW,EAAE,GAAU,GAAS,EAAE,EACrD,GAAI,EAAS,EAAM,IAAM,EAAY,QAAU,EAC7C,OAAO,EAAY,OAAO,EAAY,SAAS,EAAK,CAAM,CAAC,EAE7D,IAAI,EAAM,GACV,MAAO,EAAM,EAAQ,CACnB,IAAI,EAAK,EAAY,KACrB,GAAI,EAAE,EAAK,KAAM,CACf,GAAO,OAAO,aAAa,CAAE,EAC7B,SAEF,IAAM,EAAK,EAAY,KAAS,GAChC,IAAK,EAAK,OAAS,IAAK,CACtB,GAAO,OAAO,cAAc,EAAK,KAAO,EAAI,CAAE,EAC9C,SAEF,IAAM,EAAK,EAAY,KAAS,GAChC,IAAK,EAAK,OAAS,IACjB,GAAM,EAAK,KAAO,GAAK,GAAM,EAAI,EAEjC,QAAM,EAAK,IAAM,GAAK,GAAM,GAAK,GAAM,EAAI,EAAY,KAAS,GAElE,GAAI,EAAK,MACP,GAAO,OAAO,aAAa,CAAE,EACxB,KACL,IAAM,EAAK,EAAK,MAChB,GAAO,OAAO,aAAa,MAAQ,GAAM,GAAI,MAAQ,EAAK,IAAI,GAGlE,OAAO,EAET,SAAS,CAAY,CAAC,EAAK,EAAgB,CACzC,OAAO,EAAM,EAAkB,EAAQ,OAAQ,EAAK,CAAc,EAAI,GAExE,IAAM,EAAgB,CACpB,mBAAoB,GACpB,sBAAuB,EACvB,uBAAwB,EACxB,SAAU,IAAM,CAClB,EACA,eAAe,CAAU,EAAG,CAK1B,IAAM,EAAY,MAAM,EAJX,CACX,IAAK,EACL,uBAAwB,CAC1B,CACiC,EACjC,EAAa,EAAU,OACvB,EAA2B,EAAW,MAAM,EAC5C,OAAO,OAAO,EAAS,CAAS,EAChC,EAAQ,aAAe,EAGzB,OADA,MAAM,EAAW,EACV,EAGT,IAAI,GAAY,OAAO,eACnB,GAAkB,CAAC,EAAK,EAAK,KAAU,KAAO,GAAM,GAAU,EAAK,EAAK,CAAE,WAAY,GAAM,aAAc,GAAM,SAAU,GAAM,OAAM,CAAC,EAAI,EAAI,GAAO,EACtJ,EAAgB,CAAC,EAAK,EAAK,IAAU,GAAgB,EAAK,OAAO,IAAQ,SAAW,EAAM,GAAK,EAAK,CAAK,EACzG,EAAc,KAClB,SAAS,EAAkB,CAAC,EAAc,CACxC,MAAM,IAAI,GAAW,EAAa,aAAa,EAAa,iBAAiB,CAAC,CAAC,EAEjF,MAAM,EAAU,CACd,WAAW,CAAC,EAAK,CACf,EAAc,KAAM,aAAa,EACjC,EAAc,KAAM,YAAY,EAChC,EAAc,KAAM,YAAY,EAChC,EAAc,KAAM,WAAW,EAC/B,EAAc,KAAM,mBAAmB,EACvC,EAAc,KAAM,mBAAmB,EACvC,IAAM,EAAc,EAAI,OAClB,EAAa,GAAU,gBAAgB,CAAG,EAC1C,EAAwB,IAAe,EACvC,EAAoB,EAAwB,IAAI,YAAY,EAAc,CAAC,EAAI,KACrF,GAAI,EACF,EAAkB,GAAe,EACnC,IAAM,EAAoB,EAAwB,IAAI,YAAY,EAAa,CAAC,EAAI,KACpF,GAAI,EACF,EAAkB,GAAc,EAClC,IAAM,EAAY,IAAI,WAAW,CAAU,EACvC,EAAK,EACT,QAAS,EAAM,EAAG,EAAM,EAAa,IAAO,CAC1C,IAAM,EAAW,EAAI,WAAW,CAAG,EAC/B,EAAY,EACZ,EAAmB,GACvB,GAAI,GAAY,OAAS,GAAY,OACnC,GAAI,EAAM,EAAI,EAAa,CACzB,IAAM,EAAe,EAAI,WAAW,EAAM,CAAC,EAC3C,GAAI,GAAgB,OAAS,GAAgB,MAC3C,GAAa,EAAW,OAAS,IAAM,MAAQ,EAAe,MAC9D,EAAmB,IAIzB,GAAI,EAAuB,CAEzB,GADA,EAAkB,GAAO,EACrB,EACF,EAAkB,EAAM,GAAK,EAC/B,GAAI,GAAa,IACf,EAAkB,EAAK,GAAK,EACvB,QAAI,GAAa,KACtB,EAAkB,EAAK,GAAK,EAC5B,EAAkB,EAAK,GAAK,EACvB,QAAI,GAAa,MACtB,EAAkB,EAAK,GAAK,EAC5B,EAAkB,EAAK,GAAK,EAC5B,EAAkB,EAAK,GAAK,EAE5B,OAAkB,EAAK,GAAK,EAC5B,EAAkB,EAAK,GAAK,EAC5B,EAAkB,EAAK,GAAK,EAC5B,EAAkB,EAAK,GAAK,EAGhC,GAAI,GAAa,IACf,EAAU,KAAQ,EACb,QAAI,GAAa,KACtB,EAAU,KAAQ,KAAO,EAAY,QAAU,EAC/C,EAAU,KAAQ,KAAO,EAAY,MAAQ,EACxC,QAAI,GAAa,MACtB,EAAU,KAAQ,KAAO,EAAY,SAAW,GAChD,EAAU,KAAQ,KAAO,EAAY,QAAU,EAC/C,EAAU,KAAQ,KAAO,EAAY,MAAQ,EAE7C,OAAU,KAAQ,KAAO,EAAY,WAAa,GAClD,EAAU,KAAQ,KAAO,EAAY,UAAY,GACjD,EAAU,KAAQ,KAAO,EAAY,QAAU,EAC/C,EAAU,KAAQ,KAAO,EAAY,MAAQ,EAE/C,GAAI,EACF,IAEJ,KAAK,YAAc,EACnB,KAAK,WAAa,EAClB,KAAK,WAAa,EAClB,KAAK,UAAY,EACjB,KAAK,kBAAoB,EACzB,KAAK,kBAAoB,QAEpB,gBAAe,CAAC,EAAK,CAC1B,IAAI,EAAS,EACb,QAAS,EAAI,EAAG,EAAM,EAAI,OAAQ,EAAI,EAAK,IAAK,CAC9C,IAAM,EAAW,EAAI,WAAW,CAAC,EAC7B,EAAY,EACZ,EAAmB,GACvB,GAAI,GAAY,OAAS,GAAY,OACnC,GAAI,EAAI,EAAI,EAAK,CACf,IAAM,EAAe,EAAI,WAAW,EAAI,CAAC,EACzC,GAAI,GAAgB,OAAS,GAAgB,MAC3C,GAAa,EAAW,OAAS,IAAM,MAAQ,EAAe,MAC9D,EAAmB,IAIzB,GAAI,GAAa,IACf,GAAU,EACP,QAAI,GAAa,KACpB,GAAU,EACP,QAAI,GAAa,MACpB,GAAU,EAEV,QAAU,EACZ,GAAI,EACF,IAEJ,OAAO,EAET,YAAY,CAAC,EAAc,CACzB,IAAM,EAAS,EAAa,QAAQ,KAAK,UAAU,EAEnD,OADA,EAAa,OAAO,IAAI,KAAK,UAAW,CAAM,EACvC,EAEX,CACA,IAAM,GAAc,MAAM,CAAY,CACpC,WAAW,CAAC,EAAK,CASf,GARA,EAAc,KAAM,KAAM,EAAE,EAAY,OAAO,EAC/C,EAAc,KAAM,cAAc,EAClC,EAAc,KAAM,SAAS,EAC7B,EAAc,KAAM,aAAa,EACjC,EAAc,KAAM,YAAY,EAChC,EAAc,KAAM,mBAAmB,EACvC,EAAc,KAAM,mBAAmB,EACvC,EAAc,KAAM,KAAK,EACrB,CAAC,EACH,MAAM,IAAI,GAAW,6BAA6B,EACpD,KAAK,aAAe,EACpB,KAAK,QAAU,EACf,IAAM,EAAY,IAAI,GAAU,CAAG,EAKnC,GAJA,KAAK,YAAc,EAAU,YAC7B,KAAK,WAAa,EAAU,WAC5B,KAAK,kBAAoB,EAAU,kBACnC,KAAK,kBAAoB,EAAU,kBAC/B,KAAK,WAAa,KAAO,CAAC,EAAY,gBAAiB,CACzD,GAAI,CAAC,EAAY,WACf,EAAY,WAAa,EAAY,QAAQ,GAAG,EAClD,EAAY,gBAAkB,GAC9B,EAAY,OAAO,IAAI,EAAU,UAAW,EAAY,UAAU,EAClE,KAAK,IAAM,EAAY,WAEvB,UAAK,IAAM,EAAU,aAAa,CAAW,EAGjD,wBAAwB,CAAC,EAAY,CACnC,GAAI,KAAK,kBAAmB,CAC1B,GAAI,EAAa,EACf,MAAO,GACT,GAAI,EAAa,KAAK,WACpB,OAAO,KAAK,YACd,OAAO,KAAK,kBAAkB,GAEhC,OAAO,EAET,wBAAwB,CAAC,EAAa,CACpC,GAAI,KAAK,kBAAmB,CAC1B,GAAI,EAAc,EAChB,MAAO,GACT,GAAI,EAAc,KAAK,YACrB,OAAO,KAAK,WACd,OAAO,KAAK,kBAAkB,GAEhC,OAAO,EAET,OAAO,EAAG,CACR,GAAI,KAAK,MAAQ,EAAY,WAC3B,EAAY,gBAAkB,GAE9B,UAAK,aAAa,MAAM,KAAK,GAAG,EAEtC,EACA,EAAc,GAAa,UAAW,CAAC,EACvC,EAAc,GAAa,aAAc,CAAC,EAE1C,EAAc,GAAa,kBAAmB,EAAK,EACnD,IAAI,GAAa,GACjB,MAAM,EAAY,CAChB,WAAW,CAAC,EAAU,CAGpB,GAFA,EAAc,KAAM,cAAc,EAClC,EAAc,KAAM,MAAM,EACtB,CAAC,EACH,MAAM,IAAI,GAAW,6BAA6B,EACpD,IAAM,EAAa,CAAC,EACd,EAAY,CAAC,EACnB,QAAS,EAAI,EAAG,EAAM,EAAS,OAAQ,EAAI,EAAK,IAAK,CACnD,IAAM,EAAY,IAAI,GAAU,EAAS,EAAE,EAC3C,EAAW,GAAK,EAAU,aAAa,CAAW,EAClD,EAAU,GAAK,EAAU,WAE3B,IAAM,EAAa,EAAY,QAAQ,EAAI,EAAS,MAAM,EAC1D,EAAY,QAAQ,IAAI,EAAY,EAAa,CAAC,EAClD,IAAM,EAAY,EAAY,QAAQ,EAAI,EAAS,MAAM,EACzD,EAAY,QAAQ,IAAI,EAAW,EAAY,CAAC,EAChD,IAAM,EAAa,EAAY,kBAAkB,EAAY,EAAW,EAAS,MAAM,EACvF,QAAS,EAAI,EAAG,EAAM,EAAS,OAAQ,EAAI,EAAK,IAC9C,EAAY,MAAM,EAAW,EAAE,EAGjC,GAFA,EAAY,MAAM,CAAS,EAC3B,EAAY,MAAM,CAAU,EACxB,IAAe,EACjB,GAAmB,CAAW,EAChC,KAAK,aAAe,EACpB,KAAK,KAAO,EAEd,OAAO,EAAG,CACR,KAAK,aAAa,gBAAgB,KAAK,IAAI,EAE7C,iBAAiB,CAAC,EAAQ,EAAe,EAAK,CAC5C,IAAI,EAAU,EACd,GAAI,OAAO,IAAQ,SACjB,EAAU,EAEZ,GAAI,OAAO,IAAW,SAAU,CAC9B,EAAS,IAAI,GAAW,CAAM,EAC9B,IAAM,EAAS,KAAK,mBAAmB,EAAQ,EAAe,GAAO,CAAO,EAE5E,OADA,EAAO,QAAQ,EACR,EAET,OAAO,KAAK,mBAAmB,EAAQ,EAAe,GAAO,CAAO,EAEtE,kBAAkB,CAAC,EAAQ,EAAe,EAAW,EAAS,CAC5D,IAAM,EAAe,KAAK,aACpB,EAAY,EAAa,yBAAyB,KAAK,KAAM,EAAO,GAAI,EAAO,IAAK,EAAO,WAAY,EAAO,yBAAyB,CAAa,EAAG,CAAO,EACpK,GAAI,IAAc,EAChB,OAAO,KAET,IAAM,EAAU,EAAa,QACzB,EAAS,EAAY,EACnB,EAAQ,EAAQ,KAChB,EAAQ,EAAQ,KAChB,EAAiB,CAAC,EACxB,QAAS,EAAI,EAAG,EAAI,EAAO,IAAK,CAC9B,IAAM,EAAM,EAAO,yBAAyB,EAAQ,IAAS,EACvD,EAAM,EAAO,yBAAyB,EAAQ,IAAS,EAC7D,EAAe,GAAK,CAClB,MAAO,EACP,MACA,OAAQ,EAAM,CAChB,EAEF,MAAO,CACL,QACA,gBACF,EAEJ,CACA,SAAS,EAA2B,CAAC,EAAe,CAClD,OAAO,OAAO,EAAc,eAAiB,WAE/C,SAAS,EAAoB,CAAC,EAAe,CAC3C,OAAO,OAAO,EAAc,UAAY,WAE1C,SAAS,EAAmB,CAAC,EAAe,CAC1C,OAAO,OAAO,EAAc,KAAS,IAEvC,SAAS,EAAU,CAAC,EAAe,CACjC,OAAO,OAAO,SAAa,KAAe,aAAyB,SAErE,SAAS,EAAa,CAAC,EAAM,CAC3B,OAAO,OAAO,YAAgB,MAAgB,aAAgB,aAAe,YAAY,OAAO,CAAI,IAAM,OAAO,OAAW,KAAe,OAAO,WAAW,CAAI,GAAK,OAAO,kBAAsB,KAAe,aAAgB,mBAAqB,OAAO,YAAgB,KAAe,aAAgB,YAE/S,IAAI,GACJ,SAAS,EAAQ,CAAC,EAAS,CACzB,GAAI,GACF,OAAO,GACT,eAAe,CAAK,EAAG,CACrB,EAAc,MAAM,GAAK,MAAO,IAAS,CACvC,IAAI,EAAW,EAEf,GADA,EAAW,MAAM,EACb,OAAO,IAAa,WACtB,EAAW,MAAM,EAAS,CAAI,EAChC,GAAI,OAAO,IAAa,WACtB,EAAW,MAAM,EAAS,CAAI,EAChC,GAAI,GAA4B,CAAQ,EACtC,EAAW,MAAM,EAAS,aAAa,CAAI,EACtC,QAAI,GAAqB,CAAQ,EACtC,EAAW,MAAM,EAAS,QAAQ,CAAI,EACjC,KACL,GAAI,GAAoB,CAAQ,EAC9B,EAAW,EAAS,KACtB,GAAI,GAAW,CAAQ,EACrB,GAAI,OAAO,YAAY,uBAAyB,WAC9C,EAAW,MAAM,GAA6B,CAAQ,EAAE,CAAI,EAE5D,OAAW,MAAM,GAAgC,CAAQ,EAAE,CAAI,EAC5D,QAAI,GAAc,CAAQ,EAC/B,EAAW,MAAM,GAAuB,CAAQ,EAAE,CAAI,EACjD,QAAI,aAAoB,YAAY,OACzC,EAAW,MAAM,GAAuB,CAAQ,EAAE,CAAI,EACjD,QAAI,YAAa,GAAY,EAAS,mBAAmB,YAAY,OAC1E,EAAW,MAAM,GAAuB,EAAS,OAAO,EAAE,CAAI,EAGlE,GAAI,aAAc,EAChB,EAAW,EAAS,SACtB,GAAI,YAAa,EACf,EAAW,EAAS,QACtB,OAAO,EACR,EAGH,OADA,GAAc,EAAM,EACb,GAET,SAAS,EAAsB,CAAC,EAAM,CACpC,MAAO,CAAC,IAAiB,YAAY,YAAY,EAAM,CAAY,EAErE,SAAS,EAA4B,CAAC,EAAM,CAC1C,MAAO,CAAC,IAAiB,YAAY,qBAAqB,EAAM,CAAY,EAE9E,SAAS,EAA+B,CAAC,EAAM,CAC7C,MAAO,OAAO,IAAiB,CAC7B,IAAM,EAAc,MAAM,EAAK,YAAY,EAC3C,OAAO,YAAY,YAAY,EAAa,CAAY,GAW5D,eAAe,EAAqB,CAAC,EAAS,CAC5C,GAAI,EACF,MAAM,GAAS,CAAO,EACxB,MAAO,CACL,aAAa,CAAC,EAAU,CACtB,OAAO,IAAI,GAAY,EAAS,IAAI,CAAC,IAAM,OAAO,IAAM,SAAW,EAAI,EAAE,MAAM,CAAC,GAElF,YAAY,CAAC,EAAG,CACd,OAAO,IAAI,GAAW,CAAC,EAE3B,EC5bmmT,SAAS,EAAC,CAAC,EAAE,CAAC,OAAO,EAAE,QAAQ,UAAU,EAAE,EAAE,YAAY,ECE9pT,IAAM,GAAoB,OAAO,6CCD1B,IAAM,GAAU,OAAO,OAAO,CACnC,QAAS,UACT,WAAY,YACd,CAAC,ECED,IAAM,GAAoB,IAAI,OAAO,OAAO,2BAA2B,+CAA+D,KAAK,EAoH3I,IAAM,GAAiB,OAAO,gCAExB,GAAwB,IAAI,OAAO,OAAO;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,aAanC;AAAA;AAAA,EAEX,QAAQ,OAAQ,EAAE,EAAG,KAAK,ECzI5B,IAAM,GAAI,OAAO,IACX,GAAU,oDACV,GAAiB,+BAA8B,KAC/C,GAAoB,wCACpB,GAAe,KAAI,0BACnB,GAAQ,IAAI,OAAO,KAAI,MAAqB,eAA4B,KAAK,ECNnF,IAAgB,cAAZ,EACW,IAAX,GAAI,OACJ,GAAW,CACb,YAAa,IAAM,CACjB,GAAI,CACF,IAAI,OAAO,OAAO,EAClB,KAAM,CACN,MAAO,GAET,MAAO,KACN,EACH,aAAc,IAAM,CAClB,GAAI,CACF,IAAI,OAAO,OAAQ,GAAG,EACtB,KAAM,CACN,MAAO,GAET,MAAO,KACN,CACL,EACA,GAAS,6BAA+B,GAAS,aAAe,IAAM,CACpE,GAAI,CACF,IAAI,OAAO,WAAY,GAAG,EAC1B,KAAM,CACN,MAAO,GAET,MAAO,KACN,EAAI,GACP,GAAS,8BAAgC,GAAS,aAAe,IAAI,OAAO,SAAU,GAAG,EAAE,KAAK,GAAG,EAOnG,SAAS,EAAW,CAAC,EAAK,EAAK,EAAc,CAC3C,GAAI,CAAC,EAAI,IAAI,CAAG,EACd,EAAI,IAAI,EAAK,CAAY,EAE3B,OAAO,EAAI,IAAI,CAAG,EAmFpB,IAAI,GAAkD,IAAI,IAAI,CAC5D,EAAG,GAAG,EAEN,EAAG,GAAG,CAER,CAAC,EACG,GAAkB,2BAoBtB,IAAI,GAAuC,IAAI,IAC7C;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,gBA0Fc,MAAM,IAAI,EAAE,IAAI,CAAC,IAAM,CAAC,GAAK,CAAC,EAAG,CAAC,CAAC,CACnD,EACI,GAAiD,IAAI,IAAI,CAC3D,CAAC,IAAK,EAAG,GAAG,CAAC,EAEb,CAAC,EAAG,GAAG,EAAG,GAAG,CAEf,CAAC,EACG,GAAiD,IAAI,IAAI,CAC3D,CAAC,EAAG,GAAG,EAAG,EAAG,IAAI,CAAC,EAElB,CAAC,EAAG,GAAG,EAAG,EAAG,IAAI,CAAC,EAElB,CAAC,EAAG,GAAG,EAAG,EAAG,IAAI,CAAC,EAElB,CAAC,EAAG,GAAG,EAAG,EAAG,IAAI,CAAC,CAEpB,CAAC,EACG,GAAsB,IAAI,IAAI,CAChC,GAAW,GAAG,EACd,GAAW,GAAG,EACd,GAAW,GAAG,EACd,GAAW,GAAG,EACd,GAAG,GAAW,KAAM,IAAI,EACxB,GAAG,GAAW,KAAM,IAAI,EACxB,GAAG,GAAW,KAAM,IAAI,EACxB,GAAW,IAAI,EACf,GAAW,IAAI,EACf,GAAW,IAAI,CACjB,CAAC,EACG,GAAgC,IAAI,IAAI,CAC1C,CAAC,QAAS,oBAAoB,EAC9B,CAAC,QAAS,YAAY,EACtB,CAAC,QAAS,YAAY,EACtB,CAAC,QAAS,aAAa,EACvB,CAAC,QAAS,SAAS,EACnB,CAAC,QAAS,SAAS,EACnB,CAAC,QAAS,sCAAsC,EAChD,CAAC,QAAS,YAAY,EACtB,CAAC,QAAS,8CAA8C,EACxD,CAAC,QAAS,eAAe,EAEzB,CAAC,QAAS,YAAY,EACtB,CAAC,QAAS,YAAY,EACtB,CAAC,OAAQ,+BAA+B,EACxC,CAAC,SAAU,WAAW,CACxB,CAAC,EACD,SAAS,EAAK,CAAC,EAAO,EAAK,CACzB,IAAM,EAAS,CAAC,EAChB,QAAS,EAAI,EAAO,GAAK,EAAK,IAC5B,EAAO,KAAK,CAAC,EAEf,OAAO,EAET,SAAS,EAAU,CAAC,EAAW,CAC7B,IAAM,EAAO,EAAG,CAAS,EACzB,MAAO,CAAC,EAAK,YAAY,EAAG,CAAI,EAElC,SAAS,EAAU,CAAC,EAAO,EAAK,CAC9B,OAAO,GAAM,EAAO,CAAG,EAAE,IAAI,CAAC,IAAc,GAAW,CAAS,CAAC,EAipCnE,IAAI,GAAoC,IAAI,IAAI,CAC9C,CAAC,EAAG,KAAK,EAET,CAAC,GAAI,KAAK,EAEV,CAAC,GAAI,KAAK,EAEV,CAAC,GAAI,KAAK,EAEV,CAAC,GAAI,KAAK,EAEV,CAAC,KAAM,SAAS,EAEhB,CAAC,KAAM,SAAS,EAEhB,CAAC,MAAO,SAAS,CAEnB,CAAC,EAwGD,IAAI,GAAiB,MAAM,UAAwB,MAAO,CAOxD,GAA8B,IAAI,IAIlC,GAAY,KAIZ,GAIA,GAAW,KAIX,GAAY,KAKZ,WAAa,CAAC,KAEV,OAAM,EAAG,CACX,OAAO,KAAK,IAAY,OAa1B,WAAW,CAAC,EAAS,EAAO,EAAS,CACnC,IAAM,EAAc,CAAC,CAAC,GAAS,YAC/B,GAAI,aAAmB,OAAQ,CAC7B,GAAI,EACF,MAAU,MAAM,8CAA8C,EAEhE,IAAM,EAAK,EACX,MAAM,EAAI,CAAK,EAEf,GADA,KAAK,GAAW,EAAG,OACf,aAAc,EAChB,KAAK,GAAc,EAAG,GACtB,KAAK,GAAW,EAAG,GACnB,KAAK,GAAY,EAAG,GACpB,KAAK,WAAa,EAAG,WAElB,KACL,IAAM,EAAO,CACX,eAAgB,CAAC,EACjB,SAAU,KACV,UAAW,CAAC,KACT,CACL,EACA,MAAM,EAAc,GAAK,EAAS,CAAK,EACvC,KAAK,GAAW,EAChB,KAAK,GAAc,GAAiB,EAAK,eAAgB,EAAK,SAAS,EACvE,KAAK,GAAY,EAAK,SACtB,KAAK,WAAa,GAAW,CAAC,EAEhC,GAAI,CAAC,EACH,KAAK,GAAY,KASrB,IAAI,CAAC,EAAK,CACR,GAAI,CAAC,KAAK,GAAW,CACnB,IAAQ,iBAAgB,GAAS,KAAK,WACtC,KAAK,GAAY,IAAI,EAAgB,KAAK,GAAU,KAAK,MAAO,CAAI,EAEtE,IAAM,EAAe,KAAK,QAAU,KAAK,OACnC,EAAM,KAAK,UACjB,GAAI,KAAK,KAAc,eAAiB,GAAgB,EAAK,CAC3D,KAAK,UAAY,EACjB,IAAM,EAAQ,KAAK,GAAU,EAAI,MAAM,CAAG,CAAC,EAC3C,GAAI,EACF,GAA4B,EAAO,EAAK,EAAK,KAAK,UAAU,EAC5D,KAAK,WAAa,EAEpB,OAAO,EAET,OAAO,KAAK,GAAU,CAAG,EAO3B,EAAS,CAAC,EAAK,CACb,KAAK,GAAU,UAAY,KAAK,UAChC,IAAM,EAAQ,MAAM,KAAK,KAAK,KAAK,GAAW,CAAG,EAEjD,GADA,KAAK,UAAY,KAAK,GAAU,UAC5B,CAAC,GAAS,CAAC,KAAK,GAAY,KAC9B,OAAO,EAET,IAAM,EAAY,CAAC,GAAG,CAAK,EAC3B,EAAM,OAAS,EACf,IAAI,EACJ,GAAI,KAAK,WACP,EAAc,CAAC,GAAG,EAAM,OAAO,EAC/B,EAAM,QAAQ,OAAS,EAEzB,IAAM,EAAa,CAAC,CAAC,EACrB,QAAS,EAAI,EAAG,EAAI,EAAU,OAAQ,IAAK,CACzC,IAAQ,SAAQ,cAAe,KAAK,GAAY,IAAI,CAAC,GAAK,CAAC,EAC3D,GAAI,EACF,EAAW,KAAK,IAAI,EAIpB,QAFA,EAAW,KAAK,EAAM,MAAM,EAC5B,EAAM,KAAK,EAAU,EAAE,EACnB,KAAK,WACP,EAAM,QAAQ,KAAK,EAAY,EAAE,EAGrC,GAAI,GAAc,EAAU,KAAY,OAAG,CACzC,IAAM,EAAK,EAAW,GACtB,GAAI,CAAC,EACH,MAAU,MAAM,gCAAgC,IAAK,EAGvD,GADA,EAAM,GAAM,EAAU,GAClB,KAAK,WACP,EAAM,QAAQ,GAAM,EAAY,GAElC,GAAI,EAAM,OAAQ,CAChB,GAAI,CAAC,KAAK,GACR,KAAK,GAAW,GAAc,KAAK,MAAM,EAE3C,IAAM,EAAO,KAAK,GAAS,IAAI,CAAU,EACzC,GAAI,GAEF,GADA,EAAM,OAAO,GAAQ,EAAU,GAC3B,KAAK,WACP,EAAM,QAAQ,OAAO,GAAQ,EAAY,MAMnD,OAAO,EAEX,EACA,SAAS,EAA2B,CAAC,EAAO,EAAQ,EAAO,EAAY,CAGrE,GAFA,EAAM,OAAS,EACf,EAAM,MAAQ,EACV,EAAY,CACd,IAAM,EAAU,EAAM,QACtB,QAAS,EAAI,EAAG,EAAI,EAAQ,OAAQ,IAAK,CACvC,IAAM,EAAM,EAAQ,GACpB,GAAI,EACF,EAAQ,GAAK,CAAC,EAAI,GAAK,EAAQ,EAAI,GAAK,CAAM,EAGlD,IAAM,EAAe,EAAQ,OAC7B,GAAI,EACF,OAAO,KAAK,CAAY,EAAE,QAAQ,CAAC,IAAQ,CACzC,IAAM,EAAM,EAAa,GACzB,GAAI,EACF,EAAa,GAAO,CAAC,EAAI,GAAK,EAAQ,EAAI,GAAK,CAAM,EAExD,GAIP,SAAS,EAAgB,CAAC,EAAgB,EAAW,CACnD,IAAM,EAA6B,IAAI,IACvC,QAAW,KAAO,EAChB,EAAW,IAAI,EAAK,CAClB,OAAQ,EACV,CAAC,EAEH,QAAY,EAAI,KAAS,EACvB,QAAW,KAAO,EAChB,GAAY,EAAY,EAAK,CAAC,CAAC,EAAE,WAAa,EAGlD,OAAO,EAET,SAAS,EAAa,CAAC,EAAS,CAC9B,IAAM,EAAK,8DACL,EAAsB,IAAI,IAC5B,EAAqB,EACrB,EAAc,EACd,EACJ,MAAO,EAAQ,EAAG,KAAK,CAAO,EAAG,CAC/B,IAAQ,EAAG,EAAG,QAAU,UAAS,SAAW,EAC5C,GAAI,IAAM,IACR,IACK,QAAI,CAAC,GACV,GAAI,GAEF,GADA,IACI,EACF,EAAI,IAAI,EAAa,CAAI,GAGxB,QAAI,IAAM,IACf,IAGJ,OAAO,EC/vDT,eAAe,EAAqB,CAAC,EAAa,EAAc,EAAQ,CACtE,GAAI,CACF,OAAO,MAAM,GAAwB,CACnC,MAAO,CAAC,CAAW,EACnB,OAAQ,EACR,OAAQ,GAAU,GAA6B,4BAAa,CAC9D,CAAC,EACD,MAAO,EAAO,CACd,GAAI,aAAiB,OAAS,EAAM,QAAQ,SAAS,UAAU,EAC7D,OAAO,MAAM,GAAwB,CACnC,MAAO,CAAC,WAAW,EACnB,OAAQ,EACR,OAAQ,GAAU,GAA6B,4BAAa,CAC9D,CAAC,EAEH,MAAM,GASV,IAAI,GAAuB,CAAC,EAAM,EAAM,EAAY,EAAU,CAAC,IAAM,CACnE,OAAO,GACL,EACA,EACA,EACA,EACA,EACF,GAEE,GAAmB,GACrB,EACF,EClCO,SAAS,EAAc,EAAG,YAA8C,CAC7E,IAAQ,OAAM,UAAS,SAAU,EAA6B,UAAU,mBAAmB,CAAQ,WAAY,CAC7G,CACF,CAAC,EAED,GAAI,EACF,OACE,EAEE,EAFF,CAAY,MAAM,SAAS,KAAM,EAAC,GAAD,CAAM,MAAM,UAAU,EAAvD,SACE,EAAuE,MAAvE,CAAK,MAAM,yCAAX,6BAAuE,EACvE,EAIN,GAAI,GAAS,CAAC,GAAM,QAClB,OACE,EAEE,EAFF,CAAY,MAAM,SAAS,KAAM,EAAC,GAAD,CAAM,MAAM,UAAU,EAAvD,SACE,EAA0E,MAA1E,CAAK,MAAM,yCAAX,gCAA0E,EAC1E,EAIN,OACE,EAUE,EAVF,CACE,MAAM,SACN,KAAM,EAAC,GAAD,CAAM,MAAM,UAAU,EAC5B,OAAQ,EAA4E,GAA5E,CAAoB,KAAM,iBAAiB,EAAK,WAAhD,0BAA4E,EAHtF,SAKE,EAIE,MAJF,CAAK,MAAM,uEAAX,SACE,EAEE,GAFF,CAAkB,SAAS,aAAa,MAAM,eAA9C,SACG,EAAK,QAAQ,KAAK,EACnB,EACF,EACF,ECVC,SAAS,EAAqB,EACnC,OACA,QAAQ,EACR,kBAAkB,GAClB,gBACA,cACA,cACA,iBACiC,CACjC,IAAO,EAAY,GAAiB,EAAS,CAAe,EACtD,EAAc,EAAK,UAAY,EAAK,SAAS,OAAS,EACtD,EAAS,EAAQ,GAEvB,SAAS,CAAW,EAAS,CAC3B,GAAI,EACF,EAAc,CAAC,CAAU,EAE3B,IAAc,CAAI,EAGpB,SAAS,CAAa,EAAgB,CACpC,GAAI,CAAC,EACH,OAAO,EAAC,OAAD,CAAM,MAAM,WAAW,EAEhC,OACE,EAME,OANF,CAAM,MAAM,4CAAZ,SACG,EACC,EAAC,GAAD,CAAa,MAAM,gCAAgC,EAEnD,EAAC,GAAD,CAAc,MAAM,gCAAgC,EAEtD,EAIN,OACE,EAkCE,MAlCF,CAAK,cAAY,WAAjB,SAkCE,CAjCA,EAgBE,MAhBF,CACE,MAAM,8EACN,MAAO,CAAE,YAAa,GAAG,KAAW,EACpC,QAAS,EAHX,SAgBE,CAXC,EAAc,EACd,EAAK,eAAiB,EAAuD,OAAvD,CAAM,MAAM,qBAAZ,SAAkC,EAAK,cAAgB,EAC7E,EAAK,MAAQ,EAA8D,OAA9D,CAAM,MAAO,EAAG,gBAAiB,CAAa,EAA9C,SAAkD,EAAK,KAAO,EAC5E,EAEE,OAFF,CAAM,MAAO,EAAG,sBAAuB,GAAe,aAAa,EAAnE,SACG,EAAc,EAAY,CAAI,EAAI,EAAK,MACxC,EACD,GACC,EAEE,OAFF,CAAM,MAAM,0EAAZ,SACG,EAAc,CAAI,EACnB,GAEJ,EACD,GAAe,GACd,EAaE,MAbF,UACG,EAAK,UAAU,IAAI,CAAC,IACnB,EAAC,GAAD,CAEE,KAAM,EACN,MAAO,EAAQ,EACf,gBAAiB,EACjB,cAAe,EACf,YAAa,EACb,YAAa,EACb,cAAe,GAPV,EAAM,EAQb,CACD,EACD,GAEJ,EAIC,SAAS,EAAiB,EAC/B,QACA,kBAAkB,GAClB,gBACA,cACA,cACA,gBACA,MAAO,GACsB,CAC7B,OACE,EAYE,MAZF,CAAK,cAAY,OAAO,MAAO,EAAG,YAAa,CAAS,EAAxD,SACG,EAAM,IAAI,CAAC,IACV,EAAC,GAAD,CAEE,KAAM,EACN,gBAAiB,EACjB,YAAa,EACb,cAAe,EACf,YAAa,EACb,cAAe,GANV,EAAK,EAOZ,CACD,EACD,ECpGN,IAAM,GAA2C,CAC/C,KAAM,gBACN,OAAQ,iBACR,cAAe,gBACf,QAAS,kBACT,OAAQ,iBACR,WAAY,gBACZ,KAAM,gBACN,iBAAkB,kBAClB,QAAS,wBACT,QAAS,iBACT,OAAQ,iBACV,EAEA,SAAS,EAAW,CAAC,EAAgC,CAEnD,OAAQ,OACD,OACH,OAAO,EAAC,GAAD,CAAU,MAHH,UAGqB,MAChC,SACH,OAAO,EAAC,GAAD,CAAc,MALP,UAKyB,MACpC,cACH,OAAO,EAAC,GAAD,CAAK,MAPE,UAOgB,MAC3B,UACH,OAAO,EAAC,GAAD,CAAa,MATN,UASwB,MACnC,SACH,OAAO,EAAC,GAAD,CAAS,MAXF,UAWoB,MAC/B,aACH,OAAO,EAAC,GAAD,CAAU,MAbH,UAaqB,MAChC,WACA,iBACH,OAAO,EAAC,GAAD,CAAU,MAhBH,UAgBqB,MAChC,cACA,UACH,OAAO,EAAC,GAAD,CAAS,MAnBF,UAmBoB,MAC/B,SACH,OAAO,EAAC,GAAD,CAAM,MArBC,UAqBiB,UAE/B,OAAO,EAAC,GAAD,CAAM,MAvBC,UAuBiB,GAIrC,SAAS,EAAO,CAAC,EAAsC,CACrD,IAAM,EAAc,EAAK,OAAS,YAC5B,EAAc,EAAK,UAAY,EAAK,SAAS,OAAS,EACtD,EAAa,EAAc,iBAAmB,GAAiB,EAAK,UAAY,KAAO,wBAE7F,GAAI,EACF,OAAO,EAAsG,OAAtG,CAAM,MAAO,EAAb,SAA0B,EAAc,EAAC,GAAD,CAAY,MAAM,UAAU,EAAK,EAAC,GAAD,CAAQ,MAAM,UAAU,EAAK,EAE/G,OAAO,EAAuD,OAAvD,CAAM,MAAO,EAAb,SAA0B,GAAY,EAAK,QAAQ,EAAI,EAGhE,SAAS,EAAkB,CAAC,EAAgE,CAC1F,OAAO,EAAM,IAAI,CAAC,KAAU,CAC1B,GAAI,EAAK,KACT,MAAO,EAAK,KACZ,KAAM,GAAQ,CAAI,EAClB,KAAM,EACN,SAAU,EAAK,SAAW,GAAmB,EAAK,QAAQ,EAAI,MAChE,EAAE,EAGJ,SAAS,EAAe,CAAC,EAAqD,CAC5E,IAAM,EAAO,EAAK,KACZ,EAAc,GAAM,OAAS,YAEnC,OACE,EAOE,OAPF,CAAM,MAAM,oBAAZ,SAOE,CANA,EAAoB,OAApB,UAAO,EAAK,MAAQ,EACnB,CAAC,GAAe,GAAM,UACrB,EAEE,GAFF,CAAO,QAAQ,UAAU,MAAM,eAA/B,SACG,EAAK,SACN,GAEJ,EAIC,SAAS,EAAQ,EAAG,SAAsC,CAC/D,IAAM,EAAY,GAAmB,CAAK,EAC1C,OAAO,EAAC,GAAD,CAAM,MAAO,EAAW,YAAa,GAAiB,EC1GxD,SAAS,EAAW,CAAC,EAAuB,CACjD,GAAI,IAAU,EAAG,MAAO,MAExB,IAAM,EAAQ,CAAC,IAAK,KAAM,KAAM,IAAI,EAChC,EAAO,EACP,EAAY,EAEhB,MAAO,GAAQ,MAAQ,EAAY,EAAM,OAAS,EAChD,GAAQ,KACR,IAGF,MAAO,GAAG,EAAK,QAAQ,GAAQ,GAAK,EAAI,CAAC,KAAK,EAAM,KCHtD,SAAS,EAAY,CAAC,EAA2B,CAC/C,GAAI,EAAK,SACP,EAAK,SAAS,KAAK,CAAC,EAAU,IAAc,CAC1C,GAAI,EAAS,OAAS,EAAU,KAAM,OAAO,EAAS,OAAS,YAAc,GAAK,EAClF,OAAO,EAAS,KAAK,cAAc,EAAU,IAAI,EAClD,EACD,EAAK,SAAS,QAAQ,EAAY,EAI/B,SAAS,EAAgB,CAAC,EAAqC,CACpE,GAAI,CAAC,EAAM,OAAQ,MAAO,CAAC,EAE3B,IAAM,EAAQ,EAAM,IAAI,CAAC,IAAS,EAAK,QAAQ,EAC3C,EAAW,GAEf,GAAI,EAAM,SAAW,EAAG,CACtB,IAAM,EAAY,EAAM,GACxB,GAAI,EAAW,CACb,IAAM,EAAQ,EAAU,MAAM,GAAG,EAAE,OAAO,OAAO,EACjD,GAAI,EAAM,QAAU,GAElB,GADA,EAAW,IAAM,EAAM,MAAM,EAAG,EAAM,OAAS,CAAC,EAAE,KAAK,GAAG,EACtD,IAAa,IAAK,EAAW,KAGhC,KACL,IAAM,EAAY,EAAM,IAAI,CAAC,IAAS,EAAK,MAAM,GAAG,EAAE,OAAO,OAAO,CAAC,EAC/D,EAAY,KAAK,IAAI,GAAG,EAAU,IAAI,CAAC,IAAS,EAAK,MAAM,CAAC,EAC5D,EAAmB,CAAC,EACpB,EAAa,EAAU,GAC7B,GAAI,EACF,QAAS,EAAQ,EAAG,EAAQ,EAAY,EAAG,GAAS,EAAG,CACrD,IAAM,EAAO,EAAW,GACxB,GAAI,GAAQ,EAAU,MAAM,CAAC,IAAS,EAAK,KAAW,CAAI,EACxD,EAAO,KAAK,CAAI,EAEhB,WAIN,GAAI,EAAO,OAAS,EAClB,EAAW,IAAM,EAAO,MAAM,EAAG,EAAE,EAAE,KAAK,GAAG,EAIjD,IAAM,EAAO,IAAI,IAEjB,QAAW,KAAQ,EAAO,CACxB,IAAI,EAAe,EAAK,SACxB,GAAI,GAAY,EAAa,WAAW,CAAQ,EAAG,EAAe,EAAa,UAAU,EAAS,MAAM,EACxG,GAAI,CAAC,EAAa,WAAW,GAAG,EAAG,EAAe,IAAM,EACxD,IAAM,EAAY,EAAa,MAAM,GAAG,EAAE,OAAO,OAAO,EACpD,EAAc,GAElB,QAAS,EAAQ,EAAG,EAAQ,EAAU,OAAS,EAAG,GAAS,EAAG,CAC5D,IAAM,EAAO,EAAU,GACvB,GAAI,CAAC,EAAM,SACX,IAAM,EAAa,EACnB,EAAc,EAAc,EAAc,IAAM,EAAO,IAAM,EAC7D,IAAM,EAAe,EAAK,IAAI,CAAW,EACzC,GAAI,CAAC,EAAc,CACjB,IAAM,EAAsB,CAC1B,KAAM,EACN,KAAM,EAAW,EACjB,KAAM,YACN,SAAU,CAAC,CACb,EACA,EAAK,IAAI,EAAa,CAAI,EAC1B,IAAM,EAAa,EAAa,EAAK,IAAI,CAAU,EAAI,OACvD,GAAI,GAAY,SAAU,EAAW,SAAS,KAAK,CAAI,EAClD,QAAI,EAAa,OAAS,OAC/B,EAAa,KAAO,YACpB,EAAa,SAAW,CAAC,EAI7B,IAAM,EAAW,EAAU,EAAU,OAAS,GAC9C,GAAI,EAAU,CACZ,IAAM,EAAW,EAAc,EAAc,IAAM,EAAW,IAAM,EAC9D,EAAsB,CAC1B,KAAM,EACN,KAAM,EAAW,EACjB,KAAM,OACN,SAAU,EAAK,SACf,cAAe,EAAK,aACtB,EACA,EAAK,IAAI,EAAU,CAAI,EACvB,IAAM,EAAa,EAAc,EAAK,IAAI,CAAW,EAAI,OACzD,GAAI,GAAY,SAAU,EAAW,SAAS,KAAK,CAAI,GAI3D,IAAM,EAAyB,CAAC,EAChC,QAAY,EAAM,KAAS,EAAM,CAC/B,IAAM,EAAa,EAAK,UAAU,EAAG,EAAK,YAAY,GAAG,CAAC,EAC1D,GAAI,CAAC,GAAc,CAAC,EAAK,IAAI,CAAU,EAAG,EAAM,KAAK,CAAI,EAS3D,OANA,EAAM,QAAQ,EAAY,EAC1B,EAAM,KAAK,CAAC,EAAU,IAAc,CAClC,GAAI,EAAS,OAAS,EAAU,KAAM,OAAO,EAAS,OAAS,YAAc,GAAK,EAClF,OAAO,EAAS,KAAK,cAAc,EAAU,IAAI,EAClD,EAEM,ECtGT,SAAS,EAA0B,CAAC,EAA4D,CAC9F,IAAM,EAAwC,CAC5C,CACE,mBAAoB,EAAO,mBAC3B,cAAe,EAAO,aACxB,CACF,EAEA,QAAW,KAAkB,EAAO,iBAAmB,CAAC,EACtD,EAAW,KAAK,CACd,mBAAoB,EAAe,oBAAsB,EAAO,mBAChE,cAAe,EAAe,eAAiB,EAAO,aACxD,CAAC,EAGH,OAAO,EAGT,SAAS,EAA6B,CACpC,EACA,EACoB,CACpB,OAAQ,OACD,iBACH,GAAI,EAAc,KAChB,MAAO,CACL,MAAO,EAAc,KACrB,IAAK,sBAAsB,EAAc,MAC3C,EAEF,UACG,QACH,GAAI,EAAc,MAChB,MAAO,CACL,MAAO,EAAc,MACrB,IAAK,4BAA4B,EAAc,OACjD,EAEF,UACG,OACH,GAAI,EAAc,QAChB,MAAO,CACL,MAAO,EAAc,QACrB,IAAK,oCAAoC,EAAc,SACzD,EAEF,UACG,aACH,GAAI,EAAc,KAChB,MAAO,CACL,MAAO,EAAc,KACrB,IAAK,sBAAsB,EAAc,MAC3C,EAEF,UACG,kBACA,WACH,GAAI,EAAc,IAChB,MAAO,CACL,MAAO,EAAc,IACrB,IAAK,EAAc,GACrB,EAEF,cAEA,OAAO,KAGX,OAAO,KAGF,SAAS,EAAa,CAAC,EAAoC,CAChE,OAAO,OAAO,IAAW,SAAW,EAAS,EAAO,KAG/C,SAAS,EAAoB,CAAC,EAA2C,CAC9E,IAAM,EAAM,IAAI,IAChB,QAAW,KAAQ,EAAO,CACxB,IAAM,EAAW,EAAK,OAAO,UAAY,CAAC,EAC1C,QAAW,KAAU,EAAU,CAC7B,IAAM,EAAO,GAAc,CAAM,EACjC,EAAI,IAAI,EAAM,EAAK,OAAO,IAAI,GAGlC,OAAO,EAGF,SAAS,EAAkB,CAAC,EAAsB,EAA8C,CACrG,IAAM,EAAY,IAAI,IAAI,CAAmB,EAC7C,OAAO,EAAM,OAAO,CAAC,IAAS,CAE5B,OADqB,EAAK,OAAO,cAAgB,CAAC,GAC9B,KAAK,CAAC,IAAe,EAAU,IAAI,CAAU,CAAC,EACnE,EAGI,SAAS,EAAa,CAAC,EAAgD,CAC5E,GAAI,EAAO,cAAc,KACvB,OAAO,EAAO,cAAc,KAG9B,QAAW,KAAkB,EAAO,iBAAmB,CAAC,EACtD,GAAI,EAAe,eAAe,KAChC,OAAO,EAAe,cAAc,KAIxC,OAAO,KAGF,SAAS,EAAa,CAAC,EAAqD,CACjF,QAAW,KAAiB,GAA2B,CAAM,EAAG,CAC9D,IAAM,EAAa,GAA8B,EAAc,mBAAoB,EAAc,aAAa,EAC9G,GAAI,EACF,OAAO,EAIX,OAAO,KCpGT,SAAS,EAAgB,CAAC,EAAqD,CAC7E,IAAM,EAAa,GAAc,CAAM,EACvC,GAAI,CAAC,EAAY,OAAO,KAExB,OACE,EAcE,MAdF,CAAK,MAAM,0BAAX,SAcE,CAbA,EAAyD,OAAzD,CAAM,MAAM,qCAAZ,kBAAyD,EACxD,EAAW,IACV,EAOE,IAPF,CACE,KAAM,EAAW,IACjB,OAAO,SACP,IAAI,sBACJ,MAAM,kDAJR,SAMG,EAAW,MACZ,EAEF,EAAgE,OAAhE,CAAM,MAAM,gCAAZ,SAA6C,EAAW,MAAQ,GAElE,EAQN,SAAS,EAAmB,EAAG,SAAgD,CAC7E,IAAM,EAAgB,EAAM,UAAU,KAAK,IAAI,EACzC,EAAY,EAAM,cAAgB,KAAK,EAAM,cAAc,KAAK,IAAI,KAAO,GAEjF,OACE,EAgEE,MAhEF,CAAK,MAAM,gDAAX,SAgEE,CA/DA,EAKE,MALF,CAAK,MAAM,0BAAX,SACE,EAGE,OAHF,CAAM,MAAM,sCAAZ,SAGE,CAFC,EACA,GACD,EACF,EACF,EAwDE,MAxDF,CAAK,MAAM,2BAAX,SAwDE,CAvDC,EAAM,oBACL,EAGE,MAHF,CAAK,MAAM,0BAAX,SAGE,CAFA,EAA6C,OAA7C,CAAM,MAAM,wBAAZ,mBAA6C,EAC7C,EAAC,GAAD,CAAoB,OAAQ,EAAM,mBAAoB,MAAO,EAAM,eAAe,MAAO,GACzF,EAEH,EAAM,eAAe,MACpB,EAUE,MAVF,CAAK,MAAM,0BAAX,SAUE,CATA,EAA2C,OAA3C,CAAM,MAAM,wBAAZ,iBAA2C,EAC3C,EAOE,IAPF,CACE,KAAM,sBAAsB,EAAM,cAAc,OAChD,OAAO,SACP,IAAI,sBACJ,MAAM,gCAJR,SAMG,EAAM,cAAc,KACrB,GACF,EAEH,EAAM,eAAe,SACpB,EAGE,MAHF,CAAK,MAAM,0BAAX,SAGE,CAFA,EAA8C,OAA9C,CAAM,MAAM,wBAAZ,oBAA8C,EAC9C,EAAuD,OAAvD,CAAM,MAAM,YAAZ,SAAyB,EAAM,cAAc,QAAU,GACvD,EAEH,EAAM,eAAe,OACpB,EAGE,MAHF,CAAK,MAAM,0BAAX,SAGE,CAFA,EAA4C,OAA5C,CAAM,MAAM,wBAAZ,kBAA4C,EAC5C,EAAqD,OAArD,CAAM,MAAM,YAAZ,SAAyB,EAAM,cAAc,MAAQ,GACrD,EAEH,EAAM,eAAe,KACpB,EAGE,MAHF,CAAK,MAAM,0BAAX,SAGE,CAFA,EAA0C,OAA1C,CAAM,MAAM,wBAAZ,gBAA0C,EAC1C,EAAqE,OAArE,CAAM,MAAM,8BAAZ,SAA2C,EAAM,cAAc,IAAM,GACrE,EAEH,EAAM,UAAY,EAAM,SAAS,OAAS,GACzC,EAGE,MAHF,CAAK,MAAM,yBAAX,SAGE,CAFA,EAA+C,OAA/C,CAAM,MAAM,wBAAZ,qBAA+C,EAC/C,EAAsG,OAAtG,CAAM,MAAM,YAAZ,SAAyB,EAAM,SAAS,IAAI,CAAC,IAAO,OAAO,IAAM,SAAW,EAAI,EAAE,IAAK,EAAE,KAAK,IAAI,EAAI,GACtG,EAEH,EAAM,UAAY,EAAM,SAAS,OAAS,GACzC,EASE,MATF,CAAK,MAAM,sBAAX,SASE,CARA,EAA+C,OAA/C,CAAM,MAAM,wBAAZ,qBAA+C,EAC/C,EAME,MANF,CAAK,MAAM,OAAX,SACG,EAAM,SAAS,IAAI,CAAC,EAAG,IACtB,EAEE,MAFF,CAAa,MAAM,oBAAnB,SAEE,CADC,EAAE,OADL,MACe,EAAE,SADP,CAER,CACH,EACD,GACF,GAEJ,GACF,EAUC,SAAS,EAAU,EAAG,UAAwC,CACnE,IAAM,EAAW,mBAAmB,EAAO,IAAI,GACvC,KAAM,EAAO,QAAS,GAAiB,EAAwB,SAAU,CAAC,CAAQ,CAAC,GACnF,KAAM,EAAS,QAAS,GAAmB,EACjD,UAAU,mBAAmB,CAAQ,YACrC,CAAC,CAAQ,CACX,GAEO,EAAY,GAAiB,EAAS,EAAK,GAC3C,EAAc,GAAmB,EAAwB,IAAI,GAC7D,EAAgB,GAAqB,EAAwB,IAAI,GACjE,EAAgB,GAAqB,EAAS,EAAK,GACnD,EAAmB,GAAwB,EAAsC,IAAI,GACrF,EAAU,GAAe,EAAS,EAAK,GACvC,EAAc,GAAmB,EAAqC,IAAI,EAE3E,EAAO,GAAO,KAAK,CAAC,IAAM,EAAE,OAAO,OAAS,CAAQ,GAAK,KACzD,EAAU,GAAgB,EAE1B,EAAkB,EAAQ,IAAM,GAAqB,GAAS,CAAC,CAAC,EAAG,CAAC,CAAK,CAAC,EAE1E,EAAsB,EAAQ,KAAO,GAAM,OAAO,UAAY,CAAC,GAAG,IAAI,EAAa,EAAG,CAAC,CAAI,CAAC,EAE5F,EAAiB,EACrB,IAAM,GAAmB,GAAS,CAAC,EAAG,CAAmB,EACzD,CAAC,EAAO,CAAmB,CAC7B,EAEM,EAAgB,GACpB,MAAO,IAAmB,CACxB,EAAc,EAAI,EAClB,EAAgB,IAAI,EACpB,EAAkB,IAAI,EAEtB,GAAI,CACF,IAAM,EAAS,MAAM,GACnB,UAAU,mBAAmB,CAAQ,YACrC,CAAE,OAAM,CACV,EAEA,GAAI,EAAO,UAAW,CACpB,IAAM,EAAU,EAAO,iBACnB,sBAAsB,EAAO,WAC7B,aAAa,EAAO,UACxB,EAAkB,CAAO,EAEzB,WAAW,IAAM,OAAO,SAAS,OAAO,EAAG,IAAI,EAE/C,OAAgB,EAAO,OAAS,qBAAqB,EAEvD,MAAO,EAAO,CACd,EAAgB,aAAiB,MAAQ,EAAM,QAAU,qBAAqB,SAC9E,CACA,EAAc,EAAK,IAGvB,CAAC,CAAQ,CACX,EAEM,EAAoB,GAAY,SAAY,CAChD,EAAkB,EAAI,EACtB,EAAqB,IAAI,EAEzB,GAAI,CACF,IAAM,EAAS,MAAM,GAA8B,UAAU,mBAAmB,CAAQ,iBAAkB,CAAC,CAAC,EAC5G,EAAqB,CAAM,EAC3B,MAAO,EAAO,CACd,EAAqB,CACnB,UAAW,GACX,eAAgB,UAChB,cAAe,UACf,UAAW,GACX,MAAO,aAAiB,MAAQ,EAAM,QAAU,cAClD,CAAC,SACD,CACA,EAAkB,EAAK,IAExB,CAAC,CAAQ,CAAC,EAEP,GAAe,GAAY,SAAY,CAC3C,EAAY,EAAI,EAChB,EAAgB,IAAI,EAEpB,GAAI,CACF,IAAM,EAAS,MAAM,GAA6B,UAAU,mBAAmB,CAAQ,WAAY,CAAC,CAAC,EAErG,GADA,EAAgB,CAAM,EAClB,EAAO,QACT,WAAW,IAAM,OAAO,SAAS,OAAO,EAAG,IAAI,EAEjD,MAAO,EAAO,CACd,EAAgB,CACd,QAAS,GACT,UAAW,GACX,MAAO,aAAiB,MAAQ,EAAM,QAAU,eAClD,CAAC,SACD,CACA,EAAY,EAAK,IAElB,CAAC,CAAQ,CAAC,EAEb,GAAI,EACF,OACE,EAEE,MAFF,CAAK,cAAY,aAAa,MAAM,wCAApC,SACE,EAA+C,MAA/C,CAAK,MAAM,wBAAX,sBAA+C,EAC/C,EAIN,GAAI,CAAC,EACH,OACE,EAKE,MALF,CAAK,cAAY,aAAa,MAAM,mBAApC,SAKE,CAJA,EAAwD,MAAxD,CAAK,MAAM,6BAAX,0BAAwD,EACxD,EAEE,GAFF,CAAQ,QAAQ,OAAO,QAAO,GAA9B,SACE,EAA2B,IAA3B,CAAG,KAAK,IAAR,0BAA2B,EAC3B,GACF,EAIN,IAAM,GAAY,GAAiB,EAAK,OAAS,CAAC,CAAC,EAC7C,GAAa,GAAc,EAAK,MAAM,EAE5C,OACE,EAiOE,MAjOF,CAAK,cAAY,aAAa,MAAM,YAApC,SAiOE,CA/NA,EA2CE,MA3CF,CAAK,MAAM,oCAAX,SA2CE,CA1CA,EAGE,MAHF,CAAK,MAAM,0BAAX,SAGE,CAFA,EAAmD,KAAnD,CAAI,MAAM,qBAAV,SAAgC,EAAK,OAAO,KAAO,EACnD,EAAC,GAAD,CAAa,OAAQ,EAAK,QAAQ,OAAQ,GAC1C,EACF,EAqCE,MArCF,CAAK,MAAM,0BAAX,SACG,EAAK,QAAQ,SAAW,YACvB,eA4BE,CA3BA,EAQE,GARF,CACE,QAAQ,UACR,KAAK,KACL,QAAS,EACT,SAAU,GAAkB,GAAc,EAJ5C,SAQE,CAFA,EAAC,GAAD,CAAQ,MAAO,WAAW,EAAiB,eAAiB,KAAM,EACjE,EAAiB,cAAgB,qBAClC,EACF,EAQE,GARF,CACE,QAAQ,UACR,KAAK,KACL,QAAS,GACT,SAAU,GAAY,GAAc,EAJtC,SAQE,CAFA,EAAC,GAAD,CAAe,MAAO,WAAW,EAAW,eAAiB,KAAM,EAClE,EAAW,cAAgB,UAC5B,EACF,EAQE,GARF,CACE,QAAQ,UACR,KAAK,KACL,QAAS,IAAM,EAAc,EAAI,EACjC,SAAU,GAAc,GAAY,EAJtC,SAQE,CAFA,EAAC,GAAD,CAAW,MAAO,WAAW,EAAa,eAAiB,KAAM,EAChE,EAAa,gBAAkB,cAChC,GACF,EAEF,EAGE,GAHF,CAAQ,QAAQ,UAAU,KAAK,KAAK,QAAS,IAAM,EAAc,EAAK,EAAG,SAAU,EAAnF,SAGE,CAFA,EAAC,GAAD,CAAU,MAAM,UAAU,EACzB,EAAa,gBAAkB,WAChC,EAEJ,GACF,EAGD,GACC,EAEE,MAFF,CAAK,MAAM,+FAAX,SACG,EACD,EAEH,GACC,EAEE,MAFF,CAAK,MAAM,6GAAX,SACG,EACD,EAIH,GAAqB,CAAC,EAAkB,OACvC,EAUE,MAVF,CACE,MAAO,gCACL,EAAkB,UACd,oFACA,kFAJR,SAOG,EAAkB,UACf,qBAAqB,EAAkB,oBAAmB,EAAkB,gBAC5E,eAAe,EAAkB,kBACrC,EAEH,GAAmB,OAClB,EAEE,MAFF,CAAK,MAAM,+FAAX,SACG,EAAkB,MACnB,EAIH,GAAgB,CAAC,EAAa,OAAS,EAAa,SACnD,EAEE,MAFF,CAAK,MAAM,6GAAX,SACG,YAAY,EAAa,gBAAe,EAAa,aACtD,EAEH,GAAc,OACb,EAEE,MAFF,CAAK,MAAM,+FAAX,SACG,EAAa,MACd,EAIJ,EA6FE,MA7FF,CAAK,MAAO,cAAc,EAAK,MAAM,WAAa,EAAI,iBAAmB,KAAzE,SA6FE,CA5FA,EAiEE,EAjEF,CAAY,MAAM,WAAW,KAAM,EAAC,GAAD,CAAM,MAAM,UAAU,EAAzD,SACE,EA+DE,MA/DF,CAAK,MAAM,YAAX,SA+DE,CA9DA,EAGE,MAHF,CAAK,MAAM,0BAAX,SAGE,CAFA,EAAyD,OAAzD,CAAM,MAAM,qCAAZ,kBAAyD,EACzD,EAAC,GAAD,CAAoB,OAAQ,EAAK,OAAO,mBAAoB,MAAO,EAAK,OAAO,cAAc,MAAO,GACpG,EACD,GAAiB,EAAK,MAAM,EAC7B,EAGE,MAHF,CAAK,MAAM,0BAAX,SAGE,CAFA,EAA0D,OAA1D,CAAM,MAAM,qCAAZ,mBAA0D,EAC1D,EAA+F,OAA/F,CAAM,MAAM,cAAZ,SAA2B,EAAK,QAAQ,kBAAoB,EAAK,OAAO,SAAW,UAAY,GAC/F,EACF,EAKE,MALF,CAAK,MAAM,0BAAX,SAKE,CAJA,EAA4D,OAA5D,CAAM,MAAM,qCAAZ,qBAA4D,EAC5D,EAEE,OAFF,CAAM,MAAM,cAAZ,SACG,EAAK,QAAQ,YAAc,IAAI,KAAK,EAAK,QAAQ,WAAW,EAAE,mBAAmB,EAAI,gBACtF,GACF,EACD,EAAK,eAAiB,GACrB,EAGE,MAHF,CAAK,MAAM,0BAAX,SAGE,CAFA,EAA8D,OAA9D,CAAM,MAAM,qCAAZ,uBAA8D,EAC9D,EAA8D,OAA9D,CAAM,MAAM,cAAZ,SAA2B,GAAY,EAAK,cAAc,EAAI,GAC9D,EAEH,EAAK,OAAO,UACX,EAGE,MAHF,CAAK,MAAM,0BAAX,SAGE,CAFA,EAA2D,OAA3D,CAAM,MAAM,qCAAZ,oBAA2D,EAC3D,EAAuF,OAAvF,CAAM,MAAM,mDAAZ,SAAgE,EAAK,OAAO,SAAW,GACvF,EAEH,EAAK,OAAO,cAAgB,EAAK,OAAO,aAAa,OAAS,GAC7D,EAgBE,MAhBF,CAAK,MAAM,yBAAX,SAgBE,CAfA,EAA6D,OAA7D,CAAM,MAAM,qCAAZ,sBAA6D,EAC7D,EAaE,MAbF,CAAK,MAAM,uBAAX,SACG,EAAK,OAAO,aAAa,IAAI,CAAC,EAAY,IAAM,CAC/C,IAAM,EAAiB,EAAgB,IAAI,CAAU,EACrD,OACE,EAME,IANF,CAEE,KAAM,UAAU,mBAAmB,GAAkB,CAAU,IAC/D,MAAM,wCAHR,SAKG,GAAkB,GAJd,CAKL,EAEL,EACD,GACF,EAEH,EAAe,OAAS,GACvB,EAaE,MAbF,CAAK,MAAM,yBAAX,SAaE,CAZA,EAA8D,OAA9D,CAAM,MAAM,qCAAZ,uBAA8D,EAC9D,EAUE,MAVF,CAAK,MAAM,uBAAX,SACG,EAAe,IAAI,CAAC,EAAS,IAC5B,EAME,IANF,CAEE,KAAM,UAAU,mBAAmB,EAAQ,OAAO,IAAI,IACtD,MAAM,wCAHR,SAKG,EAAQ,OAAO,MAJX,CAKL,CACH,EACD,GACF,GAEJ,EACF,EAED,EAAK,MAAM,WAAa,GACvB,EAsBE,EAtBF,CAAY,MAAM,QAAQ,KAAM,EAAC,GAAD,CAAK,MAAM,UAAU,EAArD,SACE,EAoBE,MApBF,CAAK,MAAM,YAAX,SAoBE,CAnBA,EAGE,MAHF,CAAK,MAAM,0BAAX,SAGE,CAFA,EAA6D,OAA7D,CAAM,MAAM,qCAAZ,sBAA6D,EAC7D,EAAoE,OAApE,CAAM,MAAM,cAAZ,SAA2B,EAAK,MAAM,WAAW,eAAe,EAAI,GACpE,EACF,EAcE,MAdF,CAAK,MAAM,YAAX,SACG,EAAK,MAAM,SAAS,IAAI,CAAC,IACxB,EAUE,MAVF,CAA4B,MAAM,sCAAlC,SAUE,CATA,EAGE,MAHF,CAAK,MAAM,0CAAX,SAGE,CAFA,EAAmF,OAAnF,CAAM,MAAM,mDAAZ,SAAgE,EAAM,WAAa,EACnF,EAAuE,OAAvE,CAAM,MAAM,sBAAZ,SAAuE,CAApC,EAAM,MAAM,eAAe,EAA9D,SAAuE,GACvE,EACD,EAAM,YACL,EAEE,MAFF,CAAK,MAAM,qCAAX,SAEE,CAFF,aACa,IAAI,KAAK,EAAM,UAAU,EAAE,eAAe,GACrD,IARI,EAAM,UAUd,CACH,EACD,GACF,EACF,GAEJ,EAGF,EAAC,GAAD,CAAgB,SAAU,EAAK,OAAO,KAAM,EAG3C,EAAK,OAAO,iBAAmB,EAAK,OAAO,gBAAgB,OAAS,GACnE,EAME,EANF,CAAY,MAAM,0BAA0B,KAAM,EAAC,GAAD,CAAQ,MAAM,UAAU,EAA1E,SACE,EAIE,MAJF,CAAK,MAAM,YAAX,SACG,EAAK,OAAO,gBAAgB,IAAI,CAAC,EAAO,IACvC,EAAC,GAAD,CAA6B,MAAO,GAAV,CAAiB,CAC5C,EACD,EACF,EAIH,EAAK,QAAQ,SAAW,aACvB,EAME,EANF,CAAY,MAAM,QAAQ,KAAM,EAAC,GAAD,CAAM,MAAM,UAAU,EAAtD,UACI,EAAK,OAAO,QAAU,GAAK,EAC3B,EAAC,GAAD,CAAU,MAAO,GAAW,EAE5B,EAAsE,MAAtE,CAAK,MAAM,yCAAX,4BAAsE,EAExE,EAIH,EAAK,QAAQ,SAAW,aACvB,EAME,EANF,CAAY,MAAM,UAAU,KAAM,EAAC,GAAD,CAAS,MAAM,UAAU,EAA3D,SACE,EAAC,GAAD,CACE,QAAS,GAAS,SAAW,CAAC,EAC9B,YAAa,GAAS,aAAe,KACrC,YAAa,GAAS,aAAe,GACvC,EACA,EAIH,IAAc,EAAC,GAAD,CAAY,SAAU,EAAK,OAAO,KAAM,KAAM,GAAY,GACzE,EC7dN,SAAS,EAAmB,EAAG,UAAiD,CAC9E,GAAI,IAAW,MACb,OAAO,EAAC,GAAD,CAAW,MAAM,yBAAyB,MAAM,uBAAuB,EAEhF,OAAO,EAAC,GAAD,CAAW,MAAM,yBAAyB,MAAM,8BAA8B,EAGhF,SAAS,EAAW,EAAgB,CACzC,IAAQ,OAAM,WAAY,EAAuB,eAAe,EAE1D,EAAQ,GAAM,OAAS,CAAC,EAE9B,OACE,EA4BE,EA5BF,CACE,MAAM,iBACN,KAAM,EAAC,GAAD,CAAO,MAAM,gCAAgC,EACnD,MAAM,SACN,aAAa,uBAJf,SAMG,EACC,EAAuD,MAAvD,CAAK,MAAM,gCAAX,sBAAuD,EACrD,EAAM,SAAW,EACnB,EAAgF,MAAhF,CAAK,MAAM,iDAAX,8BAAgF,EAEhF,EAeE,MAfF,CAAK,MAAM,YAAX,SACG,EAAM,IAAI,CAAC,IACV,EAWE,IAXF,CAEE,KAAM,UAAU,mBAAmB,EAAK,IAAI,IAC5C,MAAM,oFAHR,SAWE,CANA,EAAC,GAAD,CAAU,MAAM,4FAA4F,EAC5G,EAAuE,OAAvE,CAAM,MAAM,8CAAZ,SAA2D,EAAK,KAAO,EACvE,EAGE,OAHF,CAAM,MAAM,sEAAZ,SAGE,CAFA,EAAC,GAAD,CAAqB,OAAQ,EAAK,gBAAiB,EAClD,EAAK,cACN,IATG,EAAK,cAUV,CACH,EACD,EAEJ,ECzCC,SAAS,EAAQ,EAAG,QAAO,QAAO,QAAQ,mBAAkD,CACjG,OACE,EAKE,GALF,CAAM,MAAM,mBAAZ,SACE,EAGE,GAHF,CAAa,MAAM,YAAnB,SAGE,CAFA,EAAsD,MAAtD,CAAK,MAAO,EAAG,qBAAsB,CAAK,EAA1C,SAA8C,EAAQ,EACtD,EAAoD,MAApD,CAAK,MAAM,gCAAX,SAA4C,EAAQ,GACpD,EACF,ECUN,SAAS,EAAmB,CAC1B,EACA,EACA,EACA,EACA,EACA,EAC+B,CAC/B,OAAO,EAAQ,IAAI,CAAC,IAAU,CAC5B,GAAI,EAAM,OAAS,YACjB,MAAO,CACL,GAAI,EAAM,KACV,MAAO,EAAM,KACb,KAAM,EAAC,GAAD,CAAY,MAAM,yBAAyB,EACjD,SAAU,EAAM,SACZ,GACE,EAAM,SACN,EACA,EACA,EACA,EACA,CACF,EACA,CAAC,CACP,EAIF,IAAM,EAAS,EAAM,SAAW,EAAc,IAAI,EAAM,QAAQ,EAAI,OAC9D,EACJ,IAAW,YAAc,iBAAmB,IAAW,QAAU,eAAiB,gBAC9E,EAAW,GAAkB,CAAM,EAEzC,MAAO,CACL,GAAI,EAAM,KACV,MAAO,EAAM,KACb,KAAM,EAAC,GAAD,CAAU,MAAO,WAAW,IAAe,EACjD,cAAe,EAAC,OAAD,CAAM,MAAO,qCAAqC,IAAY,EAC7E,KAAM,CACJ,SAAU,EAAM,SAChB,OAAQ,GACR,cAAe,EAAM,SAAW,EAAc,IAAI,EAAM,QAAQ,EAAI,OACpE,MAAO,EAAM,SAAW,EAAa,IAAI,EAAM,QAAQ,EAAI,OAC3D,UAAW,EAAM,SAAW,EAAiB,IAAI,EAAM,QAAQ,EAAI,OACnE,SACA,eAAgB,EAAM,SAAW,EAAkB,IAAI,EAAM,QAAQ,EAAI,MAC3E,CACF,EACD,EAMH,SAAS,EAAiB,CAAC,EAAoC,CAC7D,OAAQ,OACD,YACH,MAAO,mBACJ,QACH,MAAO,qBAEP,MAAO,eAQb,SAAS,EAAW,CAAC,EAAsD,CACzE,GAAI,EAAK,MAAM,QAAU,EAAK,MAAM,SAAS,UAAU,EAAG,CACxD,IAAM,EAAW,EAAK,MAAM,QAAQ,cAAe,EAAE,EAC/C,EAAY,EAAK,KAAK,WAAa,EACnC,EAAa,EAAK,KAAK,gBAAkB,EAC/C,OACE,EAUE,OAVF,CAAM,MAAM,2CAAZ,SAUE,CATA,EAGE,OAHF,UAGE,CAFC,EACD,EAAsC,OAAtC,CAAM,MAAM,gBAAZ,oBAAsC,GACtC,EACF,EAIE,OAJF,CAAM,MAAM,0BAAZ,SAIE,CAHC,EAAK,KAAK,eAAiB,EAAC,GAAD,CAAoB,OAAQ,EAAK,KAAK,cAAe,MAAO,EAAK,KAAK,MAAO,EACzG,EAA+D,OAA/D,CAAM,MAAM,gCAAZ,SAA+D,CAAlB,EAA7C,UAA+D,EAC9D,EAAa,GAAK,EAA2E,OAA3E,CAAM,MAAM,oCAAZ,SAAiD,GAAY,CAAU,EAAI,GAC9F,GACF,EAGN,OAAO,EAAK,MAGd,SAAS,EAAe,CAAC,EAAyC,CAChE,GAAI,EAAK,MAAM,SACb,OAAO,SAAS,KAAO,UAAU,mBAAmB,EAAK,KAAK,QAAQ,IAInE,SAAS,EAAa,EAAG,SAA0C,CACxE,IAAQ,KAAM,EAAU,WAAY,EAA2B,oBAAoB,EAG7E,EAAgB,IAAI,IACpB,EAAgB,IAAI,IACpB,EAAe,IAAI,IACnB,EAAmB,IAAI,IACvB,EAAoB,IAAI,IAC9B,QAAW,KAAQ,EACjB,EAAc,IAAI,EAAK,OAAO,KAAM,EAAK,QAAQ,MAAM,EACvD,EAAc,IAAI,EAAK,OAAO,KAAM,EAAK,OAAO,kBAAkB,EAClE,EAAa,IAAI,EAAK,OAAO,KAAM,EAAK,OAAO,cAAc,OAAS,EAAK,EAC3E,EAAiB,IAAI,EAAK,OAAO,KAAM,EAAK,MAAM,MAAM,EACxD,EAAkB,IAAI,EAAK,OAAO,KAAM,EAAK,cAAc,EAG7D,GAAI,EACF,OACE,EAEE,EAFF,CAAY,MAAM,aAAa,KAAM,EAAC,GAAD,CAAY,MAAM,UAAU,EAAjE,SACE,EAAuD,MAAvD,CAAK,MAAM,gCAAX,sBAAuD,EACvD,EAIN,IAAM,EAAY,EACd,GACE,EAAS,QACT,EACA,EACA,EACA,EACA,CACF,EACA,CAAC,EAEL,GAAI,EAAU,SAAW,EACvB,OACE,EAEE,EAFF,CAAY,MAAM,aAAa,KAAM,EAAC,GAAD,CAAY,MAAM,UAAU,EAAjE,SACE,EAAgE,MAAhE,CAAK,MAAM,gCAAX,+BAAgE,EAChE,EAIN,OACE,EAQE,EARF,CAAY,MAAM,aAAa,KAAM,EAAC,GAAD,CAAY,MAAM,UAAU,EAAjE,SACE,EAAC,GAAD,CACE,MAAO,EACP,gBAAiB,GACjB,YAAa,GACb,YAAa,GACb,cAAc,OAChB,EACA,ECjKN,SAAS,EAAkB,CAAC,EAA2B,CAErD,IAAM,EADM,KAAK,IAAI,EACF,EAEb,EAAU,KAAK,MAAM,EAAO,IAAI,EACtC,GAAI,EAAU,GACZ,MAAO,WAGT,IAAM,EAAU,KAAK,MAAM,EAAU,EAAE,EACvC,GAAI,EAAU,GACZ,MAAO,GAAG,WAAiB,IAAY,EAAI,GAAK,UAGlD,IAAM,EAAQ,KAAK,MAAM,EAAU,EAAE,EACrC,GAAI,EAAQ,GACV,MAAO,GAAG,SAAa,IAAU,EAAI,GAAK,UAG5C,IAAM,EAAO,KAAK,MAAM,EAAQ,EAAE,EAClC,GAAI,EAAO,GACT,MAAO,GAAG,QAAW,IAAS,EAAI,GAAK,UAGzC,IAAM,EAAS,KAAK,MAAM,EAAO,EAAE,EACnC,MAAO,GAAG,UAAe,IAAW,EAAI,GAAK,UAG/C,SAAS,EAAiB,CAAC,EAA2B,CACpD,OAAO,EAAK,MAAM,SAAS,OAAO,CAAC,EAAQ,IAAS,CAClD,GAAI,CAAC,EAAK,WACR,OAAO,EAGT,IAAM,EAAY,KAAK,MAAM,EAAK,UAAU,EAC5C,GAAI,OAAO,MAAM,CAAS,EACxB,OAAO,EAGT,OAAO,KAAK,IAAI,EAAQ,CAAS,GAChC,CAAC,EAGN,SAAS,EAAe,CAAC,EAAwC,CAC/D,OAAO,EACJ,IAAI,CAAC,KAAU,CACd,KAAM,EAAK,OAAO,KAClB,MAAO,EAAK,MAAM,WAClB,WAAY,GAAkB,CAAI,CACpC,EAAE,EACD,OAAO,CAAC,IAAS,EAAK,MAAQ,CAAC,EAWpC,SAAS,EAAa,EAAG,QAAO,OAAM,QAAO,YAAW,aAA8C,CACpG,OACE,EAiBE,EAjBF,CAAY,MAAO,EAAO,KAAM,EAAM,MAAM,SAAS,aAAa,uBAAlE,SACG,EAAM,SAAW,EAChB,EAAyE,MAAzE,CAAK,MAAM,iDAAX,SAA6D,EAAY,EAEzE,EAWE,MAXF,CAAK,MAAM,YAAX,SACG,EAAM,IAAI,CAAC,IACV,EAOE,IAPF,CAEE,KAAM,UAAU,mBAAmB,EAAK,IAAI,IAC5C,MAAM,oFAHR,SAOE,CAFA,EAAuE,OAAvE,CAAM,MAAM,8CAAZ,SAA2D,EAAK,KAAO,EACvE,EAA6E,OAA7E,CAAM,MAAM,8CAAZ,SAA2D,EAAU,CAAI,EAAI,IALxE,EAAK,IAMV,CACH,EACD,EAEJ,EAIC,SAAS,EAAK,EAAgB,CACnC,IAAQ,KAAM,EAAO,WAAY,EAAwB,QAAQ,EAE3D,EAAY,GAAS,CAAC,EACtB,EAAa,EAAU,OAAO,CAAC,EAAK,IAAS,GAAO,EAAK,OAAO,QAAU,GAAI,CAAC,EAC/E,EAAiB,EAAU,OAAO,CAAC,IAAS,EAAK,QAAQ,SAAW,WAAW,EAAE,OACjF,EAAmB,EAAU,OAAO,CAAC,EAAK,IAAS,GAAO,EAAK,gBAAkB,GAAI,CAAC,EACtF,EAAa,GAAgB,CAAS,EACtC,EAAW,EACd,SAAS,CAAC,EAAU,IAAc,EAAU,MAAQ,EAAS,OAAS,EAAU,WAAa,EAAS,UAAU,EAChH,MAAM,EAAG,EAAE,EACR,EAAmB,EACtB,SAAS,CAAC,EAAU,IAAc,EAAU,WAAa,EAAS,YAAc,EAAU,MAAQ,EAAS,KAAK,EAChH,MAAM,EAAG,EAAE,EAEd,GAAI,EACF,OACE,EAEE,MAFF,CAAK,cAAY,QAAQ,MAAM,wCAA/B,SACE,EAA+C,MAA/C,CAAK,MAAM,wBAAX,sBAA+C,EAC/C,EAIN,OACE,EA+BE,MA/BF,CAAK,cAAY,QAAQ,MAAM,YAA/B,SA+BE,CA9BA,EAKE,MALF,CAAK,MAAM,yBAAX,SAKE,CAJA,EAAC,GAAD,CAAU,MAAO,EAAU,OAAQ,MAAM,cAAc,MAAM,gBAAgB,EAC7E,EAAC,GAAD,CAAU,MAAO,EAAgB,MAAM,YAAY,MAAM,iBAAiB,EAC1E,EAAC,GAAD,CAAU,MAAO,EAAY,MAAM,gBAAgB,MAAM,kBAAkB,EAC3E,EAAC,GAAD,CAAU,MAAO,GAAY,CAAgB,EAAG,MAAM,cAAc,MAAM,kBAAkB,GAC5F,EAEF,EAgBE,MAhBF,CAAK,MAAM,4BAAX,SAgBE,CAfA,EAAC,GAAD,EAAa,EACb,EAAC,GAAD,CACE,MAAM,qBACN,KAAM,EAAC,GAAD,CAAS,MAAM,gCAAgC,EACrD,MAAO,EACP,UAAW,CAAC,IAAS,GAAmB,EAAK,UAAU,EACvD,UAAU,wBACZ,EACA,EAAC,GAAD,CACE,MAAM,YACN,KAAM,EAAC,GAAD,CAAK,MAAM,gCAAgC,EACjD,MAAO,EACP,UAAW,CAAC,IAAS,GAAG,EAAK,MAAM,eAAe,SAClD,UAAU,wBACZ,GACA,EAEF,EAEE,MAFF,UACE,EAAC,GAAD,CAAe,MAAO,EAAW,EACjC,EAED,EAAU,SAAW,GAAK,EAAyE,MAAzE,CAAK,MAAM,yCAAX,+BAAyE,GACpG,ECjJC,SAAS,EAAG,EAAgB,CACjC,OACE,EAcE,GAdF,UACE,EAYE,MAZF,CAAK,MAAM,6CAAX,SAYE,CAXA,EAAC,GAAD,EAAK,EACL,EAQE,OARF,CAAM,MAAM,8BAAZ,SACE,EAME,GANF,UAME,CALA,EAAC,GAAD,CAAO,KAAK,IAAI,UAAW,GAAO,EAClC,EAAC,GAAD,CAAO,KAAK,eAAe,UAAW,GAAY,EAClD,EAAC,GAAD,CAAO,KAAK,UAAU,UAAW,GAAQ,EACzC,EAAC,GAAD,CAAO,KAAK,YAAY,UAAW,GAAU,EAC7C,EAAC,GAAD,CAAO,QAAO,GAAC,UAAW,GAAU,GACpC,EACF,EACF,EAAC,GAAD,EAAgB,GAChB,EACF,ECnBN,GAAI,OAAO,OAAW,IAAa,CACjC,IAAM,EAAa,SAAS,eAAe,KAAK,EAChD,GAAI,EACF,GAAQ,EAAE,GAAK,CAAC,CAAC,EAAG,CAAU",
|
|
100
|
+
"debugId": "BDA07D213A51606D64756E2164756E21",
|
|
101
101
|
"names": []
|
|
102
102
|
}
|