@exponential_app/eui 0.3.0 → 0.4.0
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/catalog/a11y.json +10 -0
- package/catalog/core.catalog.json +284 -6
- package/catalog/core.schema.json +437 -4
- package/catalog/layout.json +3 -2
- package/catalog/limits.json +10 -1
- package/catalog/macros.json +1 -0
- package/catalog/recipes.json +3 -1
- package/catalog/strings.json +9 -2
- package/catalog/style.json +21 -0
- package/catalog/theme.schema.json +4435 -3676
- package/conformance/manifest.json +2 -2
- package/conformance/motion/build-corpus.ts +232 -0
- package/conformance/motion/corpus/SOURCES.md +117 -0
- package/conformance/motion/corpus/images/footage_0.json +1 -0
- package/conformance/motion/corpus/images/img_0.jpg +0 -0
- package/conformance/motion/corpus/images/img_1.jpg +0 -0
- package/conformance/motion/corpus/images/triangle.png +0 -0
- package/conformance/motion/corpus/skottie-3d-parenting-nocamera.json +367 -0
- package/conformance/motion/corpus/skottie-auto-orient-2.json +292 -0
- package/conformance/motion/corpus/skottie-auto-orient.json +717 -0
- package/conformance/motion/corpus/skottie-bezier-extranormal.json +199 -0
- package/conformance/motion/corpus/skottie-blendmode-hardmix.json +558 -0
- package/conformance/motion/corpus/skottie-chained-mattes.json +259 -0
- package/conformance/motion/corpus/skottie-dropshadow-ramp.json +852 -0
- package/conformance/motion/corpus/skottie-dropshadow-style.json +278 -0
- package/conformance/motion/corpus/skottie-effects-transform.json +385 -0
- package/conformance/motion/corpus/skottie-fill-effect.json +358 -0
- package/conformance/motion/corpus/skottie-fill-rule.json +457 -0
- package/conformance/motion/corpus/skottie-gaussian-blur.json +670 -0
- package/conformance/motion/corpus/skottie-gradient-opacity.json +451 -0
- package/conformance/motion/corpus/skottie-gradient-radial-highlight.json +581 -0
- package/conformance/motion/corpus/skottie-hidden-shapes-layers.json +381 -0
- package/conformance/motion/corpus/skottie-huesaturation-effect.json +1117 -0
- package/conformance/motion/corpus/skottie-invert-effect.json +665 -0
- package/conformance/motion/corpus/skottie-luma-matte.json +239 -0
- package/conformance/motion/corpus/skottie-mask-feather.json +892 -0
- package/conformance/motion/corpus/skottie-masking-opaque.json +2376 -0
- package/conformance/motion/corpus/skottie-masking-translucent.json +2376 -0
- package/conformance/motion/corpus/skottie-matte-blendmode.json +196 -0
- package/conformance/motion/corpus/skottie-matte-nonsequential.json +722 -0
- package/conformance/motion/corpus/skottie-matte-visible.json +666 -0
- package/conformance/motion/corpus/skottie-mergepaths-effect.json +722 -0
- package/conformance/motion/corpus/skottie-motion-blur-mask.json +120 -0
- package/conformance/motion/corpus/skottie-nested-animation.json +253 -0
- package/conformance/motion/corpus/skottie-offsetpaths-effect.json +525 -0
- package/conformance/motion/corpus/skottie-phonehub-connecting.json +947 -0
- package/conformance/motion/corpus/skottie-puckerbloat-effect.json +339 -0
- package/conformance/motion/corpus/skottie-repeater.json +234 -0
- package/conformance/motion/corpus/skottie-sample-1.json +168 -0
- package/conformance/motion/corpus/skottie-sample-search.json +329 -0
- package/conformance/motion/corpus/skottie-spatial-supernormal.json +898 -0
- package/conformance/motion/corpus/skottie-text-animator-1.json +1286 -0
- package/conformance/motion/corpus/skottie-text-fill-over-stroke.json +1014 -0
- package/conformance/motion/corpus/skottie-text-tracking.json +950 -0
- package/conformance/motion/corpus/skottie-text-valign.json +484 -0
- package/conformance/motion/corpus/skottie-time-reverse.json +297 -0
- package/conformance/motion/corpus/skottie-transform-skew.json +290 -0
- package/conformance/motion/corpus/skottie-trimpath-fill.json +933 -0
- package/conformance/motion/corpus/skottie-trimpath-modes.json +266 -0
- package/conformance/motion/corpus/skottie-tritone-effect.json +379 -0
- package/conformance/motion/corpus/spec-blend-mode.json +531 -0
- package/conformance/motion/corpus/spec-ellipse.json +142 -0
- package/conformance/motion/corpus/spec-fill.json +193 -0
- package/conformance/motion/corpus/spec-gradient-stroke.json +1263 -0
- package/conformance/motion/corpus/spec-gradient.json +1255 -0
- package/conformance/motion/corpus/spec-mask.json +773 -0
- package/conformance/motion/corpus/spec-masks.json +676 -0
- package/conformance/motion/corpus/spec-matte.json +390 -0
- package/conformance/motion/corpus/spec-metadata.json +1 -0
- package/conformance/motion/corpus/spec-path.json +177 -0
- package/conformance/motion/corpus/spec-pucker-bloat.json +179 -0
- package/conformance/motion/corpus/spec-rectangle.json +145 -0
- package/conformance/motion/corpus/spec-rounded-corners.json +187 -0
- package/conformance/motion/corpus/spec-slots.json +325 -0
- package/conformance/motion/corpus/spec-star.json +159 -0
- package/conformance/motion/corpus/spec-stroke.json +156 -0
- package/conformance/motion/corpus/spec-test-ellipse-xy-pos.json +141 -0
- package/conformance/motion/corpus/spec-test-gradient-fill.json +1 -0
- package/conformance/motion/corpus/spec-test-gradient-stroke.json +229 -0
- package/conformance/motion/corpus/spec-test-unknown-shape.json +63 -0
- package/conformance/motion/corpus/spec-time-remap.json +1090 -0
- package/conformance/motion/corpus/spec-time-stretch.json +594 -0
- package/conformance/motion/corpus/spec-transform.json +273 -0
- package/conformance/motion/corpus/spec-trim-path.json +209 -0
- package/conformance/motion/corpus/web-adrock.json +1 -0
- package/conformance/motion/corpus/web-bacon.json +1 -0
- package/conformance/motion/corpus/web-banner.json +1 -0
- package/conformance/motion/corpus/web-bodymovin.json +1 -0
- package/conformance/motion/corpus/web-dalek.json +1 -0
- package/conformance/motion/corpus/web-footage-data.json +1 -0
- package/conformance/motion/corpus/web-lights.json +1 -0
- package/conformance/motion/corpus/web-ripple.json +1 -0
- package/conformance/motion/corpus/web-starfish.json +1 -0
- package/conformance/motion/known-gaps.json +35 -0
- package/conformance/motion/parity/group-transforms-parenting@0.png +0 -0
- package/conformance/motion/parity/group-transforms-parenting@10.png +0 -0
- package/conformance/motion/parity/hidden-unknown-inactive@0.png +0 -0
- package/conformance/motion/parity/keyframes-transform@0.png +0 -0
- package/conformance/motion/parity/keyframes-transform@10.png +0 -0
- package/conformance/motion/parity/keyframes-transform@15.png +0 -0
- package/conformance/motion/parity/keyframes-transform@5.png +0 -0
- package/conformance/motion/parity/layer-opacity-blend@0.png +0 -0
- package/conformance/motion/parity/linear-gradient@0.png +0 -0
- package/conformance/motion/parity/masks-modes@0.png +0 -0
- package/conformance/motion/parity/matte-alpha@0.png +0 -0
- package/conformance/motion/parity/matte-luma@0.png +0 -0
- package/conformance/motion/parity/matte-parent-tp@0.png +0 -0
- package/conformance/motion/parity/path-evenodd@0.png +0 -0
- package/conformance/motion/parity/precomp-clip-offset@0.png +0 -0
- package/conformance/motion/parity/precomp-clip-offset@15.png +0 -0
- package/conformance/motion/parity/precomp-clip-offset@5.png +0 -0
- package/conformance/motion/parity/radial-gradient-highlight@0.png +0 -0
- package/conformance/motion/parity/rect-solid-fill@0.png +0 -0
- package/conformance/motion/parity/repeater@0.png +0 -0
- package/conformance/motion/parity/rounded-rect-ellipse@0.png +0 -0
- package/conformance/motion/parity/solid-and-image@0.png +0 -0
- package/conformance/motion/parity/split-position-skew@0.png +0 -0
- package/conformance/motion/parity/split-position-skew@10.png +0 -0
- package/conformance/motion/parity/star-polygon@0.png +0 -0
- package/conformance/motion/parity/stroke-caps-joins@0.png +0 -0
- package/conformance/motion/parity/stroke-dashes@0.png +0 -0
- package/conformance/motion/parity/stroke-dashes@10.png +0 -0
- package/conformance/motion/parity/time-remap@0.png +0 -0
- package/conformance/motion/parity/time-remap@10.png +0 -0
- package/conformance/motion/parity/time-remap@19.png +0 -0
- package/conformance/motion/parity/time-stretch@0.png +0 -0
- package/conformance/motion/parity/time-stretch@10.png +0 -0
- package/conformance/motion/parity/trim-individually@0.png +0 -0
- package/conformance/motion/parity/trim-path@0.png +0 -0
- package/conformance/motion/parity/trim-path@10.png +0 -0
- package/conformance/motion/refs/index.json +688 -0
- package/conformance/motion/refs/skottie-3d-parenting-nocamera@0.png +0 -0
- package/conformance/motion/refs/skottie-3d-parenting-nocamera@150.png +0 -0
- package/conformance/motion/refs/skottie-3d-parenting-nocamera@270.png +0 -0
- package/conformance/motion/refs/skottie-auto-orient-2@0.png +0 -0
- package/conformance/motion/refs/skottie-auto-orient-2@210.png +0 -0
- package/conformance/motion/refs/skottie-auto-orient-2@378.png +0 -0
- package/conformance/motion/refs/skottie-auto-orient@0.png +0 -0
- package/conformance/motion/refs/skottie-auto-orient@300.png +0 -0
- package/conformance/motion/refs/skottie-auto-orient@540.png +0 -0
- package/conformance/motion/refs/skottie-bezier-extranormal@0.png +0 -0
- package/conformance/motion/refs/skottie-bezier-extranormal@150.png +0 -0
- package/conformance/motion/refs/skottie-bezier-extranormal@270.png +0 -0
- package/conformance/motion/refs/skottie-blendmode-hardmix@0.png +0 -0
- package/conformance/motion/refs/skottie-blendmode-hardmix@150.png +0 -0
- package/conformance/motion/refs/skottie-blendmode-hardmix@270.png +0 -0
- package/conformance/motion/refs/skottie-chained-mattes@0.png +0 -0
- package/conformance/motion/refs/skottie-chained-mattes@300.png +0 -0
- package/conformance/motion/refs/skottie-chained-mattes@540.png +0 -0
- package/conformance/motion/refs/skottie-dropshadow-ramp@0.png +0 -0
- package/conformance/motion/refs/skottie-dropshadow-ramp@135.png +0 -0
- package/conformance/motion/refs/skottie-dropshadow-ramp@75.png +0 -0
- package/conformance/motion/refs/skottie-dropshadow-style@0.png +0 -0
- package/conformance/motion/refs/skottie-dropshadow-style@300.png +0 -0
- package/conformance/motion/refs/skottie-dropshadow-style@540.png +0 -0
- package/conformance/motion/refs/skottie-effects-transform@0.png +0 -0
- package/conformance/motion/refs/skottie-effects-transform@450.png +0 -0
- package/conformance/motion/refs/skottie-effects-transform@810.png +0 -0
- package/conformance/motion/refs/skottie-fill-effect@0.png +0 -0
- package/conformance/motion/refs/skottie-fill-effect@300.png +0 -0
- package/conformance/motion/refs/skottie-fill-effect@540.png +0 -0
- package/conformance/motion/refs/skottie-fill-rule@0.png +0 -0
- package/conformance/motion/refs/skottie-fill-rule@150.png +0 -0
- package/conformance/motion/refs/skottie-fill-rule@270.png +0 -0
- package/conformance/motion/refs/skottie-gaussian-blur@0.png +0 -0
- package/conformance/motion/refs/skottie-gaussian-blur@150.png +0 -0
- package/conformance/motion/refs/skottie-gaussian-blur@270.png +0 -0
- package/conformance/motion/refs/skottie-gradient-opacity@0.png +0 -0
- package/conformance/motion/refs/skottie-gradient-opacity@150.png +0 -0
- package/conformance/motion/refs/skottie-gradient-opacity@270.png +0 -0
- package/conformance/motion/refs/skottie-gradient-radial-highlight@0.png +0 -0
- package/conformance/motion/refs/skottie-gradient-radial-highlight@135.png +0 -0
- package/conformance/motion/refs/skottie-gradient-radial-highlight@75.png +0 -0
- package/conformance/motion/refs/skottie-hidden-shapes-layers@0.png +0 -0
- package/conformance/motion/refs/skottie-hidden-shapes-layers@150.png +0 -0
- package/conformance/motion/refs/skottie-hidden-shapes-layers@270.png +0 -0
- package/conformance/motion/refs/skottie-huesaturation-effect@0.png +0 -0
- package/conformance/motion/refs/skottie-huesaturation-effect@30.png +0 -0
- package/conformance/motion/refs/skottie-huesaturation-effect@54.png +0 -0
- package/conformance/motion/refs/skottie-invert-effect@0.png +0 -0
- package/conformance/motion/refs/skottie-invert-effect@300.png +0 -0
- package/conformance/motion/refs/skottie-invert-effect@540.png +0 -0
- package/conformance/motion/refs/skottie-luma-matte@0.png +0 -0
- package/conformance/motion/refs/skottie-luma-matte@150.png +0 -0
- package/conformance/motion/refs/skottie-luma-matte@270.png +0 -0
- package/conformance/motion/refs/skottie-mask-feather@0.png +0 -0
- package/conformance/motion/refs/skottie-mask-feather@150.png +0 -0
- package/conformance/motion/refs/skottie-mask-feather@270.png +0 -0
- package/conformance/motion/refs/skottie-masking-opaque@0.png +0 -0
- package/conformance/motion/refs/skottie-masking-opaque@135.png +0 -0
- package/conformance/motion/refs/skottie-masking-opaque@75.png +0 -0
- package/conformance/motion/refs/skottie-masking-translucent@0.png +0 -0
- package/conformance/motion/refs/skottie-masking-translucent@135.png +0 -0
- package/conformance/motion/refs/skottie-masking-translucent@75.png +0 -0
- package/conformance/motion/refs/skottie-matte-blendmode@0.png +0 -0
- package/conformance/motion/refs/skottie-matte-blendmode@150.png +0 -0
- package/conformance/motion/refs/skottie-matte-blendmode@270.png +0 -0
- package/conformance/motion/refs/skottie-matte-nonsequential@0.png +0 -0
- package/conformance/motion/refs/skottie-matte-nonsequential@150.png +0 -0
- package/conformance/motion/refs/skottie-matte-nonsequential@270.png +0 -0
- package/conformance/motion/refs/skottie-matte-visible@0.png +0 -0
- package/conformance/motion/refs/skottie-matte-visible@150.png +0 -0
- package/conformance/motion/refs/skottie-matte-visible@270.png +0 -0
- package/conformance/motion/refs/skottie-mergepaths-effect@0.png +0 -0
- package/conformance/motion/refs/skottie-mergepaths-effect@210.png +0 -0
- package/conformance/motion/refs/skottie-mergepaths-effect@378.png +0 -0
- package/conformance/motion/refs/skottie-motion-blur-mask@0.png +0 -0
- package/conformance/motion/refs/skottie-motion-blur-mask@150.png +0 -0
- package/conformance/motion/refs/skottie-motion-blur-mask@270.png +0 -0
- package/conformance/motion/refs/skottie-nested-animation@0.png +0 -0
- package/conformance/motion/refs/skottie-nested-animation@300.png +0 -0
- package/conformance/motion/refs/skottie-nested-animation@540.png +0 -0
- package/conformance/motion/refs/skottie-offsetpaths-effect@0.png +0 -0
- package/conformance/motion/refs/skottie-offsetpaths-effect@150.png +0 -0
- package/conformance/motion/refs/skottie-offsetpaths-effect@270.png +0 -0
- package/conformance/motion/refs/skottie-phonehub-connecting@0.png +0 -0
- package/conformance/motion/refs/skottie-puckerbloat-effect@0.png +0 -0
- package/conformance/motion/refs/skottie-puckerbloat-effect@210.png +0 -0
- package/conformance/motion/refs/skottie-puckerbloat-effect@378.png +0 -0
- package/conformance/motion/refs/skottie-repeater@0.png +0 -0
- package/conformance/motion/refs/skottie-repeater@300.png +0 -0
- package/conformance/motion/refs/skottie-repeater@540.png +0 -0
- package/conformance/motion/refs/skottie-sample-1@0.png +0 -0
- package/conformance/motion/refs/skottie-sample-1@100.png +0 -0
- package/conformance/motion/refs/skottie-sample-1@180.png +0 -0
- package/conformance/motion/refs/skottie-sample-search@0.png +0 -0
- package/conformance/motion/refs/skottie-sample-search@27.png +0 -0
- package/conformance/motion/refs/skottie-sample-search@48.png +0 -0
- package/conformance/motion/refs/skottie-spatial-supernormal@0.png +0 -0
- package/conformance/motion/refs/skottie-spatial-supernormal@200.png +0 -0
- package/conformance/motion/refs/skottie-spatial-supernormal@360.png +0 -0
- package/conformance/motion/refs/skottie-text-animator-1@0.png +0 -0
- package/conformance/motion/refs/skottie-text-animator-1@150.png +0 -0
- package/conformance/motion/refs/skottie-text-animator-1@270.png +0 -0
- package/conformance/motion/refs/skottie-text-fill-over-stroke@0.png +0 -0
- package/conformance/motion/refs/skottie-text-fill-over-stroke@210.png +0 -0
- package/conformance/motion/refs/skottie-text-fill-over-stroke@378.png +0 -0
- package/conformance/motion/refs/skottie-text-tracking@0.png +0 -0
- package/conformance/motion/refs/skottie-text-tracking@108.png +0 -0
- package/conformance/motion/refs/skottie-text-tracking@60.png +0 -0
- package/conformance/motion/refs/skottie-text-valign@0.png +0 -0
- package/conformance/motion/refs/skottie-text-valign@150.png +0 -0
- package/conformance/motion/refs/skottie-text-valign@270.png +0 -0
- package/conformance/motion/refs/skottie-time-reverse@0.png +0 -0
- package/conformance/motion/refs/skottie-time-reverse@300.png +0 -0
- package/conformance/motion/refs/skottie-time-reverse@540.png +0 -0
- package/conformance/motion/refs/skottie-transform-skew@0.png +0 -0
- package/conformance/motion/refs/skottie-transform-skew@300.png +0 -0
- package/conformance/motion/refs/skottie-transform-skew@540.png +0 -0
- package/conformance/motion/refs/skottie-trimpath-fill@0.png +0 -0
- package/conformance/motion/refs/skottie-trimpath-fill@300.png +0 -0
- package/conformance/motion/refs/skottie-trimpath-fill@540.png +0 -0
- package/conformance/motion/refs/skottie-trimpath-modes@0.png +0 -0
- package/conformance/motion/refs/skottie-trimpath-modes@300.png +0 -0
- package/conformance/motion/refs/skottie-trimpath-modes@540.png +0 -0
- package/conformance/motion/refs/skottie-tritone-effect@0.png +0 -0
- package/conformance/motion/refs/skottie-tritone-effect@300.png +0 -0
- package/conformance/motion/refs/skottie-tritone-effect@540.png +0 -0
- package/conformance/motion/refs/spec-blend-mode@0.png +0 -0
- package/conformance/motion/refs/spec-blend-mode@162.png +0 -0
- package/conformance/motion/refs/spec-blend-mode@90.png +0 -0
- package/conformance/motion/refs/spec-ellipse@0.png +0 -0
- package/conformance/motion/refs/spec-ellipse@162.png +0 -0
- package/conformance/motion/refs/spec-ellipse@90.png +0 -0
- package/conformance/motion/refs/spec-fill@0.png +0 -0
- package/conformance/motion/refs/spec-fill@162.png +0 -0
- package/conformance/motion/refs/spec-fill@90.png +0 -0
- package/conformance/motion/refs/spec-gradient-stroke@0.png +0 -0
- package/conformance/motion/refs/spec-gradient-stroke@162.png +0 -0
- package/conformance/motion/refs/spec-gradient-stroke@90.png +0 -0
- package/conformance/motion/refs/spec-gradient@0.png +0 -0
- package/conformance/motion/refs/spec-gradient@162.png +0 -0
- package/conformance/motion/refs/spec-gradient@90.png +0 -0
- package/conformance/motion/refs/spec-mask@0.png +0 -0
- package/conformance/motion/refs/spec-mask@300.png +0 -0
- package/conformance/motion/refs/spec-mask@540.png +0 -0
- package/conformance/motion/refs/spec-masks@0.png +0 -0
- package/conformance/motion/refs/spec-masks@135.png +0 -0
- package/conformance/motion/refs/spec-masks@75.png +0 -0
- package/conformance/motion/refs/spec-matte@0.png +0 -0
- package/conformance/motion/refs/spec-matte@162.png +0 -0
- package/conformance/motion/refs/spec-matte@90.png +0 -0
- package/conformance/motion/refs/spec-metadata@0.png +0 -0
- package/conformance/motion/refs/spec-metadata@162.png +0 -0
- package/conformance/motion/refs/spec-metadata@90.png +0 -0
- package/conformance/motion/refs/spec-path@0.png +0 -0
- package/conformance/motion/refs/spec-path@162.png +0 -0
- package/conformance/motion/refs/spec-path@90.png +0 -0
- package/conformance/motion/refs/spec-pucker-bloat@0.png +0 -0
- package/conformance/motion/refs/spec-pucker-bloat@162.png +0 -0
- package/conformance/motion/refs/spec-pucker-bloat@90.png +0 -0
- package/conformance/motion/refs/spec-rectangle@0.png +0 -0
- package/conformance/motion/refs/spec-rectangle@162.png +0 -0
- package/conformance/motion/refs/spec-rectangle@90.png +0 -0
- package/conformance/motion/refs/spec-rounded-corners@0.png +0 -0
- package/conformance/motion/refs/spec-rounded-corners@162.png +0 -0
- package/conformance/motion/refs/spec-rounded-corners@90.png +0 -0
- package/conformance/motion/refs/spec-slots@0.png +0 -0
- package/conformance/motion/refs/spec-slots@450.png +0 -0
- package/conformance/motion/refs/spec-slots@810.png +0 -0
- package/conformance/motion/refs/spec-star@0.png +0 -0
- package/conformance/motion/refs/spec-star@162.png +0 -0
- package/conformance/motion/refs/spec-star@90.png +0 -0
- package/conformance/motion/refs/spec-stroke@0.png +0 -0
- package/conformance/motion/refs/spec-stroke@162.png +0 -0
- package/conformance/motion/refs/spec-stroke@90.png +0 -0
- package/conformance/motion/refs/spec-test-ellipse-xy-pos@0.png +0 -0
- package/conformance/motion/refs/spec-test-ellipse-xy-pos@162.png +0 -0
- package/conformance/motion/refs/spec-test-ellipse-xy-pos@90.png +0 -0
- package/conformance/motion/refs/spec-test-gradient-fill@0.png +0 -0
- package/conformance/motion/refs/spec-test-gradient-fill@30.png +0 -0
- package/conformance/motion/refs/spec-test-gradient-fill@54.png +0 -0
- package/conformance/motion/refs/spec-test-gradient-stroke@0.png +0 -0
- package/conformance/motion/refs/spec-test-gradient-stroke@30.png +0 -0
- package/conformance/motion/refs/spec-test-gradient-stroke@54.png +0 -0
- package/conformance/motion/refs/spec-test-unknown-shape@0.png +0 -0
- package/conformance/motion/refs/spec-test-unknown-shape@162.png +0 -0
- package/conformance/motion/refs/spec-test-unknown-shape@90.png +0 -0
- package/conformance/motion/refs/spec-time-remap@0.png +0 -0
- package/conformance/motion/refs/spec-time-remap@300.png +0 -0
- package/conformance/motion/refs/spec-time-remap@540.png +0 -0
- package/conformance/motion/refs/spec-time-stretch@0.png +0 -0
- package/conformance/motion/refs/spec-time-stretch@300.png +0 -0
- package/conformance/motion/refs/spec-time-stretch@540.png +0 -0
- package/conformance/motion/refs/spec-transform@0.png +0 -0
- package/conformance/motion/refs/spec-transform@162.png +0 -0
- package/conformance/motion/refs/spec-transform@90.png +0 -0
- package/conformance/motion/refs/spec-trim-path@0.png +0 -0
- package/conformance/motion/refs/spec-trim-path@162.png +0 -0
- package/conformance/motion/refs/spec-trim-path@90.png +0 -0
- package/conformance/motion/refs/web-adrock@0.png +0 -0
- package/conformance/motion/refs/web-adrock@10.png +0 -0
- package/conformance/motion/refs/web-adrock@18.png +0 -0
- package/conformance/motion/refs/web-bacon@0.png +0 -0
- package/conformance/motion/refs/web-bacon@126.png +0 -0
- package/conformance/motion/refs/web-bacon@70.png +0 -0
- package/conformance/motion/refs/web-banner@0.png +0 -0
- package/conformance/motion/refs/web-banner@301.png +0 -0
- package/conformance/motion/refs/web-banner@542.png +0 -0
- package/conformance/motion/refs/web-bodymovin@0.png +0 -0
- package/conformance/motion/refs/web-bodymovin@51.png +0 -0
- package/conformance/motion/refs/web-bodymovin@92.png +0 -0
- package/conformance/motion/refs/web-dalek@0.png +0 -0
- package/conformance/motion/refs/web-dalek@145.png +0 -0
- package/conformance/motion/refs/web-dalek@261.png +0 -0
- package/conformance/motion/refs/web-footage-data@0.png +0 -0
- package/conformance/motion/refs/web-footage-data@180.png +0 -0
- package/conformance/motion/refs/web-footage-data@324.png +0 -0
- package/conformance/motion/refs/web-lights@0.png +0 -0
- package/conformance/motion/refs/web-lights@150.png +0 -0
- package/conformance/motion/refs/web-lights@270.png +0 -0
- package/conformance/motion/refs/web-ripple@0.png +0 -0
- package/conformance/motion/refs/web-ripple@180.png +0 -0
- package/conformance/motion/refs/web-ripple@324.png +0 -0
- package/conformance/motion/refs/web-starfish@0.png +0 -0
- package/conformance/motion/refs/web-starfish@150.png +0 -0
- package/conformance/motion/refs/web-starfish@270.png +0 -0
- package/conformance/motion/render-refs.ts +126 -0
- package/conformance/motion/report.json +1367 -0
- package/conformance/motion/web-parity-gaps.json +12 -0
- package/conformance/motion-parity-entry.ts +3 -0
- package/conformance/motion-parity.ts +101 -0
- package/dist/chunks/{index-4z7f2bp1.js → index-4xczxey5.js} +35 -15
- package/dist/chunks/{index-4z7f2bp1.js.map → index-4xczxey5.js.map} +4 -4
- package/dist/chunks/{index-dx45asrf.js → index-5sjj5p84.js} +174 -8
- package/dist/chunks/{index-dx45asrf.js.map → index-5sjj5p84.js.map} +2 -2
- package/dist/chunks/{index-fy7y2nz8.js → index-cvf7bbs5.js} +23 -2
- package/dist/chunks/{index-fy7y2nz8.js.map → index-cvf7bbs5.js.map} +1 -1
- package/dist/chunks/index-dgkf6yw5.js +48 -0
- package/dist/chunks/index-dgkf6yw5.js.map +10 -0
- package/dist/chunks/{index-abcjanhc.js → index-f9wkb6aq.js} +192 -3
- package/dist/chunks/{index-abcjanhc.js.map → index-f9wkb6aq.js.map} +2 -2
- package/dist/chunks/index-t2mwfbb6.js +1515 -0
- package/dist/chunks/index-t2mwfbb6.js.map +15 -0
- package/dist/chunks/{index-h3zgfghf.js → index-vkn82srs.js} +179 -8
- package/dist/chunks/{index-h3zgfghf.js.map → index-vkn82srs.js.map} +2 -2
- package/dist/chunks/wasm-ctcc3cma.js +424 -0
- package/dist/chunks/wasm-ctcc3cma.js.map +11 -0
- package/dist/conformance.js +3154 -63
- package/dist/conformance.js.map +2 -2
- package/dist/entries/prompt.js +2 -2
- package/dist/entries/schema.js +3 -3
- package/dist/host/index.js +3 -3
- package/dist/index.js +333 -98
- package/dist/index.js.map +4 -4
- package/dist/types/src/catalog.generated.d.ts +50 -4
- package/dist/types/src/index.d.ts +2 -0
- package/dist/types/src/layout.d.ts +2 -0
- package/dist/types/src/limits.d.ts +1 -0
- package/dist/types/src/motion/index.d.ts +1 -0
- package/dist/types/src/motion/server.d.ts +9 -0
- package/dist/types/src/motion/wasm.d.ts +11 -0
- package/dist/types/src/web/coerce.d.ts +3 -0
- package/dist/types/src/web/focus.d.ts +8 -0
- package/dist/types/src/web/index.d.ts +5 -2
- package/dist/types/src/web/primitives/carousel.d.ts +1 -1
- package/dist/types/src/web/primitives/dock.d.ts +5 -2
- package/dist/types/src/web/primitives/index.d.ts +2 -0
- package/dist/types/src/web/primitives/motion-paint.d.ts +36 -0
- package/dist/types/src/web/primitives/motion.d.ts +162 -0
- package/dist/types/src/web/primitives/zoomable-image.d.ts +158 -0
- package/dist/types/src/web/table.d.ts +8 -0
- package/dist/types/src/zoom.d.ts +128 -0
- package/dist/types/wasm/motion/bytes.d.ts +1 -0
- package/dist/web/index.js +165 -230
- package/dist/web/index.js.map +8 -9
- package/dist/web/primitives/index.js +584 -7
- package/dist/web/primitives/index.js.map +7 -6
- package/docs/components.generated.json +392 -4
- package/docs/round-6-contract.md +5 -3
- package/docs/themes.generated.json +27 -0
- package/fixtures/bind-time.json +4 -0
- package/fixtures/catalog-components.json +930 -16
- package/fixtures/catalog-macros.json +11 -0
- package/fixtures/conformance-baseline.json +33020 -32952
- package/fixtures/conformance-known.json +64 -70
- package/fixtures/kitchen-sink.expanded.json +72 -0
- package/fixtures/kitchen-sink.json +33 -0
- package/fixtures/layout-geometry-round1.json +42 -42
- package/fixtures/motion-frames.json +2618 -0
- package/fixtures/motion-playback.json +528 -0
- package/fixtures/motion-state.json +722 -0
- package/fixtures/motion-validate.json +138 -0
- package/fixtures/primitive-specimens.json +1 -0
- package/fixtures/prompt-budget.json +16 -16
- package/fixtures/specimens.json +717 -21
- package/fixtures/theme-recipes.json +1518 -32
- package/fixtures/theme-resolved.json +732 -56
- package/fixtures/zoom.json +1382 -0
- package/generated/ExponentialUICatalog.generated.kt +20 -20
- package/generated/ExponentialUICatalog.generated.swift +20 -20
- package/generated/ExponentialUIThemes.generated.kt +7 -7
- package/generated/ExponentialUIThemes.generated.swift +7 -7
- package/generated/catalog.descriptions.generated.rs +1 -1
- package/generated/catalog.generated.rs +29 -29
- package/generated/catalog.themes.generated.rs +8 -8
- package/generated/core.descriptions.json +171 -5
- package/generated/core.runtime.json +189 -1
- package/package.json +1 -1
- package/themes/neutral.theme.json +172 -3
- package/dist/chunks/index-t6qz1770.js +0 -95
- package/dist/chunks/index-t6qz1770.js.map +0 -11
|
@@ -2,11 +2,11 @@
|
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../src/catalog.generated.ts", "../src/strings.ts", "../src/format.ts", "../src/expr.ts", "../src/limits.ts", "../src/dynamic.ts", "../src/tree-guides.ts", "../src/macros.ts", "../src/validate.ts", "../src/basic-map.ts", "../src/reducer.ts", "../src/host/policy.ts", "../src/host/sources.ts", "../src/host/decoders.ts", "../src/host/records.ts", "../src/host/record-store.ts", "../src/host/signature.ts", "../src/host/tools.ts", "../src/host/exposes.ts", "../src/host/package.ts", "../src/host/router.ts", "../src/host/runtime.ts", "../src/host/transports.ts"],
|
|
4
4
|
"sourcesContent": [
|
|
5
|
-
"// AUTO-GENERATED by packages/exponential-ui/scripts/generate.ts — do not edit.\n// Source of truth: packages/exponential-ui/catalog/core.catalog.json (+ tokens.json, style.json, basic-map.json, strings.json, locale.json, code.json, a11y.json, layout.json).\n\nimport type { Style } from \"./style\"\nimport type { DataBinding, FunctionCall } from \"./types\"\n\nexport const CATALOG_ID = \"https://ui.exponential.at/catalogs/core/v1\"\nexport const LITE_CATALOG_ID = \"https://ui.exponential.at/catalogs/core-lite/v1\"\nexport const BASIC_CATALOG_ID = \"https://a2ui.org/specification/v0_9/basic_catalog.json\"\nexport const BASIC_VERSION = \"v0.9\"\nexport const CATALOG_VERSION = \"1\"\nexport const UNKNOWN_COMPONENT_NAME = \"Unknown\"\n\n/** Every component in source order (the hidden placeholder included). */\nexport const COMPONENT_NAMES = [\"Box\",\"Stack\",\"Grid\",\"Card\",\"Separator\",\"List\",\"Resizable\",\"ScrollArea\",\"Sidebar\",\"SplitView\",\"AppBar\",\"Page\",\"Toolbar\",\"Section\",\"Group\",\"Text\",\"Heading\",\"Markdown\",\"CodeBlock\",\"Kbd\",\"Label\",\"Image\",\"Icon\",\"Video\",\"AudioPlayer\",\"Avatar\",\"QrCode\",\"Carousel\",\"Mosaic\",\"Tabs\",\"Segmented\",\"Accordion\",\"Collapsible\",\"Trace\",\"TraceItem\",\"Plan\",\"Pagination\",\"Breadcrumb\",\"Outline\",\"Stepper\",\"Dialog\",\"Drawer\",\"DockCard\",\"AlertDialog\",\"Popover\",\"Tooltip\",\"Menu\",\"Toast\",\"Badge\",\"Alert\",\"Chip\",\"EmptyState\",\"Progress\",\"Meter\",\"Ring\",\"Spinner\",\"Skeleton\",\"VoiceWave\",\"CallSurface\",\"Table\",\"Chart\",\"Sparkline\",\"StatTile\",\"Button\",\"Link\",\"Toggle\",\"Form\",\"FieldGroup\",\"FormActions\",\"Input\",\"Textarea\",\"NumberField\",\"Checkbox\",\"Radio\",\"ChoiceTiles\",\"Switch\",\"Slider\",\"Rating\",\"Select\",\"SearchList\",\"ChipInput\",\"DatePicker\",\"DateRangePicker\",\"TimePicker\",\"FileUpload\",\"QrScanner\",\"Composer\",\"Row\",\"MessageBubble\",\"TreeGuides\",\"Unknown\"] as const\nexport type ComponentName = (typeof COMPONENT_NAMES)[number]\nexport const NATIVE_COMPONENTS = [\"Box\",\"List\",\"Resizable\",\"Text\",\"Markdown\",\"CodeBlock\",\"Image\",\"Icon\",\"Video\",\"AudioPlayer\",\"Avatar\",\"QrCode\",\"Carousel\",\"Tabs\",\"Segmented\",\"Accordion\",\"Dialog\",\"Drawer\",\"Popover\",\"Tooltip\",\"Menu\",\"Toast\",\"Ring\",\"Spinner\",\"Skeleton\",\"VoiceWave\",\"Table\",\"Chart\",\"Button\",\"Link\",\"Toggle\",\"Form\",\"Input\",\"Textarea\",\"NumberField\",\"Checkbox\",\"Radio\",\"ChoiceTiles\",\"Switch\",\"Slider\",\"Select\",\"SearchList\",\"ChipInput\",\"DatePicker\",\"DateRangePicker\",\"TimePicker\",\"FileUpload\",\"QrScanner\",\"Composer\",\"TreeGuides\",\"Unknown\"] as const\nexport const MACRO_COMPONENTS = [\"Stack\",\"Grid\",\"Card\",\"Separator\",\"ScrollArea\",\"Sidebar\",\"SplitView\",\"AppBar\",\"Page\",\"Toolbar\",\"Section\",\"Group\",\"Heading\",\"Kbd\",\"Label\",\"Mosaic\",\"Collapsible\",\"Trace\",\"TraceItem\",\"Plan\",\"Pagination\",\"Breadcrumb\",\"Outline\",\"Stepper\",\"DockCard\",\"AlertDialog\",\"Badge\",\"Alert\",\"Chip\",\"EmptyState\",\"Progress\",\"Meter\",\"CallSurface\",\"Sparkline\",\"StatTile\",\"FieldGroup\",\"FormActions\",\"Rating\",\"Row\",\"MessageBubble\"] as const\n/** The core-lite subset (no overlays, media or Chart). */\nexport const LITE_COMPONENTS = [\"Box\",\"Stack\",\"Grid\",\"Card\",\"Separator\",\"List\",\"Resizable\",\"ScrollArea\",\"Sidebar\",\"SplitView\",\"AppBar\",\"Page\",\"Toolbar\",\"Section\",\"Group\",\"Text\",\"Heading\",\"Markdown\",\"CodeBlock\",\"Kbd\",\"Label\",\"Icon\",\"Avatar\",\"Tabs\",\"Segmented\",\"Collapsible\",\"Trace\",\"TraceItem\",\"Plan\",\"Breadcrumb\",\"Outline\",\"Stepper\",\"Badge\",\"Alert\",\"Chip\",\"EmptyState\",\"Progress\",\"Meter\",\"Ring\",\"Skeleton\",\"StatTile\",\"Button\",\"Link\",\"Form\",\"FieldGroup\",\"FormActions\",\"Input\",\"Textarea\",\"NumberField\",\"Checkbox\",\"Switch\",\"Rating\",\"Select\",\"SearchList\",\"ChipInput\",\"DatePicker\",\"DateRangePicker\",\"TimePicker\",\"FileUpload\",\"Composer\",\"Row\",\"MessageBubble\"] as const\nexport const COMPONENT_GROUPS: Record<ComponentName, string> = {\"Box\":\"layout\",\"Stack\":\"layout\",\"Grid\":\"layout\",\"Card\":\"layout\",\"Separator\":\"layout\",\"List\":\"layout\",\"Resizable\":\"layout\",\"ScrollArea\":\"layout\",\"Sidebar\":\"layout\",\"SplitView\":\"layout\",\"AppBar\":\"layout\",\"Page\":\"layout\",\"Toolbar\":\"layout\",\"Section\":\"list\",\"Group\":\"list\",\"Text\":\"text\",\"Heading\":\"text\",\"Markdown\":\"text\",\"CodeBlock\":\"text\",\"Kbd\":\"text\",\"Label\":\"text\",\"Image\":\"media\",\"Icon\":\"media\",\"Video\":\"media\",\"AudioPlayer\":\"media\",\"Avatar\":\"media\",\"QrCode\":\"media\",\"Carousel\":\"media\",\"Mosaic\":\"media\",\"Tabs\":\"navigation\",\"Segmented\":\"navigation\",\"Accordion\":\"navigation\",\"Collapsible\":\"navigation\",\"Trace\":\"list\",\"TraceItem\":\"list\",\"Plan\":\"list\",\"Pagination\":\"navigation\",\"Breadcrumb\":\"navigation\",\"Outline\":\"navigation\",\"Stepper\":\"navigation\",\"Dialog\":\"overlay\",\"Drawer\":\"overlay\",\"DockCard\":\"overlay\",\"AlertDialog\":\"overlay\",\"Popover\":\"overlay\",\"Tooltip\":\"overlay\",\"Menu\":\"overlay\",\"Toast\":\"overlay\",\"Badge\":\"feedback\",\"Alert\":\"feedback\",\"Chip\":\"feedback\",\"EmptyState\":\"feedback\",\"Progress\":\"feedback\",\"Meter\":\"feedback\",\"Ring\":\"feedback\",\"Spinner\":\"feedback\",\"Skeleton\":\"feedback\",\"VoiceWave\":\"feedback\",\"CallSurface\":\"media\",\"Table\":\"data\",\"Chart\":\"data\",\"Sparkline\":\"data\",\"StatTile\":\"data\",\"Button\":\"action\",\"Link\":\"action\",\"Toggle\":\"action\",\"Form\":\"input\",\"FieldGroup\":\"input\",\"FormActions\":\"input\",\"Input\":\"input\",\"Textarea\":\"input\",\"NumberField\":\"input\",\"Checkbox\":\"input\",\"Radio\":\"input\",\"ChoiceTiles\":\"input\",\"Switch\":\"input\",\"Slider\":\"input\",\"Rating\":\"input\",\"Select\":\"input\",\"SearchList\":\"input\",\"ChipInput\":\"input\",\"DatePicker\":\"input\",\"DateRangePicker\":\"input\",\"TimePicker\":\"input\",\"FileUpload\":\"input\",\"QrScanner\":\"input\",\"Composer\":\"input\",\"Row\":\"list\",\"MessageBubble\":\"list\",\"TreeGuides\":\"list\",\"Unknown\":\"feedback\"}\n/** The specimen id each component has on ui.exponential.at. */\nexport const SPECIMEN_IDS: Record<ComponentName, string> = {\"Box\":\"exponential-ui-box\",\"Stack\":\"exponential-ui-stack\",\"Grid\":\"exponential-ui-grid\",\"Card\":\"exponential-ui-card\",\"Separator\":\"exponential-ui-separator\",\"List\":\"exponential-ui-list\",\"Resizable\":\"exponential-ui-resizable\",\"ScrollArea\":\"exponential-ui-scroll-area\",\"Sidebar\":\"exponential-ui-sidebar\",\"SplitView\":\"exponential-ui-split-view\",\"AppBar\":\"exponential-ui-app-bar\",\"Page\":\"exponential-ui-page\",\"Toolbar\":\"exponential-ui-toolbar\",\"Section\":\"exponential-ui-section\",\"Group\":\"exponential-ui-group\",\"Text\":\"exponential-ui-text\",\"Heading\":\"exponential-ui-heading\",\"Markdown\":\"exponential-ui-markdown\",\"CodeBlock\":\"exponential-ui-code-block\",\"Kbd\":\"exponential-ui-kbd\",\"Label\":\"exponential-ui-label\",\"Image\":\"exponential-ui-image\",\"Icon\":\"exponential-ui-icon\",\"Video\":\"exponential-ui-video\",\"AudioPlayer\":\"exponential-ui-audio-player\",\"Avatar\":\"exponential-ui-avatar\",\"QrCode\":\"exponential-ui-qr-code\",\"Carousel\":\"exponential-ui-carousel\",\"Mosaic\":\"exponential-ui-mosaic\",\"Tabs\":\"exponential-ui-tabs\",\"Segmented\":\"exponential-ui-segmented\",\"Accordion\":\"exponential-ui-accordion\",\"Collapsible\":\"exponential-ui-collapsible\",\"Trace\":\"exponential-ui-trace\",\"TraceItem\":\"exponential-ui-trace-item\",\"Plan\":\"exponential-ui-plan\",\"Pagination\":\"exponential-ui-pagination\",\"Breadcrumb\":\"exponential-ui-breadcrumb\",\"Outline\":\"exponential-ui-outline\",\"Stepper\":\"exponential-ui-stepper\",\"Dialog\":\"exponential-ui-dialog\",\"Drawer\":\"exponential-ui-drawer\",\"DockCard\":\"exponential-ui-dock-card\",\"AlertDialog\":\"exponential-ui-alert-dialog\",\"Popover\":\"exponential-ui-popover\",\"Tooltip\":\"exponential-ui-tooltip\",\"Menu\":\"exponential-ui-menu\",\"Toast\":\"exponential-ui-toast\",\"Badge\":\"exponential-ui-badge\",\"Alert\":\"exponential-ui-alert\",\"Chip\":\"exponential-ui-chip\",\"EmptyState\":\"exponential-ui-empty-state\",\"Progress\":\"exponential-ui-progress\",\"Meter\":\"exponential-ui-meter\",\"Ring\":\"exponential-ui-ring\",\"Spinner\":\"exponential-ui-spinner\",\"Skeleton\":\"exponential-ui-skeleton\",\"VoiceWave\":\"exponential-ui-voice-wave\",\"CallSurface\":\"exponential-ui-call-surface\",\"Table\":\"exponential-ui-table\",\"Chart\":\"exponential-ui-chart\",\"Sparkline\":\"exponential-ui-sparkline\",\"StatTile\":\"exponential-ui-stat-tile\",\"Button\":\"exponential-ui-button\",\"Link\":\"exponential-ui-link\",\"Toggle\":\"exponential-ui-toggle\",\"Form\":\"exponential-ui-form\",\"FieldGroup\":\"exponential-ui-field-group\",\"FormActions\":\"exponential-ui-form-actions\",\"Input\":\"exponential-ui-input\",\"Textarea\":\"exponential-ui-textarea\",\"NumberField\":\"exponential-ui-number-field\",\"Checkbox\":\"exponential-ui-checkbox\",\"Radio\":\"exponential-ui-radio\",\"ChoiceTiles\":\"exponential-ui-choice-tiles\",\"Switch\":\"exponential-ui-switch\",\"Slider\":\"exponential-ui-slider\",\"Rating\":\"exponential-ui-rating\",\"Select\":\"exponential-ui-select\",\"SearchList\":\"exponential-ui-search-list\",\"ChipInput\":\"exponential-ui-chip-input\",\"DatePicker\":\"exponential-ui-date-picker\",\"DateRangePicker\":\"exponential-ui-date-range-picker\",\"TimePicker\":\"exponential-ui-time-picker\",\"FileUpload\":\"exponential-ui-file-upload\",\"QrScanner\":\"exponential-ui-qr-scanner\",\"Composer\":\"exponential-ui-composer\",\"Row\":\"exponential-ui-row\",\"MessageBubble\":\"exponential-ui-message-bubble\",\"TreeGuides\":\"exponential-ui-tree-guides\",\"Unknown\":\"exponential-ui-unknown\"}\n\nexport const ENUMS = {\n variant: [\"default\",\"secondary\",\"outline\",\"ghost\",\"destructive\",\"link\"],\n size: [\"sm\",\"default\",\"lg\",\"icon\"],\n tone: [\"neutral\",\"primary\",\"success\",\"warning\",\"danger\",\"info\"],\n gap: [\"none\",\"xs\",\"sm\",\"md\",\"lg\",\"xl\"],\n align: [\"start\",\"center\",\"end\",\"stretch\"],\n justify: [\"start\",\"center\",\"end\",\"between\",\"around\",\"evenly\"],\n textVariant: [\"body\",\"caption\",\"muted\",\"lead\",\"code\",\"label\",\"title\"],\n headingLevel: [\"h1\",\"h2\",\"h3\",\"h4\"],\n imageFit: [\"contain\",\"cover\",\"fill\",\"none\",\"scaleDown\"],\n orientation: [\"horizontal\",\"vertical\"],\n side: [\"top\",\"right\",\"bottom\",\"left\"],\n inputType: [\"text\",\"email\",\"password\",\"number\",\"search\",\"url\",\"tel\"],\n validateOn: [\"change\",\"blur\",\"submit\"],\n alertType: [\"info\",\"success\",\"warning\",\"error\"],\n controlSize: [\"sm\",\"default\",\"lg\"],\n spinnerSize: [\"xs\",\"sm\",\"default\",\"lg\"],\n tabClosable: [\"none\",\"hover\",\"always\"],\n groupType: [\"single\",\"multiple\"],\n rowChevron: [\"none\",\"right\",\"selector\"],\n rowSurface: [\"flat\",\"card\"],\n chipShape: [\"pill\",\"rect\"],\n density: [\"default\",\"compact\"],\n listDirection: [\"vertical\",\"horizontal\"],\n chartKind: [\"bar\",\"stackedBar\",\"line\",\"area\",\"pie\",\"donut\",\"sparkline\"],\n segmentedVariant: [\"segmented\",\"toggles\",\"outline\",\"bar\"],\n liveTone: [\"live\",\"attention\",\"done\",\"unread\",\"idle\",\"muted\"],\n menuItemKind: [\"item\",\"checkbox\",\"separator\",\"label\",\"submenu\"],\n openOn: [\"press\",\"hover\"],\n menuOpenOn: [\"press\",\"contextmenu\"],\n live: [\"off\",\"polite\",\"assertive\"],\n selectable: [\"none\",\"single\",\"multiple\"],\n cellType: [\"text\",\"number\",\"date\",\"boolean\",\"badge\",\"slot\",\"currency\",\"percent\",\"relativeTime\"],\n sortDirection: [\"asc\",\"desc\"],\n imageLoading: [\"lazy\",\"eager\"],\n scrollDirection: [\"vertical\",\"horizontal\",\"both\"],\n collapseBelow: [\"never\",\"sm\",\"md\",\"lg\",\"xl\"],\n codeLanguage: [\"plain\",\"json\",\"js\",\"ts\",\"tsx\",\"rust\",\"swift\",\"kotlin\",\"python\",\"bash\",\"html\",\"css\",\"sql\",\"yaml\",\"markdown\",\"ansi\"],\n codeToken: [\"plain\",\"keyword\",\"string\",\"number\",\"comment\",\"punctuation\",\"operator\",\"type\",\"function\",\"property\",\"tag\",\"attribute\",\"success\",\"warning\",\"error\"],\n codeBlockVariant: [\"default\",\"destructive\"],\n codeBlockSize: [\"default\",\"sm\"],\n traceStatus: [\"running\",\"error\",\"pending\",\"done\",\"skipped\"],\n traceSize: [\"default\",\"sm\"],\n voiceWaveActivity: [\"idle\",\"listening\",\"thinking\",\"speaking\",\"muted\"],\n voiceWaveSize: [\"sm\",\"md\",\"lg\",\"xl\"],\n messageSide: [\"in\",\"out\"],\n messageStatus: [\"sending\",\"sent\",\"read\"],\n callState: [\"ringing\",\"connecting\",\"talking\",\"ended\"],\n voiceWaveVariant: [\"ring\",\"bars\"],\n qrLevel: [\"L\",\"M\",\"Q\",\"H\"],\n planState: [\"proposed\",\"running\",\"done\",\"declined\"],\n} as const\nexport type VariantValue = (typeof ENUMS)[\"variant\"][number]\nexport type SizeValue = (typeof ENUMS)[\"size\"][number]\nexport type ToneValue = (typeof ENUMS)[\"tone\"][number]\nexport type GapValue = (typeof ENUMS)[\"gap\"][number]\nexport type AlignValue = (typeof ENUMS)[\"align\"][number]\nexport type JustifyValue = (typeof ENUMS)[\"justify\"][number]\nexport type TextVariantValue = (typeof ENUMS)[\"textVariant\"][number]\nexport type HeadingLevelValue = (typeof ENUMS)[\"headingLevel\"][number]\nexport type ImageFitValue = (typeof ENUMS)[\"imageFit\"][number]\nexport type OrientationValue = (typeof ENUMS)[\"orientation\"][number]\nexport type SideValue = (typeof ENUMS)[\"side\"][number]\nexport type InputTypeValue = (typeof ENUMS)[\"inputType\"][number]\nexport type ValidateOnValue = (typeof ENUMS)[\"validateOn\"][number]\nexport type AlertTypeValue = (typeof ENUMS)[\"alertType\"][number]\nexport type ControlSizeValue = (typeof ENUMS)[\"controlSize\"][number]\nexport type SpinnerSizeValue = (typeof ENUMS)[\"spinnerSize\"][number]\nexport type TabClosableValue = (typeof ENUMS)[\"tabClosable\"][number]\nexport type GroupTypeValue = (typeof ENUMS)[\"groupType\"][number]\nexport type RowChevronValue = (typeof ENUMS)[\"rowChevron\"][number]\nexport type RowSurfaceValue = (typeof ENUMS)[\"rowSurface\"][number]\nexport type ChipShapeValue = (typeof ENUMS)[\"chipShape\"][number]\nexport type DensityValue = (typeof ENUMS)[\"density\"][number]\nexport type ListDirectionValue = (typeof ENUMS)[\"listDirection\"][number]\nexport type ChartKindValue = (typeof ENUMS)[\"chartKind\"][number]\nexport type SegmentedVariantValue = (typeof ENUMS)[\"segmentedVariant\"][number]\nexport type LiveToneValue = (typeof ENUMS)[\"liveTone\"][number]\nexport type MenuItemKindValue = (typeof ENUMS)[\"menuItemKind\"][number]\nexport type OpenOnValue = (typeof ENUMS)[\"openOn\"][number]\nexport type MenuOpenOnValue = (typeof ENUMS)[\"menuOpenOn\"][number]\nexport type LiveValue = (typeof ENUMS)[\"live\"][number]\nexport type SelectableValue = (typeof ENUMS)[\"selectable\"][number]\nexport type CellTypeValue = (typeof ENUMS)[\"cellType\"][number]\nexport type SortDirectionValue = (typeof ENUMS)[\"sortDirection\"][number]\nexport type ImageLoadingValue = (typeof ENUMS)[\"imageLoading\"][number]\nexport type ScrollDirectionValue = (typeof ENUMS)[\"scrollDirection\"][number]\nexport type CollapseBelowValue = (typeof ENUMS)[\"collapseBelow\"][number]\nexport type CodeLanguageValue = (typeof ENUMS)[\"codeLanguage\"][number]\nexport type CodeTokenValue = (typeof ENUMS)[\"codeToken\"][number]\nexport type CodeBlockVariantValue = (typeof ENUMS)[\"codeBlockVariant\"][number]\nexport type CodeBlockSizeValue = (typeof ENUMS)[\"codeBlockSize\"][number]\nexport type TraceStatusValue = (typeof ENUMS)[\"traceStatus\"][number]\nexport type TraceSizeValue = (typeof ENUMS)[\"traceSize\"][number]\nexport type VoiceWaveActivityValue = (typeof ENUMS)[\"voiceWaveActivity\"][number]\nexport type VoiceWaveSizeValue = (typeof ENUMS)[\"voiceWaveSize\"][number]\nexport type MessageSideValue = (typeof ENUMS)[\"messageSide\"][number]\nexport type MessageStatusValue = (typeof ENUMS)[\"messageStatus\"][number]\nexport type CallStateValue = (typeof ENUMS)[\"callState\"][number]\nexport type VoiceWaveVariantValue = (typeof ENUMS)[\"voiceWaveVariant\"][number]\nexport type QrLevelValue = (typeof ENUMS)[\"qrLevel\"][number]\nexport type PlanStateValue = (typeof ENUMS)[\"planState\"][number]\n\n/** Token NAMES by group (values come from a theme). */\nexport const TOKEN_NAMES = {\n \"color\": [\"background\",\"foreground\",\"card\",\"cardForeground\",\"popover\",\"popoverForeground\",\"primary\",\"primaryForeground\",\"secondary\",\"secondaryForeground\",\"muted\",\"mutedForeground\",\"accent\",\"accentForeground\",\"destructive\",\"destructiveForeground\",\"success\",\"successForeground\",\"warning\",\"warningForeground\",\"info\",\"infoForeground\",\"border\",\"input\",\"ring\",\"chart1\",\"chart2\",\"chart3\",\"chart4\",\"chart5\",\"chart6\",\"chart7\",\"chart8\"],\n \"spacing\": [\"none\",\"xxs\",\"xs\",\"sm\",\"md\",\"lg\",\"xl\",\"xl2\",\"xl3\"],\n \"radius\": [\"none\",\"sm\",\"md\",\"lg\",\"xl\",\"xl2\",\"xl3\",\"full\"],\n \"type.size\": [\"xs\",\"sm\",\"base\",\"lg\",\"xl\",\"xl2\",\"xl3\"],\n \"type.lineHeight\": [\"xs\",\"sm\",\"base\",\"lg\",\"xl\",\"xl2\",\"xl3\"],\n \"type.weight\": [\"regular\",\"medium\",\"semibold\",\"bold\"],\n \"type.family\": [\"sans\",\"mono\",\"serif\"],\n \"control\": [\"buttonSm\",\"buttonMd\",\"buttonLg\",\"buttonIcon\",\"input\",\"textarea\",\"row\",\"rowCompact\",\"pill\",\"badge\",\"chip\",\"toggle\",\"switch\",\"checkbox\",\"slider\",\"progress\",\"meter\",\"avatarSm\",\"avatarMd\",\"avatarLg\",\"iconSm\",\"iconMd\",\"iconLg\",\"hairline\",\"appBar\",\"tabBar\",\"toast\"],\n \"shadow\": [\"none\",\"sm\",\"md\",\"lg\",\"xl\"],\n \"opacity\": [\"primary\",\"secondary\",\"tertiary\",\"quaternary\",\"disabled\"],\n \"border\": [\"none\",\"hairline\",\"thick\"],\n \"motion\": [\"fast\",\"standard\",\"slow\"],\n \"breakpoint\": [\"sm\",\"md\",\"lg\",\"xl\"],\n \"ease\": [\"standard\",\"decelerate\",\"accelerate\"],\n \"density\": [\"compact\",\"comfortable\"],\n \"blur\": [\"sm\",\"md\",\"lg\",\"xl\"],\n \"scale\": [\"press\",\"popoverFrom\"],\n} as const\nexport type TokenGroup = keyof typeof TOKEN_NAMES\n\nexport const STYLE_KEY_NAMES = [\"display\",\"flexDirection\",\"flexWrap\",\"justifyContent\",\"alignItems\",\"alignContent\",\"alignSelf\",\"justifySelf\",\"flexGrow\",\"flexShrink\",\"flexBasis\",\"gap\",\"rowGap\",\"columnGap\",\"direction\",\"overflow\",\"overflowX\",\"overflowY\",\"width\",\"height\",\"minWidth\",\"minHeight\",\"maxWidth\",\"maxHeight\",\"aspectRatio\",\"position\",\"top\",\"right\",\"bottom\",\"left\",\"inset\",\"insetInlineStart\",\"insetInlineEnd\",\"insetBlockStart\",\"insetBlockEnd\",\"padding\",\"paddingTop\",\"paddingRight\",\"paddingBottom\",\"paddingLeft\",\"paddingHorizontal\",\"paddingVertical\",\"paddingInlineStart\",\"paddingInlineEnd\",\"margin\",\"marginTop\",\"marginRight\",\"marginBottom\",\"marginLeft\",\"marginHorizontal\",\"marginVertical\",\"marginInlineStart\",\"marginInlineEnd\",\"gridTemplateColumns\",\"gridTemplateRows\",\"gridTemplateAreas\",\"gridArea\",\"gridColumn\",\"gridRow\",\"backgroundColor\",\"backgroundGradient\",\"color\",\"borderWidth\",\"borderTopWidth\",\"borderRightWidth\",\"borderBottomWidth\",\"borderLeftWidth\",\"borderColor\",\"borderStyle\",\"borderRadius\",\"borderTopLeftRadius\",\"borderTopRightRadius\",\"borderBottomRightRadius\",\"borderBottomLeftRadius\",\"opacity\",\"boxShadow\",\"fontSize\",\"fontWeight\",\"lineHeight\",\"letterSpacing\",\"textAlign\",\"textDecoration\",\"textTransform\",\"fontStyle\",\"fontFamily\",\"transition\",\"transitionEasing\",\"transform\",\"visibility\",\"pointerEvents\",\"userSelect\",\"cursor\",\"backdropBlur\",\"animation\",\"animationDuration\"] as const\nexport const STYLE_STATE_NAMES = [\":hover\",\":focus-visible\",\":pressed\"] as const\n\n/** The Icon prop's vocabulary: packages/icons/icons.json at generate time. */\nexport const ICON_NAMES = [\"a-large-small\",\"action-chat\",\"action-create\",\"action-default\",\"action-repository\",\"action-run\",\"action-suggestion\",\"activity\",\"anchor\",\"app-editor-chat\",\"archive\",\"archive-restore\",\"arrow-down\",\"arrow-down-left\",\"arrow-left\",\"arrow-left-right\",\"arrow-right\",\"arrow-up-right\",\"at-sign\",\"atom\",\"audio-lines\",\"auth-passkey\",\"award\",\"ban\",\"bell\",\"bell-off\",\"bold\",\"book-open\",\"bookmark\",\"bot\",\"boxes\",\"braces\",\"brain\",\"briefcase\",\"brush-cleaning\",\"bug\",\"building\",\"building-2\",\"calculator\",\"calendar\",\"calendar-days\",\"call-end\",\"call-incoming\",\"call-mute\",\"call-speaker\",\"call-speaker-off\",\"call-unmute\",\"camera\",\"car\",\"chart-line\",\"check\",\"check-check\",\"chevron-down\",\"chevron-left\",\"chevron-right\",\"chevron-up\",\"chevrons-up-down\",\"circle\",\"circle-arrow-up\",\"circle-check\",\"circle-dashed\",\"circle-dot\",\"circle-question-mark\",\"circle-slash\",\"circle-stop\",\"circle-user\",\"circle-x\",\"clipboard-list\",\"clock\",\"cloud\",\"code\",\"coding-assistant\",\"coding-command\",\"coding-compact\",\"coding-diff\",\"coding-ended\",\"coding-in-review\",\"coding-needs-input\",\"coding-plan\",\"coding-running\",\"coding-stop\",\"coding-subagent\",\"coding-tool\",\"coffee\",\"compass\",\"computer\",\"copy\",\"corner-down-right\",\"cpu\",\"credit-card\",\"crown\",\"database\",\"download\",\"droplet\",\"dumbbell\",\"ear\",\"editor-bold\",\"editor-clear-formatting\",\"editor-code\",\"editor-emoji\",\"editor-heading-1\",\"editor-heading-2\",\"editor-heading-3\",\"editor-image\",\"editor-issue-ref\",\"editor-italic\",\"editor-link\",\"editor-list\",\"editor-list-ordered\",\"editor-list-todo\",\"editor-mention\",\"editor-quote\",\"editor-strikethrough\",\"editor-text\",\"editor-text-format\",\"editor-unlink\",\"ellipsis\",\"ellipsis-vertical\",\"event-assignee-changed\",\"event-board-moved\",\"event-estimate-changed\",\"event-label-added\",\"event-label-removed\",\"event-priority-changed\",\"event-relation-added\",\"event-relation-removed\",\"event-status-changed\",\"event-title-changed\",\"external-link\",\"eye\",\"eye-off\",\"fast-forward\",\"file\",\"file-diff\",\"file-pen-line\",\"file-text\",\"fingerprint\",\"flag\",\"flame\",\"flask-conical\",\"fold-vertical\",\"folder\",\"folder-kanban\",\"folder-open\",\"gamepad-2\",\"gauge\",\"gem\",\"gift\",\"git-branch\",\"git-merge\",\"git-pull-request\",\"github\",\"globe\",\"graduation-cap\",\"guide-changes\",\"hammer\",\"hand\",\"hard-drive\",\"hash\",\"heading-1\",\"heading-2\",\"heading-3\",\"headphones\",\"heart\",\"heart-off\",\"history\",\"hourglass\",\"house\",\"image\",\"images\",\"inbox\",\"info\",\"italic\",\"key\",\"landmark\",\"laptop\",\"layers\",\"layers-2\",\"layout-grid\",\"leaf\",\"lightbulb\",\"link\",\"link-2\",\"list\",\"list-checks\",\"list-end\",\"list-ordered\",\"list-todo\",\"list-tree\",\"loader-circle\",\"lock\",\"lock-open\",\"log-in\",\"log-out\",\"mail\",\"mail-open\",\"map\",\"map-pin\",\"maximize-2\",\"media-fast-forward\",\"media-rewind\",\"media-skip-next\",\"media-skip-previous\",\"media-volume-down\",\"media-volume-mute\",\"media-volume-off\",\"media-volume-up\",\"megaphone\",\"menu\",\"message-circle\",\"message-square\",\"message-square-plus\",\"message-square-reply\",\"mic\",\"mic-off\",\"microscope\",\"minimize-2\",\"minus\",\"monitor\",\"monitor-off\",\"moon\",\"mountain\",\"move\",\"music\",\"nav-account\",\"nav-actions\",\"nav-admin\",\"nav-apps\",\"nav-boards\",\"nav-changelog\",\"nav-computer\",\"nav-create-issue\",\"nav-devices\",\"nav-drafts\",\"nav-files\",\"nav-getting-started\",\"nav-inbox\",\"nav-issues\",\"nav-my-issues\",\"nav-notifications\",\"nav-rail-collapse\",\"nav-rail-expand\",\"nav-report-bug\",\"nav-search\",\"nav-settings\",\"nav-sign-out\",\"nav-source-control\",\"nav-team-switcher\",\"nav-terminal\",\"nav-threads\",\"newspaper\",\"notification-agent-message\",\"notification-issue-assigned\",\"notification-issue-comment\",\"notification-issue-created\",\"notification-issue-mention\",\"notification-issue-status-changed\",\"notification-mark-read\",\"notification-mute\",\"notification-pr-merged\",\"notification-pr-opened\",\"notification-reporter-reply\",\"notification-session-blocked\",\"os-apple\",\"os-linux\",\"os-windows\",\"package\",\"paintbrush\",\"palette\",\"panel-left-close\",\"panel-left-open\",\"paperclip\",\"pause\",\"pen-tool\",\"pencil\",\"phone\",\"phone-incoming\",\"phone-off\",\"pin\",\"pin-off\",\"plane\",\"play\",\"plug\",\"plus\",\"pr-batch\",\"pr-closed\",\"pr-draft\",\"pr-merged\",\"pr-open\",\"pr-stack\",\"printer\",\"priority-high\",\"priority-low\",\"priority-medium\",\"priority-none\",\"priority-urgent\",\"progress-1-4\",\"progress-1-5\",\"progress-2-4\",\"progress-2-5\",\"progress-3-4\",\"progress-3-5\",\"progress-4-5\",\"puzzle\",\"qr-code\",\"quote\",\"refresh-cw\",\"relation-blocked-by\",\"relation-blocks\",\"relation-duplicate\",\"relation-parent\",\"relation-related\",\"relation-section\",\"relation-sub-issue\",\"remove-formatting\",\"repeat\",\"rewind\",\"rocket\",\"rotate-ccw\",\"run-pause\",\"run-resume\",\"sc-push\",\"scale\",\"scan-line\",\"search\",\"search-x\",\"send\",\"server\",\"session-shell\",\"session-tree\",\"settings\",\"settings-about\",\"settings-account\",\"settings-agents\",\"settings-api\",\"settings-billing\",\"settings-boards\",\"settings-general\",\"settings-import\",\"settings-issues\",\"settings-labels\",\"settings-licenses\",\"settings-local-repos\",\"settings-mcp\",\"settings-members\",\"settings-notifications\",\"settings-rate\",\"settings-repositories\",\"settings-servers\",\"settings-sessions\",\"settings-statuses\",\"settings-storage\",\"settings-sync\",\"settings-tools\",\"settings-voice\",\"settings-widget\",\"share-2\",\"shield\",\"shield-check\",\"shield-question-mark\",\"shopping-bag\",\"shopping-cart\",\"signal-high\",\"signal-low\",\"signal-medium\",\"skip-back\",\"skip-forward\",\"sliders-horizontal\",\"smartphone\",\"smile\",\"sparkles\",\"square\",\"square-check\",\"square-kanban\",\"square-minus\",\"square-pen\",\"square-slash\",\"square-terminal\",\"star\",\"star-half\",\"star-off\",\"status-backlog\",\"status-cancelled\",\"status-done\",\"status-duplicate\",\"status-in-progress\",\"status-in-review\",\"status-todo\",\"stethoscope\",\"store\",\"strikethrough\",\"sun\",\"support-open\",\"support-resolved\",\"tag\",\"target\",\"terminal\",\"thread-stories\",\"tool-script\",\"trace-background\",\"trace-chevron\",\"trace-completed\",\"trace-edit\",\"trace-failed\",\"trace-fetch\",\"trace-read\",\"trace-reasoning\",\"trace-search\",\"trace-subagent\",\"trace-task-done\",\"trace-task-pending\",\"trace-task-running\",\"trace-terminal\",\"trace-todo\",\"trace-tool\",\"trash-2\",\"tree-pine\",\"triangle-alert\",\"trigger-event\",\"trigger-schedule\",\"trophy\",\"truck\",\"type\",\"ui-add\",\"ui-agent-source\",\"ui-archive\",\"ui-arrow-down\",\"ui-arrow-right\",\"ui-assignee\",\"ui-attach\",\"ui-avatar-placeholder\",\"ui-back\",\"ui-branch\",\"ui-check\",\"ui-checklist\",\"ui-chevron-down\",\"ui-chevron-left\",\"ui-chevron-right\",\"ui-chevron-up\",\"ui-clean\",\"ui-clear\",\"ui-clock\",\"ui-close\",\"ui-cloud\",\"ui-copy\",\"ui-delete\",\"ui-delete-account\",\"ui-device\",\"ui-device-default\",\"ui-device-offline\",\"ui-dock-side\",\"ui-docs\",\"ui-download\",\"ui-due-date\",\"ui-edit\",\"ui-empty-search\",\"ui-error\",\"ui-estimate\",\"ui-external-link\",\"ui-favorite-off\",\"ui-file\",\"ui-float\",\"ui-folder\",\"ui-folder-open\",\"ui-fullscreen\",\"ui-fullscreen-exit\",\"ui-github\",\"ui-help\",\"ui-hide\",\"ui-history\",\"ui-hold\",\"ui-icon-placeholder\",\"ui-indeterminate\",\"ui-info\",\"ui-invite\",\"ui-issue\",\"ui-link\",\"ui-loading\",\"ui-mail\",\"ui-mark-read\",\"ui-mark-unread\",\"ui-mcp\",\"ui-member\",\"ui-menu\",\"ui-minus\",\"ui-more\",\"ui-more-vertical\",\"ui-offline\",\"ui-organization\",\"ui-owner\",\"ui-permission\",\"ui-pin\",\"ui-print\",\"ui-private\",\"ui-properties\",\"ui-qr-code\",\"ui-queued\",\"ui-read\",\"ui-redock\",\"ui-refresh\",\"ui-remove-member\",\"ui-repeat\",\"ui-repository\",\"ui-scan\",\"ui-selected\",\"ui-selector\",\"ui-send\",\"ui-server\",\"ui-share\",\"ui-sign-in\",\"ui-sign-out\",\"ui-staging\",\"ui-star-half\",\"ui-star-off\",\"ui-stop\",\"ui-submit\",\"ui-subscribe\",\"ui-success\",\"ui-swap\",\"ui-team\",\"ui-unarchive\",\"ui-unassigned\",\"ui-undo\",\"ui-undock\",\"ui-unlock\",\"ui-unpin\",\"ui-unselected\",\"ui-unsubscribe\",\"ui-update\",\"ui-usage\",\"ui-warning\",\"ui-watch\",\"ui-widget\",\"undo-2\",\"unlink\",\"upload\",\"user\",\"user-minus\",\"user-plus\",\"user-x\",\"users\",\"video\",\"voice-call\",\"voice-level\",\"volume-1\",\"volume-2\",\"volume-off\",\"volume-x\",\"wallet\",\"wifi-off\",\"work-faces\",\"work-results\",\"workflow\",\"wrench\",\"x\",\"zap\"] as const\n\nexport const FUNCTION_NAMES = [\"required\",\"regex\",\"length\",\"numeric\",\"email\",\"formatString\",\"formatNumber\",\"formatCurrency\",\"formatDate\",\"pluralize\",\"openUrl\",\"and\",\"or\",\"not\",\"percent\",\"add\",\"sub\",\"eq\",\"lt\",\"clamp\",\"cond\",\"fallback\",\"concat\",\"coalesce\",\"text\",\"map\",\"len\",\"fill\",\"set\",\"formatPercent\",\"formatRelativeTime\",\"filter\",\"bind\"] as const\n\n/** VAPP-108: the typed authoring surface (src/define.ts). A ~ prop also\n * takes a binding or a call, a ^ prop a per-breakpoint object. */\nexport type Dynamic = DataBinding | FunctionCall\nexport type Responsive<T> = { base: T; sm?: T; md?: T; lg?: T; xl?: T }\nexport type IconName = (typeof ICON_NAMES)[number]\n/** The shared shapes (catalog `defs`). */\nexport interface Shapes {\n option: { label: string | Dynamic; value: string; icon?: IconName; disabled?: boolean; description?: string; image?: string; count?: number | Dynamic }\n check: { condition: boolean | Dynamic; message: string }\n tab: { label: string | Dynamic; value: string; icon?: IconName; count?: number }\n menuItem: { label?: string; value?: string; kind?: MenuItemKindValue; icon?: IconName; shortcut?: string; checked?: boolean | Dynamic; destructive?: boolean; disabled?: boolean; items?: Shapes[\"menuItem\"][] | Dynamic; searchable?: boolean; placeholder?: string }\n searchItem: { label: string | Dynamic; value: string; icon?: IconName; identifier?: string; disabled?: boolean }\n accordionItem: { title: string | Dynamic; value: string; count?: number }\n segment: { value: number; tone?: ToneValue; label?: string }\n series: { name: string; values: number[]; tone?: ToneValue }\n pageItem: { title?: string }\n step: { label: string; description?: string }\n column: { key: string; label: string; type?: CellTypeValue; slot?: string; width?: number; align?: \"start\" | \"center\" | \"end\"; sortable?: boolean; currency?: string; decimals?: number }\n sort: { key: string; direction: SortDirectionValue }\n panel: { min?: number; max?: number; collapsible?: boolean }\n file: { name: string; size?: number; type?: string; url?: string }\n planStep: { title: string; detail?: string; icon?: IconName; status?: TraceStatusValue }\n outlineItem: { id: string; title: string | Dynamic; count?: number | Dynamic }\n picture: { src: string; alt?: string }\n}\n/** Every component's props, by name. */\nexport interface ComponentProps {\n Box: { style?: Style; pressable?: boolean }\n Stack: { direction?: OrientationValue | Responsive<OrientationValue> | Dynamic; gap?: GapValue | Responsive<GapValue>; align?: AlignValue | Responsive<AlignValue> | Dynamic; justify?: JustifyValue | Responsive<JustifyValue> | Dynamic; wrap?: boolean | Responsive<boolean>; style?: Style }\n Grid: { columns?: number | Responsive<number>; gap?: GapValue | Responsive<GapValue>; style?: Style }\n Card: { title?: string; description?: string; padded?: boolean; style?: Style }\n Separator: { orientation?: OrientationValue }\n List: { direction?: ListDirectionValue; gap?: GapValue; divided?: boolean; sectionBy?: string; stickyHeaders?: boolean; style?: Style }\n Resizable: { direction?: OrientationValue | Responsive<OrientationValue>; sizes?: number[] | Dynamic; panels?: Shapes[\"panel\"][]; handle?: boolean; style?: Style }\n ScrollArea: { direction?: ScrollDirectionValue; maxHeight?: number; style?: Style }\n Sidebar: { side?: \"left\" | \"right\"; width?: number; collapseBelow?: CollapseBelowValue; collapsed?: boolean | Dynamic }\n SplitView: { open?: boolean | Dynamic; width?: number }\n AppBar: { title: string | Dynamic; subtitle?: string | Dynamic; back?: boolean }\n Page: { title: string | Dynamic; subtitle?: string | Dynamic; back?: boolean; padded?: boolean }\n Toolbar: { gap?: GapValue }\n Section: { title?: string | Dynamic; caption?: string | Dynamic; count?: number | Dynamic; icon?: IconName; collapsible?: boolean; open?: boolean | Dynamic; tint?: ToneValue; tree?: boolean; loading?: boolean | Dynamic; style?: Style }\n Group: { title?: string; footer?: string }\n Text: { text: string | Dynamic; variant?: TextVariantValue; align?: \"start\" | \"center\" | \"end\"; lines?: number; tone?: ToneValue; shimmer?: boolean; live?: LiveValue; style?: Style }\n Heading: { text: string | Dynamic; level?: HeadingLevelValue }\n Markdown: { text: string | Dynamic; lines?: number; style?: Style }\n CodeBlock: { code: string | Dynamic; language?: CodeLanguageValue; title?: string; lineNumbers?: boolean; wrap?: boolean; copyable?: boolean; highlight?: number[]; maxLines?: number; variant?: CodeBlockVariantValue | Dynamic; size?: CodeBlockSizeValue }\n Kbd: { keys: string }\n Label: { text: string | Dynamic; for?: string; required?: boolean }\n Image: { src?: string | Dynamic; alt: string | Dynamic; fit?: ImageFitValue; width?: number; height?: number; aspectRatio?: number; fallback?: IconName; loading?: ImageLoadingValue; focalX?: number; focalY?: number; style?: Style }\n Icon: { name: IconName | Dynamic; size?: ControlSizeValue; tone?: ToneValue | Dynamic; label?: string }\n Video: { src: string | Dynamic; poster?: string; durationMs?: number; autoplay?: boolean; aspectRatio?: number; style?: Style }\n AudioPlayer: { src: string | Dynamic; title?: string; durationMs?: number }\n Avatar: { name: string | Dynamic; src?: string | Dynamic; size?: ControlSizeValue; seed?: string }\n QrCode: { value: string | Dynamic; size?: number; level?: QrLevelValue; label?: string }\n Carousel: { page?: number | Dynamic; loop?: boolean; indicators?: boolean; counter?: boolean; thumbnails?: string[] }\n Mosaic: { pictures: Shapes[\"picture\"][]; label?: string }\n Tabs: { tabs: Shapes[\"tab\"][]; value?: string | Dynamic; fill?: boolean; closable?: TabClosableValue; addable?: boolean }\n Segmented: { items: Shapes[\"option\"][]; type?: GroupTypeValue; value?: string | Dynamic; variant?: SegmentedVariantValue; size?: ControlSizeValue; fill?: boolean; orientation?: OrientationValue }\n Accordion: { items: Shapes[\"accordionItem\"][]; type?: GroupTypeValue; value?: string | Dynamic }\n Collapsible: { title: string; open?: boolean | Dynamic; count?: number }\n Trace: { size?: TraceSizeValue }\n TraceItem: { title: string | Dynamic; icon?: IconName; description?: string; status?: TraceStatusValue; size?: TraceSizeValue; collapsible?: boolean; open?: boolean | Dynamic }\n Plan: { title: string | Dynamic; description?: string | Dynamic; steps?: Shapes[\"planStep\"][]; state?: PlanStateValue | Dynamic; progress?: number | Dynamic; approveLabel?: string; declineLabel?: string; stopLabel?: string }\n Pagination: { totalPages: number; page?: number | Dynamic }\n Breadcrumb: { items: Shapes[\"option\"][] }\n Outline: { items: Shapes[\"outlineItem\"][]; value?: string | Dynamic; caption?: string }\n Stepper: { steps: Shapes[\"step\"][]; current?: number | Dynamic; orientation?: OrientationValue }\n Dialog: { title?: string; description?: string; open?: boolean | Dynamic; dismissible?: boolean }\n Drawer: { title?: string; description?: string; open?: boolean | Dynamic; side?: SideValue | Responsive<SideValue>; dismissible?: boolean; dragToDismiss?: boolean }\n DockCard: { label: string | Dynamic; title: string | Dynamic; caption?: string | Dynamic; meta?: string | Dynamic; icon?: IconName; tone?: ToneValue; open?: boolean | Dynamic }\n AlertDialog: { title: string; description?: string; confirmLabel?: string; cancelLabel?: string; destructive?: boolean; open?: boolean | Dynamic }\n Popover: { open?: boolean | Dynamic; side?: SideValue; openOn?: OpenOnValue }\n Tooltip: { content: string; side?: SideValue }\n Menu: { label?: string; icon?: IconName; items: Shapes[\"menuItem\"][]; openOn?: MenuOpenOnValue }\n Toast: { title: string | Dynamic; description?: string | Dynamic; type?: AlertTypeValue; open?: boolean | Dynamic; duration?: number; actionLabel?: string; dismissible?: boolean }\n Badge: { text: string | Dynamic; variant?: VariantValue | Dynamic; icon?: IconName }\n Alert: { title: string; message?: string; type?: AlertTypeValue }\n Chip: { label: string | Dynamic; shape?: ChipShapeValue; selected?: boolean; tone?: ToneValue | Dynamic; dot?: string; icon?: IconName; image?: string; detail?: string; removable?: boolean; pressable?: boolean }\n EmptyState: { icon: IconName; title: string; description?: string; actionLabel?: string; size?: \"page\" | \"list\" }\n Progress: { value: number | Dynamic; max?: number; label?: string; tone?: ToneValue }\n Meter: { segments: Shapes[\"segment\"][]; max?: number; label?: string; value?: string }\n Ring: { value: number | Dynamic; size?: ControlSizeValue; tone?: ToneValue; label?: string }\n Spinner: { size?: SpinnerSizeValue; label?: string }\n Skeleton: { width?: string; height?: string; rounded?: boolean; rows?: number; rowHeight?: number; dot?: boolean }\n VoiceWave: { activity?: VoiceWaveActivityValue | Dynamic; variant?: VoiceWaveVariantValue; level?: number | Dynamic; bands?: number[] | Dynamic; size?: VoiceWaveSizeValue; label?: string }\n CallSurface: { name: string | Dynamic; avatar?: string | Dynamic; state?: CallStateValue | Dynamic; activity?: VoiceWaveActivityValue | Dynamic; level?: number | Dynamic; bands?: number[] | Dynamic; status?: string | Dynamic; caption?: string | Dynamic; muted?: boolean | Dynamic; speaker?: boolean | Dynamic }\n Table: { columns: Shapes[\"column\"][]; rows: Record<string, unknown>[] | Dynamic; rowKey?: string; sort?: Shapes[\"sort\"] | Dynamic; selectable?: SelectableValue; selected?: string[] | Dynamic; caption?: string; emptyText?: string; striped?: boolean; density?: DensityValue; stickyHeader?: boolean }\n Chart: { kind: ChartKindValue; categories?: string[] | Dynamic; series: Shapes[\"series\"][] | Dynamic; title?: string; height?: number; xLabel?: string; yLabel?: string; min?: number; max?: number; showAxes?: boolean; showGrid?: boolean; showLegend?: boolean; showValues?: boolean }\n Sparkline: { values: number[] | Dynamic; tone?: ToneValue; height?: number }\n StatTile: { label: string | Dynamic; value: string | Dynamic; delta?: string | Dynamic; tone?: ToneValue | Dynamic; trend?: number[] | Dynamic }\n Button: { label?: string | Dynamic; icon?: IconName | Dynamic; variant?: VariantValue; size?: SizeValue; disabled?: boolean | Dynamic; loading?: boolean; pendingLabel?: string; submit?: boolean; hold?: boolean; holdingLabel?: string }\n Link: { label: string | Dynamic; href?: string; external?: boolean }\n Toggle: { label: string; icon?: IconName; pressed?: boolean | Dynamic; variant?: \"default\" | \"outline\"; size?: ControlSizeValue }\n Form: { name: string; disabled?: boolean | Dynamic; busy?: boolean | Dynamic; summary?: boolean }\n FieldGroup: { columns?: number }\n FormActions: { submit: string | Dynamic; cancel?: boolean; destructive?: boolean }\n Input: { label: string; name: string; type?: InputTypeValue; placeholder?: string; value?: string | Dynamic; disabled?: boolean; checks?: Shapes[\"check\"][]; validateOn?: ValidateOnValue }\n Textarea: { label: string; name: string; placeholder?: string; rows?: number; autosize?: boolean; maxRows?: number; value?: string | Dynamic; disabled?: boolean; checks?: Shapes[\"check\"][]; validateOn?: ValidateOnValue }\n NumberField: { label: string; name: string; value?: number | Dynamic; min?: number; max?: number; step?: number; precision?: number; unit?: string; placeholder?: string; disabled?: boolean; checks?: Shapes[\"check\"][]; validateOn?: ValidateOnValue }\n Checkbox: { label: string | Dynamic; name: string; checked?: boolean | Dynamic; disabled?: boolean; checks?: Shapes[\"check\"][] }\n Radio: { label?: string; name: string; options: Shapes[\"option\"][]; value?: string | Dynamic; orientation?: OrientationValue; checks?: Shapes[\"check\"][] }\n ChoiceTiles: { name: string; options: Shapes[\"option\"][]; type?: GroupTypeValue; value?: string | Dynamic; columns?: number; disabled?: boolean; checks?: Shapes[\"check\"][] }\n Switch: { label: string | Dynamic; name: string; checked?: boolean | Dynamic; description?: string; disabled?: boolean }\n Slider: { label?: string; min?: number | Dynamic; max: number | Dynamic; step?: number; value?: number | Dynamic }\n Rating: { value?: number | Dynamic; max?: number; readOnly?: boolean; size?: ControlSizeValue }\n Select: { label?: string; name: string; options?: Shapes[\"option\"][] | Dynamic; source?: string; placeholder?: string; value?: string | Dynamic; multiple?: boolean; searchable?: boolean; emptyText?: string; disabled?: boolean; checks?: Shapes[\"check\"][]; validateOn?: ValidateOnValue }\n SearchList: { items: Shapes[\"searchItem\"][] | Dynamic; query?: string | Dynamic; placeholder?: string; value?: string | Dynamic; emptyText?: string; maxRows?: number; showCount?: boolean }\n ChipInput: { label?: string; name: string; values?: string[] | Dynamic; suggestions?: Shapes[\"option\"][] | Dynamic; placeholder?: string; max?: number; disabled?: boolean; checks?: Shapes[\"check\"][] }\n DatePicker: { label?: string; name: string; value?: string | Dynamic; min?: string; max?: string; placeholder?: string; firstDayOfWeek?: number }\n DateRangePicker: { label?: string; name: string; start?: string | Dynamic; end?: string | Dynamic; min?: string; max?: string; placeholder?: string; firstDayOfWeek?: number }\n TimePicker: { label?: string; name: string; value?: string | Dynamic; min?: string; max?: string; step?: number; placeholder?: string; disabled?: boolean }\n FileUpload: { label?: string; name: string; accept?: string; multiple?: boolean; maxSize?: number; files?: Shapes[\"file\"][] | Dynamic; hint?: string; disabled?: boolean }\n QrScanner: { hint?: string | Dynamic; formats?: string[]; label?: string; disabled?: boolean }\n Composer: { placeholder?: string; value?: string | Dynamic; submitLabel?: string; attachments?: boolean; busy?: boolean }\n Row: { title: string | Dynamic; identifier?: string | Dynamic; subtitle?: string | Dynamic; meta?: string | Dynamic; value?: string | Dynamic; placeholder?: string; icon?: IconName | Dynamic; chevron?: RowChevronValue | Dynamic; selected?: boolean | Dynamic; density?: DensityValue; surface?: RowSurfaceValue; pressable?: boolean; depth?: number }\n MessageBubble: { text: string | Dynamic; side?: MessageSideValue; time?: string | Dynamic; status?: MessageStatusValue | Dynamic; author?: string | Dynamic }\n TreeGuides: { depth: number; elbowAt?: number; tee?: boolean; passThrough?: number[] }\n Unknown: { component: string; catalogId?: string }\n}\n\n/** A2UI basic component → core component. */\nexport const BASIC_COMPONENT_MAP: Record<string, string> = {\"Text\":\"Text\",\"Image\":\"Image\",\"Icon\":\"Icon\",\"Video\":\"Video\",\"AudioPlayer\":\"AudioPlayer\",\"Row\":\"Stack\",\"Column\":\"Stack\",\"List\":\"List\",\"Card\":\"Card\",\"Tabs\":\"Tabs\",\"Modal\":\"Dialog\",\"Divider\":\"Separator\",\"Button\":\"Button\",\"TextField\":\"Input\",\"CheckBox\":\"Checkbox\",\"ChoicePicker\":\"Radio\",\"Slider\":\"Slider\",\"DateTimeInput\":\"DatePicker\"}\n/** A2UI basic icon name → icons.json name (the placeholder where none exists). */\nexport const BASIC_ICON_MAP: Record<string, string> = {\"accountCircle\":\"ui-assignee\",\"add\":\"ui-add\",\"arrowBack\":\"ui-back\",\"arrowForward\":\"ui-arrow-right\",\"attachFile\":\"ui-attach\",\"calendarToday\":\"calendar\",\"call\":\"phone\",\"camera\":\"camera\",\"check\":\"ui-check\",\"close\":\"ui-close\",\"delete\":\"ui-delete\",\"download\":\"ui-download\",\"edit\":\"ui-edit\",\"event\":\"ui-due-date\",\"error\":\"ui-error\",\"fastForward\":\"media-fast-forward\",\"favorite\":\"heart\",\"favoriteOff\":\"ui-favorite-off\",\"folder\":\"ui-folder\",\"help\":\"ui-help\",\"home\":\"house\",\"info\":\"ui-info\",\"locationOn\":\"map-pin\",\"lock\":\"ui-private\",\"lockOpen\":\"ui-unlock\",\"mail\":\"ui-mail\",\"menu\":\"ui-menu\",\"moreVert\":\"ui-more-vertical\",\"moreHoriz\":\"ui-more\",\"notificationsOff\":\"ui-unsubscribe\",\"notifications\":\"ui-subscribe\",\"pause\":\"run-pause\",\"payment\":\"credit-card\",\"person\":\"ui-avatar-placeholder\",\"phone\":\"smartphone\",\"photo\":\"image\",\"play\":\"action-run\",\"print\":\"ui-print\",\"refresh\":\"ui-refresh\",\"rewind\":\"media-rewind\",\"search\":\"nav-search\",\"send\":\"ui-send\",\"settings\":\"nav-settings\",\"share\":\"ui-share\",\"shoppingCart\":\"shopping-cart\",\"skipNext\":\"media-skip-next\",\"skipPrevious\":\"media-skip-previous\",\"star\":\"star\",\"starHalf\":\"ui-star-half\",\"starOff\":\"ui-star-off\",\"stop\":\"ui-stop\",\"upload\":\"sc-push\",\"visibility\":\"ui-watch\",\"visibilityOff\":\"ui-hide\",\"volumeDown\":\"media-volume-down\",\"volumeMute\":\"media-volume-mute\",\"volumeOff\":\"media-volume-off\",\"volumeUp\":\"media-volume-up\",\"warning\":\"ui-warning\"}\nexport const BASIC_PLACEHOLDER_ICON = \"ui-icon-placeholder\"\n",
|
|
5
|
+
"// AUTO-GENERATED by packages/exponential-ui/scripts/generate.ts — do not edit.\n// Source of truth: packages/exponential-ui/catalog/core.catalog.json (+ tokens.json, style.json, basic-map.json, strings.json, locale.json, code.json, a11y.json, layout.json).\n\nimport type { Style } from \"./style\"\nimport type { DataBinding, FunctionCall } from \"./types\"\n\nexport const CATALOG_ID = \"https://ui.exponential.at/catalogs/core/v1\"\nexport const LITE_CATALOG_ID = \"https://ui.exponential.at/catalogs/core-lite/v1\"\nexport const BASIC_CATALOG_ID = \"https://a2ui.org/specification/v0_9/basic_catalog.json\"\nexport const BASIC_VERSION = \"v0.9\"\nexport const CATALOG_VERSION = \"1\"\nexport const UNKNOWN_COMPONENT_NAME = \"Unknown\"\n\n/** Every component in source order (the hidden placeholder included). */\nexport const COMPONENT_NAMES = [\"Box\",\"Stack\",\"Grid\",\"Card\",\"Separator\",\"List\",\"Resizable\",\"ScrollArea\",\"Sidebar\",\"SplitView\",\"AppBar\",\"Page\",\"Toolbar\",\"Section\",\"Group\",\"Text\",\"Heading\",\"Markdown\",\"CodeBlock\",\"Kbd\",\"Label\",\"Image\",\"ZoomableImage\",\"Icon\",\"Video\",\"AudioPlayer\",\"Avatar\",\"QrCode\",\"Carousel\",\"Mosaic\",\"Tabs\",\"Segmented\",\"Accordion\",\"Collapsible\",\"Trace\",\"TraceItem\",\"Plan\",\"Pagination\",\"Breadcrumb\",\"Outline\",\"Stepper\",\"Dialog\",\"Drawer\",\"DockCard\",\"AlertDialog\",\"Popover\",\"Tooltip\",\"Menu\",\"Toast\",\"Badge\",\"Alert\",\"Chip\",\"EmptyState\",\"Progress\",\"Meter\",\"Ring\",\"Spinner\",\"Skeleton\",\"VoiceWave\",\"CallSurface\",\"Table\",\"Chart\",\"Sparkline\",\"StatTile\",\"Button\",\"Link\",\"Toggle\",\"Form\",\"FieldGroup\",\"FormActions\",\"Input\",\"Textarea\",\"NumberField\",\"Checkbox\",\"Radio\",\"ChoiceTiles\",\"Switch\",\"Slider\",\"Rating\",\"Select\",\"SearchList\",\"ChipInput\",\"DatePicker\",\"DateRangePicker\",\"TimePicker\",\"FileUpload\",\"QrScanner\",\"Composer\",\"Row\",\"MessageBubble\",\"TreeGuides\",\"Unknown\",\"Motion\"] as const\nexport type ComponentName = (typeof COMPONENT_NAMES)[number]\nexport const NATIVE_COMPONENTS = [\"Box\",\"List\",\"Resizable\",\"Text\",\"Markdown\",\"CodeBlock\",\"Image\",\"ZoomableImage\",\"Icon\",\"Video\",\"AudioPlayer\",\"Avatar\",\"QrCode\",\"Carousel\",\"Tabs\",\"Segmented\",\"Accordion\",\"Dialog\",\"Drawer\",\"Popover\",\"Tooltip\",\"Menu\",\"Toast\",\"Ring\",\"Spinner\",\"Skeleton\",\"VoiceWave\",\"Table\",\"Chart\",\"Button\",\"Link\",\"Toggle\",\"Form\",\"Input\",\"Textarea\",\"NumberField\",\"Checkbox\",\"Radio\",\"ChoiceTiles\",\"Switch\",\"Slider\",\"Select\",\"SearchList\",\"ChipInput\",\"DatePicker\",\"DateRangePicker\",\"TimePicker\",\"FileUpload\",\"QrScanner\",\"Composer\",\"TreeGuides\",\"Unknown\",\"Motion\"] as const\nexport const MACRO_COMPONENTS = [\"Stack\",\"Grid\",\"Card\",\"Separator\",\"ScrollArea\",\"Sidebar\",\"SplitView\",\"AppBar\",\"Page\",\"Toolbar\",\"Section\",\"Group\",\"Heading\",\"Kbd\",\"Label\",\"Mosaic\",\"Collapsible\",\"Trace\",\"TraceItem\",\"Plan\",\"Pagination\",\"Breadcrumb\",\"Outline\",\"Stepper\",\"DockCard\",\"AlertDialog\",\"Badge\",\"Alert\",\"Chip\",\"EmptyState\",\"Progress\",\"Meter\",\"CallSurface\",\"Sparkline\",\"StatTile\",\"FieldGroup\",\"FormActions\",\"Rating\",\"Row\",\"MessageBubble\"] as const\n/** The core-lite subset (no overlays, media or Chart). */\nexport const LITE_COMPONENTS = [\"Box\",\"Stack\",\"Grid\",\"Card\",\"Separator\",\"List\",\"Resizable\",\"ScrollArea\",\"Sidebar\",\"SplitView\",\"AppBar\",\"Page\",\"Toolbar\",\"Section\",\"Group\",\"Text\",\"Heading\",\"Markdown\",\"CodeBlock\",\"Kbd\",\"Label\",\"Icon\",\"Avatar\",\"Tabs\",\"Segmented\",\"Collapsible\",\"Trace\",\"TraceItem\",\"Plan\",\"Breadcrumb\",\"Outline\",\"Stepper\",\"Badge\",\"Alert\",\"Chip\",\"EmptyState\",\"Progress\",\"Meter\",\"Ring\",\"Skeleton\",\"StatTile\",\"Button\",\"Link\",\"Form\",\"FieldGroup\",\"FormActions\",\"Input\",\"Textarea\",\"NumberField\",\"Checkbox\",\"Switch\",\"Rating\",\"Select\",\"SearchList\",\"ChipInput\",\"DatePicker\",\"DateRangePicker\",\"TimePicker\",\"FileUpload\",\"Composer\",\"Row\",\"MessageBubble\",\"Motion\"] as const\nexport const COMPONENT_GROUPS: Record<ComponentName, string> = {\"Box\":\"layout\",\"Stack\":\"layout\",\"Grid\":\"layout\",\"Card\":\"layout\",\"Separator\":\"layout\",\"List\":\"layout\",\"Resizable\":\"layout\",\"ScrollArea\":\"layout\",\"Sidebar\":\"layout\",\"SplitView\":\"layout\",\"AppBar\":\"layout\",\"Page\":\"layout\",\"Toolbar\":\"layout\",\"Section\":\"list\",\"Group\":\"list\",\"Text\":\"text\",\"Heading\":\"text\",\"Markdown\":\"text\",\"CodeBlock\":\"text\",\"Kbd\":\"text\",\"Label\":\"text\",\"Image\":\"media\",\"ZoomableImage\":\"media\",\"Icon\":\"media\",\"Video\":\"media\",\"AudioPlayer\":\"media\",\"Avatar\":\"media\",\"QrCode\":\"media\",\"Carousel\":\"media\",\"Mosaic\":\"media\",\"Tabs\":\"navigation\",\"Segmented\":\"navigation\",\"Accordion\":\"navigation\",\"Collapsible\":\"navigation\",\"Trace\":\"list\",\"TraceItem\":\"list\",\"Plan\":\"list\",\"Pagination\":\"navigation\",\"Breadcrumb\":\"navigation\",\"Outline\":\"navigation\",\"Stepper\":\"navigation\",\"Dialog\":\"overlay\",\"Drawer\":\"overlay\",\"DockCard\":\"overlay\",\"AlertDialog\":\"overlay\",\"Popover\":\"overlay\",\"Tooltip\":\"overlay\",\"Menu\":\"overlay\",\"Toast\":\"overlay\",\"Badge\":\"feedback\",\"Alert\":\"feedback\",\"Chip\":\"feedback\",\"EmptyState\":\"feedback\",\"Progress\":\"feedback\",\"Meter\":\"feedback\",\"Ring\":\"feedback\",\"Spinner\":\"feedback\",\"Skeleton\":\"feedback\",\"VoiceWave\":\"feedback\",\"CallSurface\":\"media\",\"Table\":\"data\",\"Chart\":\"data\",\"Sparkline\":\"data\",\"StatTile\":\"data\",\"Button\":\"action\",\"Link\":\"action\",\"Toggle\":\"action\",\"Form\":\"input\",\"FieldGroup\":\"input\",\"FormActions\":\"input\",\"Input\":\"input\",\"Textarea\":\"input\",\"NumberField\":\"input\",\"Checkbox\":\"input\",\"Radio\":\"input\",\"ChoiceTiles\":\"input\",\"Switch\":\"input\",\"Slider\":\"input\",\"Rating\":\"input\",\"Select\":\"input\",\"SearchList\":\"input\",\"ChipInput\":\"input\",\"DatePicker\":\"input\",\"DateRangePicker\":\"input\",\"TimePicker\":\"input\",\"FileUpload\":\"input\",\"QrScanner\":\"input\",\"Composer\":\"input\",\"Row\":\"list\",\"MessageBubble\":\"list\",\"TreeGuides\":\"list\",\"Unknown\":\"feedback\",\"Motion\":\"media\"}\n/** The specimen id each component has on ui.exponential.at. */\nexport const SPECIMEN_IDS: Record<ComponentName, string> = {\"Box\":\"exponential-ui-box\",\"Stack\":\"exponential-ui-stack\",\"Grid\":\"exponential-ui-grid\",\"Card\":\"exponential-ui-card\",\"Separator\":\"exponential-ui-separator\",\"List\":\"exponential-ui-list\",\"Resizable\":\"exponential-ui-resizable\",\"ScrollArea\":\"exponential-ui-scroll-area\",\"Sidebar\":\"exponential-ui-sidebar\",\"SplitView\":\"exponential-ui-split-view\",\"AppBar\":\"exponential-ui-app-bar\",\"Page\":\"exponential-ui-page\",\"Toolbar\":\"exponential-ui-toolbar\",\"Section\":\"exponential-ui-section\",\"Group\":\"exponential-ui-group\",\"Text\":\"exponential-ui-text\",\"Heading\":\"exponential-ui-heading\",\"Markdown\":\"exponential-ui-markdown\",\"CodeBlock\":\"exponential-ui-code-block\",\"Kbd\":\"exponential-ui-kbd\",\"Label\":\"exponential-ui-label\",\"Image\":\"exponential-ui-image\",\"ZoomableImage\":\"exponential-ui-zoomable-image\",\"Icon\":\"exponential-ui-icon\",\"Video\":\"exponential-ui-video\",\"AudioPlayer\":\"exponential-ui-audio-player\",\"Avatar\":\"exponential-ui-avatar\",\"QrCode\":\"exponential-ui-qr-code\",\"Carousel\":\"exponential-ui-carousel\",\"Mosaic\":\"exponential-ui-mosaic\",\"Tabs\":\"exponential-ui-tabs\",\"Segmented\":\"exponential-ui-segmented\",\"Accordion\":\"exponential-ui-accordion\",\"Collapsible\":\"exponential-ui-collapsible\",\"Trace\":\"exponential-ui-trace\",\"TraceItem\":\"exponential-ui-trace-item\",\"Plan\":\"exponential-ui-plan\",\"Pagination\":\"exponential-ui-pagination\",\"Breadcrumb\":\"exponential-ui-breadcrumb\",\"Outline\":\"exponential-ui-outline\",\"Stepper\":\"exponential-ui-stepper\",\"Dialog\":\"exponential-ui-dialog\",\"Drawer\":\"exponential-ui-drawer\",\"DockCard\":\"exponential-ui-dock-card\",\"AlertDialog\":\"exponential-ui-alert-dialog\",\"Popover\":\"exponential-ui-popover\",\"Tooltip\":\"exponential-ui-tooltip\",\"Menu\":\"exponential-ui-menu\",\"Toast\":\"exponential-ui-toast\",\"Badge\":\"exponential-ui-badge\",\"Alert\":\"exponential-ui-alert\",\"Chip\":\"exponential-ui-chip\",\"EmptyState\":\"exponential-ui-empty-state\",\"Progress\":\"exponential-ui-progress\",\"Meter\":\"exponential-ui-meter\",\"Ring\":\"exponential-ui-ring\",\"Spinner\":\"exponential-ui-spinner\",\"Skeleton\":\"exponential-ui-skeleton\",\"VoiceWave\":\"exponential-ui-voice-wave\",\"CallSurface\":\"exponential-ui-call-surface\",\"Table\":\"exponential-ui-table\",\"Chart\":\"exponential-ui-chart\",\"Sparkline\":\"exponential-ui-sparkline\",\"StatTile\":\"exponential-ui-stat-tile\",\"Button\":\"exponential-ui-button\",\"Link\":\"exponential-ui-link\",\"Toggle\":\"exponential-ui-toggle\",\"Form\":\"exponential-ui-form\",\"FieldGroup\":\"exponential-ui-field-group\",\"FormActions\":\"exponential-ui-form-actions\",\"Input\":\"exponential-ui-input\",\"Textarea\":\"exponential-ui-textarea\",\"NumberField\":\"exponential-ui-number-field\",\"Checkbox\":\"exponential-ui-checkbox\",\"Radio\":\"exponential-ui-radio\",\"ChoiceTiles\":\"exponential-ui-choice-tiles\",\"Switch\":\"exponential-ui-switch\",\"Slider\":\"exponential-ui-slider\",\"Rating\":\"exponential-ui-rating\",\"Select\":\"exponential-ui-select\",\"SearchList\":\"exponential-ui-search-list\",\"ChipInput\":\"exponential-ui-chip-input\",\"DatePicker\":\"exponential-ui-date-picker\",\"DateRangePicker\":\"exponential-ui-date-range-picker\",\"TimePicker\":\"exponential-ui-time-picker\",\"FileUpload\":\"exponential-ui-file-upload\",\"QrScanner\":\"exponential-ui-qr-scanner\",\"Composer\":\"exponential-ui-composer\",\"Row\":\"exponential-ui-row\",\"MessageBubble\":\"exponential-ui-message-bubble\",\"TreeGuides\":\"exponential-ui-tree-guides\",\"Unknown\":\"exponential-ui-unknown\",\"Motion\":\"exponential-ui-motion\"}\n\nexport const ENUMS = {\n variant: [\"default\",\"secondary\",\"outline\",\"ghost\",\"destructive\",\"link\"],\n size: [\"sm\",\"default\",\"lg\",\"icon\"],\n tone: [\"neutral\",\"primary\",\"success\",\"warning\",\"danger\",\"info\"],\n gap: [\"none\",\"xs\",\"sm\",\"md\",\"lg\",\"xl\"],\n align: [\"start\",\"center\",\"end\",\"stretch\"],\n justify: [\"start\",\"center\",\"end\",\"between\",\"around\",\"evenly\"],\n textVariant: [\"body\",\"caption\",\"muted\",\"lead\",\"code\",\"label\",\"title\"],\n headingLevel: [\"h1\",\"h2\",\"h3\",\"h4\"],\n imageFit: [\"contain\",\"cover\",\"fill\",\"none\",\"scaleDown\"],\n orientation: [\"horizontal\",\"vertical\"],\n side: [\"top\",\"right\",\"bottom\",\"left\"],\n inputType: [\"text\",\"email\",\"password\",\"number\",\"search\",\"url\",\"tel\"],\n validateOn: [\"change\",\"blur\",\"submit\"],\n alertType: [\"info\",\"success\",\"warning\",\"error\"],\n controlSize: [\"sm\",\"default\",\"lg\"],\n spinnerSize: [\"xs\",\"sm\",\"default\",\"lg\"],\n tabClosable: [\"none\",\"hover\",\"always\"],\n groupType: [\"single\",\"multiple\"],\n rowChevron: [\"none\",\"right\",\"selector\"],\n rowSurface: [\"flat\",\"card\"],\n chipShape: [\"pill\",\"rect\"],\n density: [\"default\",\"compact\"],\n listDirection: [\"vertical\",\"horizontal\"],\n chartKind: [\"bar\",\"stackedBar\",\"line\",\"area\",\"pie\",\"donut\",\"sparkline\"],\n segmentedVariant: [\"segmented\",\"toggles\",\"outline\",\"bar\"],\n liveTone: [\"live\",\"attention\",\"done\",\"unread\",\"idle\",\"muted\"],\n menuItemKind: [\"item\",\"checkbox\",\"separator\",\"label\",\"submenu\"],\n openOn: [\"press\",\"hover\"],\n menuOpenOn: [\"press\",\"contextmenu\"],\n live: [\"off\",\"polite\",\"assertive\"],\n selectable: [\"none\",\"single\",\"multiple\"],\n cellType: [\"text\",\"number\",\"date\",\"boolean\",\"badge\",\"slot\",\"currency\",\"percent\",\"relativeTime\"],\n sortDirection: [\"asc\",\"desc\"],\n imageLoading: [\"lazy\",\"eager\"],\n scrollDirection: [\"vertical\",\"horizontal\",\"both\"],\n collapseBelow: [\"never\",\"sm\",\"md\",\"lg\",\"xl\"],\n codeLanguage: [\"plain\",\"json\",\"js\",\"ts\",\"tsx\",\"rust\",\"swift\",\"kotlin\",\"python\",\"bash\",\"html\",\"css\",\"sql\",\"yaml\",\"markdown\",\"ansi\"],\n codeToken: [\"plain\",\"keyword\",\"string\",\"number\",\"comment\",\"punctuation\",\"operator\",\"type\",\"function\",\"property\",\"tag\",\"attribute\",\"success\",\"warning\",\"error\"],\n codeBlockVariant: [\"default\",\"destructive\"],\n codeBlockSize: [\"default\",\"sm\"],\n traceStatus: [\"running\",\"error\",\"pending\",\"done\",\"skipped\"],\n traceSize: [\"default\",\"sm\"],\n voiceWaveActivity: [\"idle\",\"listening\",\"thinking\",\"speaking\",\"muted\"],\n voiceWaveSize: [\"sm\",\"md\",\"lg\",\"xl\"],\n messageSide: [\"in\",\"out\"],\n messageStatus: [\"sending\",\"sent\",\"read\"],\n callState: [\"ringing\",\"connecting\",\"talking\",\"ended\"],\n voiceWaveVariant: [\"ring\",\"bars\"],\n qrLevel: [\"L\",\"M\",\"Q\",\"H\"],\n planState: [\"proposed\",\"running\",\"done\",\"declined\"],\n zoomInitial: [\"auto\",\"fit\",\"fitWidth\",\"actual\"],\n zoomControls: [\"auto\",\"always\",\"none\"],\n motionDirection: [\"forward\",\"reverse\",\"alternate\"],\n motionFit: [\"contain\",\"cover\",\"fill\"],\n} as const\nexport type VariantValue = (typeof ENUMS)[\"variant\"][number]\nexport type SizeValue = (typeof ENUMS)[\"size\"][number]\nexport type ToneValue = (typeof ENUMS)[\"tone\"][number]\nexport type GapValue = (typeof ENUMS)[\"gap\"][number]\nexport type AlignValue = (typeof ENUMS)[\"align\"][number]\nexport type JustifyValue = (typeof ENUMS)[\"justify\"][number]\nexport type TextVariantValue = (typeof ENUMS)[\"textVariant\"][number]\nexport type HeadingLevelValue = (typeof ENUMS)[\"headingLevel\"][number]\nexport type ImageFitValue = (typeof ENUMS)[\"imageFit\"][number]\nexport type OrientationValue = (typeof ENUMS)[\"orientation\"][number]\nexport type SideValue = (typeof ENUMS)[\"side\"][number]\nexport type InputTypeValue = (typeof ENUMS)[\"inputType\"][number]\nexport type ValidateOnValue = (typeof ENUMS)[\"validateOn\"][number]\nexport type AlertTypeValue = (typeof ENUMS)[\"alertType\"][number]\nexport type ControlSizeValue = (typeof ENUMS)[\"controlSize\"][number]\nexport type SpinnerSizeValue = (typeof ENUMS)[\"spinnerSize\"][number]\nexport type TabClosableValue = (typeof ENUMS)[\"tabClosable\"][number]\nexport type GroupTypeValue = (typeof ENUMS)[\"groupType\"][number]\nexport type RowChevronValue = (typeof ENUMS)[\"rowChevron\"][number]\nexport type RowSurfaceValue = (typeof ENUMS)[\"rowSurface\"][number]\nexport type ChipShapeValue = (typeof ENUMS)[\"chipShape\"][number]\nexport type DensityValue = (typeof ENUMS)[\"density\"][number]\nexport type ListDirectionValue = (typeof ENUMS)[\"listDirection\"][number]\nexport type ChartKindValue = (typeof ENUMS)[\"chartKind\"][number]\nexport type SegmentedVariantValue = (typeof ENUMS)[\"segmentedVariant\"][number]\nexport type LiveToneValue = (typeof ENUMS)[\"liveTone\"][number]\nexport type MenuItemKindValue = (typeof ENUMS)[\"menuItemKind\"][number]\nexport type OpenOnValue = (typeof ENUMS)[\"openOn\"][number]\nexport type MenuOpenOnValue = (typeof ENUMS)[\"menuOpenOn\"][number]\nexport type LiveValue = (typeof ENUMS)[\"live\"][number]\nexport type SelectableValue = (typeof ENUMS)[\"selectable\"][number]\nexport type CellTypeValue = (typeof ENUMS)[\"cellType\"][number]\nexport type SortDirectionValue = (typeof ENUMS)[\"sortDirection\"][number]\nexport type ImageLoadingValue = (typeof ENUMS)[\"imageLoading\"][number]\nexport type ScrollDirectionValue = (typeof ENUMS)[\"scrollDirection\"][number]\nexport type CollapseBelowValue = (typeof ENUMS)[\"collapseBelow\"][number]\nexport type CodeLanguageValue = (typeof ENUMS)[\"codeLanguage\"][number]\nexport type CodeTokenValue = (typeof ENUMS)[\"codeToken\"][number]\nexport type CodeBlockVariantValue = (typeof ENUMS)[\"codeBlockVariant\"][number]\nexport type CodeBlockSizeValue = (typeof ENUMS)[\"codeBlockSize\"][number]\nexport type TraceStatusValue = (typeof ENUMS)[\"traceStatus\"][number]\nexport type TraceSizeValue = (typeof ENUMS)[\"traceSize\"][number]\nexport type VoiceWaveActivityValue = (typeof ENUMS)[\"voiceWaveActivity\"][number]\nexport type VoiceWaveSizeValue = (typeof ENUMS)[\"voiceWaveSize\"][number]\nexport type MessageSideValue = (typeof ENUMS)[\"messageSide\"][number]\nexport type MessageStatusValue = (typeof ENUMS)[\"messageStatus\"][number]\nexport type CallStateValue = (typeof ENUMS)[\"callState\"][number]\nexport type VoiceWaveVariantValue = (typeof ENUMS)[\"voiceWaveVariant\"][number]\nexport type QrLevelValue = (typeof ENUMS)[\"qrLevel\"][number]\nexport type PlanStateValue = (typeof ENUMS)[\"planState\"][number]\nexport type ZoomInitialValue = (typeof ENUMS)[\"zoomInitial\"][number]\nexport type ZoomControlsValue = (typeof ENUMS)[\"zoomControls\"][number]\nexport type MotionDirectionValue = (typeof ENUMS)[\"motionDirection\"][number]\nexport type MotionFitValue = (typeof ENUMS)[\"motionFit\"][number]\n\n/** Token NAMES by group (values come from a theme). */\nexport const TOKEN_NAMES = {\n \"color\": [\"background\",\"foreground\",\"card\",\"cardForeground\",\"popover\",\"popoverForeground\",\"primary\",\"primaryForeground\",\"secondary\",\"secondaryForeground\",\"muted\",\"mutedForeground\",\"accent\",\"accentForeground\",\"destructive\",\"destructiveForeground\",\"success\",\"successForeground\",\"warning\",\"warningForeground\",\"info\",\"infoForeground\",\"border\",\"input\",\"ring\",\"chart1\",\"chart2\",\"chart3\",\"chart4\",\"chart5\",\"chart6\",\"chart7\",\"chart8\"],\n \"spacing\": [\"none\",\"xxs\",\"xs\",\"sm\",\"md\",\"lg\",\"xl\",\"xl2\",\"xl3\"],\n \"radius\": [\"none\",\"sm\",\"md\",\"lg\",\"xl\",\"xl2\",\"xl3\",\"full\"],\n \"type.size\": [\"xs\",\"sm\",\"base\",\"lg\",\"xl\",\"xl2\",\"xl3\"],\n \"type.lineHeight\": [\"xs\",\"sm\",\"base\",\"lg\",\"xl\",\"xl2\",\"xl3\"],\n \"type.weight\": [\"regular\",\"medium\",\"semibold\",\"bold\"],\n \"type.family\": [\"sans\",\"mono\",\"serif\"],\n \"control\": [\"buttonSm\",\"buttonMd\",\"buttonLg\",\"buttonIcon\",\"input\",\"textarea\",\"row\",\"rowCompact\",\"pill\",\"badge\",\"chip\",\"toggle\",\"switch\",\"checkbox\",\"slider\",\"progress\",\"meter\",\"avatarSm\",\"avatarMd\",\"avatarLg\",\"iconSm\",\"iconMd\",\"iconLg\",\"hairline\",\"appBar\",\"tabBar\",\"toast\"],\n \"shadow\": [\"none\",\"sm\",\"md\",\"lg\",\"xl\"],\n \"opacity\": [\"primary\",\"secondary\",\"tertiary\",\"quaternary\",\"disabled\"],\n \"border\": [\"none\",\"hairline\",\"thick\"],\n \"motion\": [\"fast\",\"standard\",\"slow\"],\n \"breakpoint\": [\"sm\",\"md\",\"lg\",\"xl\"],\n \"ease\": [\"standard\",\"decelerate\",\"accelerate\"],\n \"density\": [\"compact\",\"comfortable\"],\n \"blur\": [\"sm\",\"md\",\"lg\",\"xl\"],\n \"scale\": [\"press\",\"popoverFrom\"],\n} as const\nexport type TokenGroup = keyof typeof TOKEN_NAMES\n\nexport const STYLE_KEY_NAMES = [\"display\",\"flexDirection\",\"flexWrap\",\"justifyContent\",\"alignItems\",\"alignContent\",\"alignSelf\",\"justifySelf\",\"flexGrow\",\"flexShrink\",\"flexBasis\",\"gap\",\"rowGap\",\"columnGap\",\"direction\",\"overflow\",\"overflowX\",\"overflowY\",\"width\",\"height\",\"minWidth\",\"minHeight\",\"maxWidth\",\"maxHeight\",\"aspectRatio\",\"position\",\"top\",\"right\",\"bottom\",\"left\",\"inset\",\"insetInlineStart\",\"insetInlineEnd\",\"insetBlockStart\",\"insetBlockEnd\",\"padding\",\"paddingTop\",\"paddingRight\",\"paddingBottom\",\"paddingLeft\",\"paddingHorizontal\",\"paddingVertical\",\"paddingInlineStart\",\"paddingInlineEnd\",\"margin\",\"marginTop\",\"marginRight\",\"marginBottom\",\"marginLeft\",\"marginHorizontal\",\"marginVertical\",\"marginInlineStart\",\"marginInlineEnd\",\"gridTemplateColumns\",\"gridTemplateRows\",\"gridTemplateAreas\",\"gridArea\",\"gridColumn\",\"gridRow\",\"backgroundColor\",\"backgroundGradient\",\"color\",\"borderWidth\",\"borderTopWidth\",\"borderRightWidth\",\"borderBottomWidth\",\"borderLeftWidth\",\"borderColor\",\"borderStyle\",\"borderRadius\",\"borderTopLeftRadius\",\"borderTopRightRadius\",\"borderBottomRightRadius\",\"borderBottomLeftRadius\",\"opacity\",\"boxShadow\",\"fontSize\",\"fontWeight\",\"lineHeight\",\"letterSpacing\",\"textAlign\",\"textDecoration\",\"textTransform\",\"fontStyle\",\"fontFamily\",\"transition\",\"transitionEasing\",\"transform\",\"visibility\",\"pointerEvents\",\"userSelect\",\"cursor\",\"backdropBlur\",\"animation\",\"animationDuration\"] as const\nexport const STYLE_STATE_NAMES = [\":hover\",\":focus-visible\",\":pressed\"] as const\n\n/** The Icon prop's vocabulary: packages/icons/icons.json at generate time. */\nexport const ICON_NAMES = [\"a-large-small\",\"action-chat\",\"action-create\",\"action-default\",\"action-repository\",\"action-run\",\"action-suggestion\",\"activity\",\"anchor\",\"app-editor-chat\",\"archive\",\"archive-restore\",\"arrow-down\",\"arrow-down-left\",\"arrow-left\",\"arrow-left-right\",\"arrow-right\",\"arrow-up-right\",\"at-sign\",\"atom\",\"audio-lines\",\"auth-passkey\",\"award\",\"ban\",\"bell\",\"bell-off\",\"bold\",\"book-open\",\"bookmark\",\"bot\",\"boxes\",\"braces\",\"brain\",\"briefcase\",\"brush-cleaning\",\"bug\",\"building\",\"building-2\",\"calculator\",\"calendar\",\"calendar-days\",\"call-end\",\"call-incoming\",\"call-mute\",\"call-speaker\",\"call-speaker-off\",\"call-unmute\",\"camera\",\"car\",\"chart-line\",\"check\",\"check-check\",\"chevron-down\",\"chevron-left\",\"chevron-right\",\"chevron-up\",\"chevrons-up-down\",\"ci-failed\",\"ci-passed\",\"ci-queued\",\"ci-running\",\"ci-skipped\",\"circle\",\"circle-arrow-up\",\"circle-check\",\"circle-dashed\",\"circle-dot\",\"circle-question-mark\",\"circle-slash\",\"circle-stop\",\"circle-user\",\"circle-x\",\"clipboard-list\",\"clock\",\"cloud\",\"code\",\"coding-assistant\",\"coding-command\",\"coding-compact\",\"coding-diff\",\"coding-ended\",\"coding-in-review\",\"coding-needs-input\",\"coding-plan\",\"coding-running\",\"coding-stop\",\"coding-subagent\",\"coding-tool\",\"coffee\",\"compass\",\"computer\",\"copy\",\"corner-down-right\",\"cpu\",\"credit-card\",\"crown\",\"database\",\"download\",\"droplet\",\"dumbbell\",\"ear\",\"editor-bold\",\"editor-clear-formatting\",\"editor-code\",\"editor-emoji\",\"editor-heading-1\",\"editor-heading-2\",\"editor-heading-3\",\"editor-image\",\"editor-issue-ref\",\"editor-italic\",\"editor-link\",\"editor-list\",\"editor-list-ordered\",\"editor-list-todo\",\"editor-mention\",\"editor-quote\",\"editor-strikethrough\",\"editor-text\",\"editor-text-format\",\"editor-unlink\",\"ellipsis\",\"ellipsis-vertical\",\"event-assignee-changed\",\"event-board-moved\",\"event-estimate-changed\",\"event-label-added\",\"event-label-removed\",\"event-priority-changed\",\"event-relation-added\",\"event-relation-removed\",\"event-status-changed\",\"event-title-changed\",\"external-link\",\"eye\",\"eye-off\",\"fast-forward\",\"file\",\"file-diff\",\"file-pen-line\",\"file-text\",\"fingerprint\",\"flag\",\"flame\",\"flask-conical\",\"fold-vertical\",\"folder\",\"folder-kanban\",\"folder-open\",\"gamepad-2\",\"gauge\",\"gem\",\"gift\",\"git-branch\",\"git-merge\",\"git-pull-request\",\"github\",\"globe\",\"graduation-cap\",\"guide-changes\",\"hammer\",\"hand\",\"hard-drive\",\"hash\",\"heading-1\",\"heading-2\",\"heading-3\",\"headphones\",\"heart\",\"heart-off\",\"history\",\"hourglass\",\"house\",\"image\",\"images\",\"inbox\",\"info\",\"italic\",\"key\",\"landmark\",\"laptop\",\"layers\",\"layers-2\",\"layout-grid\",\"leaf\",\"lightbulb\",\"link\",\"link-2\",\"list\",\"list-checks\",\"list-end\",\"list-ordered\",\"list-todo\",\"list-tree\",\"loader-circle\",\"lock\",\"lock-open\",\"log-in\",\"log-out\",\"mail\",\"mail-open\",\"map\",\"map-pin\",\"maximize-2\",\"media-fast-forward\",\"media-rewind\",\"media-skip-next\",\"media-skip-previous\",\"media-volume-down\",\"media-volume-mute\",\"media-volume-off\",\"media-volume-up\",\"megaphone\",\"menu\",\"message-circle\",\"message-square\",\"message-square-plus\",\"message-square-reply\",\"mic\",\"mic-off\",\"microscope\",\"minimize-2\",\"minus\",\"monitor\",\"monitor-off\",\"moon\",\"mountain\",\"move\",\"music\",\"nav-account\",\"nav-actions\",\"nav-admin\",\"nav-apps\",\"nav-boards\",\"nav-changelog\",\"nav-computer\",\"nav-create-issue\",\"nav-devices\",\"nav-drafts\",\"nav-files\",\"nav-getting-started\",\"nav-inbox\",\"nav-issues\",\"nav-my-issues\",\"nav-notifications\",\"nav-rail-collapse\",\"nav-rail-expand\",\"nav-report-bug\",\"nav-search\",\"nav-settings\",\"nav-sign-out\",\"nav-source-control\",\"nav-team-switcher\",\"nav-terminal\",\"nav-threads\",\"newspaper\",\"notification-agent-message\",\"notification-agent-signed-out\",\"notification-issue-assigned\",\"notification-issue-comment\",\"notification-issue-created\",\"notification-issue-mention\",\"notification-issue-status-changed\",\"notification-mark-read\",\"notification-mute\",\"notification-pr-merged\",\"notification-pr-opened\",\"notification-reporter-reply\",\"notification-session-blocked\",\"os-apple\",\"os-linux\",\"os-windows\",\"package\",\"paintbrush\",\"palette\",\"panel-left-close\",\"panel-left-open\",\"paperclip\",\"pause\",\"pen-tool\",\"pencil\",\"phone\",\"phone-incoming\",\"phone-off\",\"pin\",\"pin-off\",\"plane\",\"play\",\"plug\",\"plus\",\"pr-batch\",\"pr-closed\",\"pr-draft\",\"pr-merged\",\"pr-open\",\"pr-stack\",\"printer\",\"priority-high\",\"priority-low\",\"priority-medium\",\"priority-none\",\"priority-urgent\",\"progress-1-4\",\"progress-1-5\",\"progress-2-4\",\"progress-2-5\",\"progress-3-4\",\"progress-3-5\",\"progress-4-5\",\"puzzle\",\"qr-code\",\"quote\",\"refresh-cw\",\"relation-blocked-by\",\"relation-blocks\",\"relation-duplicate\",\"relation-parent\",\"relation-related\",\"relation-section\",\"relation-sub-issue\",\"remove-formatting\",\"repeat\",\"rewind\",\"rocket\",\"rotate-ccw\",\"run-pause\",\"run-resume\",\"sc-push\",\"scale\",\"scan-line\",\"search\",\"search-x\",\"send\",\"server\",\"session-shell\",\"session-tree\",\"settings\",\"settings-about\",\"settings-account\",\"settings-agents\",\"settings-api\",\"settings-billing\",\"settings-boards\",\"settings-general\",\"settings-import\",\"settings-issues\",\"settings-labels\",\"settings-licenses\",\"settings-local-repos\",\"settings-mcp\",\"settings-members\",\"settings-notifications\",\"settings-rate\",\"settings-repositories\",\"settings-servers\",\"settings-sessions\",\"settings-statuses\",\"settings-storage\",\"settings-sync\",\"settings-tools\",\"settings-voice\",\"settings-widget\",\"share-2\",\"shield\",\"shield-check\",\"shield-question-mark\",\"shopping-bag\",\"shopping-cart\",\"signal-high\",\"signal-low\",\"signal-medium\",\"skip-back\",\"skip-forward\",\"sliders-horizontal\",\"smartphone\",\"smile\",\"sparkles\",\"square\",\"square-check\",\"square-kanban\",\"square-minus\",\"square-pen\",\"square-slash\",\"square-terminal\",\"star\",\"star-half\",\"star-off\",\"status-backlog\",\"status-cancelled\",\"status-done\",\"status-duplicate\",\"status-in-progress\",\"status-in-review\",\"status-todo\",\"stethoscope\",\"store\",\"strikethrough\",\"sun\",\"support-open\",\"support-resolved\",\"tag\",\"target\",\"terminal\",\"thread-stories\",\"tool-script\",\"trace-background\",\"trace-chevron\",\"trace-completed\",\"trace-edit\",\"trace-failed\",\"trace-fetch\",\"trace-read\",\"trace-reasoning\",\"trace-search\",\"trace-subagent\",\"trace-task-done\",\"trace-task-pending\",\"trace-task-running\",\"trace-terminal\",\"trace-todo\",\"trace-tool\",\"trash-2\",\"tree-pine\",\"triangle-alert\",\"trigger-event\",\"trigger-schedule\",\"trophy\",\"truck\",\"type\",\"ui-add\",\"ui-agent-source\",\"ui-archive\",\"ui-arrow-down\",\"ui-arrow-right\",\"ui-assignee\",\"ui-attach\",\"ui-avatar-placeholder\",\"ui-back\",\"ui-branch\",\"ui-check\",\"ui-checklist\",\"ui-chevron-down\",\"ui-chevron-left\",\"ui-chevron-right\",\"ui-chevron-up\",\"ui-clean\",\"ui-clear\",\"ui-clock\",\"ui-close\",\"ui-cloud\",\"ui-copy\",\"ui-delete\",\"ui-delete-account\",\"ui-device\",\"ui-device-default\",\"ui-device-offline\",\"ui-dock-side\",\"ui-docs\",\"ui-download\",\"ui-due-date\",\"ui-edit\",\"ui-empty-search\",\"ui-error\",\"ui-estimate\",\"ui-external-link\",\"ui-favorite-off\",\"ui-file\",\"ui-float\",\"ui-folder\",\"ui-folder-open\",\"ui-fullscreen\",\"ui-fullscreen-exit\",\"ui-github\",\"ui-help\",\"ui-hide\",\"ui-history\",\"ui-hold\",\"ui-icon-placeholder\",\"ui-indeterminate\",\"ui-info\",\"ui-invite\",\"ui-issue\",\"ui-link\",\"ui-loading\",\"ui-mail\",\"ui-mark-read\",\"ui-mark-unread\",\"ui-mcp\",\"ui-member\",\"ui-menu\",\"ui-minus\",\"ui-more\",\"ui-more-vertical\",\"ui-offline\",\"ui-organization\",\"ui-owner\",\"ui-permission\",\"ui-pin\",\"ui-print\",\"ui-private\",\"ui-properties\",\"ui-qr-code\",\"ui-queued\",\"ui-read\",\"ui-redock\",\"ui-refresh\",\"ui-remove-member\",\"ui-repeat\",\"ui-repository\",\"ui-scan\",\"ui-selected\",\"ui-selector\",\"ui-send\",\"ui-server\",\"ui-share\",\"ui-sign-in\",\"ui-sign-out\",\"ui-staging\",\"ui-star-half\",\"ui-star-off\",\"ui-stop\",\"ui-submit\",\"ui-subscribe\",\"ui-success\",\"ui-swap\",\"ui-team\",\"ui-unarchive\",\"ui-unassigned\",\"ui-undo\",\"ui-undock\",\"ui-unlock\",\"ui-unpin\",\"ui-unselected\",\"ui-unsubscribe\",\"ui-update\",\"ui-usage\",\"ui-warning\",\"ui-watch\",\"ui-widget\",\"undo-2\",\"unlink\",\"upload\",\"user\",\"user-minus\",\"user-plus\",\"user-x\",\"users\",\"video\",\"voice-call\",\"voice-level\",\"volume-1\",\"volume-2\",\"volume-off\",\"volume-x\",\"wallet\",\"wifi-off\",\"work-faces\",\"work-results\",\"workflow\",\"wrench\",\"x\",\"zap\"] as const\n\nexport const FUNCTION_NAMES = [\"required\",\"regex\",\"length\",\"numeric\",\"email\",\"formatString\",\"formatNumber\",\"formatCurrency\",\"formatDate\",\"pluralize\",\"openUrl\",\"and\",\"or\",\"not\",\"percent\",\"add\",\"sub\",\"eq\",\"lt\",\"clamp\",\"cond\",\"fallback\",\"concat\",\"coalesce\",\"text\",\"map\",\"len\",\"fill\",\"set\",\"formatPercent\",\"formatRelativeTime\",\"filter\",\"bind\"] as const\n\n/** VAPP-108: the typed authoring surface (src/define.ts). A ~ prop also\n * takes a binding or a call, a ^ prop a per-breakpoint object. */\nexport type Dynamic = DataBinding | FunctionCall\nexport type Responsive<T> = { base: T; sm?: T; md?: T; lg?: T; xl?: T }\nexport type IconName = (typeof ICON_NAMES)[number]\n/** The shared shapes (catalog `defs`). */\nexport interface Shapes {\n option: { label: string | Dynamic; value: string; icon?: IconName; disabled?: boolean; description?: string; image?: string; count?: number | Dynamic }\n check: { condition: boolean | Dynamic; message: string }\n tab: { label: string | Dynamic; value: string; icon?: IconName; count?: number }\n menuItem: { label?: string; value?: string; kind?: MenuItemKindValue; icon?: IconName; shortcut?: string; checked?: boolean | Dynamic; destructive?: boolean; disabled?: boolean; items?: Shapes[\"menuItem\"][] | Dynamic; searchable?: boolean; placeholder?: string }\n searchItem: { label: string | Dynamic; value: string; icon?: IconName; identifier?: string; disabled?: boolean }\n accordionItem: { title: string | Dynamic; value: string; count?: number }\n segment: { value: number; tone?: ToneValue; label?: string }\n series: { name: string; values: number[]; tone?: ToneValue }\n pageItem: { title?: string }\n step: { label: string; description?: string }\n column: { key: string; label: string; type?: CellTypeValue; slot?: string; width?: number; align?: \"start\" | \"center\" | \"end\"; sortable?: boolean; currency?: string; decimals?: number; truncate?: boolean }\n sort: { key: string; direction: SortDirectionValue }\n panel: { min?: number; max?: number; collapsible?: boolean }\n file: { name: string; size?: number; type?: string; url?: string }\n planStep: { title: string; detail?: string; icon?: IconName; status?: TraceStatusValue }\n outlineItem: { id: string; title: string | Dynamic; count?: number | Dynamic }\n picture: { src: string; alt?: string }\n}\n/** Every component's props, by name. */\nexport interface ComponentProps {\n Box: { style?: Style; pressable?: boolean }\n Stack: { direction?: OrientationValue | Responsive<OrientationValue> | Dynamic; gap?: GapValue | Responsive<GapValue>; align?: AlignValue | Responsive<AlignValue> | Dynamic; justify?: JustifyValue | Responsive<JustifyValue> | Dynamic; wrap?: boolean | Responsive<boolean>; style?: Style }\n Grid: { columns?: number | Responsive<number>; gap?: GapValue | Responsive<GapValue>; style?: Style }\n Card: { title?: string; description?: string; padded?: boolean; style?: Style }\n Separator: { orientation?: OrientationValue }\n List: { direction?: ListDirectionValue; gap?: GapValue; divided?: boolean; sectionBy?: string; stickyHeaders?: boolean; style?: Style }\n Resizable: { direction?: OrientationValue | Responsive<OrientationValue>; sizes?: number[] | Dynamic; panels?: Shapes[\"panel\"][]; handle?: boolean; style?: Style }\n ScrollArea: { direction?: ScrollDirectionValue; maxHeight?: number; style?: Style }\n Sidebar: { side?: \"left\" | \"right\"; width?: number; collapseBelow?: CollapseBelowValue; collapsed?: boolean | Dynamic }\n SplitView: { open?: boolean | Dynamic; width?: number }\n AppBar: { title: string | Dynamic; subtitle?: string | Dynamic; back?: boolean }\n Page: { title: string | Dynamic; subtitle?: string | Dynamic; back?: boolean; padded?: boolean }\n Toolbar: { gap?: GapValue }\n Section: { title?: string | Dynamic; caption?: string | Dynamic; count?: number | Dynamic; icon?: IconName; collapsible?: boolean; open?: boolean | Dynamic; tint?: ToneValue; tree?: boolean; loading?: boolean | Dynamic; style?: Style }\n Group: { title?: string; footer?: string }\n Text: { text: string | Dynamic; variant?: TextVariantValue; align?: \"start\" | \"center\" | \"end\"; lines?: number; tone?: ToneValue; shimmer?: boolean; live?: LiveValue; style?: Style }\n Heading: { text: string | Dynamic; level?: HeadingLevelValue }\n Markdown: { text: string | Dynamic; lines?: number; style?: Style }\n CodeBlock: { code: string | Dynamic; language?: CodeLanguageValue; title?: string; lineNumbers?: boolean; wrap?: boolean; copyable?: boolean; highlight?: number[]; maxLines?: number; variant?: CodeBlockVariantValue | Dynamic; size?: CodeBlockSizeValue }\n Kbd: { keys: string }\n Label: { text: string | Dynamic; for?: string; required?: boolean }\n Image: { src?: string | Dynamic; alt: string | Dynamic; fit?: ImageFitValue; width?: number; height?: number; aspectRatio?: number; fallback?: IconName; loading?: ImageLoadingValue; focalX?: number; focalY?: number; style?: Style }\n ZoomableImage: { src: string | Dynamic; alt: string | Dynamic; naturalWidth?: number; naturalHeight?: number; initial?: ZoomInitialValue; maxScale?: number; controls?: ZoomControlsValue; scale?: number | Dynamic; style?: Style }\n Icon: { name: IconName | Dynamic; size?: ControlSizeValue; tone?: ToneValue | Dynamic; label?: string }\n Video: { src: string | Dynamic; poster?: string; durationMs?: number; autoplay?: boolean; aspectRatio?: number; style?: Style }\n AudioPlayer: { src: string | Dynamic; title?: string; durationMs?: number }\n Avatar: { name: string | Dynamic; src?: string | Dynamic; size?: ControlSizeValue; seed?: string }\n QrCode: { value: string | Dynamic; size?: number; level?: QrLevelValue; label?: string }\n Carousel: { page?: number | Dynamic; loop?: boolean; indicators?: boolean; counter?: boolean; thumbnails?: string[] }\n Mosaic: { pictures: Shapes[\"picture\"][]; label?: string }\n Tabs: { tabs: Shapes[\"tab\"][]; value?: string | Dynamic; fill?: boolean; closable?: TabClosableValue; addable?: boolean }\n Segmented: { items: Shapes[\"option\"][]; type?: GroupTypeValue; value?: string | Dynamic; variant?: SegmentedVariantValue; size?: ControlSizeValue; fill?: boolean; orientation?: OrientationValue }\n Accordion: { items: Shapes[\"accordionItem\"][]; type?: GroupTypeValue; value?: string | Dynamic }\n Collapsible: { title: string; open?: boolean | Dynamic; count?: number }\n Trace: { size?: TraceSizeValue }\n TraceItem: { title: string | Dynamic; icon?: IconName; description?: string; status?: TraceStatusValue; size?: TraceSizeValue; collapsible?: boolean; open?: boolean | Dynamic }\n Plan: { title: string | Dynamic; description?: string | Dynamic; steps?: Shapes[\"planStep\"][]; state?: PlanStateValue | Dynamic; progress?: number | Dynamic; approveLabel?: string; declineLabel?: string; stopLabel?: string }\n Pagination: { totalPages: number; page?: number | Dynamic }\n Breadcrumb: { items: Shapes[\"option\"][] }\n Outline: { items: Shapes[\"outlineItem\"][]; value?: string | Dynamic; caption?: string }\n Stepper: { steps: Shapes[\"step\"][]; current?: number | Dynamic; orientation?: OrientationValue }\n Dialog: { title?: string; description?: string; open?: boolean | Dynamic; dismissible?: boolean }\n Drawer: { title?: string; description?: string; open?: boolean | Dynamic; side?: SideValue | Responsive<SideValue>; dismissible?: boolean; dragToDismiss?: boolean }\n DockCard: { label: string | Dynamic; title: string | Dynamic; caption?: string | Dynamic; meta?: string | Dynamic; icon?: IconName; tone?: ToneValue; open?: boolean | Dynamic }\n AlertDialog: { title: string; description?: string; confirmLabel?: string; cancelLabel?: string; destructive?: boolean; open?: boolean | Dynamic }\n Popover: { open?: boolean | Dynamic; side?: SideValue; openOn?: OpenOnValue }\n Tooltip: { content: string; side?: SideValue }\n Menu: { label?: string; icon?: IconName; items: Shapes[\"menuItem\"][]; openOn?: MenuOpenOnValue }\n Toast: { title: string | Dynamic; description?: string | Dynamic; type?: AlertTypeValue; open?: boolean | Dynamic; duration?: number; actionLabel?: string; dismissible?: boolean }\n Badge: { text: string | Dynamic; variant?: VariantValue | Dynamic; icon?: IconName }\n Alert: { title: string; message?: string; type?: AlertTypeValue }\n Chip: { label: string | Dynamic; shape?: ChipShapeValue; selected?: boolean; tone?: ToneValue | Dynamic; dot?: string; icon?: IconName; image?: string; detail?: string; removable?: boolean; pressable?: boolean }\n EmptyState: { icon: IconName; title: string; description?: string; actionLabel?: string; size?: \"page\" | \"list\" }\n Progress: { value: number | Dynamic; max?: number; label?: string; tone?: ToneValue }\n Meter: { segments: Shapes[\"segment\"][]; max?: number; label?: string; value?: string }\n Ring: { value: number | Dynamic; size?: ControlSizeValue; tone?: ToneValue; label?: string }\n Spinner: { size?: SpinnerSizeValue; label?: string }\n Skeleton: { width?: string; height?: string; rounded?: boolean; rows?: number; rowHeight?: number; dot?: boolean }\n VoiceWave: { activity?: VoiceWaveActivityValue | Dynamic; variant?: VoiceWaveVariantValue; level?: number | Dynamic; bands?: number[] | Dynamic; size?: VoiceWaveSizeValue; label?: string }\n CallSurface: { name: string | Dynamic; avatar?: string | Dynamic; state?: CallStateValue | Dynamic; activity?: VoiceWaveActivityValue | Dynamic; level?: number | Dynamic; bands?: number[] | Dynamic; status?: string | Dynamic; caption?: string | Dynamic; muted?: boolean | Dynamic; speaker?: boolean | Dynamic }\n Table: { columns: Shapes[\"column\"][]; rows: Record<string, unknown>[] | Dynamic; rowKey?: string; sort?: Shapes[\"sort\"] | Dynamic; selectable?: SelectableValue; selected?: string[] | Dynamic; caption?: string; emptyText?: string; striped?: boolean; density?: DensityValue; stickyHeader?: boolean }\n Chart: { kind: ChartKindValue; categories?: string[] | Dynamic; series: Shapes[\"series\"][] | Dynamic; title?: string; height?: number; xLabel?: string; yLabel?: string; min?: number; max?: number; showAxes?: boolean; showGrid?: boolean; showLegend?: boolean; showValues?: boolean }\n Sparkline: { values: number[] | Dynamic; tone?: ToneValue; height?: number }\n StatTile: { label: string | Dynamic; value: string | Dynamic; delta?: string | Dynamic; tone?: ToneValue | Dynamic; trend?: number[] | Dynamic }\n Button: { label?: string | Dynamic; icon?: IconName | Dynamic; variant?: VariantValue; size?: SizeValue; disabled?: boolean | Dynamic; loading?: boolean; pendingLabel?: string; submit?: boolean; hold?: boolean; holdingLabel?: string }\n Link: { label: string | Dynamic; href?: string; external?: boolean }\n Toggle: { label: string; icon?: IconName; pressed?: boolean | Dynamic; variant?: \"default\" | \"outline\"; size?: ControlSizeValue }\n Form: { name: string; disabled?: boolean | Dynamic; busy?: boolean | Dynamic; summary?: boolean }\n FieldGroup: { columns?: number }\n FormActions: { submit: string | Dynamic; cancel?: boolean; destructive?: boolean }\n Input: { label: string; name: string; type?: InputTypeValue; placeholder?: string; value?: string | Dynamic; disabled?: boolean; checks?: Shapes[\"check\"][]; validateOn?: ValidateOnValue }\n Textarea: { label: string; name: string; placeholder?: string; rows?: number; autosize?: boolean; maxRows?: number; value?: string | Dynamic; disabled?: boolean; checks?: Shapes[\"check\"][]; validateOn?: ValidateOnValue }\n NumberField: { label: string; name: string; value?: number | Dynamic; min?: number; max?: number; step?: number; precision?: number; unit?: string; placeholder?: string; disabled?: boolean; checks?: Shapes[\"check\"][]; validateOn?: ValidateOnValue }\n Checkbox: { label: string | Dynamic; name: string; checked?: boolean | Dynamic; disabled?: boolean; checks?: Shapes[\"check\"][] }\n Radio: { label?: string; name: string; options: Shapes[\"option\"][]; value?: string | Dynamic; orientation?: OrientationValue; checks?: Shapes[\"check\"][] }\n ChoiceTiles: { name: string; options: Shapes[\"option\"][]; type?: GroupTypeValue; value?: string | Dynamic; columns?: number; disabled?: boolean; checks?: Shapes[\"check\"][] }\n Switch: { label: string | Dynamic; name: string; checked?: boolean | Dynamic; description?: string; disabled?: boolean }\n Slider: { label?: string; min?: number | Dynamic; max: number | Dynamic; step?: number; value?: number | Dynamic }\n Rating: { value?: number | Dynamic; max?: number; readOnly?: boolean; size?: ControlSizeValue }\n Select: { label?: string; name: string; options?: Shapes[\"option\"][] | Dynamic; source?: string; placeholder?: string; value?: string | Dynamic; multiple?: boolean; searchable?: boolean; emptyText?: string; disabled?: boolean; checks?: Shapes[\"check\"][]; validateOn?: ValidateOnValue }\n SearchList: { items: Shapes[\"searchItem\"][] | Dynamic; query?: string | Dynamic; placeholder?: string; value?: string | Dynamic; emptyText?: string; maxRows?: number; showCount?: boolean }\n ChipInput: { label?: string; name: string; values?: string[] | Dynamic; suggestions?: Shapes[\"option\"][] | Dynamic; placeholder?: string; max?: number; disabled?: boolean; checks?: Shapes[\"check\"][] }\n DatePicker: { label?: string; name: string; value?: string | Dynamic; min?: string; max?: string; placeholder?: string; firstDayOfWeek?: number }\n DateRangePicker: { label?: string; name: string; start?: string | Dynamic; end?: string | Dynamic; min?: string; max?: string; placeholder?: string; firstDayOfWeek?: number }\n TimePicker: { label?: string; name: string; value?: string | Dynamic; min?: string; max?: string; step?: number; placeholder?: string; disabled?: boolean }\n FileUpload: { label?: string; name: string; accept?: string; multiple?: boolean; maxSize?: number; files?: Shapes[\"file\"][] | Dynamic; hint?: string; disabled?: boolean }\n QrScanner: { hint?: string | Dynamic; formats?: string[]; label?: string; disabled?: boolean }\n Composer: { placeholder?: string; value?: string | Dynamic; submitLabel?: string; attachments?: boolean; busy?: boolean }\n Row: { title: string | Dynamic; identifier?: string | Dynamic; subtitle?: string | Dynamic; meta?: string | Dynamic; value?: string | Dynamic; placeholder?: string; icon?: IconName | Dynamic; chevron?: RowChevronValue | Dynamic; selected?: boolean | Dynamic; density?: DensityValue; surface?: RowSurfaceValue; pressable?: boolean; depth?: number }\n MessageBubble: { text: string | Dynamic; side?: MessageSideValue; time?: string | Dynamic; status?: MessageStatusValue | Dynamic; author?: string | Dynamic }\n TreeGuides: { depth: number; elbowAt?: number; tee?: boolean; passThrough?: number[] }\n Unknown: { component: string; catalogId?: string }\n Motion: { layers?: Record<string, unknown>[]; size?: number[]; duration?: number; fps?: number; assets?: Record<string, unknown>; markers?: Record<string, unknown>[]; lottie?: Record<string, unknown>; src?: string; autoplay?: boolean; loop?: boolean; plays?: number; direction?: MotionDirectionValue; speed?: number; segment?: number[]; marker?: string; progress?: number | Dynamic; play?: boolean | Dynamic; poster?: number; fit?: MotionFitValue; slots?: Record<string, unknown>; stateMachine?: Record<string, unknown>; inputs?: Record<string, unknown> | Dynamic; label?: string; style?: Style }\n}\n\n/** A2UI basic component → core component. */\nexport const BASIC_COMPONENT_MAP: Record<string, string> = {\"Text\":\"Text\",\"Image\":\"Image\",\"Icon\":\"Icon\",\"Video\":\"Video\",\"AudioPlayer\":\"AudioPlayer\",\"Row\":\"Stack\",\"Column\":\"Stack\",\"List\":\"List\",\"Card\":\"Card\",\"Tabs\":\"Tabs\",\"Modal\":\"Dialog\",\"Divider\":\"Separator\",\"Button\":\"Button\",\"TextField\":\"Input\",\"CheckBox\":\"Checkbox\",\"ChoicePicker\":\"Radio\",\"Slider\":\"Slider\",\"DateTimeInput\":\"DatePicker\"}\n/** A2UI basic icon name → icons.json name (the placeholder where none exists). */\nexport const BASIC_ICON_MAP: Record<string, string> = {\"accountCircle\":\"ui-assignee\",\"add\":\"ui-add\",\"arrowBack\":\"ui-back\",\"arrowForward\":\"ui-arrow-right\",\"attachFile\":\"ui-attach\",\"calendarToday\":\"calendar\",\"call\":\"phone\",\"camera\":\"camera\",\"check\":\"ui-check\",\"close\":\"ui-close\",\"delete\":\"ui-delete\",\"download\":\"ui-download\",\"edit\":\"ui-edit\",\"event\":\"ui-due-date\",\"error\":\"ui-error\",\"fastForward\":\"media-fast-forward\",\"favorite\":\"heart\",\"favoriteOff\":\"ui-favorite-off\",\"folder\":\"ui-folder\",\"help\":\"ui-help\",\"home\":\"house\",\"info\":\"ui-info\",\"locationOn\":\"map-pin\",\"lock\":\"ui-private\",\"lockOpen\":\"ui-unlock\",\"mail\":\"ui-mail\",\"menu\":\"ui-menu\",\"moreVert\":\"ui-more-vertical\",\"moreHoriz\":\"ui-more\",\"notificationsOff\":\"ui-unsubscribe\",\"notifications\":\"ui-subscribe\",\"pause\":\"run-pause\",\"payment\":\"credit-card\",\"person\":\"ui-avatar-placeholder\",\"phone\":\"smartphone\",\"photo\":\"image\",\"play\":\"action-run\",\"print\":\"ui-print\",\"refresh\":\"ui-refresh\",\"rewind\":\"media-rewind\",\"search\":\"nav-search\",\"send\":\"ui-send\",\"settings\":\"nav-settings\",\"share\":\"ui-share\",\"shoppingCart\":\"shopping-cart\",\"skipNext\":\"media-skip-next\",\"skipPrevious\":\"media-skip-previous\",\"star\":\"star\",\"starHalf\":\"ui-star-half\",\"starOff\":\"ui-star-off\",\"stop\":\"ui-stop\",\"upload\":\"sc-push\",\"visibility\":\"ui-watch\",\"visibilityOff\":\"ui-hide\",\"volumeDown\":\"media-volume-down\",\"volumeMute\":\"media-volume-mute\",\"volumeOff\":\"media-volume-off\",\"volumeUp\":\"media-volume-up\",\"warning\":\"ui-warning\"}\nexport const BASIC_PLACEHOLDER_ICON = \"ui-icon-placeholder\"\n",
|
|
6
6
|
"// Round 1 (docs/round-1-contract.md §4): the built-in UI strings. The ids\n// and English defaults live in catalog/strings.json; a host overrides any id\n// per surface; `$string.<id>` in a prop value resolves through this table at\n// bind time. Pure, mirrored by the Rust core and the native renderers.\n\nimport stringsJson from \"../catalog/strings.json\" with { type: \"json\" }\n\nexport const DEFAULT_STRINGS: Readonly<Record<string, string>> = stringsJson.strings\nexport const STRING_IDS: readonly string[] = Object.keys(DEFAULT_STRINGS)\n\nconst REF = /^\\$string\\.([a-zA-Z][a-zA-Z0-9]*)$/\nconst PLACEHOLDER = /\\{([a-zA-Z][a-zA-Z0-9]*)\\}/g\n\n/** `$string.choose` → `choose`; null for any other value. */\nexport function parseStringRef(value: unknown): string | null {\n if (typeof value !== `string`) return null\n const m = REF.exec(value)\n return m ? m[1] : null\n}\n\n/** True for a well-formed reference to a KNOWN id. */\nexport function isStringRef(value: unknown): boolean {\n const id = parseStringRef(value)\n return id !== null && id in DEFAULT_STRINGS\n}\n\n/** The host's overrides merged over the defaults. */\nexport function stringTable(overrides: Readonly<Record<string, string>> = {}): Record<string, string> {\n return { ...DEFAULT_STRINGS, ...overrides }\n}\n\n/** `{name}` placeholders filled from `params`; unknown ones stay. */\nexport function formatString(template: string, params: Record<string, unknown> = {}): string {\n return template.replace(PLACEHOLDER, (whole, name: string) => (name in params && params[name] !== undefined && params[name] !== null ? String(params[name]) : whole))\n}\n\n/** A prop value with any `$string.<id>` reference replaced by the table's\n * text (an unknown id resolves to the id itself); other values pass. */\nexport function resolveString(value: unknown, table: Readonly<Record<string, string>> = DEFAULT_STRINGS): unknown {\n const id = parseStringRef(value)\n if (id === null) return value\n return table[id] ?? id\n}\n",
|
|
7
7
|
"// Round 2 (docs/round-2-contract.md §3): FORMATTING through a host-supplied\n// Formatter. A renderer formats every number, currency, percent, date and\n// relative time it shows (Table cells, NumberField, chart ticks, calendar\n// names, the format* bind functions) through ONE Formatter per surface, in\n// the surface's `locale` and `timeZone`. The TS renderers build it on Intl\n// (`intlFormatter`); the Rust core defines a `Formatter` trait whose default\n// is the ENGLISH fallback (`englishFormatter`, catalog/locale.json\n// `englishFallback`); FFI hosts pass a foreign one. fixtures/format.json locks\n// the fallback (= Intl en-US, ICU 74+; instants in the surface zone, given\n// to the fallback as a UTC offset per instant), and the display of a bound non-string\n// value in a text prop (`displayString`). Pure.\n\nimport localeJson from \"../catalog/locale.json\" with { type: \"json\" }\n\nexport type PluralCategory = `zero` | `one` | `two` | `few` | `many` | `other`\nexport type DateStyle = `short` | `medium` | `long` | `full`\nexport type RelativeUnit = `second` | `minute` | `hour` | `day` | `week` | `month` | `year`\n\nexport interface NumberOptions {\n /** Fixed fraction digits (min = max); absent = 0..3 for numbers, the\n * currency's minor digits for currencies, 0 for percents. */\n decimals?: number\n /** Locale grouping separators (default true). */\n grouping?: boolean\n}\n\nexport interface DateOptions {\n /** A Unicode TR35 pattern (`MMM d, yyyy`, `HH:mm`); wins over `style`. */\n format?: string\n /** A locale preset (default `medium`: `Oct 14, 2026`). */\n style?: DateStyle\n /** Append the short time (`2:30 PM`) to a preset. */\n time?: boolean\n}\n\n/** What a host supplies per surface (SurfaceSettings.locale + timeZone). */\nexport interface Formatter {\n readonly locale: string\n number(value: number, options?: NumberOptions): string\n currency(value: number, currency: string, options?: NumberOptions): string\n /** `value` is a ratio: 0.256 → `26%`. */\n percent(value: number, options?: { decimals?: number }): string\n /** `value` = `yyyy-mm-dd` (a calendar day, no zone), an ISO date-time (an\n * instant; no offset = UTC) or epoch milliseconds; unreadable = ``. */\n date(value: unknown, options?: DateOptions): string\n /** `value` as for `date`, against `now` (epoch ms). */\n relativeTime(value: unknown, now: number): string\n plural(value: number): PluralCategory\n}\n\nconst FALLBACK = localeJson.englishFallback\nconst MS = { second: 1000, minute: 60_000, hour: 3_600_000, day: 86_400_000 }\n\n// ---------------------------------------------------------------------------\n// Display of a non-string value in a text prop\n// ---------------------------------------------------------------------------\n\n/** What a `string`/`markdown` prop shows for a bound value: strings as they\n * are, finite numbers as ECMAScript `Number.prototype.toString` (shortest\n * round trip, `-0` → `0`, exponent form below 1e-6 and from 1e21), booleans\n * `true`/`false`; null, undefined, non-finite numbers, objects and arrays\n * show nothing (``). No locale formatting (use formatNumber for that). */\nexport function displayString(value: unknown): string {\n if (typeof value === `string`) return value\n if (typeof value === `number`) return Number.isFinite(value) ? String(value) : ``\n if (typeof value === `boolean`) return String(value)\n return ``\n}\n\n// ---------------------------------------------------------------------------\n// Decimal arithmetic on the shortest round-trip string (ICU's halfExpand)\n// ---------------------------------------------------------------------------\n\ninterface Decimal {\n int: string\n frac: string\n}\n\n/** |n| as its shortest round-trip decimal digits, split at the point. */\nfunction decimalOf(abs: number): Decimal {\n const m = /^(\\d+)(?:\\.(\\d+))?(?:e([+-]\\d+))?$/.exec(String(abs))\n if (!m) return { int: `0`, frac: `` }\n const digits = m[1] + (m[2] ?? ``)\n let point = m[1].length + (m[3] ? Number(m[3]) : 0)\n let all = digits\n if (point <= 0) {\n all = `0`.repeat(1 - point) + all\n point = 1\n }\n if (point > all.length) all = all + `0`.repeat(point - all.length)\n const int = all.slice(0, point).replace(/^0+(?=\\d)/, ``)\n return { int, frac: all.slice(point).replace(/0+$/, ``) }\n}\n\n/** Move the point `places` to the right (percent = 2). */\nfunction shift(d: Decimal, places: number): Decimal {\n const frac = d.frac + `0`.repeat(Math.max(0, places - d.frac.length))\n const int = (d.int + frac.slice(0, places)).replace(/^0+(?=\\d)/, ``)\n return { int, frac: frac.slice(places).replace(/0+$/, ``) }\n}\n\n/** Round to at most `max` fraction digits, half away from zero, then pad to\n * `min`. */\nfunction round(d: Decimal, min: number, max: number): Decimal {\n let { int, frac } = d\n if (frac.length > max) {\n const up = frac.charCodeAt(max) >= 53 // '5'\n let kept = int + frac.slice(0, max)\n if (up) {\n const chars = kept.split(``)\n let i = chars.length - 1\n for (; i >= 0; i--) {\n if (chars[i] === `9`) chars[i] = `0`\n else {\n chars[i] = String(Number(chars[i]) + 1)\n break\n }\n }\n kept = (i < 0 ? `1` : ``) + chars.join(``)\n }\n const intLen = kept.length - max\n int = kept.slice(0, intLen) || `0`\n frac = kept.slice(intLen).replace(/0+$/, ``)\n }\n if (frac.length < min) frac = frac + `0`.repeat(min - frac.length)\n return { int, frac }\n}\n\nfunction group(int: string, on: boolean): string {\n if (!on || int.length < 4) return int\n let out = ``\n for (let i = 0; i < int.length; i++) {\n if (i > 0 && (int.length - i) % 3 === 0) out += `,`\n out += int[i]\n }\n return out\n}\n\nfunction englishNumber(value: number, min: number, max: number, grouping: boolean): { sign: string; body: string } {\n const neg = value < 0 || Object.is(value, -0)\n if (Number.isNaN(value)) return { sign: ``, body: `NaN` }\n if (!Number.isFinite(value)) return { sign: neg ? `-` : ``, body: `∞` }\n const d = round(decimalOf(Math.abs(value)), min, max)\n return { sign: neg ? `-` : ``, body: `${group(d.int, grouping)}${d.frac ? `.${d.frac}` : ``}` }\n}\n\nconst fixedDigits = (decimals: number | undefined): number | undefined =>\n typeof decimals === `number` && Number.isFinite(decimals) ? Math.max(0, Math.min(20, Math.trunc(decimals))) : undefined\n\n/** The minor digits of a currency (ISO 4217; 2 when not listed). */\nexport function currencyDigits(code: string): number {\n return (FALLBACK.currencyDigits as Record<string, number>)[code.toUpperCase()] ?? 2\n}\n\n// ---------------------------------------------------------------------------\n// Dates\n// ---------------------------------------------------------------------------\n\n/** The instant a date value names: `yyyy-mm-dd` = that calendar day (UTC\n * midnight, `dateOnly`), an ISO date-time (no offset = UTC), epoch ms. */\nexport function parseDateValue(value: unknown): { ms: number; dateOnly: boolean } | null {\n if (typeof value === `number`) return Number.isFinite(value) ? { ms: value, dateOnly: false } : null\n if (typeof value !== `string` || value.trim() === ``) return null\n const day = /^(\\d{4})-(\\d{2})-(\\d{2})$/.exec(value)\n if (day) {\n const ms = Date.UTC(Number(day[1]), Number(day[2]) - 1, Number(day[3]))\n return Number.isFinite(ms) ? { ms, dateOnly: true } : null\n }\n if (!/^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}(:\\d{2}(\\.\\d+)?)?(Z|[+-]\\d{2}:\\d{2})?$/.test(value)) return null\n const zoned = /(Z|[+-]\\d{2}:\\d{2})$/.test(value) ? value : `${value}Z`\n const ms = Date.parse(zoned)\n return Number.isFinite(ms) ? { ms, dateOnly: false } : null\n}\n\ninterface DateFields {\n year: number\n month: number // 1..12\n day: number\n weekday: number // 0 = Sunday\n hour: number\n minute: number\n second: number\n}\n\nfunction utcFields(ms: number): DateFields {\n const d = new Date(ms)\n return { year: d.getUTCFullYear(), month: d.getUTCMonth() + 1, day: d.getUTCDate(), weekday: d.getUTCDay(), hour: d.getUTCHours(), minute: d.getUTCMinutes(), second: d.getUTCSeconds() }\n}\n\ninterface DateNames {\n months: readonly string[]\n monthsShort: readonly string[]\n weekdays: readonly string[]\n weekdaysShort: readonly string[]\n dayPeriods: readonly string[]\n}\n\nconst pad = (n: number, width: number) => String(n).padStart(width, `0`)\n\n/** A TR35 pattern over fields: `y yy yyyy M MM MMM MMMM d dd E EEE EEEE h hh\n * H HH m mm s ss a`, `'quoted'` literals (`''` = an apostrophe); any other\n * letter run is copied as written. Digits are ASCII. */\nexport function formatPattern(pattern: string, f: DateFields, names: DateNames): string {\n let out = ``\n let i = 0\n while (i < pattern.length) {\n const ch = pattern[i]\n if (ch === `'`) {\n if (pattern[i + 1] === `'`) {\n out += `'`\n i += 2\n continue\n }\n // A quoted literal; `''` inside it is an apostrophe too.\n i++\n while (i < pattern.length) {\n if (pattern[i] === `'`) {\n if (pattern[i + 1] === `'`) {\n out += `'`\n i += 2\n continue\n }\n i++\n break\n }\n out += pattern[i]\n i++\n }\n continue\n }\n if (!/[A-Za-z]/.test(ch)) {\n out += ch\n i++\n continue\n }\n let n = 1\n while (pattern[i + n] === ch) n++\n const run = pattern.slice(i, i + n)\n i += n\n const h12 = f.hour % 12 === 0 ? 12 : f.hour % 12\n switch (ch) {\n case `y`:\n out += n === 2 ? pad(f.year % 100, 2) : pad(f.year, n)\n break\n case `M`:\n out += n >= 4 ? names.months[f.month - 1] : n === 3 ? names.monthsShort[f.month - 1] : pad(f.month, n)\n break\n case `d`:\n out += pad(f.day, n)\n break\n case `E`:\n out += n >= 4 ? names.weekdays[f.weekday] : names.weekdaysShort[f.weekday]\n break\n case `h`:\n out += pad(h12, n)\n break\n case `H`:\n out += pad(f.hour, n)\n break\n case `m`:\n out += pad(f.minute, n)\n break\n case `s`:\n out += pad(f.second, n)\n break\n case `a`:\n out += names.dayPeriods[f.hour < 12 ? 0 : 1]\n break\n default:\n out += run\n }\n }\n return out\n}\n\n/** The en-US preset patterns (`style`), the time a preset appends and the\n * joiner per style (locale.json `englishFallback`). */\nexport const ENGLISH_DATE_PATTERNS: Readonly<Record<DateStyle, string>> = FALLBACK.datePatterns\nexport const ENGLISH_TIME_PATTERN: string = FALLBACK.timePattern\nexport const ENGLISH_DATE_TIME_JOIN: Readonly<Record<DateStyle, string>> = FALLBACK.dateTimeJoin\n\n/** The surface zone as the English fallback sees it: the UTC offset in\n * minutes (east positive) in force at an instant (epoch ms). A host\n * without an IANA database passes its platform's local offset; the\n * fixtures pin a fixed one (`offsetMinutes`). */\nexport type ZoneOffset = (utcMs: number) => number\n\n/** A fixed offset (minutes east of UTC); `fixedOffset(0)` = UTC. */\nexport const fixedOffset = (minutes: number): ZoneOffset => () => minutes\n\n/** An IANA zone's offset through Intl (TS hosts; the Rust core takes its\n * host's offset instead). */\nexport function intlZoneOffset(timeZone: string): ZoneOffset {\n const dtf = new Intl.DateTimeFormat(`en-US`, { timeZone, year: `numeric`, month: `numeric`, day: `numeric`, hour: `numeric`, minute: `numeric`, second: `numeric`, hourCycle: `h23` })\n return (ms) => {\n const at = Math.floor(ms / 1000) * 1000\n const p = Object.fromEntries(dtf.formatToParts(new Date(at)).map((x) => [x.type, x.value]))\n const local = Date.UTC(Number(p.year), Number(p.month) - 1, Number(p.day), Number(p.hour) % 24, Number(p.minute), Number(p.second))\n return Math.round((local - at) / 60_000)\n }\n}\n\n// ---------------------------------------------------------------------------\n// Relative time\n// ---------------------------------------------------------------------------\n\n/** The unit a delta (value − now, ms) is shown in, and its count (truncated\n * toward zero): under a minute seconds, under an hour minutes, under a day\n * hours, under 7 days days, under 30 days weeks, under 365 days months (of\n * 30 days), else years (of 365 days). */\nexport function relativeTimeUnit(deltaMs: number): { value: number; unit: RelativeUnit } {\n const abs = Math.abs(deltaMs)\n const t = (unit: number) => Math.trunc(deltaMs / unit) || 0\n if (abs < MS.minute) return { value: t(MS.second), unit: `second` }\n if (abs < MS.hour) return { value: t(MS.minute), unit: `minute` }\n if (abs < MS.day) return { value: t(MS.hour), unit: `hour` }\n if (abs < 7 * MS.day) return { value: t(MS.day), unit: `day` }\n if (abs < 30 * MS.day) return { value: t(7 * MS.day), unit: `week` }\n if (abs < 365 * MS.day) return { value: t(30 * MS.day), unit: `month` }\n return { value: t(365 * MS.day), unit: `year` }\n}\n\n// ---------------------------------------------------------------------------\n// The English fallback\n// ---------------------------------------------------------------------------\n\nconst ENGLISH_NAMES: DateNames = FALLBACK\n\n/** The Formatter a renderer uses without a platform ICU (the Rust core's\n * default): Intl en-US, decided by data (catalog/locale.json\n * `englishFallback`). Instants show in the surface zone `zone` (default\n * UTC); a `yyyy-mm-dd` value is a calendar day and never shifts. */\nexport function englishFormatter(zone: ZoneOffset = fixedOffset(0)): Formatter {\n return {\n locale: `en-US`,\n number(value, options = {}) {\n const fixed = fixedDigits(options.decimals)\n const { sign, body } = englishNumber(value, fixed ?? 0, fixed ?? 3, options.grouping !== false)\n return `${sign}${body}`\n },\n currency(value, currency, options = {}) {\n const code = currency.toUpperCase()\n const digits = fixedDigits(options.decimals) ?? currencyDigits(code)\n const { sign, body } = englishNumber(value, digits, digits, options.grouping !== false)\n const prefix = (FALLBACK.currencyPrefix as Record<string, string>)[code] ?? FALLBACK.unknownCurrency.replace(`{code}`, code)\n return `${sign}${prefix}${body}`\n },\n percent(value, options = {}) {\n const digits = fixedDigits(options.decimals) ?? 0\n if (!Number.isFinite(value)) {\n const { sign, body } = englishNumber(value, 0, 0, true)\n return `${sign}${body}%`\n }\n const neg = value < 0 || Object.is(value, -0)\n const d = round(shift(decimalOf(Math.abs(value)), 2), digits, digits)\n return `${neg ? `-` : ``}${group(d.int, true)}${d.frac ? `.${d.frac}` : ``}%`\n },\n date(value, options = {}) {\n const parsed = parseDateValue(value)\n if (!parsed) return ``\n const f = utcFields(parsed.dateOnly ? parsed.ms : parsed.ms + zone(parsed.ms) * 60_000)\n if (options.format) return formatPattern(options.format, f, ENGLISH_NAMES)\n const style = options.style ?? `medium`\n const date = formatPattern(ENGLISH_DATE_PATTERNS[style], f, ENGLISH_NAMES)\n if (!options.time) return date\n const time = formatPattern(ENGLISH_TIME_PATTERN, f, ENGLISH_NAMES)\n return ENGLISH_DATE_TIME_JOIN[style].replace(`{date}`, date).replace(`{time}`, time)\n },\n relativeTime(value, now) {\n const parsed = parseDateValue(value)\n if (!parsed) return ``\n const { value: n, unit } = relativeTimeUnit(parsed.ms - now)\n const auto = (FALLBACK.relative.auto as Record<string, Record<string, string>>)[unit]?.[String(n)]\n if (auto) return auto\n const [one, many] = (FALLBACK.relative.units as Record<string, string[]>)[unit]\n const count = englishNumber(Math.abs(n), 0, 0, true).body\n const unitName = Math.abs(n) === 1 ? one : many\n const template = n < 0 ? FALLBACK.relative.past : FALLBACK.relative.future\n return template.replace(`{value}`, count).replace(`{unit}`, unitName)\n },\n plural(value) {\n return Math.abs(value) === 1 ? `one` : `other`\n },\n }\n}\n\n// ---------------------------------------------------------------------------\n// The Intl formatter (TS renderers)\n// ---------------------------------------------------------------------------\n\n/** A Formatter on the platform's Intl in `locale` (BCP 47) and `timeZone`\n * (IANA; default UTC, as the fixtures pin it). Patterns use the locale's\n * month/weekday/day-period NAMES with ASCII digits. */\nexport function intlFormatter(locale: string, timeZone = `UTC`): Formatter {\n const nf = (o: Intl.NumberFormatOptions) => new Intl.NumberFormat(locale, o)\n let names: DateNames | null = null\n const dateNames = (): DateNames => {\n if (names) return names\n const at = (o: Intl.DateTimeFormatOptions, ms: number) => new Intl.DateTimeFormat(locale, { ...o, timeZone: `UTC` }).format(new Date(ms))\n const months = Array.from({ length: 12 }, (_, i) => Date.UTC(2026, i, 1))\n const days = Array.from({ length: 7 }, (_, i) => Date.UTC(2026, 0, 4 + i)) // 2026-01-04 is a Sunday\n const period = (h: number) => new Intl.DateTimeFormat(locale, { hour: `numeric`, hour12: true, timeZone: `UTC` }).formatToParts(new Date(Date.UTC(2026, 0, 1, h))).find((p) => p.type === `dayPeriod`)?.value ?? (h < 12 ? `AM` : `PM`)\n names = {\n months: months.map((ms) => at({ month: `long` }, ms)),\n monthsShort: months.map((ms) => at({ month: `short` }, ms)),\n weekdays: days.map((ms) => at({ weekday: `long` }, ms)),\n weekdaysShort: days.map((ms) => at({ weekday: `short` }, ms)),\n dayPeriods: [period(9), period(15)],\n }\n return names\n }\n const zonedFields = (ms: number): DateFields => {\n const parts = new Intl.DateTimeFormat(`en-US`, { timeZone, year: `numeric`, month: `numeric`, day: `numeric`, hour: `numeric`, minute: `numeric`, second: `numeric`, weekday: `short`, hourCycle: `h23` }).formatToParts(new Date(ms))\n const get = (t: string) => parts.find((p) => p.type === t)?.value ?? `0`\n return { year: Number(get(`year`)), month: Number(get(`month`)), day: Number(get(`day`)), weekday: [`Sun`, `Mon`, `Tue`, `Wed`, `Thu`, `Fri`, `Sat`].indexOf(get(`weekday`)), hour: Number(get(`hour`)) % 24, minute: Number(get(`minute`)), second: Number(get(`second`)) }\n }\n return {\n locale,\n number(value, options = {}) {\n const fixed = fixedDigits(options.decimals)\n return nf({ minimumFractionDigits: fixed ?? 0, maximumFractionDigits: fixed ?? 3, useGrouping: options.grouping !== false }).format(value)\n },\n currency(value, currency, options = {}) {\n const fixed = fixedDigits(options.decimals)\n return nf({ style: `currency`, currency, ...(fixed !== undefined ? { minimumFractionDigits: fixed, maximumFractionDigits: fixed } : {}), useGrouping: options.grouping !== false }).format(value)\n },\n percent(value, options = {}) {\n const fixed = fixedDigits(options.decimals) ?? 0\n return nf({ style: `percent`, minimumFractionDigits: fixed, maximumFractionDigits: fixed }).format(value)\n },\n date(value, options = {}) {\n const parsed = parseDateValue(value)\n if (!parsed) return ``\n const zone = parsed.dateOnly ? `UTC` : timeZone\n if (options.format) return formatPattern(options.format, parsed.dateOnly ? utcFields(parsed.ms) : zonedFields(parsed.ms), dateNames())\n return new Intl.DateTimeFormat(locale, { dateStyle: options.style ?? `medium`, ...(options.time ? { timeStyle: `short` } : {}), timeZone: zone }).format(new Date(parsed.ms))\n },\n relativeTime(value, now) {\n const parsed = parseDateValue(value)\n if (!parsed) return ``\n const { value: n, unit } = relativeTimeUnit(parsed.ms - now)\n return new Intl.RelativeTimeFormat(locale, { numeric: `auto` }).format(n, unit)\n },\n plural(value) {\n return new Intl.PluralRules(locale).select(value) as PluralCategory\n },\n }\n}\n\n// ---------------------------------------------------------------------------\n// The format functions of the bind table\n// ---------------------------------------------------------------------------\n\n/** The bind-time format functions (A2UI basic `formatNumber`,\n * `formatCurrency`, `formatDate`, `pluralize` + the core `formatPercent`,\n * `formatRelativeTime`), all through ONE Formatter. */\nexport const FORMAT_FUNCTION_NAMES = [`formatNumber`, `formatCurrency`, `formatPercent`, `formatDate`, `formatRelativeTime`, `pluralize`] as const\n\n/** A numeric string: optional ASCII whitespace around an optional sign,\n * decimal digits with an optional fraction and exponent (`' 12 '`, `1e3`,\n * `-.5`). Hex, `Infinity`, separators and anything else are not numbers. */\nconst NUMERIC = /^[ \\t\\n\\r]*[+-]?(\\d+\\.?\\d*|\\.\\d+)([eE][+-]?\\d+)?[ \\t\\n\\r]*$/\nconst toNum = (v: unknown): number => (typeof v === `number` ? v : typeof v === `string` && NUMERIC.test(v) ? Number(v) : NaN)\nconst optNum = (v: unknown): number | undefined => (v === undefined || v === null ? undefined : toNum(v))\n\n/** The format functions over a Formatter; `now` = the clock\n * `formatRelativeTime` reads when its call has no `now` (a renderer\n * re-binds such a node at least once a minute). A value that is not a\n * number, a numeric string (`NUMERIC`) or a date formats to ``. */\nexport function formatFunctions(formatter: Formatter, now: () => number = () => Date.now()): Record<(typeof FORMAT_FUNCTION_NAMES)[number], (args: Record<string, unknown>) => unknown> {\n const numberOr = (value: unknown, f: (n: number) => string) => {\n const n = toNum(value)\n return Number.isFinite(n) ? f(n) : ``\n }\n return {\n formatNumber: ({ value, decimals, grouping }) => numberOr(value, (n) => formatter.number(n, { decimals: optNum(decimals), grouping: grouping === undefined ? undefined : grouping !== false })),\n formatCurrency: ({ value, currency, decimals, grouping }) => numberOr(value, (n) => (typeof currency === `string` && /^[A-Za-z]{3}$/.test(currency) ? formatter.currency(n, currency, { decimals: optNum(decimals), grouping: grouping === undefined ? undefined : grouping !== false }) : ``)),\n formatPercent: ({ value, decimals }) => numberOr(value, (n) => formatter.percent(n, { decimals: optNum(decimals) })),\n formatDate: ({ value, format, style, time }) =>\n formatter.date(value, { ...(typeof format === `string` && format ? { format } : {}), ...(style === `short` || style === `medium` || style === `long` || style === `full` ? { style } : {}), ...(time === true ? { time: true } : {}) }),\n formatRelativeTime: ({ value, now: at }) => formatter.relativeTime(value, typeof at === `number` ? at : (parseDateValue(at)?.ms ?? now())),\n pluralize: (args) => {\n const n = toNum(args.value)\n if (!Number.isFinite(n)) return args.other\n if (n === 0 && args.zero !== undefined) return args.zero\n const category = formatter.plural(n)\n return args[category] ?? args.other\n },\n }\n}\n\n/** The fallback's format functions (the reference bind table's). */\nexport const ENGLISH_FORMAT_FUNCTIONS = formatFunctions(englishFormatter())\n",
|
|
8
8
|
"// VAPP-85: the macro template's value language (catalog/macros.json\n// `$comment`): `{props.x}` paths with `|fallback`, `len(path)`, `range(n)`,\n// `!path`, string interpolation, and the $map / $cond / $eq / $lt / $add /\n// $sub / $clamp / $percent / $coalesce / $text / $not / $fill value objects. Pure, so the\n// Rust core can mirror it line by line.\n//\n// Round 1 (docs/round-1-contract.md §1): an input may be an A2UI DYNAMIC\n// value — a data binding `{path}` or a function call `{call, args}` — which\n// has no value at expansion time. The evaluator then EMITS a function call\n// that the renderer evaluates at bind time, instead of computing. The calls it\n// emits are the CORE functions (percent, add, sub, eq, lt, clamp, cond,\n// fallback, concat, coalesce, text, map, len, fill; `CORE_FUNCTIONS` below)\n// PLUS the basic catalog's logic functions `not`, `and` and `or` (`{!x}`,\n// `$not`, bound `$if`/`$any`), evaluated with the same `truthy`: a renderer\n// MUST implement the whole bind table (`src/dynamic.ts BIND_FUNCTIONS`,\n// generated as `bindFunctionNames`). A whole-string `{props.x}` /\n// `{props.x|fallback}` that is a MEMBER of a props/style/context object (or\n// an array item) and whose value is dynamic passes the dynamic value through\n// UNCHANGED (the fallback is dropped), so a two-way `{path}` binding survives\n// expansion; as an OPERAND of a `$`-object it keeps the fallback\n// (`fallback{value, default}`), so `$eq: [\"{props.page|1}\", 1]` still sees 1\n// when the bound page is missing. `$fill` ALWAYS emits `fill` (its template is\n// a `$string.<id>` the surface's string table resolves at bind time).\n\nimport { formatString } from \"./strings\"\nimport { ENGLISH_FORMAT_FUNCTIONS } from \"./format\"\n\nexport interface ExprContext {\n id: string\n props: Record<string, unknown>\n vars: Record<string, unknown>\n}\n\n/** An A2UI data binding: an object with exactly one key, `path`. */\nexport interface DataBinding {\n path: string\n}\n/** An A2UI function call. */\nexport interface FunctionCall {\n call: string\n args?: Record<string, unknown>\n returnType?: string\n}\nexport type Dynamic = DataBinding | FunctionCall\n\nconst WHOLE = /^\\{([^{}]+)\\}$/\nconst EMBEDDED = /\\{([^{}]+)\\}/g\nconst FUNCTION = /^(len|range)\\((.+)\\)$/\n\nexport function isBinding(value: unknown): value is DataBinding {\n return typeof value === `object` && value !== null && !Array.isArray(value) && typeof (value as DataBinding).path === `string` && Object.keys(value as object).length === 1\n}\nexport function isCall(value: unknown): value is FunctionCall {\n return typeof value === `object` && value !== null && !Array.isArray(value) && typeof (value as FunctionCall).call === `string`\n}\n/** A value the expander cannot evaluate: the renderer will. */\nexport function isDynamic(value: unknown): value is Dynamic {\n return isBinding(value) || isCall(value)\n}\n\n/** `undefined`, `null`, `false` and `\"\"` are false; 0 is TRUE (a count of\n * zero still shows). */\nexport function truthy(value: unknown): boolean {\n return value !== undefined && value !== null && value !== false && value !== ``\n}\n\nfunction call(name: string, args: Record<string, unknown>): FunctionCall {\n const out: Record<string, unknown> = {}\n for (const [k, v] of Object.entries(args)) if (v !== undefined) out[k] = v\n return { call: name, args: out }\n}\n\nfunction parseLiteral(text: string): unknown {\n if (text === `true`) return true\n if (text === `false`) return false\n if (text === `null`) return null\n if (/^-?\\d+(\\.\\d+)?$/.test(text)) return Number(text)\n return text\n}\n\nfunction lookup(path: string, ctx: ExprContext): unknown {\n if (path === `id`) return ctx.id\n const [head, ...rest] = path.split(`.`)\n let cur: unknown\n if (head === `props`) cur = ctx.props\n else if (head in ctx.vars) cur = ctx.vars[head]\n else return undefined\n for (const key of rest) {\n if (cur === undefined || cur === null) return undefined\n cur = (cur as Record<string, unknown>)[key]\n }\n return cur\n}\n\nfunction toNumber(value: unknown): number {\n return typeof value === `number` ? value : Number(value ?? 0) || 0\n}\n\n/** A string that spells a finite number (`\"5\"`, `\" 2.5 \"`), else undefined. */\nfunction numericString(value: string): number | undefined {\n const text = value.trim()\n if (text === ``) return undefined\n const n = Number(text)\n return Number.isFinite(n) ? n : undefined\n}\n\n/** `eq` (and `$eq`): strict equality, except that a NUMBER and a string\n * spelling that number are equal (`5` vs `\"5\"`: form and URL state arrive as\n * strings). Nothing else coerces (`0` vs `\"\"`, `1` vs `true` differ). */\nexport function valuesEqual(a: unknown, b: unknown): boolean {\n if (a === b) return true\n if (typeof a === `number` && typeof b === `string`) return numericString(b) === a\n if (typeof b === `number` && typeof a === `string`) return numericString(a) === b\n return false\n}\n\n/** `clamp`: the value as a number held inside [min, max]; a missing bound\n * (undefined or null) does not clamp; `min` wins when max < min. */\nexport function clampNumber(value: unknown, min: unknown, max: unknown): number {\n let n = toNumber(value)\n if (max !== undefined && max !== null) n = Math.min(n, toNumber(max))\n if (min !== undefined && min !== null) n = Math.max(n, toNumber(min))\n return n\n}\n\n/** `fill`: the template (already resolved through the string table) with its\n * `{name}` placeholders filled from params (strings.ts formatString). */\nexport function fillTemplate(template: unknown, params: unknown): string {\n const text = template === undefined || template === null ? `` : String(template)\n return formatString(text, typeof params === `object` && params !== null ? (params as Record<string, unknown>) : {})\n}\n\n/** The most indexes `range(n)` yields (R8 F51): a Rating's `max` of 1e8 or\n * 1e300 would otherwise allocate that many items before the component\n * budget could refuse them. Equals `maxTemplateItems`; a larger `n` is\n * silently clamped (the reducer's `maxComponents` reports the overflow).\n * Mirrors `MAX_RANGE_ITEMS` in the Rust core's `expr.rs`. */\nexport const MAX_RANGE_ITEMS = 10_000\n\n/** One expression: `len(path)`, `range(n)`, `path|fallback`, `!path`, `path`.\n * The function forms wrap the whole expression and are tried first, so a\n * fallback inside their parentheses stays theirs. */\nexport function evalExpr(expr: string, ctx: ExprContext): unknown {\n const text = expr.trim()\n const fn = FUNCTION.exec(text)\n if (fn) {\n const inner = evalExpr(fn[2], ctx)\n if (fn[1] === `len`) {\n if (isDynamic(inner)) return call(`len`, { value: inner })\n return Array.isArray(inner) ? inner.length : typeof inner === `string` ? inner.length : 0\n }\n // range: the indexes 0..n-1 (at most MAX_RANGE_ITEMS; NaN = 0); a bound\n // count cannot be expanded (→ no items).\n if (isDynamic(inner)) return undefined\n const n = Math.min(MAX_RANGE_ITEMS, Math.max(0, Math.floor(toNumber(inner))) || 0)\n return Array.from({ length: n }, (_, i) => i)\n }\n const bar = text.indexOf(`|`)\n if (bar >= 0) {\n const value = evalExpr(text.slice(0, bar), ctx)\n const fallback = parseLiteral(text.slice(bar + 1))\n if (value === undefined || value === null) return fallback\n if (isDynamic(value)) return call(`fallback`, { value, default: fallback })\n return value\n }\n if (text.startsWith(`!`)) {\n const value = evalExpr(text.slice(1), ctx)\n if (isDynamic(value)) return call(`not`, { value })\n return !truthy(value)\n }\n return lookup(text, ctx)\n}\n\n/** The member rule: a dynamic value passes through untouched; the\n * `fallback` a `|fallback` wrapped it in is unwrapped again. */\nfunction passThrough(value: unknown): unknown {\n if (isCall(value) && value.call === `fallback` && isDynamic(value.args?.value)) return value.args?.value\n return value\n}\n\n/** An operand of a `$`-object (or its result): a whole string evaluates as\n * its expression, keeping a `|fallback` as `fallback{…}` when dynamic. */\nfunction evalOperand(value: unknown, ctx: ExprContext): unknown {\n if (typeof value === `string`) {\n const whole = WHOLE.exec(value)\n if (whole) return evalExpr(whole[1], ctx)\n }\n return evalValue(value, ctx)\n}\n\n/** A condition: a string expression or a value object ($eq …). `true` or\n * `false` when it can be decided now; the dynamic value when it cannot. */\nexport function evalConditionValue(cond: unknown, ctx: ExprContext): boolean | Dynamic {\n const value = typeof cond === `string` ? evalExpr(cond, ctx) : evalOperand(cond, ctx)\n if (isDynamic(value)) return value\n return truthy(value)\n}\n\n/** A condition decided NOW: a dynamic condition counts as true (the part\n * exists; `visible` carries the bound test, see macros.ts). */\nexport function evalCondition(cond: unknown, ctx: ExprContext): boolean {\n const value = evalConditionValue(cond, ctx)\n return value === true || isDynamic(value)\n}\n\nfunction interpolate(value: string, ctx: ExprContext): unknown {\n const parts: unknown[] = []\n let dynamic = false\n let last = 0\n for (const match of value.matchAll(EMBEDDED)) {\n const at = match.index ?? 0\n if (at > last) parts.push(value.slice(last, at))\n const v = evalExpr(match[1], ctx)\n if (isDynamic(v)) dynamic = true\n parts.push(v)\n last = at + match[0].length\n }\n if (last < value.length) parts.push(value.slice(last))\n if (dynamic) return call(`concat`, { values: parts.filter((p) => p !== undefined && p !== null && p !== ``) })\n return parts.map((p) => (p === undefined || p === null ? `` : String(p))).join(``)\n}\n\n/** Any template value: strings interpolate, arrays and objects recurse, the\n * `$`-objects compute (or emit a call when an input is dynamic). `undefined`\n * results are dropped by the caller. */\nexport function evalValue(value: unknown, ctx: ExprContext): unknown {\n if (typeof value === `string`) {\n const whole = WHOLE.exec(value)\n if (whole) return passThrough(evalExpr(whole[1], ctx))\n return interpolate(value, ctx)\n }\n if (Array.isArray(value)) {\n return value.map((item) => evalValue(item, ctx)).filter((item) => item !== undefined)\n }\n if (typeof value !== `object` || value === null) return value\n const obj = value as Record<string, unknown>\n if (`$map` in obj) {\n const spec = obj.$map as { from: string; cases: Record<string, unknown>; default?: unknown }\n const from = evalExpr(spec.from, ctx)\n if (isDynamic(from)) {\n const cases: Record<string, unknown> = {}\n for (const [k, v] of Object.entries(spec.cases)) {\n const evaluated = evalOperand(v, ctx)\n if (evaluated !== undefined) cases[k] = evaluated\n }\n return call(`map`, { value: from, cases, default: evalOperand(spec.default, ctx) })\n }\n const key = from === undefined || from === null ? `` : String(from)\n const hit = Object.prototype.hasOwnProperty.call(spec.cases, key) ? spec.cases[key] : spec.default\n return evalOperand(hit, ctx)\n }\n if (`$cond` in obj) {\n const [cond, then, otherwise] = obj.$cond as [unknown, unknown, unknown]\n const decided = evalConditionValue(cond, ctx)\n if (isDynamic(decided)) return call(`cond`, { if: decided, then: evalOperand(then, ctx), else: evalOperand(otherwise, ctx) })\n return evalOperand(decided ? then : otherwise, ctx)\n }\n if (`$eq` in obj) {\n const [a, b] = (obj.$eq as [unknown, unknown]).map((x) => evalOperand(x, ctx))\n if (isDynamic(a) || isDynamic(b)) return call(`eq`, { a, b })\n return valuesEqual(a, b)\n }\n if (`$lt` in obj) {\n const [a, b] = (obj.$lt as [unknown, unknown]).map((x) => evalOperand(x, ctx))\n if (isDynamic(a) || isDynamic(b)) return call(`lt`, { a, b })\n return toNumber(a) < toNumber(b)\n }\n if (`$add` in obj) {\n const [a, b] = (obj.$add as [unknown, unknown]).map((x) => evalOperand(x, ctx))\n if (isDynamic(a) || isDynamic(b)) return call(`add`, { a, b })\n return toNumber(a) + toNumber(b)\n }\n if (`$sub` in obj) {\n const [a, b] = (obj.$sub as [unknown, unknown]).map((x) => evalOperand(x, ctx))\n if (isDynamic(a) || isDynamic(b)) return call(`sub`, { a, b })\n return toNumber(a) - toNumber(b)\n }\n if (`$clamp` in obj) {\n const [v, min, max] = (obj.$clamp as [unknown, unknown, unknown]).map((x) => evalOperand(x, ctx))\n if (isDynamic(v) || isDynamic(min) || isDynamic(max)) return call(`clamp`, { value: v, min, max })\n return clampNumber(v, min, max)\n }\n if (`$fill` in obj) {\n // Always emitted: the template is (usually) a `$string.<id>` only the\n // surface's string table can resolve, at bind time.\n const [template, params] = obj.$fill as [unknown, Record<string, unknown> | undefined]\n const filled: Record<string, unknown> = {}\n for (const [k, v] of Object.entries(params ?? {})) {\n const evaluated = evalOperand(v, ctx)\n if (evaluated !== undefined) filled[k] = evaluated\n }\n return call(`fill`, { template: evalOperand(template, ctx), params: filled })\n }\n if (`$percent` in obj) {\n const [v, max] = (obj.$percent as [unknown, unknown]).map((x) => evalOperand(x, ctx))\n if (isDynamic(v) || isDynamic(max)) return call(`percent`, { value: v, max })\n return percent(v, max)\n }\n if (`$text` in obj) {\n const spec = obj.$text\n const v = typeof spec === `string` ? evalExpr(spec, ctx) : evalOperand(spec, ctx)\n if (isDynamic(v)) return call(`text`, { value: v })\n return v === undefined || v === null ? undefined : String(v)\n }\n if (`$coalesce` in obj) {\n const out: unknown[] = []\n for (const candidate of obj.$coalesce as unknown[]) {\n const v = evalOperand(candidate, ctx)\n if (v === undefined) continue\n if (isDynamic(v)) {\n out.push(v)\n continue\n }\n if (!truthy(v)) continue\n if (out.length === 0) return v\n out.push(v)\n break\n }\n if (out.length === 0) return undefined\n if (out.length === 1) return out[0]\n return call(`coalesce`, { values: out })\n }\n if (`$not` in obj) {\n const decided = evalConditionValue(obj.$not, ctx)\n if (isDynamic(decided)) return call(`not`, { value: decided })\n return !decided\n }\n const out: Record<string, unknown> = {}\n for (const [k, v] of Object.entries(obj)) {\n const evaluated = evalValue(v, ctx)\n if (evaluated === undefined) continue\n const key = k.includes(`{`) ? evalValue(k, ctx) : k\n out[typeof key === `string` ? key : k] = evaluated\n }\n return out\n}\n\n/** `$percent`'s arithmetic, shared with the core `percent` function: the\n * share of `max` as \"N%\", clamped to 0..100, two decimals. */\nexport function percent(value: unknown, max: unknown): string {\n const m = toNumber(max)\n const pct = m > 0 ? (toNumber(value) / m) * 100 : 0\n const clamped = Math.min(100, Math.max(0, pct))\n return `${Math.round(clamped * 100) / 100}%`\n}\n\n/** Round 4 (VAPP-103) `filter`: the items of an array that match, in order,\n * so a List or Table binds to a filtered view without an agent round trip.\n * `where` = field → value, every entry must hold (`eq` equality); an entry\n * whose value is missing, null or \"\" does NOT constrain (a bound \"all\"\n * choice). `query` = a case-insensitive substring of ANY of `fields` (the\n * item's own string and number values when `fields` is absent; a string or\n * number item matches itself); a missing, null or blank query does not\n * constrain. Not an array → []. */\nexport function filterItems(items: unknown, query: unknown, fields: unknown, where: unknown): unknown[] {\n if (!Array.isArray(items)) return []\n const needle = typeof query === `string` ? query.trim().toLowerCase() : typeof query === `number` ? String(query) : ``\n const keys = Array.isArray(fields) ? fields.filter((f): f is string => typeof f === `string`) : null\n const conditions = typeof where === `object` && where !== null && !Array.isArray(where) ? Object.entries(where as Record<string, unknown>).filter(([, v]) => v !== undefined && v !== null && v !== ``) : []\n const searchable = (v: unknown) => (typeof v === `string` ? v : typeof v === `number` ? String(v) : null)\n return items.filter((item) => {\n const record = typeof item === `object` && item !== null && !Array.isArray(item) ? (item as Record<string, unknown>) : null\n for (const [field, want] of conditions) if (!valuesEqual(record?.[field], want)) return false\n if (needle === ``) return true\n const values = record ? (keys ?? Object.keys(record)).map((k) => record[k]) : [item]\n return values.some((v) => searchable(v)?.toLowerCase().includes(needle) ?? false)\n })\n}\n\n/** The core value functions (core.catalog.json `functions.core`; `set` is\n * an action, src/dynamic.ts runAction) as the renderer\n * evaluates them once the arguments are resolved: the reference every\n * client function table mirrors. `undefined` = no value. */\nexport const CORE_FUNCTIONS: Record<string, (args: Record<string, unknown>) => unknown> = {\n percent: ({ value, max }) => percent(value, max),\n add: ({ a, b }) => toNumber(a) + toNumber(b),\n sub: ({ a, b }) => toNumber(a) - toNumber(b),\n eq: ({ a, b }) => valuesEqual(a, b),\n lt: ({ a, b }) => toNumber(a) < toNumber(b),\n clamp: ({ value, min, max }) => clampNumber(value, min, max),\n cond: ({ if: test, then, else: otherwise }) => (truthy(test) ? then : otherwise),\n fallback: ({ value, default: fallback }) => (value === undefined || value === null ? fallback : value),\n concat: ({ values }) => (Array.isArray(values) ? values.map((v) => (v === undefined || v === null ? `` : String(v))).join(``) : ``),\n coalesce: ({ values }) => (Array.isArray(values) ? values.find(truthy) : undefined),\n text: ({ value }) => (value === undefined || value === null ? undefined : String(value)),\n map: ({ value, cases, default: fallback }) => {\n const key = value === undefined || value === null ? `` : String(value)\n const table = (cases ?? {}) as Record<string, unknown>\n return Object.prototype.hasOwnProperty.call(table, key) ? table[key] : fallback\n },\n len: ({ value }) => (Array.isArray(value) ? value.length : typeof value === `string` ? value.length : 0),\n fill: ({ template, params }) => fillTemplate(template, params),\n filter: ({ items, query, fields, where }) => filterItems(items, query, fields, where),\n // Round 2 (docs/round-2-contract.md §3): the two core format functions, here\n // through the English fallback; a renderer runs them (and the basic\n // format* ones) through the surface's Formatter (src/dynamic.ts).\n formatPercent: ENGLISH_FORMAT_FUNCTIONS.formatPercent,\n formatRelativeTime: ENGLISH_FORMAT_FUNCTIONS.formatRelativeTime,\n}\nexport const CORE_FUNCTION_NAMES: readonly string[] = Object.keys(CORE_FUNCTIONS)\n",
|
|
9
|
-
"// VAPP-103: the input limits (catalog/limits.json), one place for the TS\n// reference and the generated constants of every target. Past a limit the\n// core reports an issue and does no work.\n\nimport limitsJson from \"../catalog/limits.json\" with { type: \"json\" }\n\nexport const LIMITS: Readonly<Record<string, number>> = Object.fromEntries(Object.entries(limitsJson).filter(([k]) => !k.startsWith(`$`))) as Record<string, number>\n/** Nodes the reducer places in one surface's tree (template nodes included). */\nexport const MAX_COMPONENTS: number = limitsJson.maxComponents\n/** Component nesting levels (the root = 1). */\nexport const MAX_DEPTH: number = limitsJson.maxDepth\n/** One server message as UTF-8 JSON. */\nexport const MAX_MESSAGE_BYTES: number = limitsJson.maxMessageBytes\n/** Template items one surface instantiates. */\nexport const MAX_TEMPLATE_ITEMS: number = limitsJson.maxTemplateItems\n/** A data pointer's length in UTF-8 bytes. */\nexport const MAX_POINTER_BYTES: number = limitsJson.maxPointerBytes\n/** A data pointer's token count. */\nexport const MAX_POINTER_SEGMENTS: number = limitsJson.maxPointerSegments\n\n/** The issue messages, byte-identical in every core. */\nexport const LIMIT_ISSUES = {\n usedTwice: `id used twice; only its first place renders`,\n depth: `nesting deeper than ${MAX_DEPTH} levels`,\n components: `surface: more than ${MAX_COMPONENTS} components; the rest is dropped`,\n templateItems: `template: more than ${MAX_TEMPLATE_ITEMS} items; the rest is not rendered`,\n messageBytes: `message larger than ${MAX_MESSAGE_BYTES} bytes`,\n} as const\n",
|
|
9
|
+
"// VAPP-103: the input limits (catalog/limits.json), one place for the TS\n// reference and the generated constants of every target. Past a limit the\n// core reports an issue and does no work.\n\nimport limitsJson from \"../catalog/limits.json\" with { type: \"json\" }\n\n/** The surface limits (numbers; sections such as `motion` are their own). */\nexport const LIMITS: Readonly<Record<string, number>> = Object.fromEntries(Object.entries(limitsJson).filter(([k, v]) => !k.startsWith(`$`) && typeof v === `number`)) as Record<string, number>\n/** Nodes the reducer places in one surface's tree (template nodes included). */\nexport const MAX_COMPONENTS: number = limitsJson.maxComponents\n/** Component nesting levels (the root = 1). */\nexport const MAX_DEPTH: number = limitsJson.maxDepth\n/** One server message as UTF-8 JSON. */\nexport const MAX_MESSAGE_BYTES: number = limitsJson.maxMessageBytes\n/** Template items one surface instantiates. */\nexport const MAX_TEMPLATE_ITEMS: number = limitsJson.maxTemplateItems\n/** A data pointer's length in UTF-8 bytes. */\nexport const MAX_POINTER_BYTES: number = limitsJson.maxPointerBytes\n/** A data pointer's token count. */\nexport const MAX_POINTER_SEGMENTS: number = limitsJson.maxPointerSegments\n\n/** The issue messages, byte-identical in every core. */\nexport const LIMIT_ISSUES = {\n usedTwice: `id used twice; only its first place renders`,\n depth: `nesting deeper than ${MAX_DEPTH} levels`,\n components: `surface: more than ${MAX_COMPONENTS} components; the rest is dropped`,\n templateItems: `template: more than ${MAX_TEMPLATE_ITEMS} items; the rest is not rendered`,\n messageBytes: `message larger than ${MAX_MESSAGE_BYTES} bytes`,\n} as const\n",
|
|
10
10
|
"// Round 1 (docs/round-1-contract.md §1): the BIND-TIME half of the macro\n// contract. The expander leaves a data binding `{path}` or a function call\n// `{call, args}` wherever an input was bound; a renderer resolves those\n// against its data model when it binds a node. This module is the reference\n// every renderer's resolver mirrors: JSON-pointer lookup (absolute, relative\n// to the node's data scope, or inside a literal row), the core functions plus\n// the basic catalog's logic functions, values resolved at ANY depth EXCEPT\n// inside DATA (a shape-less object prop such as Table `rows`, and anything a\n// binding returns), `$string.<id>` built-in copy through the surface's string\n// table (never inside data), the action order (evaluate everything, then\n// `set`, then the event), and the per-ROW binding of row-scoped slot cells\n// (Table). Pure.\n\nimport { sharedCatalogView, type CatalogView } from \"./catalog\"\nimport { CORE_FUNCTIONS, isBinding, isCall, isDynamic, truthy } from \"./expr\"\nimport { ENGLISH_FORMAT_FUNCTIONS, FORMAT_FUNCTION_NAMES, englishFormatter, formatFunctions, type Formatter } from \"./format\"\nimport { resolveString } from \"./strings\"\nimport type { Action, ComponentDef, ExtensionDef, PropSchema, UiNode } from \"./types\"\nimport { MAX_POINTER_BYTES, MAX_POINTER_SEGMENTS } from \"./limits\"\n\n/** Where relative paths resolve: the pointer of the current template item\n * (`/rows/3`), or the root; `item` (when the key is present) = a LITERAL\n * item that is not in the data model (a Table row of literal `rows`):\n * relative paths then read inside it, absolute ones still the data. */\nexport interface DataScope {\n base?: string\n item?: unknown\n}\n\n/** RFC 6901 unescaping of one reference token. */\nconst unescape = (token: string) => token.replace(/~1/g, `/`).replace(/~0/g, `~`)\n\n/** The absolute pointer a binding path names in a scope: `/a/b` stays,\n * `b/c` joins the scope's base, `` (empty) is the base itself. */\n/** A table's OWN entry for an agent-chosen key, never `Object.prototype`'s. */\nfunction own<T>(table: Record<string, T> | undefined, key: string): T | undefined {\n return table !== undefined && Object.prototype.hasOwnProperty.call(table, key) ? table[key] : undefined\n}\n\nexport function absolutePath(path: string, scope: DataScope = {}): string {\n if (path.startsWith(`/`)) return path\n const base = scope.base ?? ``\n if (path === ``) return base\n return `${base}/${path}`\n}\n\n/** True when relative paths of this scope read a literal item. */\nexport function hasItem(scope: DataScope | undefined): boolean {\n return scope !== undefined && Object.prototype.hasOwnProperty.call(scope, `item`)\n}\n\n/** The value a binding path names in a scope: inside the literal item for a\n * relative path under an item scope, else at its absolute pointer. */\nexport function readPath(data: unknown, path: string, scope: DataScope = {}): unknown {\n if (!path.startsWith(`/`) && hasItem(scope)) return path === `` ? scope.item : readPointer(scope.item, `/${path}`)\n return readPointer(data, absolutePath(path, scope))\n}\n\n/** An array index token: ASCII digits only (a read and a write alike). */\nconst INDEX = /^[0-9]+$/\n\n/** The value at an absolute pointer; undefined when any step is missing.\n * `` and `/` = the whole model (as `writeTokens` writes it); only OWN\n * keys and real indices are read (`/constructor` names nothing); `-` reads\n * an array's LAST element, the one an append just landed on (EXP-1385:\n * a landed write reads back, `fixtures/pointer.json`). */\nexport function readPointer(data: unknown, pointer: string): unknown {\n if (pointer === `` || pointer === `/`) return data\n let cur: unknown = data\n // VAPP-107 (property-tested): a pointer without its leading slash reads\n // the same tokens it writes (`writeTokens`, the Rust core's\n // `pointer_tokens`), not an empty first token.\n for (const raw of (pointer.startsWith(`/`) ? pointer.slice(1) : pointer).split(`/`)) {\n if (cur === undefined || cur === null || typeof cur !== `object`) return undefined\n const token = unescape(raw)\n if (Array.isArray(cur)) cur = token === `-` ? cur.at(-1) : INDEX.test(token) ? cur[Number(token)] : undefined\n else cur = Object.prototype.hasOwnProperty.call(cur, token) ? (cur as Record<string, unknown>)[token] : undefined\n }\n return cur\n}\n\n/** A pointer write: the new data model, or `error` (data unchanged). */\nexport interface PointerWrite {\n data: unknown\n error?: string\n}\n\nconst utf8Length = (text: string) => new TextEncoder().encode(text).length\n\n/** A pointer's tokens (`` and `/` = the whole model), or the limit it breaks. */\nexport function writeTokens(pointer: string): string[] | string {\n if (utf8Length(pointer) > MAX_POINTER_BYTES) return POINTER_ISSUES.bytes\n if (pointer === `` || pointer === `/`) return []\n const tokens = (pointer.startsWith(`/`) ? pointer.slice(1) : pointer).split(`/`)\n if (tokens.length > MAX_POINTER_SEGMENTS) return POINTER_ISSUES.segments\n return tokens.map(unescape)\n}\n\n/** VAPP-103: the pointer-write refusals, byte-identical in every core. */\nexport const POINTER_ISSUES = {\n bytes: `data: pointer longer than ${MAX_POINTER_BYTES} bytes`,\n segments: `data: pointer has more than ${MAX_POINTER_SEGMENTS} segments`,\n notIndex: (token: string) => `data: ${JSON.stringify(token)} is not an array index`,\n pastEnd: (token: string, length: number) => `data: index ${token} is past the end of the array (${length} items)`,\n} as const\n\n/** The index a token names in an array of `length` items: digits up to\n * `length` (`length` and `-` append), else the refusal (JSON Pointer:\n * never a gap, never a key). */\nfunction arrayIndex(token: string, length: number): number | string {\n if (token === `-`) return length\n if (!INDEX.test(token)) return POINTER_ISSUES.notIndex(token)\n const index = Number(token)\n return index <= length ? index : POINTER_ISSUES.pastEnd(token, length)\n}\n\nfunction setOwn(target: Record<string, unknown>, key: string, value: unknown): void {\n Object.defineProperty(target, key, { value, writable: true, enumerable: true, configurable: true })\n}\n\n/** A copy of `data` with `value` written at the absolute pointer\n * (`undefined` removes). Missing containers are OBJECTS; an array takes an\n * index up to its length (`length` and `-` append). Refused (data\n * unchanged, `error` set): a pointer past `maxPointerBytes` /\n * `maxPointerSegments`, a non-index token or an index past the end of an\n * array. Iterative: any depth, no recursion. */\nexport function writePointer(data: unknown, pointer: string, value: unknown): PointerWrite {\n const tokens = writeTokens(pointer)\n if (typeof tokens === `string`) return { data, error: tokens }\n if (tokens.length === 0) return { data: value === undefined ? {} : value }\n const chain: (unknown[] | Record<string, unknown>)[] = []\n const keys: (number | string)[] = []\n let cur: unknown = data\n for (let i = 0; i < tokens.length; i++) {\n const token = tokens[i]!\n const last = i === tokens.length - 1\n if (Array.isArray(cur)) {\n const index = arrayIndex(token, cur.length)\n if (typeof index === `string`) return { data, error: index }\n const next = [...cur]\n if (!last) cur = next[index]\n else if (value === undefined) {\n if (index < next.length) next.splice(index, 1)\n } else next[index] = value\n chain.push(next)\n keys.push(index)\n } else {\n const next: Record<string, unknown> = {}\n if (cur !== null && typeof cur === `object`) for (const [k, v] of Object.entries(cur)) setOwn(next, k, v)\n if (!last) cur = Object.prototype.hasOwnProperty.call(next, token) ? next[token] : undefined\n else if (value === undefined) delete next[token]\n else setOwn(next, token, value)\n chain.push(next)\n keys.push(token)\n }\n }\n for (let i = chain.length - 2; i >= 0; i--) {\n const parent = chain[i]!\n if (Array.isArray(parent)) parent[keys[i] as number] = chain[i + 1]\n else setOwn(parent, keys[i] as string, chain[i + 1])\n }\n return { data: chain[0] }\n}\n\n/** The basic catalog's logic functions as the core evaluates them (the\n * validators and formatters are the renderers' own; they are locale work). */\nconst LOGIC_FUNCTIONS: Record<string, (args: Record<string, unknown>) => unknown> = {\n and: ({ values }) => Array.isArray(values) && values.every(truthy),\n or: ({ values }) => Array.isArray(values) && values.some(truthy),\n not: ({ value }) => !truthy(value),\n required: ({ value }) => truthy(value) && !(Array.isArray(value) && value.length === 0),\n}\n\nexport type FunctionTable = Record<string, (args: Record<string, unknown>) => unknown>\n\n/** The reference function table: the core functions + and/or/not/required\n * + (round 2) the format functions through the English fallback Formatter\n * (`formatNumber`, `formatCurrency`, `formatPercent`, `formatDate`,\n * `formatRelativeTime`, `pluralize`; ResolveOptions.formatter replaces it).\n * `set` is an action, never a value. The expander EMITS `not`/`and`/`or`\n * too, so a renderer must implement this whole table (generated as\n * `bindFunctionNames`), not just the core names. */\nexport const BIND_FUNCTIONS: FunctionTable = { ...LOGIC_FUNCTIONS, ...CORE_FUNCTIONS, ...ENGLISH_FORMAT_FUNCTIONS }\nexport const BIND_FUNCTION_NAMES: readonly string[] = Object.keys(BIND_FUNCTIONS)\n\nexport interface ResolveOptions {\n scope?: DataScope\n /** Extra functions (the host's own, the locale formatters). */\n functions?: FunctionTable\n /** The surface's built-in string table (`stringTable(overrides)`): a\n * `$string.<id>` value resolves through it. Absent = left as written. */\n strings?: Readonly<Record<string, string>>\n /** The surface's extensions: their components' prop schemas decide which\n * props are DATA (bindTree). */\n extensions?: readonly ExtensionDef[]\n /** Round 2: the surface's Formatter (SurfaceSettings.locale + timeZone);\n * the format functions run through it. Absent = the English fallback. */\n formatter?: Formatter\n /** The clock `formatRelativeTime` reads without a `now` argument. */\n now?: () => number\n}\n\nconst FORMAT_NAMES: ReadonlySet<string> = new Set(FORMAT_FUNCTION_NAMES)\nconst FORMAT_TABLES = new WeakMap<Formatter, FunctionTable>()\n\nfunction formatTable(options: ResolveOptions): FunctionTable | undefined {\n if (!options.formatter && !options.now) return undefined\n const formatter = options.formatter ?? (english ??= englishFormatter())\n if (options.now) return formatFunctions(formatter, options.now)\n let table = FORMAT_TABLES.get(formatter)\n if (!table) FORMAT_TABLES.set(formatter, (table = formatFunctions(formatter)))\n return table\n}\n\nlet english: Formatter | undefined\n\n/** A prop or style value with every binding and call resolved, at any\n * depth. An unknown function resolves to undefined. */\nexport function resolveDynamic(value: unknown, data: unknown, options: ResolveOptions = {}): unknown {\n if (isBinding(value)) return readPath(data, value.path, options.scope)\n if (isCall(value)) {\n const args: Record<string, unknown> = {}\n for (const [k, v] of Object.entries(value.args ?? {})) args[k] = resolveDynamic(v, data, options)\n // Own entries only: `{call: \"constructor\"}` is no function (VAPP-107).\n const fn = own(options.functions, value.call) ?? (FORMAT_NAMES.has(value.call) ? own(formatTable(options), value.call) : undefined) ?? own(BIND_FUNCTIONS, value.call)\n return fn ? fn(args) : undefined\n }\n if (typeof value === `string`) return options.strings ? resolveString(value, options.strings) : value\n if (Array.isArray(value)) return value.map((v) => resolveDynamic(v, data, options))\n if (typeof value === `object` && value !== null) {\n const out: Record<string, unknown> = {}\n for (const [k, v] of Object.entries(value)) {\n const r = resolveDynamic(v, data, options)\n if (r !== undefined) out[k] = r\n }\n return out\n }\n return value\n}\n\n/** A node's `visible`: absent = shown; else its resolved truthiness. */\nexport function isVisible(visible: unknown, data: unknown, options: ResolveOptions = {}): boolean {\n if (visible === undefined) return true\n return truthy(resolveDynamic(visible, data, options))\n}\n\nexport interface ActionOutcome {\n /** The data model after the action's `set` (unchanged without one). */\n data: unknown\n /** VAPP-103: the `set` was refused (writePointer's reason). */\n error?: string\n /** The event to dispatch, its context resolved BEFORE the write. */\n event?: { name: string; context?: Record<string, unknown> }\n /** A function other than `set` the host must run (openUrl…), args resolved. */\n call?: { call: string; args: Record<string, unknown> }\n}\n\n/** Round 4 (VAPP-103): the data an interaction's action resolves against =\n * the data model WITH the source component's OWN write applied first.\n * `own` = EXACTLY what the component wrote, by prop (an Input's `value`,\n * a Checkbox's `checked`, an overlay's `open`, a FileUpload's MERGED\n * `files`), never inferred from the event payload (an `upload` payload's\n * `added` is the new batch, the write is the whole list): each prop that\n * is a `{path}` binding is written at that path, so a `context.query`\n * bound to the path the Input writes reads the text just typed. Renderers\n * apply it before `runAction` (Rust: every write lands before\n * `Surface::fire`). */\nexport function withOwnWrites(data: unknown, props: Record<string, unknown>, own: Record<string, unknown> | undefined, scope: DataScope = {}): unknown {\n let out = data\n for (const [key, value] of Object.entries(own ?? {})) {\n const bound = props[key]\n if (!isBinding(bound)) continue\n if (!bound.path.startsWith(`/`) && hasItem(scope)) continue\n // A refused write (limits, index rules) leaves the data as it is.\n out = writePointer(out, absolutePath(bound.path, scope), value).data\n }\n return out\n}\n\n/** The overlay components (catalog group `overlay`; AlertDialog expands to\n * a non-dismissible Dialog). */\nexport const OVERLAY_COMPONENTS: readonly string[] = [`Dialog`, `Drawer`, `AlertDialog`, `Popover`, `Tooltip`, `Menu`, `Toast`]\nconst OVERLAYS: ReadonlySet<string> = new Set(OVERLAY_COMPONENTS)\n\n/** Round 4 (VAPP-103): a successful Form submit CLOSES the overlay around\n * the form (the author never resets the bound `open` flag). The NEAREST\n * enclosing overlay of ANY kind decides: it closes only when it is a\n * Dialog or Drawer that is dismissible (`dismissible: false` — an\n * AlertDialog — never auto-closes); a nearest Popover, Menu, Tooltip or\n * Toast closes nothing, nor does anything around it. The id of that\n * overlay in the EXPANDED tree, null when nothing closes. Renderers close\n * it like a dismiss (`open` false written through, `change {open:\n * false}`) right after the form's `submit`. */\nexport function submitClosesOverlay(root: UiNode, formId: string): string | null {\n const walk = (n: UiNode, overlay: UiNode | null): UiNode | null | undefined => {\n const here = OVERLAYS.has(n.component) && n.id !== formId ? n : overlay\n if (n.id === formId && n.component === `Form`) return here\n for (const slot of Object.values(n.slots ?? {})) {\n const hit = walk(slot, here)\n if (hit !== undefined) return hit\n }\n for (const child of n.children) {\n const hit = walk(child, here)\n if (hit !== undefined) return hit\n }\n return undefined\n }\n const nearest = walk(root, null)\n if (!nearest || (nearest.component !== `Dialog` && nearest.component !== `Drawer`) || nearest.props.dismissible === false) return null\n return nearest.id\n}\n\n/** What a press does: resolve the function args and the event context\n * against the data AS IT IS (after `withOwnWrites`), then apply `set`, then\n * hand back the event. */\nexport function runAction(action: Action, data: unknown, options: ResolveOptions = {}): ActionOutcome {\n const out: ActionOutcome = { data }\n const event = action.event\n ? { name: action.event.name, ...(action.event.context ? { context: resolveDynamic(action.event.context, data, options) as Record<string, unknown> } : {}) }\n : undefined\n // A2UI's `functionCall`.\n const fn = action.functionCall\n if (fn) {\n const args = resolveDynamic(fn.args ?? {}, data, options) as Record<string, unknown>\n if (fn.call === `set`) {\n // A relative path under a literal-item scope names no data: no write.\n if (typeof args.path === `string` && (args.path.startsWith(`/`) || !hasItem(options.scope))) {\n const pointer = absolutePath(args.path, options.scope)\n // No value: the key exists without one, which JSON drops (the\n // containers on the way are still created).\n const written = writePointer(data, pointer, args.value === undefined ? null : args.value)\n const final = args.value === undefined && !written.error ? writePointer(written.data, pointer, undefined) : written\n out.data = final.data\n if (final.error) out.error = final.error\n }\n } else out.call = { call: fn.call, args }\n }\n if (event) out.event = event\n return out\n}\n\n/** A DATA schema: a shape-less `object` (any object) or an array of them —\n * Table `rows` in the core catalog. A literal value there is the author's\n * data, copied verbatim: no binding, call or `$string.<id>` inside it is\n * interpreted (a row `{path: \"/etc/hosts\"}` is a row). A dynamic value AT\n * the position still resolves (and its result is never descended). */\nexport function isDataSchema(schema: PropSchema | undefined): boolean {\n if (!schema) return false\n if (schema.type === `object`) return schema.shape === undefined\n if (schema.type === `array`) return schema.items !== undefined && isDataSchema(schema.items)\n return false\n}\n\nconst isObj = (v: unknown): v is Record<string, unknown> => typeof v === `object` && v !== null && !Array.isArray(v)\n\n/** One prop value resolved along its schema: dynamic → resolved, DATA\n * literal → verbatim, arrays and shaped objects → per item / property,\n * anything else → `resolveDynamic` (any depth). */\nexport function resolveProp(value: unknown, schema: PropSchema | undefined, data: unknown, options: ResolveOptions = {}, defs: Record<string, { properties: Record<string, PropSchema> }> = {}): unknown {\n if (isDynamic(value)) return resolveDynamic(value, data, options)\n if (isDataSchema(schema)) return value\n if (schema?.type === `array` && schema.items && Array.isArray(value)) return value.map((item) => resolveProp(item, schema.items, data, options, defs))\n const shape = schema?.type === `object` && schema.shape ? defs[schema.shape] : undefined\n if (shape && isObj(value)) {\n const out: Record<string, unknown> = {}\n for (const [k, v] of Object.entries(value)) {\n const r = resolveProp(v, shape.properties[k], data, options, defs)\n if (r !== undefined) out[k] = r\n }\n return out\n }\n return resolveDynamic(value, data, options)\n}\n\n/** A node's props resolved along its component's schema (an unknown\n * component's props resolve at any depth). */\nexport function resolveNodeProps(def: ComponentDef | undefined, props: Record<string, unknown>, data: unknown, options: ResolveOptions = {}, defs: Record<string, { properties: Record<string, PropSchema> }> = {}): Record<string, unknown> {\n const out: Record<string, unknown> = {}\n for (const [k, v] of Object.entries(props)) {\n const r = resolveProp(v, def?.props[k], data, options, defs)\n if (r !== undefined) out[k] = r\n }\n return out\n}\n\n/** True when the component's slots are ROW-SCOPED (catalog `slotScope:\n * \"row\"`, Table): each slot is a cell template the painter binds once per\n * row (`bindRowSlot`), never against the surface. */\nexport function hasRowSlots(def: ComponentDef | undefined): boolean {\n return def?.slotScope === `row`\n}\n\n/** The scope row `index` of a row-scoped component binds its slot cells in.\n * `rowsProp` = the UNBOUND `rows` value: a binding → `{base: <its pointer>/\n * <index>}` (relative paths read the row in the data model and `set` writes\n * into it); a literal or a call → `{item: rows[index]}` (relative paths read\n * inside the row; a relative `set` writes nothing). `index` = the row's index\n * in `rows` as given, before any local sort. */\nexport function rowScope(rowsProp: unknown, rows: readonly unknown[], index: number, scope: DataScope = {}): DataScope {\n if (isBinding(rowsProp)) return { base: `${absolutePath(rowsProp.path, scope)}/${index}` }\n return { ...(scope.base !== undefined ? { base: scope.base } : {}), item: rows[index] }\n}\n\n/** A row-scoped slot cell bound for row `index` (see `rowScope`). */\nexport function bindRowSlot(slot: UiNode, rowsProp: unknown, rows: readonly unknown[], index: number, data: unknown, options: ResolveOptions = {}): UiNode | null {\n return bindTree(slot, data, { ...options, scope: rowScope(rowsProp, rows, index, options.scope) })\n}\n\n/** Round 2 (docs/round-2-contract.md §4): the scope a List's `section`\n * header binds in — a LITERAL item `{value, count, index}` (relative paths\n * read it: `{path: \"value\"}`; absolute ones the surface data). */\nexport function sectionScope(section: { value: string; count: number }, index: number, scope: DataScope = {}): DataScope {\n return { ...(scope.base !== undefined ? { base: scope.base } : {}), item: { value: section.value, count: section.count, index } }\n}\n\n/** A List `section` header bound for section `index` (see `sectionScope`). */\nexport function bindSectionHeader(slot: UiNode, section: { value: string; count: number }, index: number, data: unknown, options: ResolveOptions = {}): UiNode | null {\n return bindTree(slot, data, { ...options, scope: sectionScope(section, index, options.scope) })\n}\n\n/** The BIND pass a renderer runs over an expanded tree for one data model:\n * every prop resolved along its schema (`resolveNodeProps`: DATA props\n * verbatim), every style value, recipe prop and `accessibility` value\n * resolved (`resolveDynamic`), a node whose `visible` resolves falsy dropped\n * with its subtree, `visible` itself removed. Actions stay unresolved (they\n * evaluate at press time, `runAction`); a `template` and the slots of a\n * ROW-SCOPED component (Table cells) stay UNBOUND — the painter binds them\n * per item / per row (`bindRowSlot`). fixtures/bind-time.json locks it. Pure. */\nconst viewFor = (extensions?: readonly ExtensionDef[]): CatalogView => sharedCatalogView(extensions)\n\nexport function bindTree(node: UiNode, data: unknown, options: ResolveOptions = {}): UiNode | null {\n const view = viewFor(options.extensions)\n const walk = (n: UiNode): UiNode | null => {\n if (!isVisible(n.visible, data, options)) return null\n const def = view.components[n.component]\n const out: UiNode = { id: n.id, component: n.component, props: resolveNodeProps(def, n.props, data, options, view.defs), children: [] }\n if (n.style) out.style = resolveDynamic(n.style, data, options) as Record<string, unknown>\n if (n.on) out.on = n.on\n if (n.accessibility) {\n const a11y = resolveDynamic(n.accessibility, data, options) as Record<string, unknown>\n if (Object.keys(a11y).length > 0) out.accessibility = a11y\n }\n for (const child of n.children) {\n const bound = walk(child)\n if (bound) out.children.push(bound)\n }\n if (n.slots) {\n if (hasRowSlots(def)) out.slots = n.slots\n else\n for (const [slot, child] of Object.entries(n.slots)) {\n const bound = walk(child)\n if (bound) (out.slots ??= {})[slot] = bound\n }\n }\n if (n.template) out.template = n.template\n if (n.recipe) out.recipe = { ...n.recipe, props: resolveDynamic(n.recipe.props, data, options) as Record<string, unknown> }\n return out\n }\n return walk(node)\n}\n",
|
|
11
11
|
"// Round 3 (VAPP-102, docs/round-3-contract.md §2): the tree connector rule\n// the CORE computes for nested rows. `treeGuides(depths)` is the ×4 rule of\n// the app (`packages/ui/src/tree-guides.ts`, desktop `domain::tree_guides`,\n// iOS `TreeGuides.swift`, Android `TreeGuides.kt`), copied verbatim so a\n// Section of Rows connects like a session tree or a PR stack. `applyTreeGuides`\n// is the ONE post-expansion pass (the end of `expandMacros`; the Rust core\n// mirrors it in `tree_guides.rs`): over every node's children in order, each\n// Row root contributes its numeric `recipe.props.depth` (anything else counts\n// as 0 and ends every subtree), and the rule fills the Row's `guides` part (a\n// TreeGuides native) with `elbowAt` / `tee` / `passThrough`. Locked by\n// `fixtures/tree-guides.json` and the Row cases of `catalog-macros.json`.\n\nimport type { UiNode } from \"./types\"\n\n/** Guide geometry for ONE row, in gutter LEVELS (not pixels). */\nexport interface TreeGuide {\n /** The gutter level the elbow sits in (`depth - 1`); `null` for a root. */\n elbowAt: number | null\n /** The elbow's vertical continues past the centre: a later sibling follows. */\n tee: boolean\n /** Ancestor gutter levels carrying a straight full-height line, ascending. */\n passThrough: number[]\n}\n\n/** Whether the subtree hanging off gutter `level` continues AFTER row `index`:\n * another row at depth `level + 1` follows before the walk leaves that\n * subtree (a row at depth `≤ level`). */\nfunction continuesAfter(depths: readonly number[], index: number, level: number): boolean {\n for (let at = index + 1; at < depths.length; at += 1) {\n const depth = depths[at]!\n if (depth <= level) return false\n if (depth === level + 1) return true\n }\n return false\n}\n\n/** The guides for a flat list of VISIBLE rows, given their depths. */\nexport function treeGuides(depths: readonly number[]): TreeGuide[] {\n return depths.map((depth, index) => {\n if (depth <= 0) return { elbowAt: null, tee: false, passThrough: [] }\n const passThrough: number[] = []\n for (let level = 0; level <= depth - 2; level += 1) {\n if (continuesAfter(depths, index, level)) passThrough.push(level)\n }\n return { elbowAt: depth - 1, tee: continuesAfter(depths, index, depth - 1), passThrough }\n })\n}\n\n/** The expanded root of a `Row` macro. */\nexport function isRowRoot(node: UiNode): boolean {\n return node.recipe?.macro === `Row` && node.recipe.part === `root`\n}\n\n/** A sibling's depth: a Row root's recipe prop, else any node's own numeric\n * `depth` prop (an extension row such as SessionRow or PrRow), when a finite\n * number > 0, else 0 (a bound depth cannot be computed against its siblings). */\nfunction siblingDepth(node: UiNode): number {\n const depth = isRowRoot(node) ? node.recipe?.props.depth : node.props.depth\n return typeof depth === `number` && Number.isFinite(depth) && depth > 0 ? Math.floor(depth) : 0\n}\n\n/** A non-Row sibling that takes part: its own numeric `depth` prop (> 0). */\nfunction hasDepth(node: UiNode): boolean {\n return !isRowRoot(node) && node.component !== `TreeGuides` && typeof node.props.depth === `number`\n}\n\n/** The filled guide as props: `{depth, elbowAt?, tee, passThrough}`. */\nfunction guideProps(depth: number, g: TreeGuide): Record<string, unknown> {\n const props: Record<string, unknown> = { depth }\n if (g.elbowAt !== null) props.elbowAt = g.elbowAt\n props.tee = g.tee\n props.passThrough = g.passThrough\n return props\n}\n\n/** Fill the guides of ONE sibling list (a node's children, or a lone root /\n * slot value). A Row root's `guides` part takes the props; any other node\n * with a numeric `depth` gets them as its `guide` prop (`elbowAt?`, `tee`,\n * `passThrough`), which an extension painter draws. */\nfunction fillSiblings(nodes: UiNode[]): void {\n const depths = nodes.map(siblingDepth)\n const guides = treeGuides(depths)\n nodes.forEach((node, i) => {\n const g = guides[i]!\n if (isRowRoot(node)) {\n const part = guidesPart(node)\n if (part) part.props = guideProps(depths[i]!, g)\n } else if (hasDepth(node)) {\n const { depth: _d, ...guide } = guideProps(depths[i]!, g)\n node.props = { ...node.props, guide }\n }\n })\n}\n\n/** The Row's `guides` part, when its depth emitted one. */\nfunction guidesPart(row: UiNode): UiNode | undefined {\n return row.children.find((c) => c.component === `TreeGuides` && c.recipe?.part === `guides`)\n}\n\n/** Fill every Row's guides from the rows around it. Mutates `root` in place\n * (the expander hands it a fresh tree); returns it for chaining. */\nexport function applyTreeGuides(root: UiNode): UiNode {\n const visit = (node: UiNode) => {\n fillSiblings(node.children)\n for (const slot of Object.values(node.slots ?? {})) {\n // A slot value has no siblings: a lone row is a root.\n fillSiblings([slot])\n visit(slot)\n }\n node.children.forEach(visit)\n }\n fillSiblings([root])\n visit(root)\n return root\n}\n",
|
|
12
12
|
"// VAPP-85: the macro expander — applies catalog/macros.json (plus extension\n// macros) to a normalized tree until every node is native. The rules are in\n// the table's `$comment`; fixtures/catalog-macros.json locks the output and\n// the Rust core replays the same table.\n//\n// Round 1 (docs/round-1-contract.md): a `$if`/`$any` that cannot be decided\n// at expansion time (a bound input) emits the part WITH `visible` = the\n// bound condition; `\"$slot:name\"` children splice an author slot in place\n// and a template `slots` entry may be a template node; a RESPONSIVE prop\n// (`{base, sm?, md?…}`) is expanded per breakpoint into `@media (min-width:\n// $breakpoint.<bp>)` blocks on every part whose style it changes; a `$set`\n// on a part whose macro prop is BOUND adds the `set` write-back to that\n// part's action (two-way binding without a host round trip); a part's\n// `$a11y` becomes the node's `accessibility` (role, states, name: §6).\n\nimport { TOKEN_GROUPS, sharedCatalogView } from \"./catalog\"\nimport { applyTreeGuides } from \"./tree-guides\"\nimport type { CatalogView } from \"./catalog\"\nimport { evalConditionValue, evalValue, isBinding, isDynamic, truthy, type ExprContext } from \"./expr\"\nimport type { Action, ExtensionDef, MacroChild, MacroDef, MacroTemplate, ReduceIssue, UiNode, Visible } from \"./types\"\n\nconst MAX_DEPTH = 16\n/** The breakpoint names in ascending order (tokens.json). */\nexport const BREAKPOINTS: readonly string[] = TOKEN_GROUPS.breakpoint\n\ninterface Variant {\n breakpoint: string\n props: Record<string, unknown>\n}\n\ninterface Expansion {\n view: CatalogView\n macro: string\n def: MacroDef\n source: UiNode\n /** The author's props with every responsive value at its `base`. */\n baseProps: Record<string, unknown>\n /** One per breakpoint a responsive prop names, ascending. */\n variants: Variant[]\n claimed: Set<string>\n /** Where expansion problems go (the reducer's issue list), if anyone listens. */\n issues?: ReduceIssue[]\n}\n\nfunction clone<T>(value: T): T {\n return value === undefined ? value : (JSON.parse(JSON.stringify(value)) as T)\n}\n\nconst isObj = (v: unknown): v is Record<string, unknown> => typeof v === `object` && v !== null && !Array.isArray(v)\n\n/** `{base, sm?, md?, lg?, xl?}`: an object with `base` and only breakpoint\n * keys besides. */\nexport function isResponsiveValue(value: unknown): value is Record<string, unknown> & { base: unknown } {\n if (!isObj(value) || !(`base` in value)) return false\n return Object.keys(value).every((k) => k === `base` || BREAKPOINTS.includes(k))\n}\n\n/** The value a responsive prop takes at a breakpoint: the nearest defined\n * key at or below it, `base` under the first one. `null` = the base. */\nexport function responsiveAt(value: Record<string, unknown> & { base: unknown }, breakpoint: string | null): unknown {\n let out = value.base\n if (breakpoint === null) return out\n for (const bp of BREAKPOINTS) {\n if (bp in value) out = value[bp]\n if (bp === breakpoint) break\n }\n return out\n}\n\n/** The author's props with every responsive object replaced by its value at\n * `breakpoint`. */\nexport function propsAt(props: Record<string, unknown>, breakpoint: string | null): Record<string, unknown> {\n const out: Record<string, unknown> = {}\n for (const [k, v] of Object.entries(props)) out[k] = isResponsiveValue(v) ? responsiveAt(v, breakpoint) : v\n return out\n}\n\nfunction responsiveVariants(props: Record<string, unknown>): Variant[] {\n const used = new Set<string>()\n for (const v of Object.values(props)) if (isResponsiveValue(v)) for (const k of Object.keys(v)) if (k !== `base`) used.add(k)\n return BREAKPOINTS.filter((bp) => used.has(bp)).map((bp) => ({ breakpoint: bp, props: propsAt(props, bp) }))\n}\n\nfunction mergeStyle(\n base: Record<string, unknown> | undefined,\n over: Record<string, unknown> | undefined\n): Record<string, unknown> | undefined {\n if (!base && !over) return undefined\n const out: Record<string, unknown> = { ...(base ?? {}) }\n for (const [k, v] of Object.entries(over ?? {})) {\n const nested = typeof v === `object` && v !== null && !Array.isArray(v)\n out[k] = nested\n ? { ...((out[k] as Record<string, unknown>) ?? {}), ...(v as Record<string, unknown>) }\n : v\n }\n return out\n}\n\nfunction routedAction(\n action: Action,\n context: Record<string, unknown> | undefined\n): Action {\n const out = clone(action)\n if (context && out.event) {\n out.event.context = { ...(out.event.context ?? {}), ...context }\n }\n return out\n}\n\n/** The macro's recipe discriminators: the author's value, else the prop's\n * catalog default, so a theme always sees a concrete value. */\nfunction recipeProps(exp: Expansion, ctx: ExprContext, extra: unknown): Record<string, unknown> {\n const props: Record<string, unknown> = {}\n const schema = exp.view.components[exp.macro]?.props ?? {}\n for (const name of exp.def.recipeProps) {\n const value = exp.baseProps[name] ?? schema[name]?.default\n if (value !== undefined) props[name] = value\n }\n if (extra) {\n const evaluated = evalValue(extra, ctx) as Record<string, unknown>\n for (const [k, v] of Object.entries(evaluated)) props[k] = v\n }\n return props\n}\n\nfunction andOf(conditions: unknown[], op: `and` | `or`): Visible {\n if (conditions.length === 1) return conditions[0] as Visible\n return { call: op, args: { values: conditions } }\n}\n\n/** The part's `$if`/`$any`: `false` = leave it out, `true` = emit it, a\n * dynamic value = emit it with that as `visible`. */\nfunction decideConditions(tpl: MacroTemplate, ctx: ExprContext): boolean | Visible {\n const bound: unknown[] = []\n if (tpl.$if !== undefined) {\n const conds = Array.isArray(tpl.$if) ? tpl.$if : [tpl.$if]\n for (const c of conds) {\n const r = evalConditionValue(c, ctx)\n if (r === false) return false\n if (r !== true) bound.push(r)\n }\n }\n if (tpl.$any !== undefined) {\n let decided = false\n const any: unknown[] = []\n for (const c of tpl.$any) {\n const r = evalConditionValue(c, ctx)\n if (r === true) {\n decided = true\n break\n }\n if (r !== false) any.push(r)\n }\n if (!decided) {\n if (any.length === 0) return false\n bound.push(andOf(any, `or`))\n }\n }\n return bound.length === 0 ? true : andOf(bound, `and`)\n}\n\nfunction expandTemplate(\n tpl: MacroTemplate,\n exp: Expansion,\n ctx: ExprContext,\n parentId: string\n): UiNode[] {\n const decided = decideConditions(tpl, ctx)\n if (decided === false) return []\n const visible = decided === true ? undefined : decided\n if (tpl.$each !== undefined) {\n const items = evalValue(`{${tpl.$each}}`, ctx)\n if (!Array.isArray(items)) return []\n const as = tpl.$as ?? `item`\n return items.map((item, index) =>\n buildNode(tpl, exp, { ...ctx, vars: { ...ctx.vars, [as]: item, index } }, `${parentId}.${tpl.part}.${index}`, visible)\n )\n }\n const id = tpl.part === `root` ? exp.source.id : `${parentId}.${tpl.part}`\n return [buildNode(tpl, exp, ctx, id, visible)]\n}\n\nconst canon = (v: unknown) => JSON.stringify(v)\n\n/** The part's style: evaluated with the base props, then once per\n * breakpoint variant; every key a variant changes lands in its media block. */\nfunction partStyle(tpl: MacroTemplate, exp: Expansion, ctx: ExprContext): Record<string, unknown> | undefined {\n if (!tpl.style) return undefined\n const style = evalValue(tpl.style, ctx) as Record<string, unknown>\n let previous = style\n for (const variant of exp.variants) {\n const at = evalValue(tpl.style, { ...ctx, props: variant.props }) as Record<string, unknown>\n const diff: Record<string, unknown> = {}\n for (const [k, v] of Object.entries(at)) if (!k.startsWith(`@`) && !k.startsWith(`:`) && canon(previous[k]) !== canon(v)) diff[k] = v\n if (Object.keys(diff).length > 0) {\n const key = `@media (min-width: $breakpoint.${variant.breakpoint})`\n style[key] = { ...((style[key] as Record<string, unknown>) ?? {}), ...diff }\n }\n previous = at\n }\n return Object.keys(style).length > 0 ? style : undefined\n}\n\nfunction buildNode(\n tpl: MacroTemplate,\n exp: Expansion,\n ctx: ExprContext,\n id: string,\n visible: Visible | undefined\n): UiNode {\n const props = (evalValue(tpl.props ?? {}, ctx) as Record<string, unknown>) ?? {}\n const style = partStyle(tpl, exp, ctx)\n const node: UiNode = { id, component: tpl.component, props, children: [] }\n if (style) node.style = style\n if (visible !== undefined) node.visible = visible\n node.recipe = { macro: exp.macro, part: tpl.part, props: recipeProps(exp, ctx, tpl.$recipe) }\n if (tpl.$on) {\n const on: Record<string, Action> = {}\n for (const [partEvent, macroEvent] of Object.entries(tpl.$on)) {\n const action = exp.source.on?.[macroEvent]\n if (!action) continue\n exp.claimed.add(macroEvent)\n const context = tpl.$context\n ? (evalValue(tpl.$context, ctx) as Record<string, unknown>)\n : undefined\n on[partEvent] = routedAction(action, context)\n }\n if (Object.keys(on).length > 0) node.on = on\n }\n if (tpl.$set) {\n for (const [partEvent, spec] of Object.entries(tpl.$set)) {\n const bound = exp.baseProps[spec.prop]\n if (!isBinding(bound)) continue\n const on = (node.on ??= {})\n if (on[partEvent]?.functionCall) {\n // An Action carries ONE `functionCall`: the author's routed function call\n // wins and the bound prop is not written back (reported, never lost\n // silently). Route an `event` to keep the two-way write.\n const macroEvent = tpl.$on?.[partEvent] ?? partEvent\n const message = `on.${macroEvent}: a function action replaces the two-way set of props.${spec.prop}; write it in that function's handler or use an event`\n if (!exp.issues?.some((i) => i.id === exp.source.id && i.message === message)) exp.issues?.push({ id: exp.source.id, message })\n continue\n }\n const value = evalValue(spec.value, ctx)\n on[partEvent] = { ...(on[partEvent] ?? {}), functionCall: { call: `set`, args: value === undefined ? { path: bound.path } : { path: bound.path, value } } }\n }\n }\n if (tpl.$a11y) {\n const a11y = evalValue(tpl.$a11y, ctx) as Record<string, unknown>\n if (Object.keys(a11y).length > 0) node.accessibility = a11y\n }\n if (tpl.slots) {\n for (const [slot, ref] of Object.entries(tpl.slots)) {\n if (typeof ref === `string`) {\n const name = ref.startsWith(`$slot:`) ? ref.slice(6) : null\n const value = name ? exp.source.slots?.[name] : undefined\n if (value) (node.slots ??= {})[slot] = value\n continue\n }\n const [built] = expandTemplate(ref, exp, ctx, id)\n if (built) (node.slots ??= {})[slot] = built\n }\n }\n for (const child of tpl.children ?? []) {\n if (child === `$children`) {\n node.children.push(...exp.source.children)\n if (exp.source.template) node.template = exp.source.template\n continue\n }\n if (typeof child === `string`) {\n if (child.startsWith(`$slot:`)) {\n const value = exp.source.slots?.[child.slice(6)]\n if (value) node.children.push(value)\n }\n continue\n }\n node.children.push(...expandTemplate(child as MacroTemplate, exp, ctx, id))\n }\n return node\n}\n\n/** Expand one macro node (children already native) into its template. */\nfunction expandMacro(node: UiNode, macro: string, def: MacroDef, view: CatalogView, depth: number, issues?: ReduceIssue[]): UiNode {\n if (depth > MAX_DEPTH) throw new Error(`macro ${macro}: expansion deeper than ${MAX_DEPTH}`)\n const baseProps = propsAt(node.props, null)\n // Round 3: an `on.press` implies `pressable` on a macro that offers it (Row, Chip).\n if (node.on?.press && baseProps.pressable === undefined && view.components[macro]?.props.pressable) baseProps.pressable = true\n const exp: Expansion = { view, macro, def, source: node, baseProps, variants: responsiveVariants(node.props), claimed: new Set(), issues }\n const ctx: ExprContext = { id: node.id, props: baseProps, vars: {} }\n const [root] = expandTemplate(def.root, exp, ctx, node.id)\n root.style = mergeStyle(root.style, node.style)\n if (root.style && Object.keys(root.style).length === 0) delete root.style\n // VAPP-163: the style written ON the macro node wins over the macro's part\n // recipes: its top-level keys (condition blocks included), SORTED, ride on\n // the root's recipe as `authored`. Only the AUTHOR's keys count: a node an\n // outer template drew (it carries a recipe) passes on just the keys its\n // own author wrote (a template root's `authored`), never template style.\n const authored = node.recipe ? [...(node.recipe.authored ?? [])] : Object.keys(node.style ?? {}).sort()\n if (authored.length > 0 && root.recipe) root.recipe = { ...root.recipe, authored }\n if (node.visible !== undefined) root.visible = node.visible\n // The author's label/description (or an outer macro part's $a11y) win\n // over the root part's own.\n if (node.accessibility) root.accessibility = { ...(root.accessibility ?? {}), ...node.accessibility }\n const remaining: Record<string, Action> = { ...(root.on ?? {}) }\n for (const [event, action] of Object.entries(node.on ?? {})) {\n if (!exp.claimed.has(event)) remaining[event] = action\n }\n if (Object.keys(remaining).length > 0) root.on = remaining\n else delete root.on\n return expandTree(root, view, depth + 1, issues)\n}\n\nfunction expandTree(node: UiNode, view: CatalogView, depth: number, issues?: ReduceIssue[]): UiNode {\n const out: UiNode = { ...node, children: node.children.map((c) => expandTree(c, view, depth, issues)) }\n if (node.slots) {\n out.slots = {}\n for (const [slot, child] of Object.entries(node.slots)) out.slots[slot] = expandTree(child, view, depth, issues)\n }\n const def = view.macros[out.component]\n if (def && view.components[out.component]?.kind === `macro`) {\n return expandMacro(out, out.component, def, view, depth, issues)\n }\n return out\n}\n\n/** The normalized tree with every macro (core + extensions) expanded into\n * natives, recipes attached. Pure: the input is not mutated; expansion\n * problems (an author function that replaces a `$set` write) are pushed to\n * `options.issues` when given. */\nexport function expandMacros(\n root: UiNode,\n options: { extensions?: readonly ExtensionDef[]; issues?: ReduceIssue[] } = {}\n): UiNode {\n // Round 3: the tree guides of nested Rows come from their siblings, so\n // they are filled AFTER the whole tree is native (src/tree-guides.ts).\n return applyTreeGuides(expandTree(clone(root), sharedCatalogView(options.extensions), 0, options.issues))\n}\n\n/** True for a value the expander would keep (see expr.ts). */\nexport const keeps = truthy\nexport { isDynamic }\nexport type { MacroChild }\n",
|
|
@@ -26,7 +26,7 @@
|
|
|
26
26
|
"// VAPP-91: the framework-agnostic host runtime for TypeScript renderers.\n// It owns the transport, the router, one SurfaceStore per surface, the\n// source subscriptions, the function registry and the policy hooks; a\n// renderer (React: `@exponential_app/eui-react` `<HostSurface>`) paints a\n// store and hands its interactions back through `dispatch`.\n\nimport { writePointer } from \"../dynamic\"\nimport { reduceSurface } from \"../reducer\"\nimport { tryLoadTheme } from \"../theme\"\nimport type { ResolvedTheme } from \"../theme-types\"\nimport { BUILTIN_THEME_IDS, BUILTIN_THEMES, builtinTheme } from \"../themes\"\nimport type { ExtensionDef, FlatComponent, ReduceIssue, UiNode } from \"../types\"\nimport { RENDER_FAILED, actionMessage, errorMessage } from \"./contract\"\nimport type { ClientMessage, HostOp } from \"./contract\"\nimport { availableExtensions, clientCapabilities } from \"./package\"\nimport type { PackageIssue, AppPackage } from \"./package\"\nimport { combineDecisions, decideFunction, decideUrl, mediaRequest, packagePolicy } from \"./policy\"\nimport type { FunctionDecision, FunctionPolicy, MediaOptions, MediaRequest, UrlPolicy } from \"./policy\"\nimport { HostRouter } from \"./router\"\nimport { parseSource, sourceWithParams } from \"./sources\"\nimport { A2UI_VERSION } from \"../catalog\"\nimport type { SourceResolvers } from \"./sources\"\n\nexport type TransportStatus = `connecting` | `open` | `closed` | `error`\n\n/** Messages in, client messages out. Adapters: `transports.ts`. */\nexport interface Transport {\n /** Start delivering messages; report the connection state. */\n start(receive: (message: unknown) => void, status: (status: TransportStatus, detail?: string) => void): void\n send(message: ClientMessage): void | Promise<void>\n close(): void\n}\n\nexport interface FunctionCallInfo {\n surfaceId: string\n componentId: string\n name: string\n args: Record<string, unknown>\n}\n\nexport type HostFunction = (args: Record<string, unknown>, call: FunctionCallInfo) => unknown | Promise<unknown>\n\nexport interface HostPolicy {\n /** The declarative gate; `ask` decisions go to onFunctionCall. */\n functions?: FunctionPolicy\n /** The consent hook: true runs the call. Unset = `ask` is denied. */\n onFunctionCall?: (call: FunctionCallInfo) => boolean | Promise<boolean>\n urls?: UrlPolicy\n /** Opens an allowed url (default: `window.open(url, \"_blank\")`). */\n openUrl?: (url: string) => void\n media?: MediaOptions\n}\n\nexport interface HostOptions {\n transport?: Transport\n functions?: Record<string, HostFunction>\n sources?: SourceResolvers\n extensions?: readonly ExtensionDef[]\n packages?: readonly AppPackage[]\n policy?: HostPolicy\n /** Every client message that leaves (after the transport got it). */\n onSend?: (message: ClientMessage) => void\n /** Ops the host performs (tests, logging). */\n onOp?: (op: HostOp) => void\n /** Every problem the host meets (a package that failed validation, an\n * error it answered a message with, an invalid surface theme). A\n * transport-less host has no server to tell: this is where they land. */\n onIssue?: (issue: HostIssue) => void\n}\n\n/** One problem the host met; `host.issues` keeps the latest ones. */\nexport interface HostIssue {\n /** A host error code (`TEMPLATE_NOT_FOUND`…) or `PACKAGE_INVALID`. */\n code: string\n message: string\n surfaceId?: string\n /** A JSON pointer (into the package or the message). */\n path?: string\n packageId?: string\n}\n\n/** A package passed in `HostOptions.packages` that failed validation. */\nexport class PackageError extends Error {\n constructor(\n readonly packageId: string,\n readonly issues: PackageIssue[]\n ) {\n super(`exponential-ui: package ${packageId} is unusable: ${issues.map((i) => `${i.path || `/`} ${i.message}`).join(`; `)}`)\n this.name = `PackageError`\n }\n}\n\nconst MAX_ISSUES = 100\n\n/** A `createSurface.theme` (a built-in id or a theme JSON) → the resolved\n * theme, or why it is unusable. */\nexport function resolveSurfaceTheme(input: unknown): { theme: ResolvedTheme | null; issues: string[] } {\n if (typeof input === `string`) {\n if (!BUILTIN_THEME_IDS.includes(input)) return { theme: null, issues: [`unknown built-in theme \"${input}\"; known: ${BUILTIN_THEME_IDS.join(`|`)}`] }\n return { theme: builtinTheme(input), issues: [] }\n }\n const { theme, issues } = tryLoadTheme(input, { themes: BUILTIN_THEMES })\n return { theme, issues: issues.map((i) => (i.path ? `${i.path}: ${i.message}` : i.message)) }\n}\n\nexport interface FunctionOutcome {\n decision: FunctionDecision\n result?: unknown\n error?: string\n}\n\ntype Listener = () => void\n\n/** One surface's state: the flat components, the data model, the reduced\n * tree. Mutations notify subscribers; `root` is reduced lazily. */\nexport class SurfaceStore {\n readonly surfaceId: string\n catalogId: string\n packageId?: string\n sendDataModel = false\n /** The flat components, mutated in place while nothing holds them. */\n private list: FlatComponent[] = []\n /** `list` was handed out (`components`): the next update copies first. */\n private shared = false\n private positions = new Map<string, number>()\n data: Record<string, unknown> = {}\n /** The server's `createSurface.theme`, resolved (undefined = the\n * renderer's own theme). */\n theme?: ResolvedTheme\n private reduced: { root: UiNode | null; issues: ReduceIssue[]; templates?: Record<string, UiNode> } | null = null\n private listeners = new Set<Listener>()\n version = 0\n\n constructor(surfaceId: string, catalogId: string, private extensions: () => readonly ExtensionDef[]) {\n this.surfaceId = surfaceId\n this.catalogId = catalogId\n }\n\n /** The flat components as a SNAPSHOT: an array handed out here is never\n * mutated afterwards (the next update copies first), so a renderer that\n * keeps it sees a stable value; a stream nobody reads stays linear. */\n get components(): readonly FlatComponent[] {\n this.shared = true\n return this.list\n }\n\n /** The flat component with this id (undefined = none). */\n component(id: string): FlatComponent | undefined {\n const at = this.positions.get(id)\n return at === undefined ? undefined : this.list[at]\n }\n\n get root(): UiNode | null {\n return this.reduce().root\n }\n\n get issues(): ReduceIssue[] {\n return this.reduce().issues\n }\n\n /** Round 2 §4: the reducer's lifted data templates (absent without any). */\n get templates(): Record<string, UiNode> | undefined {\n return this.reduce().templates\n }\n\n private reduce() {\n if (!this.reduced)\n this.reduced = this.list.length ? reduceSurface(this.list, { catalogId: this.catalogId, extensions: this.extensions() }) : { root: null, issues: [] }\n return this.reduced\n }\n\n /** A2UI: a later update replaces components BY ID and keeps the rest\n * (an id → position map: a streamed surface costs linear, VAPP-103). */\n setComponents(components: readonly FlatComponent[]): void {\n if (this.shared) {\n this.list = this.list.slice()\n this.shared = false\n }\n for (const c of components) {\n const at = this.positions.get(c.id)\n if (at === undefined) {\n this.positions.set(c.id, this.list.length)\n this.list.push(c)\n } else this.list[at] = c\n }\n this.reduced = null\n this.notify()\n }\n\n /** Re-reduce on the next read (the extension set changed). */\n invalidate(): void {\n this.reduced = null\n this.notify()\n }\n\n /** Write the data model at `pointer` (`undefined` removes); a refused\n * write (writePointer) changes nothing and returns the reason. */\n setData(pointer: string, value: unknown): string | undefined {\n const written = writePointer(this.data, pointer, value)\n if (written.error) return written.error\n this.data = written.data as Record<string, unknown>\n this.notify()\n return undefined\n }\n\n subscribe(listener: Listener): () => void {\n this.listeners.add(listener)\n return () => this.listeners.delete(listener)\n }\n\n notify(): void {\n this.version += 1\n for (const l of [...this.listeners]) l()\n }\n}\n\nexport class ExponentialHost {\n readonly router: HostRouter\n private stores = new Map<string, SurfaceStore>()\n /** Per surface, one entry per bound path (VAPP-122: a re-bind of a path\n * cancels the earlier subscription at that path). */\n private subscriptions = new Map<string, { path: string; cancel: () => void }[]>()\n /** Per surface: the FLAT component owning a failed node → that\n * component as it was when it failed + the node ids already reported. */\n private paintErrors = new Map<string, Map<string, { component: FlatComponent | undefined; ids: Set<string> }>>()\n private listeners = new Set<Listener>()\n private functions: Record<string, HostFunction>\n private sources: SourceResolvers\n private extensions: ExtensionDef[]\n status: TransportStatus = `closed`\n statusDetail?: string\n /** The last UNSUPPORTED_CATALOG id seen (the catalog-update banner). */\n unsupportedCatalog?: string\n /** The latest problems (newest last, capped); a new array per change. */\n issues: readonly HostIssue[] = []\n\n constructor(private options: HostOptions = {}) {\n this.extensions = [...(options.extensions ?? [])]\n this.router = new HostRouter({ extensionIds: this.extensions.map((e) => e.id), extensions: availableExtensions(this.extensions) })\n this.functions = { ...(options.functions ?? {}) }\n this.sources = { ...(options.sources ?? {}) }\n for (const pkg of options.packages ?? []) {\n const issues = this.installPackage(pkg)\n if (issues.length) throw new PackageError(typeof pkg?.id === `string` && pkg.id ? pkg.id : `?`, issues)\n }\n }\n\n /** False for a local-only host (packages, in-memory feeds): no\n * `host_offline` state to show. */\n get hasTransport(): boolean {\n return this.options.transport !== undefined\n }\n\n // --- negotiation + registration ----------------------------------------\n\n get supportedCatalogIds(): string[] {\n return this.router.supportedCatalogIds\n }\n\n clientCapabilities() {\n return clientCapabilities(this.extensions.map((e) => e.id))\n }\n\n get extensionDefs(): readonly ExtensionDef[] {\n return this.extensions\n }\n\n registerExtension(ext: ExtensionDef): void {\n if (this.extensions.some((e) => e.id === ext.id)) return\n this.extensions.push(ext)\n this.router.registerExtension(ext.id, availableExtensions([ext])[0])\n for (const store of this.stores.values()) store.invalidate()\n }\n\n registerFunction(name: string, fn: HostFunction): void {\n this.functions[name] = fn\n }\n\n registerSource(scheme: string, resolver: SourceResolvers[string]): void {\n this.sources[scheme.toLowerCase()] = resolver\n }\n\n /** Install a package; its validation issues are returned AND reported\n * (`issues`, `onIssue`). A package with issues is not installed. */\n installPackage(pkg: AppPackage): PackageIssue[] {\n const issues = this.router.installPackage(pkg)\n const packageId = typeof pkg?.id === `string` ? pkg.id : undefined\n for (const i of issues) this.report({ code: `PACKAGE_INVALID`, message: i.message, path: i.path, ...(packageId ? { packageId } : {}) })\n return issues\n }\n\n private report(issue: HostIssue): void {\n const next = [...this.issues, issue]\n this.issues = next.length > MAX_ISSUES ? next.slice(next.length - MAX_ISSUES) : next\n this.options.onIssue?.(issue)\n this.notify()\n }\n\n // --- surfaces -----------------------------------------------------------\n\n surface(id: string): SurfaceStore | undefined {\n return this.stores.get(id)\n }\n\n surfaceIds(): string[] {\n return [...this.stores.keys()]\n }\n\n subscribe(listener: Listener): () => void {\n this.listeners.add(listener)\n return () => this.listeners.delete(listener)\n }\n\n private notify(): void {\n for (const l of [...this.listeners]) l()\n }\n\n // --- transport ----------------------------------------------------------\n\n connect(): void {\n const t = this.options.transport\n if (!t) return\n t.start(\n (m) => this.receive(m),\n (status, detail) => {\n this.status = status\n this.statusDetail = detail\n this.notify()\n }\n )\n }\n\n close(): void {\n this.options.transport?.close()\n for (const id of this.surfaceIds()) this.perform({ op: `delete`, surfaceId: id })\n }\n\n /** One server message (a transport calls this; tests and in-memory hosts\n * may call it directly). */\n receive(message: unknown): HostOp[] {\n const ops = this.router.route(message)\n for (const op of ops) this.perform(op)\n return ops\n }\n\n send(message: ClientMessage): void {\n void this.options.transport?.send(message)\n this.options.onSend?.(message)\n if (`error` in message) {\n const e = message.error\n this.report({ code: e.code, message: e.message, ...(e.surfaceId ? { surfaceId: e.surfaceId } : {}), ...(e.path !== undefined ? { path: e.path } : {}) })\n }\n }\n\n private perform(op: HostOp): void {\n this.options.onOp?.(op)\n switch (op.op) {\n case `create`: {\n this.unbind(op.surfaceId)\n this.forgetPaintErrors(op.surfaceId)\n const store = new SurfaceStore(op.surfaceId, op.catalogId, () => this.extensions)\n store.sendDataModel = op.sendDataModel === true\n store.packageId = this.router.surface(op.surfaceId)?.packageId\n if (op.theme !== undefined && op.theme !== null) {\n const { theme, issues } = resolveSurfaceTheme(op.theme)\n if (theme) store.theme = theme\n else this.send(errorMessage(`VALIDATION_FAILED`, op.surfaceId, `createSurface.theme is unusable: ${issues.join(`; `)}`, `/createSurface/theme`))\n }\n this.stores.set(op.surfaceId, store)\n this.notify()\n return\n }\n case `components`: {\n // An updated component's failures are forgotten (its props\n // changed: it may paint now, or fail anew); the rest stay reported.\n const failed = this.paintErrors.get(op.surfaceId)\n if (failed) for (const c of op.components) failed.delete(c.id)\n this.stores.get(op.surfaceId)?.setComponents(op.components)\n return\n }\n case `data`: {\n const error = this.stores.get(op.surfaceId)?.setData(op.path, op.value)\n if (error) this.send(errorMessage(`VALIDATION_FAILED`, op.surfaceId, error, op.path || `/`))\n return\n }\n case `bind`: {\n const store = this.stores.get(op.surfaceId)\n const source = parseSource(op.source)\n const resolver = source ? this.sources[source.scheme] : undefined\n if (!store || !source) return\n if (!resolver) {\n this.send(errorMessage(`VALIDATION_FAILED`, op.surfaceId, `no resolver for the source scheme ${source.scheme}`, op.path || `/`))\n return\n }\n const earlier = this.subscriptions.get(op.surfaceId) ?? []\n for (const sub of earlier) if (sub.path === op.path) sub.cancel()\n const kept = earlier.filter((sub) => sub.path !== op.path)\n const cancel = resolver(source, (value) => this.stores.get(op.surfaceId)?.setData(op.path, value))\n this.subscriptions.set(op.surfaceId, cancel ? [...kept, { path: op.path, cancel }] : kept)\n return\n }\n case `delete`:\n this.unbind(op.surfaceId)\n this.forgetPaintErrors(op.surfaceId)\n this.stores.delete(op.surfaceId)\n this.notify()\n return\n case `send`: {\n const err = `error` in op.message ? op.message.error : undefined\n if (err?.code === `UNSUPPORTED_CATALOG`) {\n this.unsupportedCatalog = err.message.replace(/^catalog (\\S+).*$/, `$1`)\n this.notify()\n }\n this.send(op.message)\n return\n }\n }\n }\n\n private unbind(surfaceId: string): void {\n for (const sub of this.subscriptions.get(surfaceId) ?? []) sub.cancel()\n this.subscriptions.delete(surfaceId)\n }\n\n // --- interactions out ---------------------------------------------------\n\n /** A component's server event: the A2UI client action message. */\n action(event: { surfaceId: string; componentId: string; name: string; context?: Record<string, unknown>; payload?: Record<string, unknown>; timestamp?: string }): ClientMessage {\n const message = actionMessage({\n name: event.name,\n surfaceId: event.surfaceId,\n sourceComponentId: event.componentId,\n timestamp: event.timestamp ?? new Date().toISOString(),\n context: event.context ?? {},\n payload: event.payload,\n })\n this.send(message)\n return message\n }\n\n /** The policy decision for a call, before any consent hook. */\n decide(surfaceId: string, name: string): FunctionDecision {\n // Own names only: `constructor` is not a registered function (VAPP-107).\n const registered = Object.prototype.hasOwnProperty.call(this.functions, name)\n let decision = decideFunction(this.options.policy?.functions, name, registered)\n const pkgId = this.stores.get(surfaceId)?.packageId\n const pkg = pkgId ? this.router.package(pkgId) : undefined\n if (pkg) decision = combineDecisions(decision, decideFunction(packagePolicy(pkg.functions), name, registered))\n return decision\n }\n\n /** An action `functionCall` to a host function: gate, consent, run. A\n * built-in other than openUrl and bind has no effect as an action. */\n async callFunction(call: FunctionCallInfo): Promise<FunctionOutcome> {\n if (call.name === `openUrl`) {\n const url = typeof call.args.url === `string` ? call.args.url : ``\n return { decision: this.openUrl(url) ? `allow` : `deny` }\n }\n if (call.name === `bind`) return { decision: this.bind(call.surfaceId, call.args) ? `allow` : `deny` }\n let decision = this.decide(call.surfaceId, call.name)\n if (decision === `not_found`) {\n this.send(errorMessage(`FUNCTION_NOT_FOUND`, call.surfaceId, `no function ${call.name}`))\n return { decision }\n }\n let consentError: string | undefined\n if (decision === `ask`) {\n // A throwing/rejecting consent hook is a deny, never a rejected call\n // (the painter's pending control must settle).\n let ok = false\n try {\n ok = (await this.options.policy?.onFunctionCall?.(call)) === true\n } catch (e) {\n consentError = e instanceof Error ? e.message : String(e)\n }\n if (!ok) decision = `deny`\n }\n if (decision === `deny`) {\n this.send(errorMessage(`FUNCTION_DENIED`, call.surfaceId, consentError === undefined ? `${call.name} was not allowed` : `${call.name} was not allowed: the consent hook failed: ${consentError}`))\n return consentError === undefined ? { decision } : { decision, error: consentError }\n }\n const fn = Object.prototype.hasOwnProperty.call(this.functions, call.name) ? this.functions[call.name] : undefined\n if (!fn) return { decision: `allow` }\n try {\n return { decision: `allow`, result: await fn(call.args, call) }\n } catch (e) {\n return { decision: `allow`, error: e instanceof Error ? e.message : String(e) }\n }\n }\n\n /** VAPP-122: the `bind` action: re-follow `path` from `source` with\n * `params` appended (`sourceWithParams`), through the router like a\n * server's bindDataModel (the surface's package allowlist applies; a\n * refusal is the usual SOURCE_DENIED / VALIDATION_FAILED error). True\n * when the bind op ran. */\n bind(surfaceId: string, args: Record<string, unknown>): boolean {\n const path = typeof args.path === `string` ? args.path : ``\n const source = typeof args.source === `string` ? args.source : ``\n if (!source || !this.stores.has(surfaceId)) return false\n const params = args.params && typeof args.params === `object` && !Array.isArray(args.params) ? (args.params as Record<string, unknown>) : undefined\n const ops = this.receive({ version: A2UI_VERSION, bindDataModel: { surfaceId, path, source: sourceWithParams(source, params) } })\n return ops.some((op) => op.op === `bind`)\n }\n\n /** The URL policy every href passes (relative urls against the urls' or\n * the media `baseUrl`). */\n urlPolicy(): UrlPolicy {\n return { baseUrl: this.options.policy?.media?.baseUrl, ...this.options.policy?.urls }\n }\n\n /** openUrl / Link through the URL policy. True when it opened. */\n openUrl(url: string): boolean {\n const d = decideUrl(this.urlPolicy(), url)\n if (!d.allowed || !d.url) return false\n const open = this.options.policy?.openUrl ?? ((u: string) => globalThis.window?.open(u, `_blank`, `noopener`))\n open(d.url)\n return true\n }\n\n /** A renderer's painter for `componentId` failed. Reported ONCE per\n * surface + component id (whatever the message) as an A2UI\n * `RENDER_FAILED` error (and so a host issue), and not again until that\n * component's props change (an `updateComponents` naming it, or the\n * surface re-created). A part or template-instance id counts under the\n * flat component it belongs to (`card.body` → `card`), so the record is\n * bounded by the surface's components. */\n paintError(error: { surfaceId: string; componentId: string; message: string }): void {\n const store = this.stores.get(error.surfaceId)\n let owner = error.componentId\n while (store && !store.component(owner) && owner.includes(`.`)) owner = owner.slice(0, owner.lastIndexOf(`.`))\n const current = store?.component(owner)\n let failed = this.paintErrors.get(error.surfaceId)\n if (!failed) this.paintErrors.set(error.surfaceId, (failed = new Map()))\n let entry = failed.get(owner)\n if (!entry || entry.component !== current) failed.set(owner, (entry = { component: current, ids: new Set() }))\n if (entry.ids.has(error.componentId)) return\n entry.ids.add(error.componentId)\n this.send(errorMessage(RENDER_FAILED, error.surfaceId, error.message, `/components/${error.componentId}`))\n }\n\n private forgetPaintErrors(surfaceId: string): void {\n this.paintErrors.delete(surfaceId)\n }\n\n /** The media policy every src passes (`policy.media`). */\n mediaOptions(): MediaOptions | undefined {\n return this.options.policy?.media\n }\n\n /** The image loader's request (absolute url + auth headers). */\n mediaRequest(url: string): MediaRequest | null {\n return mediaRequest(url, this.options.policy?.media)\n }\n}\n",
|
|
27
27
|
"// VAPP-91: the transport adapters the TS SDK ships. Each speaks A2UI\n// messages in and client messages out through the shared decoders; none\n// knows anything about the host behind it. Web platform APIs only (fetch,\n// WebSocket, TextDecoder): browsers, Bun, Node ≥ 22.\n\nimport type { ClientMessage } from \"./contract\"\nimport { JsonlDecoder, SseDecoder, decodeJsonl, mcpActionCall, messagesFromMcpResult } from \"./decoders\"\nimport type { Decoded } from \"./decoders\"\nimport type { Transport, TransportStatus } from \"./runtime\"\n\ntype Receive = (message: unknown) => void\ntype Status = (status: TransportStatus, detail?: string) => void\n\n/** In-memory: `feed` messages in, read what the host sent from `sent`. */\nexport class MemoryTransport implements Transport {\n readonly sent: ClientMessage[] = []\n private receiveFn?: Receive\n private pending: unknown[] = []\n onSend?: (message: ClientMessage) => void\n\n start(receive: Receive, status: Status): void {\n this.receiveFn = receive\n status(`open`)\n const queued = this.pending\n this.pending = []\n queued.forEach(receive)\n }\n\n feed(...messages: unknown[]): void {\n if (!this.receiveFn) this.pending.push(...messages)\n else messages.forEach(this.receiveFn)\n }\n\n /** JSONL text, as a stream server would send it. */\n feedJsonl(text: string): void {\n this.feed(...decodeJsonl(text).messages)\n }\n\n send(message: ClientMessage): void {\n this.sent.push(message)\n this.onSend?.(message)\n }\n\n close(): void {\n this.receiveFn = undefined\n }\n}\n\nexport interface HttpTransportOptions {\n /** The stream to read (GET). */\n url: string\n /** Where client messages go (POST, JSON body); default `url`. */\n postUrl?: string\n headers?: Record<string, string>\n /** Reconnect after a drop (an error or an aborted stream), ms (0 =\n * never). Default 2000. */\n reconnectMs?: number\n /** Reconnect after a CLEAN end of the stream too (the server resumes it).\n * Default false: a stream that ends is done (status `closed`). An SSE\n * stream that sent a `retry:` field signals this itself. */\n resumable?: boolean\n fetch?: typeof fetch\n}\n\nabstract class StreamTransport implements Transport {\n private controller?: AbortController\n /** Bumped by every start/close: a loop whose generation is stale exits\n * (an old loop asleep in its reconnect wait never runs beside a new\n * one). */\n private generation = 0\n\n constructor(protected options: HttpTransportOptions) {}\n\n protected abstract decoder(): { push(chunk: string): Decoded; end(): Decoded; retryMs?: number }\n protected abstract accept(): string\n\n start(receive: Receive, status: Status): void {\n this.controller?.abort()\n const gen = ++this.generation\n void this.run(gen, receive, status)\n }\n\n private async run(gen: number, receive: Receive, status: Status): Promise<void> {\n const f = this.options.fetch ?? fetch\n const live = () => gen === this.generation\n while (live()) {\n const controller = new AbortController()\n this.controller = controller\n status(`connecting`)\n let wait = this.options.reconnectMs ?? 2000\n try {\n const res = await f(this.options.url, { headers: { accept: this.accept(), ...this.options.headers }, signal: controller.signal })\n if (!live()) return\n if (!res.ok || !res.body) throw new Error(`HTTP ${res.status}`)\n status(`open`)\n const reader = res.body.getReader()\n const text = new TextDecoder()\n const dec = this.decoder()\n for (;;) {\n const { done, value } = await reader.read()\n if (!live()) return\n if (done) break\n dec.push(text.decode(value, { stream: true })).messages.forEach(receive)\n }\n dec.end().messages.forEach(receive)\n status(`closed`)\n // A clean end: done, unless the server said it resumes the stream.\n const resumable = this.options.resumable === true || dec.retryMs !== undefined\n if (!resumable) {\n if (live()) this.generation += 1\n return\n }\n if (dec.retryMs !== undefined && this.options.reconnectMs === undefined) wait = dec.retryMs\n } catch (e) {\n if (!live()) return\n status(`error`, e instanceof Error ? e.message : String(e))\n }\n if (!wait || !live()) return\n await new Promise((r) => setTimeout(r, wait))\n }\n }\n\n async send(message: ClientMessage): Promise<void> {\n const f = this.options.fetch ?? fetch\n await f(this.options.postUrl ?? this.options.url, { method: `POST`, headers: { \"content-type\": `application/json`, ...this.options.headers }, body: JSON.stringify(message) })\n }\n\n close(): void {\n this.generation += 1\n this.controller?.abort()\n }\n}\n\n/** A2UI JSONL over a streamed HTTP response (`application/jsonl`). */\nexport class JsonlStreamTransport extends StreamTransport {\n protected decoder() {\n return new JsonlDecoder()\n }\n protected accept() {\n return `application/jsonl, application/x-ndjson`\n }\n}\n\n/** Server-Sent Events read through fetch (headers allowed, unlike\n * EventSource). */\nexport class SseTransport extends StreamTransport {\n protected decoder() {\n return new SseDecoder()\n }\n protected accept() {\n return `text/event-stream`\n }\n}\n\n/** One A2UI message (or JSONL) per frame; client messages go back as\n * frames. */\nexport class WebSocketTransport implements Transport {\n private socket?: WebSocket\n /** Bumped by every start/close: a stale socket's reconnect timer is a\n * no-op. */\n private generation = 0\n\n constructor(private options: { url: string; protocols?: string | string[]; reconnectMs?: number; WebSocket?: typeof WebSocket }) {}\n\n start(receive: Receive, status: Status): void {\n const gen = ++this.generation\n const live = () => gen === this.generation\n const WS = this.options.WebSocket ?? WebSocket\n status(`connecting`)\n const socket = new WS(this.options.url, this.options.protocols)\n this.socket = socket\n socket.onopen = () => live() && status(`open`)\n socket.onmessage = (ev) => {\n if (live() && typeof ev.data === `string`) decodeJsonl(ev.data).messages.forEach(receive)\n }\n socket.onerror = () => live() && status(`error`, `websocket error`)\n socket.onclose = () => {\n if (!live()) return\n status(`closed`)\n const wait = this.options.reconnectMs ?? 2000\n if (wait) setTimeout(() => live() && this.start(receive, status), wait)\n }\n }\n\n send(message: ClientMessage): void {\n if (this.socket?.readyState === 1) this.socket.send(JSON.stringify(message))\n }\n\n close(): void {\n this.generation += 1\n this.socket?.close()\n }\n}\n\nexport interface McpTransportOptions {\n /** The MCP server's streamable-HTTP endpoint. */\n url: string\n /** The tool whose result carries the surface (called once at start). */\n tool: string\n arguments?: Record<string, unknown>\n /** The tool client messages go to; default `a2ui_event`. */\n actionTool?: string\n headers?: Record<string, string>\n fetch?: typeof fetch\n}\n\n/** A2UI over MCP: calls `tool`, delivers the A2UI resources in its result,\n * and sends every client message as a tools/call to `actionTool` (its\n * result may carry more messages). JSON-RPC over plain POST; an SSE\n * response body is read through the SSE decoder. */\nexport class McpTransport implements Transport {\n private id = 0\n private receiveFn?: Receive\n private session?: string\n\n constructor(private options: McpTransportOptions) {}\n\n start(receive: Receive, status: Status): void {\n this.receiveFn = receive\n status(`connecting`)\n void (async () => {\n try {\n await this.rpc(`initialize`, { protocolVersion: `2025-06-18`, capabilities: {}, clientInfo: { name: `exponential-ui`, version: `0.1.0` } })\n const result = await this.rpc(`tools/call`, { name: this.options.tool, arguments: this.options.arguments ?? {} })\n status(`open`)\n messagesFromMcpResult(result).messages.forEach(receive)\n } catch (e) {\n status(`error`, e instanceof Error ? e.message : String(e))\n }\n })()\n }\n\n async send(message: ClientMessage): Promise<void> {\n const call = mcpActionCall(message, this.options.actionTool)\n const result = await this.rpc(call.method, call.params)\n if (this.receiveFn) messagesFromMcpResult(result).messages.forEach(this.receiveFn)\n }\n\n close(): void {\n this.receiveFn = undefined\n }\n\n private async rpc(method: string, params: unknown): Promise<unknown> {\n const f = this.options.fetch ?? fetch\n const id = ++this.id\n const res = await f(this.options.url, {\n method: `POST`,\n headers: { \"content-type\": `application/json`, accept: `application/json, text/event-stream`, ...(this.session ? { \"mcp-session-id\": this.session } : {}), ...this.options.headers },\n body: JSON.stringify({ jsonrpc: `2.0`, id, method, params }),\n })\n const session = res.headers.get(`mcp-session-id`)\n if (session) this.session = session\n if (!res.ok) throw new Error(`MCP HTTP ${res.status}`)\n const type = res.headers.get(`content-type`) ?? ``\n const body = await res.text()\n const replies = type.includes(`text/event-stream`) ? (() => {\n const d = new SseDecoder()\n return [...d.push(body).messages, ...d.end().messages]\n })() : [JSON.parse(body)]\n const reply = replies.find((r) => (r as { id?: number })?.id === id) as { result?: unknown; error?: { message?: string } } | undefined\n if (!reply) throw new Error(`MCP: no reply to ${method}`)\n if (reply.error) throw new Error(`MCP: ${reply.error.message ?? `error`}`)\n return reply.result\n }\n}\n"
|
|
28
28
|
],
|
|
29
|
-
"mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAMO,IAAM,cAAa;AACnB,IAAM,mBAAkB;AACxB,IAAM,oBAAmB;AACzB,IAAM,iBAAgB;AACtB,IAAM,mBAAkB;AACxB,IAAM,0BAAyB;AAG/B,IAAM,mBAAkB,CAAC,OAAM,SAAQ,QAAO,QAAO,aAAY,QAAO,aAAY,cAAa,WAAU,aAAY,UAAS,QAAO,WAAU,WAAU,SAAQ,QAAO,WAAU,YAAW,aAAY,OAAM,SAAQ,SAAQ,QAAO,SAAQ,eAAc,UAAS,UAAS,YAAW,UAAS,QAAO,aAAY,aAAY,eAAc,SAAQ,aAAY,QAAO,cAAa,cAAa,WAAU,WAAU,UAAS,UAAS,YAAW,eAAc,WAAU,WAAU,QAAO,SAAQ,SAAQ,SAAQ,QAAO,cAAa,YAAW,SAAQ,QAAO,WAAU,YAAW,aAAY,eAAc,SAAQ,SAAQ,aAAY,YAAW,UAAS,QAAO,UAAS,QAAO,cAAa,eAAc,SAAQ,YAAW,eAAc,YAAW,SAAQ,eAAc,UAAS,UAAS,UAAS,UAAS,cAAa,aAAY,cAAa,mBAAkB,cAAa,cAAa,aAAY,YAAW,OAAM,iBAAgB,cAAa,SAAS;AAEl7B,IAAM,qBAAoB,CAAC,OAAM,QAAO,aAAY,QAAO,YAAW,aAAY,SAAQ,QAAO,SAAQ,eAAc,UAAS,UAAS,YAAW,QAAO,aAAY,aAAY,UAAS,UAAS,WAAU,WAAU,QAAO,SAAQ,QAAO,WAAU,YAAW,aAAY,SAAQ,SAAQ,UAAS,QAAO,UAAS,QAAO,SAAQ,YAAW,eAAc,YAAW,SAAQ,eAAc,UAAS,UAAS,UAAS,cAAa,aAAY,cAAa,mBAAkB,cAAa,cAAa,aAAY,YAAW,cAAa,SAAS;AAC5hB,IAAM,oBAAmB,CAAC,SAAQ,QAAO,QAAO,aAAY,cAAa,WAAU,aAAY,UAAS,QAAO,WAAU,WAAU,SAAQ,WAAU,OAAM,SAAQ,UAAS,eAAc,SAAQ,aAAY,QAAO,cAAa,cAAa,WAAU,WAAU,YAAW,eAAc,SAAQ,SAAQ,QAAO,cAAa,YAAW,SAAQ,eAAc,aAAY,YAAW,cAAa,eAAc,UAAS,OAAM,eAAe;AAEjb,IAAM,mBAAkB,CAAC,OAAM,SAAQ,QAAO,QAAO,aAAY,QAAO,aAAY,cAAa,WAAU,aAAY,UAAS,QAAO,WAAU,WAAU,SAAQ,QAAO,WAAU,YAAW,aAAY,OAAM,SAAQ,QAAO,UAAS,QAAO,aAAY,eAAc,SAAQ,aAAY,QAAO,cAAa,WAAU,WAAU,SAAQ,SAAQ,QAAO,cAAa,YAAW,SAAQ,QAAO,YAAW,YAAW,UAAS,QAAO,QAAO,cAAa,eAAc,SAAQ,YAAW,eAAc,YAAW,UAAS,UAAS,UAAS,cAAa,aAAY,cAAa,mBAAkB,cAAa,cAAa,YAAW,OAAM,eAAe;AACroB,IAAM,oBAAkD,EAAC,KAAM,UAAS,OAAQ,UAAS,MAAO,UAAS,MAAO,UAAS,WAAY,UAAS,MAAO,UAAS,WAAY,UAAS,YAAa,UAAS,SAAU,UAAS,WAAY,UAAS,QAAS,UAAS,MAAO,UAAS,SAAU,UAAS,SAAU,QAAO,OAAQ,QAAO,MAAO,QAAO,SAAU,QAAO,UAAW,QAAO,WAAY,QAAO,KAAM,QAAO,OAAQ,QAAO,OAAQ,SAAQ,MAAO,SAAQ,OAAQ,SAAQ,aAAc,SAAQ,QAAS,SAAQ,QAAS,SAAQ,UAAW,SAAQ,QAAS,SAAQ,MAAO,cAAa,WAAY,cAAa,WAAY,cAAa,aAAc,cAAa,OAAQ,QAAO,WAAY,QAAO,MAAO,QAAO,YAAa,cAAa,YAAa,cAAa,SAAU,cAAa,SAAU,cAAa,QAAS,WAAU,QAAS,WAAU,UAAW,WAAU,aAAc,WAAU,SAAU,WAAU,SAAU,WAAU,MAAO,WAAU,OAAQ,WAAU,OAAQ,YAAW,OAAQ,YAAW,MAAO,YAAW,YAAa,YAAW,UAAW,YAAW,OAAQ,YAAW,MAAO,YAAW,SAAU,YAAW,UAAW,YAAW,WAAY,YAAW,aAAc,SAAQ,OAAQ,QAAO,OAAQ,QAAO,WAAY,QAAO,UAAW,QAAO,QAAS,UAAS,MAAO,UAAS,QAAS,UAAS,MAAO,SAAQ,YAAa,SAAQ,aAAc,SAAQ,OAAQ,SAAQ,UAAW,SAAQ,aAAc,SAAQ,UAAW,SAAQ,OAAQ,SAAQ,aAAc,SAAQ,QAAS,SAAQ,QAAS,SAAQ,QAAS,SAAQ,QAAS,SAAQ,YAAa,SAAQ,WAAY,SAAQ,YAAa,SAAQ,iBAAkB,SAAQ,YAAa,SAAQ,YAAa,SAAQ,WAAY,SAAQ,UAAW,SAAQ,KAAM,QAAO,eAAgB,QAAO,YAAa,QAAO,SAAU,WAAU;AAEjwD,IAAM,gBAA8C,EAAC,KAAM,sBAAqB,OAAQ,wBAAuB,MAAO,uBAAsB,MAAO,uBAAsB,WAAY,4BAA2B,MAAO,uBAAsB,WAAY,4BAA2B,YAAa,8BAA6B,SAAU,0BAAyB,WAAY,6BAA4B,QAAS,0BAAyB,MAAO,uBAAsB,SAAU,0BAAyB,SAAU,0BAAyB,OAAQ,wBAAuB,MAAO,uBAAsB,SAAU,0BAAyB,UAAW,2BAA0B,WAAY,6BAA4B,KAAM,sBAAqB,OAAQ,wBAAuB,OAAQ,wBAAuB,MAAO,uBAAsB,OAAQ,wBAAuB,aAAc,+BAA8B,QAAS,yBAAwB,QAAS,0BAAyB,UAAW,2BAA0B,QAAS,yBAAwB,MAAO,uBAAsB,WAAY,4BAA2B,WAAY,4BAA2B,aAAc,8BAA6B,OAAQ,wBAAuB,WAAY,6BAA4B,MAAO,uBAAsB,YAAa,6BAA4B,YAAa,6BAA4B,SAAU,0BAAyB,SAAU,0BAAyB,QAAS,yBAAwB,QAAS,yBAAwB,UAAW,4BAA2B,aAAc,+BAA8B,SAAU,0BAAyB,SAAU,0BAAyB,MAAO,uBAAsB,OAAQ,wBAAuB,OAAQ,wBAAuB,OAAQ,wBAAuB,MAAO,uBAAsB,YAAa,8BAA6B,UAAW,2BAA0B,OAAQ,wBAAuB,MAAO,uBAAsB,SAAU,0BAAyB,UAAW,2BAA0B,WAAY,6BAA4B,aAAc,+BAA8B,OAAQ,wBAAuB,OAAQ,wBAAuB,WAAY,4BAA2B,UAAW,4BAA2B,QAAS,yBAAwB,MAAO,uBAAsB,QAAS,yBAAwB,MAAO,uBAAsB,YAAa,8BAA6B,aAAc,+BAA8B,OAAQ,wBAAuB,UAAW,2BAA0B,aAAc,+BAA8B,UAAW,2BAA0B,OAAQ,wBAAuB,aAAc,+BAA8B,QAAS,yBAAwB,QAAS,yBAAwB,QAAS,yBAAwB,QAAS,yBAAwB,YAAa,8BAA6B,WAAY,6BAA4B,YAAa,8BAA6B,iBAAkB,oCAAmC,YAAa,8BAA6B,YAAa,8BAA6B,WAAY,6BAA4B,UAAW,2BAA0B,KAAM,sBAAqB,eAAgB,iCAAgC,YAAa,8BAA6B,SAAU,yBAAwB;AAExtG,IAAM,SAAQ;AAAA,EACnB,SAAS,CAAC,WAAU,aAAY,WAAU,SAAQ,eAAc,MAAM;AAAA,EACtE,MAAM,CAAC,MAAK,WAAU,MAAK,MAAM;AAAA,EACjC,MAAM,CAAC,WAAU,WAAU,WAAU,WAAU,UAAS,MAAM;AAAA,EAC9D,KAAK,CAAC,QAAO,MAAK,MAAK,MAAK,MAAK,IAAI;AAAA,EACrC,OAAO,CAAC,SAAQ,UAAS,OAAM,SAAS;AAAA,EACxC,SAAS,CAAC,SAAQ,UAAS,OAAM,WAAU,UAAS,QAAQ;AAAA,EAC5D,aAAa,CAAC,QAAO,WAAU,SAAQ,QAAO,QAAO,SAAQ,OAAO;AAAA,EACpE,cAAc,CAAC,MAAK,MAAK,MAAK,IAAI;AAAA,EAClC,UAAU,CAAC,WAAU,SAAQ,QAAO,QAAO,WAAW;AAAA,EACtD,aAAa,CAAC,cAAa,UAAU;AAAA,EACrC,MAAM,CAAC,OAAM,SAAQ,UAAS,MAAM;AAAA,EACpC,WAAW,CAAC,QAAO,SAAQ,YAAW,UAAS,UAAS,OAAM,KAAK;AAAA,EACnE,YAAY,CAAC,UAAS,QAAO,QAAQ;AAAA,EACrC,WAAW,CAAC,QAAO,WAAU,WAAU,OAAO;AAAA,EAC9C,aAAa,CAAC,MAAK,WAAU,IAAI;AAAA,EACjC,aAAa,CAAC,MAAK,MAAK,WAAU,IAAI;AAAA,EACtC,aAAa,CAAC,QAAO,SAAQ,QAAQ;AAAA,EACrC,WAAW,CAAC,UAAS,UAAU;AAAA,EAC/B,YAAY,CAAC,QAAO,SAAQ,UAAU;AAAA,EACtC,YAAY,CAAC,QAAO,MAAM;AAAA,EAC1B,WAAW,CAAC,QAAO,MAAM;AAAA,EACzB,SAAS,CAAC,WAAU,SAAS;AAAA,EAC7B,eAAe,CAAC,YAAW,YAAY;AAAA,EACvC,WAAW,CAAC,OAAM,cAAa,QAAO,QAAO,OAAM,SAAQ,WAAW;AAAA,EACtE,kBAAkB,CAAC,aAAY,WAAU,WAAU,KAAK;AAAA,EACxD,UAAU,CAAC,QAAO,aAAY,QAAO,UAAS,QAAO,OAAO;AAAA,EAC5D,cAAc,CAAC,QAAO,YAAW,aAAY,SAAQ,SAAS;AAAA,EAC9D,QAAQ,CAAC,SAAQ,OAAO;AAAA,EACxB,YAAY,CAAC,SAAQ,aAAa;AAAA,EAClC,MAAM,CAAC,OAAM,UAAS,WAAW;AAAA,EACjC,YAAY,CAAC,QAAO,UAAS,UAAU;AAAA,EACvC,UAAU,CAAC,QAAO,UAAS,QAAO,WAAU,SAAQ,QAAO,YAAW,WAAU,cAAc;AAAA,EAC9F,eAAe,CAAC,OAAM,MAAM;AAAA,EAC5B,cAAc,CAAC,QAAO,OAAO;AAAA,EAC7B,iBAAiB,CAAC,YAAW,cAAa,MAAM;AAAA,EAChD,eAAe,CAAC,SAAQ,MAAK,MAAK,MAAK,IAAI;AAAA,EAC3C,cAAc,CAAC,SAAQ,QAAO,MAAK,MAAK,OAAM,QAAO,SAAQ,UAAS,UAAS,QAAO,QAAO,OAAM,OAAM,QAAO,YAAW,MAAM;AAAA,EACjI,WAAW,CAAC,SAAQ,WAAU,UAAS,UAAS,WAAU,eAAc,YAAW,QAAO,YAAW,YAAW,OAAM,aAAY,WAAU,WAAU,OAAO;AAAA,EAC7J,kBAAkB,CAAC,WAAU,aAAa;AAAA,EAC1C,eAAe,CAAC,WAAU,IAAI;AAAA,EAC9B,aAAa,CAAC,WAAU,SAAQ,WAAU,QAAO,SAAS;AAAA,EAC1D,WAAW,CAAC,WAAU,IAAI;AAAA,EAC1B,mBAAmB,CAAC,QAAO,aAAY,YAAW,YAAW,OAAO;AAAA,EACpE,eAAe,CAAC,MAAK,MAAK,MAAK,IAAI;AAAA,EACnC,aAAa,CAAC,MAAK,KAAK;AAAA,EACxB,eAAe,CAAC,WAAU,QAAO,MAAM;AAAA,EACvC,WAAW,CAAC,WAAU,cAAa,WAAU,OAAO;AAAA,EACpD,kBAAkB,CAAC,QAAO,MAAM;AAAA,EAChC,SAAS,CAAC,KAAI,KAAI,KAAI,GAAG;AAAA,EACzB,WAAW,CAAC,YAAW,WAAU,QAAO,UAAU;AACpD;AAqDO,IAAM,eAAc;AAAA,EACzB,OAAS,CAAC,cAAa,cAAa,QAAO,kBAAiB,WAAU,qBAAoB,WAAU,qBAAoB,aAAY,uBAAsB,SAAQ,mBAAkB,UAAS,oBAAmB,eAAc,yBAAwB,WAAU,qBAAoB,WAAU,qBAAoB,QAAO,kBAAiB,UAAS,SAAQ,QAAO,UAAS,UAAS,UAAS,UAAS,UAAS,UAAS,UAAS,QAAQ;AAAA,EACza,SAAW,CAAC,QAAO,OAAM,MAAK,MAAK,MAAK,MAAK,MAAK,OAAM,KAAK;AAAA,EAC7D,QAAU,CAAC,QAAO,MAAK,MAAK,MAAK,MAAK,OAAM,OAAM,MAAM;AAAA,EACxD,aAAa,CAAC,MAAK,MAAK,QAAO,MAAK,MAAK,OAAM,KAAK;AAAA,EACpD,mBAAmB,CAAC,MAAK,MAAK,QAAO,MAAK,MAAK,OAAM,KAAK;AAAA,EAC1D,eAAe,CAAC,WAAU,UAAS,YAAW,MAAM;AAAA,EACpD,eAAe,CAAC,QAAO,QAAO,OAAO;AAAA,EACrC,SAAW,CAAC,YAAW,YAAW,YAAW,cAAa,SAAQ,YAAW,OAAM,cAAa,QAAO,SAAQ,QAAO,UAAS,UAAS,YAAW,UAAS,YAAW,SAAQ,YAAW,YAAW,YAAW,UAAS,UAAS,UAAS,YAAW,UAAS,UAAS,OAAO;AAAA,EAC/Q,QAAU,CAAC,QAAO,MAAK,MAAK,MAAK,IAAI;AAAA,EACrC,SAAW,CAAC,WAAU,aAAY,YAAW,cAAa,UAAU;AAAA,EACpE,QAAU,CAAC,QAAO,YAAW,OAAO;AAAA,EACpC,QAAU,CAAC,QAAO,YAAW,MAAM;AAAA,EACnC,YAAc,CAAC,MAAK,MAAK,MAAK,IAAI;AAAA,EAClC,MAAQ,CAAC,YAAW,cAAa,YAAY;AAAA,EAC7C,SAAW,CAAC,WAAU,aAAa;AAAA,EACnC,MAAQ,CAAC,MAAK,MAAK,MAAK,IAAI;AAAA,EAC5B,OAAS,CAAC,SAAQ,aAAa;AACjC;AAGO,IAAM,mBAAkB,CAAC,WAAU,iBAAgB,YAAW,kBAAiB,cAAa,gBAAe,aAAY,eAAc,YAAW,cAAa,aAAY,OAAM,UAAS,aAAY,aAAY,YAAW,aAAY,aAAY,SAAQ,UAAS,YAAW,aAAY,YAAW,aAAY,eAAc,YAAW,OAAM,SAAQ,UAAS,QAAO,SAAQ,oBAAmB,kBAAiB,mBAAkB,iBAAgB,WAAU,cAAa,gBAAe,iBAAgB,eAAc,qBAAoB,mBAAkB,sBAAqB,oBAAmB,UAAS,aAAY,eAAc,gBAAe,cAAa,oBAAmB,kBAAiB,qBAAoB,mBAAkB,uBAAsB,oBAAmB,qBAAoB,YAAW,cAAa,WAAU,mBAAkB,sBAAqB,SAAQ,eAAc,kBAAiB,oBAAmB,qBAAoB,mBAAkB,eAAc,eAAc,gBAAe,uBAAsB,wBAAuB,2BAA0B,0BAAyB,WAAU,aAAY,YAAW,cAAa,cAAa,iBAAgB,aAAY,kBAAiB,iBAAgB,aAAY,cAAa,cAAa,oBAAmB,aAAY,cAAa,iBAAgB,cAAa,UAAS,gBAAe,aAAY,mBAAmB;AACj2C,IAAM,qBAAoB,CAAC,UAAS,kBAAiB,UAAU;AAG/D,IAAM,cAAa,CAAC,iBAAgB,eAAc,iBAAgB,kBAAiB,qBAAoB,cAAa,qBAAoB,YAAW,UAAS,mBAAkB,WAAU,mBAAkB,cAAa,mBAAkB,cAAa,oBAAmB,eAAc,kBAAiB,WAAU,QAAO,eAAc,gBAAe,SAAQ,OAAM,QAAO,YAAW,QAAO,aAAY,YAAW,OAAM,SAAQ,UAAS,SAAQ,aAAY,kBAAiB,OAAM,YAAW,cAAa,cAAa,YAAW,iBAAgB,YAAW,iBAAgB,aAAY,gBAAe,oBAAmB,eAAc,UAAS,OAAM,cAAa,SAAQ,eAAc,gBAAe,gBAAe,iBAAgB,cAAa,oBAAmB,UAAS,mBAAkB,gBAAe,iBAAgB,cAAa,wBAAuB,gBAAe,eAAc,eAAc,YAAW,kBAAiB,SAAQ,SAAQ,QAAO,oBAAmB,kBAAiB,kBAAiB,eAAc,gBAAe,oBAAmB,sBAAqB,eAAc,kBAAiB,eAAc,mBAAkB,eAAc,UAAS,WAAU,YAAW,QAAO,qBAAoB,OAAM,eAAc,SAAQ,YAAW,YAAW,WAAU,YAAW,OAAM,eAAc,2BAA0B,eAAc,gBAAe,oBAAmB,oBAAmB,oBAAmB,gBAAe,oBAAmB,iBAAgB,eAAc,eAAc,uBAAsB,oBAAmB,kBAAiB,gBAAe,wBAAuB,eAAc,sBAAqB,iBAAgB,YAAW,qBAAoB,0BAAyB,qBAAoB,0BAAyB,qBAAoB,uBAAsB,0BAAyB,wBAAuB,0BAAyB,wBAAuB,uBAAsB,iBAAgB,OAAM,WAAU,gBAAe,QAAO,aAAY,iBAAgB,aAAY,eAAc,QAAO,SAAQ,iBAAgB,iBAAgB,UAAS,iBAAgB,eAAc,aAAY,SAAQ,OAAM,QAAO,cAAa,aAAY,oBAAmB,UAAS,SAAQ,kBAAiB,iBAAgB,UAAS,QAAO,cAAa,QAAO,aAAY,aAAY,aAAY,cAAa,SAAQ,aAAY,WAAU,aAAY,SAAQ,SAAQ,UAAS,SAAQ,QAAO,UAAS,OAAM,YAAW,UAAS,UAAS,YAAW,eAAc,QAAO,aAAY,QAAO,UAAS,QAAO,eAAc,YAAW,gBAAe,aAAY,aAAY,iBAAgB,QAAO,aAAY,UAAS,WAAU,QAAO,aAAY,OAAM,WAAU,cAAa,sBAAqB,gBAAe,mBAAkB,uBAAsB,qBAAoB,qBAAoB,oBAAmB,mBAAkB,aAAY,QAAO,kBAAiB,kBAAiB,uBAAsB,wBAAuB,OAAM,WAAU,cAAa,cAAa,SAAQ,WAAU,eAAc,QAAO,YAAW,QAAO,SAAQ,eAAc,eAAc,aAAY,YAAW,cAAa,iBAAgB,gBAAe,oBAAmB,eAAc,cAAa,aAAY,uBAAsB,aAAY,cAAa,iBAAgB,qBAAoB,qBAAoB,mBAAkB,kBAAiB,cAAa,gBAAe,gBAAe,sBAAqB,qBAAoB,gBAAe,eAAc,aAAY,8BAA6B,+BAA8B,8BAA6B,8BAA6B,8BAA6B,qCAAoC,0BAAyB,qBAAoB,0BAAyB,0BAAyB,+BAA8B,gCAA+B,YAAW,YAAW,cAAa,WAAU,cAAa,WAAU,oBAAmB,mBAAkB,aAAY,SAAQ,YAAW,UAAS,SAAQ,kBAAiB,aAAY,OAAM,WAAU,SAAQ,QAAO,QAAO,QAAO,YAAW,aAAY,YAAW,aAAY,WAAU,YAAW,WAAU,iBAAgB,gBAAe,mBAAkB,iBAAgB,mBAAkB,gBAAe,gBAAe,gBAAe,gBAAe,gBAAe,gBAAe,gBAAe,UAAS,WAAU,SAAQ,cAAa,uBAAsB,mBAAkB,sBAAqB,mBAAkB,oBAAmB,oBAAmB,sBAAqB,qBAAoB,UAAS,UAAS,UAAS,cAAa,aAAY,cAAa,WAAU,SAAQ,aAAY,UAAS,YAAW,QAAO,UAAS,iBAAgB,gBAAe,YAAW,kBAAiB,oBAAmB,mBAAkB,gBAAe,oBAAmB,mBAAkB,oBAAmB,mBAAkB,mBAAkB,mBAAkB,qBAAoB,wBAAuB,gBAAe,oBAAmB,0BAAyB,iBAAgB,yBAAwB,oBAAmB,qBAAoB,qBAAoB,oBAAmB,iBAAgB,kBAAiB,kBAAiB,mBAAkB,WAAU,UAAS,gBAAe,wBAAuB,gBAAe,iBAAgB,eAAc,cAAa,iBAAgB,aAAY,gBAAe,sBAAqB,cAAa,SAAQ,YAAW,UAAS,gBAAe,iBAAgB,gBAAe,cAAa,gBAAe,mBAAkB,QAAO,aAAY,YAAW,kBAAiB,oBAAmB,eAAc,oBAAmB,sBAAqB,oBAAmB,eAAc,eAAc,SAAQ,iBAAgB,OAAM,gBAAe,oBAAmB,OAAM,UAAS,YAAW,kBAAiB,eAAc,oBAAmB,iBAAgB,mBAAkB,cAAa,gBAAe,eAAc,cAAa,mBAAkB,gBAAe,kBAAiB,mBAAkB,sBAAqB,sBAAqB,kBAAiB,cAAa,cAAa,WAAU,aAAY,kBAAiB,iBAAgB,oBAAmB,UAAS,SAAQ,QAAO,UAAS,mBAAkB,cAAa,iBAAgB,kBAAiB,eAAc,aAAY,yBAAwB,WAAU,aAAY,YAAW,gBAAe,mBAAkB,mBAAkB,oBAAmB,iBAAgB,YAAW,YAAW,YAAW,YAAW,YAAW,WAAU,aAAY,qBAAoB,aAAY,qBAAoB,qBAAoB,gBAAe,WAAU,eAAc,eAAc,WAAU,mBAAkB,YAAW,eAAc,oBAAmB,mBAAkB,WAAU,YAAW,aAAY,kBAAiB,iBAAgB,sBAAqB,aAAY,WAAU,WAAU,cAAa,WAAU,uBAAsB,oBAAmB,WAAU,aAAY,YAAW,WAAU,cAAa,WAAU,gBAAe,kBAAiB,UAAS,aAAY,WAAU,YAAW,WAAU,oBAAmB,cAAa,mBAAkB,YAAW,iBAAgB,UAAS,YAAW,cAAa,iBAAgB,cAAa,aAAY,WAAU,aAAY,cAAa,oBAAmB,aAAY,iBAAgB,WAAU,eAAc,eAAc,WAAU,aAAY,YAAW,cAAa,eAAc,cAAa,gBAAe,eAAc,WAAU,aAAY,gBAAe,cAAa,WAAU,WAAU,gBAAe,iBAAgB,WAAU,aAAY,aAAY,YAAW,iBAAgB,kBAAiB,aAAY,YAAW,cAAa,YAAW,aAAY,UAAS,UAAS,UAAS,QAAO,cAAa,aAAY,UAAS,SAAQ,SAAQ,cAAa,eAAc,YAAW,YAAW,cAAa,YAAW,UAAS,YAAW,cAAa,gBAAe,YAAW,UAAS,KAAI,KAAK;AAEhlP,IAAM,kBAAiB,CAAC,YAAW,SAAQ,UAAS,WAAU,SAAQ,gBAAe,gBAAe,kBAAiB,cAAa,aAAY,WAAU,OAAM,MAAK,OAAM,WAAU,OAAM,OAAM,MAAK,MAAK,SAAQ,QAAO,YAAW,UAAS,YAAW,QAAO,OAAM,OAAM,QAAO,OAAM,iBAAgB,sBAAqB,UAAS,MAAM;AA2H3U,IAAM,uBAA8C,EAAC,MAAO,QAAO,OAAQ,SAAQ,MAAO,QAAO,OAAQ,SAAQ,aAAc,eAAc,KAAM,SAAQ,QAAS,SAAQ,MAAO,QAAO,MAAO,QAAO,MAAO,QAAO,OAAQ,UAAS,SAAU,aAAY,QAAS,UAAS,WAAY,SAAQ,UAAW,YAAW,cAAe,SAAQ,QAAS,UAAS,eAAgB,aAAY;AAE9X,IAAM,kBAAyC,EAAC,eAAgB,eAAc,KAAM,UAAS,WAAY,WAAU,cAAe,kBAAiB,YAAa,aAAY,eAAgB,YAAW,MAAO,SAAQ,QAAS,UAAS,OAAQ,YAAW,OAAQ,YAAW,QAAS,aAAY,UAAW,eAAc,MAAO,WAAU,OAAQ,eAAc,OAAQ,YAAW,aAAc,sBAAqB,UAAW,SAAQ,aAAc,mBAAkB,QAAS,aAAY,MAAO,WAAU,MAAO,SAAQ,MAAO,WAAU,YAAa,WAAU,MAAO,cAAa,UAAW,aAAY,MAAO,WAAU,MAAO,WAAU,UAAW,oBAAmB,WAAY,WAAU,kBAAmB,kBAAiB,eAAgB,gBAAe,OAAQ,aAAY,SAAU,eAAc,QAAS,yBAAwB,OAAQ,cAAa,OAAQ,SAAQ,MAAO,cAAa,OAAQ,YAAW,SAAU,cAAa,QAAS,gBAAe,QAAS,cAAa,MAAO,WAAU,UAAW,gBAAe,OAAQ,YAAW,cAAe,iBAAgB,UAAW,mBAAkB,cAAe,uBAAsB,MAAO,QAAO,UAAW,gBAAe,SAAU,eAAc,MAAO,WAAU,QAAS,WAAU,YAAa,YAAW,eAAgB,WAAU,YAAa,qBAAoB,YAAa,qBAAoB,WAAY,oBAAmB,UAAW,mBAAkB,SAAU,aAAY;AACp5C,IAAM,0BAAyB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AClR/B,IAAM,mBAAoD,gBAAY;AACtE,IAAM,cAAgC,OAAO,KAAK,gBAAe;AAExE,IAAM,MAAM;AACZ,IAAM,cAAc;AAGb,SAAS,eAAc,CAAC,OAA+B;AAAA,EAC5D,IAAI,OAAO,UAAU;AAAA,IAAU,OAAO;AAAA,EACtC,MAAM,IAAI,IAAI,KAAK,KAAK;AAAA,EACxB,OAAO,IAAI,EAAE,KAAK;AAAA;AAIb,SAAS,YAAW,CAAC,OAAyB;AAAA,EACnD,MAAM,KAAK,gBAAe,KAAK;AAAA,EAC/B,OAAO,OAAO,QAAQ,MAAM;AAAA;AAIvB,SAAS,YAAW,CAAC,YAA8C,CAAC,GAA2B;AAAA,EACpG,OAAO,KAAK,qBAAoB,UAAU;AAAA;AAIrC,SAAS,aAAY,CAAC,UAAkB,SAAkC,CAAC,GAAW;AAAA,EAC3F,OAAO,SAAS,QAAQ,aAAa,CAAC,OAAO,UAAkB,QAAQ,WAAU,OAAO,UAAU,aAAa,OAAO,UAAU,OAAO,OAAO,OAAO,KAAK,IAAI,KAAM;AAAA;AAK/J,SAAS,cAAa,CAAC,OAAgB,QAA0C,kBAA0B;AAAA,EAChH,MAAM,KAAK,gBAAe,KAAK;AAAA,EAC/B,IAAI,OAAO;AAAA,IAAM,OAAO;AAAA,EACxB,OAAO,MAAM,OAAO;AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACStB,IAAM,WAAW,eAAW;AAC5B,IAAM,KAAK,EAAE,QAAQ,MAAM,QAAQ,OAAQ,MAAM,SAAW,KAAK,SAAW;AAWrE,SAAS,cAAa,CAAC,OAAwB;AAAA,EACpD,IAAI,OAAO,UAAU;AAAA,IAAU,OAAO;AAAA,EACtC,IAAI,OAAO,UAAU;AAAA,IAAU,OAAO,OAAO,SAAS,KAAK,IAAI,OAAO,KAAK,IAAI;AAAA,EAC/E,IAAI,OAAO,UAAU;AAAA,IAAW,OAAO,OAAO,KAAK;AAAA,EACnD,OAAO;AAAA;AAaT,SAAS,SAAS,CAAC,KAAsB;AAAA,EACvC,MAAM,IAAI,qCAAqC,KAAK,OAAO,GAAG,CAAC;AAAA,EAC/D,IAAI,CAAC;AAAA,IAAG,OAAO,EAAE,KAAK,KAAK,MAAM,GAAG;AAAA,EACpC,MAAM,SAAS,EAAE,MAAM,EAAE,MAAM;AAAA,EAC/B,IAAI,QAAQ,EAAE,GAAG,UAAU,EAAE,KAAK,OAAO,EAAE,EAAE,IAAI;AAAA,EACjD,IAAI,MAAM;AAAA,EACV,IAAI,SAAS,GAAG;AAAA,IACd,MAAM,IAAI,OAAO,IAAI,KAAK,IAAI;AAAA,IAC9B,QAAQ;AAAA,EACV;AAAA,EACA,IAAI,QAAQ,IAAI;AAAA,IAAQ,MAAM,MAAM,IAAI,OAAO,QAAQ,IAAI,MAAM;AAAA,EACjE,MAAM,MAAM,IAAI,MAAM,GAAG,KAAK,EAAE,QAAQ,aAAa,EAAE;AAAA,EACvD,OAAO,EAAE,KAAK,MAAM,IAAI,MAAM,KAAK,EAAE,QAAQ,OAAO,EAAE,EAAE;AAAA;AAI1D,SAAS,KAAK,CAAC,GAAY,QAAyB;AAAA,EAClD,MAAM,OAAO,EAAE,OAAO,IAAI,OAAO,KAAK,IAAI,GAAG,SAAS,EAAE,KAAK,MAAM,CAAC;AAAA,EACpE,MAAM,OAAO,EAAE,MAAM,KAAK,MAAM,GAAG,MAAM,GAAG,QAAQ,aAAa,EAAE;AAAA,EACnE,OAAO,EAAE,KAAK,MAAM,KAAK,MAAM,MAAM,EAAE,QAAQ,OAAO,EAAE,EAAE;AAAA;AAK5D,SAAS,KAAK,CAAC,GAAY,KAAa,KAAsB;AAAA,EAC5D,MAAM,KAAK,SAAS;AAAA,EACpB,IAAI,KAAK,SAAS,KAAK;AAAA,IACrB,MAAM,KAAK,KAAK,WAAW,GAAG,KAAK;AAAA,IACnC,IAAI,OAAO,MAAM,KAAK,MAAM,GAAG,GAAG;AAAA,IAClC,IAAI,IAAI;AAAA,MACN,MAAM,QAAQ,KAAK,MAAM,EAAE;AAAA,MAC3B,IAAI,IAAI,MAAM,SAAS;AAAA,MACvB,MAAO,KAAK,GAAG,KAAK;AAAA,QAClB,IAAI,MAAM,OAAO;AAAA,UAAK,MAAM,KAAK;AAAA,QACjC,KAAK;AAAA,UACH,MAAM,KAAK,OAAO,OAAO,MAAM,EAAE,IAAI,CAAC;AAAA,UACtC;AAAA;AAAA,MAEJ;AAAA,MACA,QAAQ,IAAI,IAAI,MAAM,MAAM,MAAM,KAAK,EAAE;AAAA,IAC3C;AAAA,IACA,MAAM,SAAS,KAAK,SAAS;AAAA,IAC7B,MAAM,KAAK,MAAM,GAAG,MAAM,KAAK;AAAA,IAC/B,OAAO,KAAK,MAAM,MAAM,EAAE,QAAQ,OAAO,EAAE;AAAA,EAC7C;AAAA,EACA,IAAI,KAAK,SAAS;AAAA,IAAK,OAAO,OAAO,IAAI,OAAO,MAAM,KAAK,MAAM;AAAA,EACjE,OAAO,EAAE,KAAK,KAAK;AAAA;AAGrB,SAAS,KAAK,CAAC,KAAa,IAAqB;AAAA,EAC/C,IAAI,CAAC,MAAM,IAAI,SAAS;AAAA,IAAG,OAAO;AAAA,EAClC,IAAI,MAAM;AAAA,EACV,SAAS,IAAI,EAAG,IAAI,IAAI,QAAQ,KAAK;AAAA,IACnC,IAAI,IAAI,MAAM,IAAI,SAAS,KAAK,MAAM;AAAA,MAAG,OAAO;AAAA,IAChD,OAAO,IAAI;AAAA,EACb;AAAA,EACA,OAAO;AAAA;AAGT,SAAS,aAAa,CAAC,OAAe,KAAa,KAAa,UAAmD;AAAA,EACjH,MAAM,MAAM,QAAQ,KAAK,OAAO,GAAG,OAAO,EAAE;AAAA,EAC5C,IAAI,OAAO,MAAM,KAAK;AAAA,IAAG,OAAO,EAAE,MAAM,IAAI,MAAM,MAAM;AAAA,EACxD,IAAI,CAAC,OAAO,SAAS,KAAK;AAAA,IAAG,OAAO,EAAE,MAAM,MAAM,MAAM,IAAI,MAAM,IAAI;AAAA,EACtE,MAAM,IAAI,MAAM,UAAU,KAAK,IAAI,KAAK,CAAC,GAAG,KAAK,GAAG;AAAA,EACpD,OAAO,EAAE,MAAM,MAAM,MAAM,IAAI,MAAM,GAAG,MAAM,EAAE,KAAK,QAAQ,IAAI,EAAE,OAAO,IAAI,EAAE,SAAS,KAAK;AAAA;AAGhG,IAAM,cAAc,CAAC,aACnB,OAAO,aAAa,YAAY,OAAO,SAAS,QAAQ,IAAI,KAAK,IAAI,GAAG,KAAK,IAAI,IAAI,KAAK,MAAM,QAAQ,CAAC,CAAC,IAAI;AAGzG,SAAS,eAAc,CAAC,MAAsB;AAAA,EACnD,OAAQ,SAAS,eAA0C,KAAK,YAAY,MAAM;AAAA;AAS7E,SAAS,eAAc,CAAC,OAA0D;AAAA,EACvF,IAAI,OAAO,UAAU;AAAA,IAAU,OAAO,OAAO,SAAS,KAAK,IAAI,EAAE,IAAI,OAAO,UAAU,MAAM,IAAI;AAAA,EAChG,IAAI,OAAO,UAAU,YAAY,MAAM,KAAK,MAAM;AAAA,IAAI,OAAO;AAAA,EAC7D,MAAM,MAAM,4BAA4B,KAAK,KAAK;AAAA,EAClD,IAAI,KAAK;AAAA,IACP,MAAM,KAAK,KAAK,IAAI,OAAO,IAAI,EAAE,GAAG,OAAO,IAAI,EAAE,IAAI,GAAG,OAAO,IAAI,EAAE,CAAC;AAAA,IACtE,OAAO,OAAO,SAAS,EAAE,IAAI,EAAE,IAAI,UAAU,KAAK,IAAI;AAAA,EACxD;AAAA,EACA,IAAI,CAAC,uEAAuE,KAAK,KAAK;AAAA,IAAG,OAAO;AAAA,EAChG,MAAM,QAAQ,uBAAuB,KAAK,KAAK,IAAI,QAAQ,GAAG;AAAA,EAC9D,MAAM,KAAK,KAAK,MAAM,KAAK;AAAA,EAC3B,OAAO,OAAO,SAAS,EAAE,IAAI,EAAE,IAAI,UAAU,MAAM,IAAI;AAAA;AAazD,SAAS,SAAS,CAAC,IAAwB;AAAA,EACzC,MAAM,IAAI,IAAI,KAAK,EAAE;AAAA,EACrB,OAAO,EAAE,MAAM,EAAE,eAAe,GAAG,OAAO,EAAE,YAAY,IAAI,GAAG,KAAK,EAAE,WAAW,GAAG,SAAS,EAAE,UAAU,GAAG,MAAM,EAAE,YAAY,GAAG,QAAQ,EAAE,cAAc,GAAG,QAAQ,EAAE,cAAc,EAAE;AAAA;AAW1L,IAAM,MAAM,CAAC,GAAW,UAAkB,OAAO,CAAC,EAAE,SAAS,OAAO,GAAG;AAKhE,SAAS,cAAa,CAAC,SAAiB,GAAe,OAA0B;AAAA,EACtF,IAAI,MAAM;AAAA,EACV,IAAI,IAAI;AAAA,EACR,OAAO,IAAI,QAAQ,QAAQ;AAAA,IACzB,MAAM,KAAK,QAAQ;AAAA,IACnB,IAAI,OAAO,KAAK;AAAA,MACd,IAAI,QAAQ,IAAI,OAAO,KAAK;AAAA,QAC1B,OAAO;AAAA,QACP,KAAK;AAAA,QACL;AAAA,MACF;AAAA,MAEA;AAAA,MACA,OAAO,IAAI,QAAQ,QAAQ;AAAA,QACzB,IAAI,QAAQ,OAAO,KAAK;AAAA,UACtB,IAAI,QAAQ,IAAI,OAAO,KAAK;AAAA,YAC1B,OAAO;AAAA,YACP,KAAK;AAAA,YACL;AAAA,UACF;AAAA,UACA;AAAA,UACA;AAAA,QACF;AAAA,QACA,OAAO,QAAQ;AAAA,QACf;AAAA,MACF;AAAA,MACA;AAAA,IACF;AAAA,IACA,IAAI,CAAC,WAAW,KAAK,EAAE,GAAG;AAAA,MACxB,OAAO;AAAA,MACP;AAAA,MACA;AAAA,IACF;AAAA,IACA,IAAI,IAAI;AAAA,IACR,OAAO,QAAQ,IAAI,OAAO;AAAA,MAAI;AAAA,IAC9B,MAAM,MAAM,QAAQ,MAAM,GAAG,IAAI,CAAC;AAAA,IAClC,KAAK;AAAA,IACL,MAAM,MAAM,EAAE,OAAO,OAAO,IAAI,KAAK,EAAE,OAAO;AAAA,IAC9C,QAAQ;AAAA,MACN,KAAK;AAAA,QACH,OAAO,MAAM,IAAI,IAAI,EAAE,OAAO,KAAK,CAAC,IAAI,IAAI,EAAE,MAAM,CAAC;AAAA,QACrD;AAAA,MACF,KAAK;AAAA,QACH,OAAO,KAAK,IAAI,MAAM,OAAO,EAAE,QAAQ,KAAK,MAAM,IAAI,MAAM,YAAY,EAAE,QAAQ,KAAK,IAAI,EAAE,OAAO,CAAC;AAAA,QACrG;AAAA,MACF,KAAK;AAAA,QACH,OAAO,IAAI,EAAE,KAAK,CAAC;AAAA,QACnB;AAAA,MACF,KAAK;AAAA,QACH,OAAO,KAAK,IAAI,MAAM,SAAS,EAAE,WAAW,MAAM,cAAc,EAAE;AAAA,QAClE;AAAA,MACF,KAAK;AAAA,QACH,OAAO,IAAI,KAAK,CAAC;AAAA,QACjB;AAAA,MACF,KAAK;AAAA,QACH,OAAO,IAAI,EAAE,MAAM,CAAC;AAAA,QACpB;AAAA,MACF,KAAK;AAAA,QACH,OAAO,IAAI,EAAE,QAAQ,CAAC;AAAA,QACtB;AAAA,MACF,KAAK;AAAA,QACH,OAAO,IAAI,EAAE,QAAQ,CAAC;AAAA,QACtB;AAAA,MACF,KAAK;AAAA,QACH,OAAO,MAAM,WAAW,EAAE,OAAO,KAAK,IAAI;AAAA,QAC1C;AAAA,MACF;AAAA,QACE,OAAO;AAAA;AAAA,EAEb;AAAA,EACA,OAAO;AAAA;AAKF,IAAM,yBAA6D,SAAS;AAC5E,IAAM,wBAA+B,SAAS;AAC9C,IAAM,0BAA8D,SAAS;AAS7E,IAAM,eAAc,CAAC,YAAgC,MAAM;AAI3D,SAAS,eAAc,CAAC,UAA8B;AAAA,EAC3D,MAAM,MAAM,IAAI,KAAK,eAAe,SAAS,EAAE,UAAU,MAAM,WAAW,OAAO,WAAW,KAAK,WAAW,MAAM,WAAW,QAAQ,WAAW,QAAQ,WAAW,WAAW,MAAM,CAAC;AAAA,EACrL,OAAO,CAAC,OAAO;AAAA,IACb,MAAM,KAAK,KAAK,MAAM,KAAK,IAAI,IAAI;AAAA,IACnC,MAAM,IAAI,OAAO,YAAY,IAAI,cAAc,IAAI,KAAK,EAAE,CAAC,EAAE,IAAI,CAAC,MAAM,CAAC,EAAE,MAAM,EAAE,KAAK,CAAC,CAAC;AAAA,IAC1F,MAAM,QAAQ,KAAK,IAAI,OAAO,EAAE,IAAI,GAAG,OAAO,EAAE,KAAK,IAAI,GAAG,OAAO,EAAE,GAAG,GAAG,OAAO,EAAE,IAAI,IAAI,IAAI,OAAO,EAAE,MAAM,GAAG,OAAO,EAAE,MAAM,CAAC;AAAA,IAClI,OAAO,KAAK,OAAO,QAAQ,MAAM,KAAM;AAAA;AAAA;AAYpC,SAAS,iBAAgB,CAAC,SAAwD;AAAA,EACvF,MAAM,MAAM,KAAK,IAAI,OAAO;AAAA,EAC5B,MAAM,IAAI,CAAC,SAAiB,KAAK,MAAM,UAAU,IAAI,KAAK;AAAA,EAC1D,IAAI,MAAM,GAAG;AAAA,IAAQ,OAAO,EAAE,OAAO,EAAE,GAAG,MAAM,GAAG,MAAM,SAAS;AAAA,EAClE,IAAI,MAAM,GAAG;AAAA,IAAM,OAAO,EAAE,OAAO,EAAE,GAAG,MAAM,GAAG,MAAM,SAAS;AAAA,EAChE,IAAI,MAAM,GAAG;AAAA,IAAK,OAAO,EAAE,OAAO,EAAE,GAAG,IAAI,GAAG,MAAM,OAAO;AAAA,EAC3D,IAAI,MAAM,IAAI,GAAG;AAAA,IAAK,OAAO,EAAE,OAAO,EAAE,GAAG,GAAG,GAAG,MAAM,MAAM;AAAA,EAC7D,IAAI,MAAM,KAAK,GAAG;AAAA,IAAK,OAAO,EAAE,OAAO,EAAE,IAAI,GAAG,GAAG,GAAG,MAAM,OAAO;AAAA,EACnE,IAAI,MAAM,MAAM,GAAG;AAAA,IAAK,OAAO,EAAE,OAAO,EAAE,KAAK,GAAG,GAAG,GAAG,MAAM,QAAQ;AAAA,EACtE,OAAO,EAAE,OAAO,EAAE,MAAM,GAAG,GAAG,GAAG,MAAM,OAAO;AAAA;AAOhD,IAAM,gBAA2B;AAM1B,SAAS,iBAAgB,CAAC,OAAmB,aAAY,CAAC,GAAc;AAAA,EAC7E,OAAO;AAAA,IACL,QAAQ;AAAA,IACR,MAAM,CAAC,OAAO,UAAU,CAAC,GAAG;AAAA,MAC1B,MAAM,QAAQ,YAAY,QAAQ,QAAQ;AAAA,MAC1C,QAAQ,MAAM,SAAS,cAAc,OAAO,SAAS,GAAG,SAAS,GAAG,QAAQ,aAAa,KAAK;AAAA,MAC9F,OAAO,GAAG,OAAO;AAAA;AAAA,IAEnB,QAAQ,CAAC,OAAO,UAAU,UAAU,CAAC,GAAG;AAAA,MACtC,MAAM,OAAO,SAAS,YAAY;AAAA,MAClC,MAAM,SAAS,YAAY,QAAQ,QAAQ,KAAK,gBAAe,IAAI;AAAA,MACnE,QAAQ,MAAM,SAAS,cAAc,OAAO,QAAQ,QAAQ,QAAQ,aAAa,KAAK;AAAA,MACtF,MAAM,SAAU,SAAS,eAA0C,SAAS,SAAS,gBAAgB,QAAQ,UAAU,IAAI;AAAA,MAC3H,OAAO,GAAG,OAAO,SAAS;AAAA;AAAA,IAE5B,OAAO,CAAC,OAAO,UAAU,CAAC,GAAG;AAAA,MAC3B,MAAM,SAAS,YAAY,QAAQ,QAAQ,KAAK;AAAA,MAChD,IAAI,CAAC,OAAO,SAAS,KAAK,GAAG;AAAA,QAC3B,QAAQ,MAAM,SAAS,cAAc,OAAO,GAAG,GAAG,IAAI;AAAA,QACtD,OAAO,GAAG,OAAO;AAAA,MACnB;AAAA,MACA,MAAM,MAAM,QAAQ,KAAK,OAAO,GAAG,OAAO,EAAE;AAAA,MAC5C,MAAM,IAAI,MAAM,MAAM,UAAU,KAAK,IAAI,KAAK,CAAC,GAAG,CAAC,GAAG,QAAQ,MAAM;AAAA,MACpE,OAAO,GAAG,MAAM,MAAM,KAAK,MAAM,EAAE,KAAK,IAAI,IAAI,EAAE,OAAO,IAAI,EAAE,SAAS;AAAA;AAAA,IAE1E,IAAI,CAAC,OAAO,UAAU,CAAC,GAAG;AAAA,MACxB,MAAM,SAAS,gBAAe,KAAK;AAAA,MACnC,IAAI,CAAC;AAAA,QAAQ,OAAO;AAAA,MACpB,MAAM,IAAI,UAAU,OAAO,WAAW,OAAO,KAAK,OAAO,KAAK,KAAK,OAAO,EAAE,IAAI,KAAM;AAAA,MACtF,IAAI,QAAQ;AAAA,QAAQ,OAAO,eAAc,QAAQ,QAAQ,GAAG,aAAa;AAAA,MACzE,MAAM,QAAQ,QAAQ,SAAS;AAAA,MAC/B,MAAM,OAAO,eAAc,uBAAsB,QAAQ,GAAG,aAAa;AAAA,MACzE,IAAI,CAAC,QAAQ;AAAA,QAAM,OAAO;AAAA,MAC1B,MAAM,OAAO,eAAc,uBAAsB,GAAG,aAAa;AAAA,MACjE,OAAO,wBAAuB,OAAO,QAAQ,UAAU,IAAI,EAAE,QAAQ,UAAU,IAAI;AAAA;AAAA,IAErF,YAAY,CAAC,OAAO,KAAK;AAAA,MACvB,MAAM,SAAS,gBAAe,KAAK;AAAA,MACnC,IAAI,CAAC;AAAA,QAAQ,OAAO;AAAA,MACpB,QAAQ,OAAO,GAAG,SAAS,kBAAiB,OAAO,KAAK,GAAG;AAAA,MAC3D,MAAM,OAAQ,SAAS,SAAS,KAAgD,QAAQ,OAAO,CAAC;AAAA,MAChG,IAAI;AAAA,QAAM,OAAO;AAAA,MACjB,OAAO,KAAK,QAAS,SAAS,SAAS,MAAmC;AAAA,MAC1E,MAAM,QAAQ,cAAc,KAAK,IAAI,CAAC,GAAG,GAAG,GAAG,IAAI,EAAE;AAAA,MACrD,MAAM,WAAW,KAAK,IAAI,CAAC,MAAM,IAAI,MAAM;AAAA,MAC3C,MAAM,WAAW,IAAI,IAAI,SAAS,SAAS,OAAO,SAAS,SAAS;AAAA,MACpE,OAAO,SAAS,QAAQ,WAAW,KAAK,EAAE,QAAQ,UAAU,QAAQ;AAAA;AAAA,IAEtE,MAAM,CAAC,OAAO;AAAA,MACZ,OAAO,KAAK,IAAI,KAAK,MAAM,IAAI,QAAQ;AAAA;AAAA,EAE3C;AAAA;AAUK,SAAS,cAAa,CAAC,QAAgB,WAAW,OAAkB;AAAA,EACzE,MAAM,KAAK,CAAC,MAAgC,IAAI,KAAK,aAAa,QAAQ,CAAC;AAAA,EAC3E,IAAI,QAA0B;AAAA,EAC9B,MAAM,YAAY,MAAiB;AAAA,IACjC,IAAI;AAAA,MAAO,OAAO;AAAA,IAClB,MAAM,KAAK,CAAC,GAA+B,OAAe,IAAI,KAAK,eAAe,QAAQ,KAAK,GAAG,UAAU,MAAM,CAAC,EAAE,OAAO,IAAI,KAAK,EAAE,CAAC;AAAA,IACxI,MAAM,SAAS,MAAM,KAAK,EAAE,QAAQ,GAAG,GAAG,CAAC,GAAG,MAAM,KAAK,IAAI,MAAM,GAAG,CAAC,CAAC;AAAA,IACxE,MAAM,OAAO,MAAM,KAAK,EAAE,QAAQ,EAAE,GAAG,CAAC,GAAG,MAAM,KAAK,IAAI,MAAM,GAAG,IAAI,CAAC,CAAC;AAAA,IACzE,MAAM,SAAS,CAAC,MAAc,IAAI,KAAK,eAAe,QAAQ,EAAE,MAAM,WAAW,QAAQ,MAAM,UAAU,MAAM,CAAC,EAAE,cAAc,IAAI,KAAK,KAAK,IAAI,MAAM,GAAG,GAAG,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,MAAM,EAAE,SAAS,WAAW,GAAG,UAAU,IAAI,KAAK,OAAO;AAAA,IAClO,QAAQ;AAAA,MACN,QAAQ,OAAO,IAAI,CAAC,OAAO,GAAG,EAAE,OAAO,OAAO,GAAG,EAAE,CAAC;AAAA,MACpD,aAAa,OAAO,IAAI,CAAC,OAAO,GAAG,EAAE,OAAO,QAAQ,GAAG,EAAE,CAAC;AAAA,MAC1D,UAAU,KAAK,IAAI,CAAC,OAAO,GAAG,EAAE,SAAS,OAAO,GAAG,EAAE,CAAC;AAAA,MACtD,eAAe,KAAK,IAAI,CAAC,OAAO,GAAG,EAAE,SAAS,QAAQ,GAAG,EAAE,CAAC;AAAA,MAC5D,YAAY,CAAC,OAAO,CAAC,GAAG,OAAO,EAAE,CAAC;AAAA,IACpC;AAAA,IACA,OAAO;AAAA;AAAA,EAET,MAAM,cAAc,CAAC,OAA2B;AAAA,IAC9C,MAAM,QAAQ,IAAI,KAAK,eAAe,SAAS,EAAE,UAAU,MAAM,WAAW,OAAO,WAAW,KAAK,WAAW,MAAM,WAAW,QAAQ,WAAW,QAAQ,WAAW,SAAS,SAAS,WAAW,MAAM,CAAC,EAAE,cAAc,IAAI,KAAK,EAAE,CAAC;AAAA,IACrO,MAAM,MAAM,CAAC,MAAc,MAAM,KAAK,CAAC,MAAM,EAAE,SAAS,CAAC,GAAG,SAAS;AAAA,IACrE,OAAO,EAAE,MAAM,OAAO,IAAI,MAAM,CAAC,GAAG,OAAO,OAAO,IAAI,OAAO,CAAC,GAAG,KAAK,OAAO,IAAI,KAAK,CAAC,GAAG,SAAS,CAAC,OAAO,OAAO,OAAO,OAAO,OAAO,OAAO,KAAK,EAAE,QAAQ,IAAI,SAAS,CAAC,GAAG,MAAM,OAAO,IAAI,MAAM,CAAC,IAAI,IAAI,QAAQ,OAAO,IAAI,QAAQ,CAAC,GAAG,QAAQ,OAAO,IAAI,QAAQ,CAAC,EAAE;AAAA;AAAA,EAE7Q,OAAO;AAAA,IACL;AAAA,IACA,MAAM,CAAC,OAAO,UAAU,CAAC,GAAG;AAAA,MAC1B,MAAM,QAAQ,YAAY,QAAQ,QAAQ;AAAA,MAC1C,OAAO,GAAG,EAAE,uBAAuB,SAAS,GAAG,uBAAuB,SAAS,GAAG,aAAa,QAAQ,aAAa,MAAM,CAAC,EAAE,OAAO,KAAK;AAAA;AAAA,IAE3I,QAAQ,CAAC,OAAO,UAAU,UAAU,CAAC,GAAG;AAAA,MACtC,MAAM,QAAQ,YAAY,QAAQ,QAAQ;AAAA,MAC1C,OAAO,GAAG,EAAE,OAAO,YAAY,aAAc,UAAU,YAAY,EAAE,uBAAuB,OAAO,uBAAuB,MAAM,IAAI,CAAC,GAAI,aAAa,QAAQ,aAAa,MAAM,CAAC,EAAE,OAAO,KAAK;AAAA;AAAA,IAElM,OAAO,CAAC,OAAO,UAAU,CAAC,GAAG;AAAA,MAC3B,MAAM,QAAQ,YAAY,QAAQ,QAAQ,KAAK;AAAA,MAC/C,OAAO,GAAG,EAAE,OAAO,WAAW,uBAAuB,OAAO,uBAAuB,MAAM,CAAC,EAAE,OAAO,KAAK;AAAA;AAAA,IAE1G,IAAI,CAAC,OAAO,UAAU,CAAC,GAAG;AAAA,MACxB,MAAM,SAAS,gBAAe,KAAK;AAAA,MACnC,IAAI,CAAC;AAAA,QAAQ,OAAO;AAAA,MACpB,MAAM,OAAO,OAAO,WAAW,QAAQ;AAAA,MACvC,IAAI,QAAQ;AAAA,QAAQ,OAAO,eAAc,QAAQ,QAAQ,OAAO,WAAW,UAAU,OAAO,EAAE,IAAI,YAAY,OAAO,EAAE,GAAG,UAAU,CAAC;AAAA,MACrI,OAAO,IAAI,KAAK,eAAe,QAAQ,EAAE,WAAW,QAAQ,SAAS,aAAc,QAAQ,OAAO,EAAE,WAAW,QAAQ,IAAI,CAAC,GAAI,UAAU,KAAK,CAAC,EAAE,OAAO,IAAI,KAAK,OAAO,EAAE,CAAC;AAAA;AAAA,IAE9K,YAAY,CAAC,OAAO,KAAK;AAAA,MACvB,MAAM,SAAS,gBAAe,KAAK;AAAA,MACnC,IAAI,CAAC;AAAA,QAAQ,OAAO;AAAA,MACpB,QAAQ,OAAO,GAAG,SAAS,kBAAiB,OAAO,KAAK,GAAG;AAAA,MAC3D,OAAO,IAAI,KAAK,mBAAmB,QAAQ,EAAE,SAAS,OAAO,CAAC,EAAE,OAAO,GAAG,IAAI;AAAA;AAAA,IAEhF,MAAM,CAAC,OAAO;AAAA,MACZ,OAAO,IAAI,KAAK,YAAY,MAAM,EAAE,OAAO,KAAK;AAAA;AAAA,EAEpD;AAAA;AAUK,IAAM,yBAAwB,CAAC,gBAAgB,kBAAkB,iBAAiB,cAAc,sBAAsB,WAAW;AAKxI,IAAM,UAAU;AAChB,IAAM,QAAQ,CAAC,MAAwB,OAAO,MAAM,WAAW,IAAI,OAAO,MAAM,YAAY,QAAQ,KAAK,CAAC,IAAI,OAAO,CAAC,IAAI;AAC1H,IAAM,SAAS,CAAC,MAAoC,MAAM,aAAa,MAAM,OAAO,YAAY,MAAM,CAAC;AAMhG,SAAS,gBAAe,CAAC,WAAsB,MAAoB,MAAM,KAAK,IAAI,GAA+F;AAAA,EACtL,MAAM,WAAW,CAAC,OAAgB,MAA6B;AAAA,IAC7D,MAAM,IAAI,MAAM,KAAK;AAAA,IACrB,OAAO,OAAO,SAAS,CAAC,IAAI,EAAE,CAAC,IAAI;AAAA;AAAA,EAErC,OAAO;AAAA,IACL,cAAc,GAAG,OAAO,UAAU,eAAe,SAAS,OAAO,CAAC,MAAM,UAAU,OAAO,GAAG,EAAE,UAAU,OAAO,QAAQ,GAAG,UAAU,aAAa,YAAY,YAAY,aAAa,MAAM,CAAC,CAAC;AAAA,IAC9L,gBAAgB,GAAG,OAAO,UAAU,UAAU,eAAe,SAAS,OAAO,CAAC,MAAO,OAAO,aAAa,YAAY,gBAAgB,KAAK,QAAQ,IAAI,UAAU,SAAS,GAAG,UAAU,EAAE,UAAU,OAAO,QAAQ,GAAG,UAAU,aAAa,YAAY,YAAY,aAAa,MAAM,CAAC,IAAI,EAAG;AAAA,IAC9R,eAAe,GAAG,OAAO,eAAe,SAAS,OAAO,CAAC,MAAM,UAAU,QAAQ,GAAG,EAAE,UAAU,OAAO,QAAQ,EAAE,CAAC,CAAC;AAAA,IACnH,YAAY,GAAG,OAAO,QAAQ,OAAO,WACnC,UAAU,KAAK,OAAO,KAAM,OAAO,WAAW,YAAY,SAAS,EAAE,OAAO,IAAI,CAAC,MAAQ,UAAU,WAAW,UAAU,YAAY,UAAU,UAAU,UAAU,SAAS,EAAE,MAAM,IAAI,CAAC,MAAQ,SAAS,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC,EAAG,CAAC;AAAA,IACxO,oBAAoB,GAAG,OAAO,KAAK,SAAS,UAAU,aAAa,OAAO,OAAO,OAAO,WAAW,KAAM,gBAAe,EAAE,GAAG,MAAM,IAAI,CAAE;AAAA,IACzI,WAAW,CAAC,SAAS;AAAA,MACnB,MAAM,IAAI,MAAM,KAAK,KAAK;AAAA,MAC1B,IAAI,CAAC,OAAO,SAAS,CAAC;AAAA,QAAG,OAAO,KAAK;AAAA,MACrC,IAAI,MAAM,KAAK,KAAK,SAAS;AAAA,QAAW,OAAO,KAAK;AAAA,MACpD,MAAM,WAAW,UAAU,OAAO,CAAC;AAAA,MACnC,OAAO,KAAK,aAAa,KAAK;AAAA;AAAA,EAElC;AAAA;AAIK,IAAM,4BAA2B,iBAAgB,kBAAiB,CAAC;;;AC/b1E,IAAM,QAAQ;AACd,IAAM,WAAW;AACjB,IAAM,WAAW;AAEV,SAAS,UAAS,CAAC,OAAsC;AAAA,EAC9D,OAAO,OAAO,UAAU,YAAY,UAAU,QAAQ,CAAC,MAAM,QAAQ,KAAK,KAAK,OAAQ,MAAsB,SAAS,YAAY,OAAO,KAAK,KAAe,EAAE,WAAW;AAAA;AAErK,SAAS,OAAM,CAAC,OAAuC;AAAA,EAC5D,OAAO,OAAO,UAAU,YAAY,UAAU,QAAQ,CAAC,MAAM,QAAQ,KAAK,KAAK,OAAQ,MAAuB,SAAS;AAAA;AAGlH,SAAS,UAAS,CAAC,OAAkC;AAAA,EAC1D,OAAO,WAAU,KAAK,KAAK,QAAO,KAAK;AAAA;AAKlC,SAAS,OAAM,CAAC,OAAyB;AAAA,EAC9C,OAAO,UAAU,aAAa,UAAU,QAAQ,UAAU,SAAS,UAAU;AAAA;AAG/E,SAAS,IAAI,CAAC,MAAc,MAA6C;AAAA,EACvE,MAAM,MAA+B,CAAC;AAAA,EACtC,YAAY,GAAG,MAAM,OAAO,QAAQ,IAAI;AAAA,IAAG,IAAI,MAAM;AAAA,MAAW,IAAI,KAAK;AAAA,EACzE,OAAO,EAAE,MAAM,MAAM,MAAM,IAAI;AAAA;AAGjC,SAAS,YAAY,CAAC,MAAuB;AAAA,EAC3C,IAAI,SAAS;AAAA,IAAQ,OAAO;AAAA,EAC5B,IAAI,SAAS;AAAA,IAAS,OAAO;AAAA,EAC7B,IAAI,SAAS;AAAA,IAAQ,OAAO;AAAA,EAC5B,IAAI,kBAAkB,KAAK,IAAI;AAAA,IAAG,OAAO,OAAO,IAAI;AAAA,EACpD,OAAO;AAAA;AAGT,SAAS,MAAM,CAAC,MAAc,KAA2B;AAAA,EACvD,IAAI,SAAS;AAAA,IAAM,OAAO,IAAI;AAAA,EAC9B,OAAO,SAAS,QAAQ,KAAK,MAAM,GAAG;AAAA,EACtC,IAAI;AAAA,EACJ,IAAI,SAAS;AAAA,IAAS,MAAM,IAAI;AAAA,EAChC,KAAK,IAAI,QAAQ,IAAI;AAAA,IAAM,MAAM,IAAI,KAAK;AAAA,EAC1C;AAAA,IAAK;AAAA,EACL,WAAW,OAAO,MAAM;AAAA,IACtB,IAAI,QAAQ,aAAa,QAAQ;AAAA,MAAM;AAAA,IACvC,MAAO,IAAgC;AAAA,EACzC;AAAA,EACA,OAAO;AAAA;AAGT,SAAS,QAAQ,CAAC,OAAwB;AAAA,EACxC,OAAO,OAAO,UAAU,WAAW,QAAQ,OAAO,SAAS,CAAC,KAAK;AAAA;AAInE,SAAS,aAAa,CAAC,OAAmC;AAAA,EACxD,MAAM,OAAO,MAAM,KAAK;AAAA,EACxB,IAAI,SAAS;AAAA,IAAI;AAAA,EACjB,MAAM,IAAI,OAAO,IAAI;AAAA,EACrB,OAAO,OAAO,SAAS,CAAC,IAAI,IAAI;AAAA;AAM3B,SAAS,YAAW,CAAC,GAAY,GAAqB;AAAA,EAC3D,IAAI,MAAM;AAAA,IAAG,OAAO;AAAA,EACpB,IAAI,OAAO,MAAM,YAAY,OAAO,MAAM;AAAA,IAAU,OAAO,cAAc,CAAC,MAAM;AAAA,EAChF,IAAI,OAAO,MAAM,YAAY,OAAO,MAAM;AAAA,IAAU,OAAO,cAAc,CAAC,MAAM;AAAA,EAChF,OAAO;AAAA;AAKF,SAAS,YAAW,CAAC,OAAgB,KAAc,KAAsB;AAAA,EAC9E,IAAI,IAAI,SAAS,KAAK;AAAA,EACtB,IAAI,QAAQ,aAAa,QAAQ;AAAA,IAAM,IAAI,KAAK,IAAI,GAAG,SAAS,GAAG,CAAC;AAAA,EACpE,IAAI,QAAQ,aAAa,QAAQ;AAAA,IAAM,IAAI,KAAK,IAAI,GAAG,SAAS,GAAG,CAAC;AAAA,EACpE,OAAO;AAAA;AAKF,SAAS,aAAY,CAAC,UAAmB,QAAyB;AAAA,EACvE,MAAM,OAAO,aAAa,aAAa,aAAa,OAAO,KAAK,OAAO,QAAQ;AAAA,EAC/E,OAAO,cAAa,MAAM,OAAO,WAAW,YAAY,WAAW,OAAQ,SAAqC,CAAC,CAAC;AAAA;AAQ7G,IAAM,kBAAkB;AAKxB,SAAS,SAAQ,CAAC,MAAc,KAA2B;AAAA,EAChE,MAAM,OAAO,KAAK,KAAK;AAAA,EACvB,MAAM,KAAK,SAAS,KAAK,IAAI;AAAA,EAC7B,IAAI,IAAI;AAAA,IACN,MAAM,QAAQ,UAAS,GAAG,IAAI,GAAG;AAAA,IACjC,IAAI,GAAG,OAAO,OAAO;AAAA,MACnB,IAAI,WAAU,KAAK;AAAA,QAAG,OAAO,KAAK,OAAO,EAAE,OAAO,MAAM,CAAC;AAAA,MACzD,OAAO,MAAM,QAAQ,KAAK,IAAI,MAAM,SAAS,OAAO,UAAU,WAAW,MAAM,SAAS;AAAA,IAC1F;AAAA,IAGA,IAAI,WAAU,KAAK;AAAA,MAAG;AAAA,IACtB,MAAM,IAAI,KAAK,IAAI,iBAAiB,KAAK,IAAI,GAAG,KAAK,MAAM,SAAS,KAAK,CAAC,CAAC,KAAK,CAAC;AAAA,IACjF,OAAO,MAAM,KAAK,EAAE,QAAQ,EAAE,GAAG,CAAC,GAAG,MAAM,CAAC;AAAA,EAC9C;AAAA,EACA,MAAM,MAAM,KAAK,QAAQ,GAAG;AAAA,EAC5B,IAAI,OAAO,GAAG;AAAA,IACZ,MAAM,QAAQ,UAAS,KAAK,MAAM,GAAG,GAAG,GAAG,GAAG;AAAA,IAC9C,MAAM,WAAW,aAAa,KAAK,MAAM,MAAM,CAAC,CAAC;AAAA,IACjD,IAAI,UAAU,aAAa,UAAU;AAAA,MAAM,OAAO;AAAA,IAClD,IAAI,WAAU,KAAK;AAAA,MAAG,OAAO,KAAK,YAAY,EAAE,OAAO,SAAS,SAAS,CAAC;AAAA,IAC1E,OAAO;AAAA,EACT;AAAA,EACA,IAAI,KAAK,WAAW,GAAG,GAAG;AAAA,IACxB,MAAM,QAAQ,UAAS,KAAK,MAAM,CAAC,GAAG,GAAG;AAAA,IACzC,IAAI,WAAU,KAAK;AAAA,MAAG,OAAO,KAAK,OAAO,EAAE,MAAM,CAAC;AAAA,IAClD,OAAO,CAAC,QAAO,KAAK;AAAA,EACtB;AAAA,EACA,OAAO,OAAO,MAAM,GAAG;AAAA;AAKzB,SAAS,WAAW,CAAC,OAAyB;AAAA,EAC5C,IAAI,QAAO,KAAK,KAAK,MAAM,SAAS,cAAc,WAAU,MAAM,MAAM,KAAK;AAAA,IAAG,OAAO,MAAM,MAAM;AAAA,EACnG,OAAO;AAAA;AAKT,SAAS,WAAW,CAAC,OAAgB,KAA2B;AAAA,EAC9D,IAAI,OAAO,UAAU,UAAU;AAAA,IAC7B,MAAM,QAAQ,MAAM,KAAK,KAAK;AAAA,IAC9B,IAAI;AAAA,MAAO,OAAO,UAAS,MAAM,IAAI,GAAG;AAAA,EAC1C;AAAA,EACA,OAAO,WAAU,OAAO,GAAG;AAAA;AAKtB,SAAS,mBAAkB,CAAC,MAAe,KAAqC;AAAA,EACrF,MAAM,QAAQ,OAAO,SAAS,WAAW,UAAS,MAAM,GAAG,IAAI,YAAY,MAAM,GAAG;AAAA,EACpF,IAAI,WAAU,KAAK;AAAA,IAAG,OAAO;AAAA,EAC7B,OAAO,QAAO,KAAK;AAAA;AAKd,SAAS,cAAa,CAAC,MAAe,KAA2B;AAAA,EACtE,MAAM,QAAQ,oBAAmB,MAAM,GAAG;AAAA,EAC1C,OAAO,UAAU,QAAQ,WAAU,KAAK;AAAA;AAG1C,SAAS,WAAW,CAAC,OAAe,KAA2B;AAAA,EAC7D,MAAM,QAAmB,CAAC;AAAA,EAC1B,IAAI,UAAU;AAAA,EACd,IAAI,OAAO;AAAA,EACX,WAAW,SAAS,MAAM,SAAS,QAAQ,GAAG;AAAA,IAC5C,MAAM,KAAK,MAAM,SAAS;AAAA,IAC1B,IAAI,KAAK;AAAA,MAAM,MAAM,KAAK,MAAM,MAAM,MAAM,EAAE,CAAC;AAAA,IAC/C,MAAM,IAAI,UAAS,MAAM,IAAI,GAAG;AAAA,IAChC,IAAI,WAAU,CAAC;AAAA,MAAG,UAAU;AAAA,IAC5B,MAAM,KAAK,CAAC;AAAA,IACZ,OAAO,KAAK,MAAM,GAAG;AAAA,EACvB;AAAA,EACA,IAAI,OAAO,MAAM;AAAA,IAAQ,MAAM,KAAK,MAAM,MAAM,IAAI,CAAC;AAAA,EACrD,IAAI;AAAA,IAAS,OAAO,KAAK,UAAU,EAAE,QAAQ,MAAM,OAAO,CAAC,MAAM,MAAM,aAAa,MAAM,QAAQ,MAAM,EAAE,EAAE,CAAC;AAAA,EAC7G,OAAO,MAAM,IAAI,CAAC,MAAO,MAAM,aAAa,MAAM,OAAO,KAAK,OAAO,CAAC,CAAE,EAAE,KAAK,EAAE;AAAA;AAM5E,SAAS,UAAS,CAAC,OAAgB,KAA2B;AAAA,EACnE,IAAI,OAAO,UAAU,UAAU;AAAA,IAC7B,MAAM,QAAQ,MAAM,KAAK,KAAK;AAAA,IAC9B,IAAI;AAAA,MAAO,OAAO,YAAY,UAAS,MAAM,IAAI,GAAG,CAAC;AAAA,IACrD,OAAO,YAAY,OAAO,GAAG;AAAA,EAC/B;AAAA,EACA,IAAI,MAAM,QAAQ,KAAK,GAAG;AAAA,IACxB,OAAO,MAAM,IAAI,CAAC,SAAS,WAAU,MAAM,GAAG,CAAC,EAAE,OAAO,CAAC,SAAS,SAAS,SAAS;AAAA,EACtF;AAAA,EACA,IAAI,OAAO,UAAU,YAAY,UAAU;AAAA,IAAM,OAAO;AAAA,EACxD,MAAM,MAAM;AAAA,EACZ,IAAI,UAAU,KAAK;AAAA,IACjB,MAAM,OAAO,IAAI;AAAA,IACjB,MAAM,OAAO,UAAS,KAAK,MAAM,GAAG;AAAA,IACpC,IAAI,WAAU,IAAI,GAAG;AAAA,MACnB,MAAM,QAAiC,CAAC;AAAA,MACxC,YAAY,GAAG,MAAM,OAAO,QAAQ,KAAK,KAAK,GAAG;AAAA,QAC/C,MAAM,YAAY,YAAY,GAAG,GAAG;AAAA,QACpC,IAAI,cAAc;AAAA,UAAW,MAAM,KAAK;AAAA,MAC1C;AAAA,MACA,OAAO,KAAK,OAAO,EAAE,OAAO,MAAM,OAAO,SAAS,YAAY,KAAK,SAAS,GAAG,EAAE,CAAC;AAAA,IACpF;AAAA,IACA,MAAM,MAAM,SAAS,aAAa,SAAS,OAAO,KAAK,OAAO,IAAI;AAAA,IAClE,MAAM,MAAM,OAAO,UAAU,eAAe,KAAK,KAAK,OAAO,GAAG,IAAI,KAAK,MAAM,OAAO,KAAK;AAAA,IAC3F,OAAO,YAAY,KAAK,GAAG;AAAA,EAC7B;AAAA,EACA,IAAI,WAAW,KAAK;AAAA,IAClB,OAAO,MAAM,MAAM,aAAa,IAAI;AAAA,IACpC,MAAM,UAAU,oBAAmB,MAAM,GAAG;AAAA,IAC5C,IAAI,WAAU,OAAO;AAAA,MAAG,OAAO,KAAK,QAAQ,EAAE,IAAI,SAAS,MAAM,YAAY,MAAM,GAAG,GAAG,MAAM,YAAY,WAAW,GAAG,EAAE,CAAC;AAAA,IAC5H,OAAO,YAAY,UAAU,OAAO,WAAW,GAAG;AAAA,EACpD;AAAA,EACA,IAAI,SAAS,KAAK;AAAA,IAChB,OAAO,GAAG,KAAM,IAAI,IAA2B,IAAI,CAAC,MAAM,YAAY,GAAG,GAAG,CAAC;AAAA,IAC7E,IAAI,WAAU,CAAC,KAAK,WAAU,CAAC;AAAA,MAAG,OAAO,KAAK,MAAM,EAAE,GAAG,EAAE,CAAC;AAAA,IAC5D,OAAO,aAAY,GAAG,CAAC;AAAA,EACzB;AAAA,EACA,IAAI,SAAS,KAAK;AAAA,IAChB,OAAO,GAAG,KAAM,IAAI,IAA2B,IAAI,CAAC,MAAM,YAAY,GAAG,GAAG,CAAC;AAAA,IAC7E,IAAI,WAAU,CAAC,KAAK,WAAU,CAAC;AAAA,MAAG,OAAO,KAAK,MAAM,EAAE,GAAG,EAAE,CAAC;AAAA,IAC5D,OAAO,SAAS,CAAC,IAAI,SAAS,CAAC;AAAA,EACjC;AAAA,EACA,IAAI,UAAU,KAAK;AAAA,IACjB,OAAO,GAAG,KAAM,IAAI,KAA4B,IAAI,CAAC,MAAM,YAAY,GAAG,GAAG,CAAC;AAAA,IAC9E,IAAI,WAAU,CAAC,KAAK,WAAU,CAAC;AAAA,MAAG,OAAO,KAAK,OAAO,EAAE,GAAG,EAAE,CAAC;AAAA,IAC7D,OAAO,SAAS,CAAC,IAAI,SAAS,CAAC;AAAA,EACjC;AAAA,EACA,IAAI,UAAU,KAAK;AAAA,IACjB,OAAO,GAAG,KAAM,IAAI,KAA4B,IAAI,CAAC,MAAM,YAAY,GAAG,GAAG,CAAC;AAAA,IAC9E,IAAI,WAAU,CAAC,KAAK,WAAU,CAAC;AAAA,MAAG,OAAO,KAAK,OAAO,EAAE,GAAG,EAAE,CAAC;AAAA,IAC7D,OAAO,SAAS,CAAC,IAAI,SAAS,CAAC;AAAA,EACjC;AAAA,EACA,IAAI,YAAY,KAAK;AAAA,IACnB,OAAO,GAAG,KAAK,OAAQ,IAAI,OAAuC,IAAI,CAAC,MAAM,YAAY,GAAG,GAAG,CAAC;AAAA,IAChG,IAAI,WAAU,CAAC,KAAK,WAAU,GAAG,KAAK,WAAU,GAAG;AAAA,MAAG,OAAO,KAAK,SAAS,EAAE,OAAO,GAAG,KAAK,IAAI,CAAC;AAAA,IACjG,OAAO,aAAY,GAAG,KAAK,GAAG;AAAA,EAChC;AAAA,EACA,IAAI,WAAW,KAAK;AAAA,IAGlB,OAAO,UAAU,UAAU,IAAI;AAAA,IAC/B,MAAM,SAAkC,CAAC;AAAA,IACzC,YAAY,GAAG,MAAM,OAAO,QAAQ,UAAU,CAAC,CAAC,GAAG;AAAA,MACjD,MAAM,YAAY,YAAY,GAAG,GAAG;AAAA,MACpC,IAAI,cAAc;AAAA,QAAW,OAAO,KAAK;AAAA,IAC3C;AAAA,IACA,OAAO,KAAK,QAAQ,EAAE,UAAU,YAAY,UAAU,GAAG,GAAG,QAAQ,OAAO,CAAC;AAAA,EAC9E;AAAA,EACA,IAAI,cAAc,KAAK;AAAA,IACrB,OAAO,GAAG,OAAQ,IAAI,SAAgC,IAAI,CAAC,MAAM,YAAY,GAAG,GAAG,CAAC;AAAA,IACpF,IAAI,WAAU,CAAC,KAAK,WAAU,GAAG;AAAA,MAAG,OAAO,KAAK,WAAW,EAAE,OAAO,GAAG,IAAI,CAAC;AAAA,IAC5E,OAAO,SAAQ,GAAG,GAAG;AAAA,EACvB;AAAA,EACA,IAAI,WAAW,KAAK;AAAA,IAClB,MAAM,OAAO,IAAI;AAAA,IACjB,MAAM,IAAI,OAAO,SAAS,WAAW,UAAS,MAAM,GAAG,IAAI,YAAY,MAAM,GAAG;AAAA,IAChF,IAAI,WAAU,CAAC;AAAA,MAAG,OAAO,KAAK,QAAQ,EAAE,OAAO,EAAE,CAAC;AAAA,IAClD,OAAO,MAAM,aAAa,MAAM,OAAO,YAAY,OAAO,CAAC;AAAA,EAC7D;AAAA,EACA,IAAI,eAAe,KAAK;AAAA,IACtB,MAAM,MAAiB,CAAC;AAAA,IACxB,WAAW,aAAa,IAAI,WAAwB;AAAA,MAClD,MAAM,IAAI,YAAY,WAAW,GAAG;AAAA,MACpC,IAAI,MAAM;AAAA,QAAW;AAAA,MACrB,IAAI,WAAU,CAAC,GAAG;AAAA,QAChB,IAAI,KAAK,CAAC;AAAA,QACV;AAAA,MACF;AAAA,MACA,IAAI,CAAC,QAAO,CAAC;AAAA,QAAG;AAAA,MAChB,IAAI,IAAI,WAAW;AAAA,QAAG,OAAO;AAAA,MAC7B,IAAI,KAAK,CAAC;AAAA,MACV;AAAA,IACF;AAAA,IACA,IAAI,IAAI,WAAW;AAAA,MAAG;AAAA,IACtB,IAAI,IAAI,WAAW;AAAA,MAAG,OAAO,IAAI;AAAA,IACjC,OAAO,KAAK,YAAY,EAAE,QAAQ,IAAI,CAAC;AAAA,EACzC;AAAA,EACA,IAAI,UAAU,KAAK;AAAA,IACjB,MAAM,UAAU,oBAAmB,IAAI,MAAM,GAAG;AAAA,IAChD,IAAI,WAAU,OAAO;AAAA,MAAG,OAAO,KAAK,OAAO,EAAE,OAAO,QAAQ,CAAC;AAAA,IAC7D,OAAO,CAAC;AAAA,EACV;AAAA,EACA,MAAM,MAA+B,CAAC;AAAA,EACtC,YAAY,GAAG,MAAM,OAAO,QAAQ,GAAG,GAAG;AAAA,IACxC,MAAM,YAAY,WAAU,GAAG,GAAG;AAAA,IAClC,IAAI,cAAc;AAAA,MAAW;AAAA,IAC7B,MAAM,MAAM,EAAE,SAAS,GAAG,IAAI,WAAU,GAAG,GAAG,IAAI;AAAA,IAClD,IAAI,OAAO,QAAQ,WAAW,MAAM,KAAK;AAAA,EAC3C;AAAA,EACA,OAAO;AAAA;AAKF,SAAS,QAAO,CAAC,OAAgB,KAAsB;AAAA,EAC5D,MAAM,IAAI,SAAS,GAAG;AAAA,EACtB,MAAM,MAAM,IAAI,IAAK,SAAS,KAAK,IAAI,IAAK,MAAM;AAAA,EAClD,MAAM,UAAU,KAAK,IAAI,KAAK,KAAK,IAAI,GAAG,GAAG,CAAC;AAAA,EAC9C,OAAO,GAAG,KAAK,MAAM,UAAU,GAAG,IAAI;AAAA;AAWjC,SAAS,YAAW,CAAC,OAAgB,OAAgB,QAAiB,OAA2B;AAAA,EACtG,IAAI,CAAC,MAAM,QAAQ,KAAK;AAAA,IAAG,OAAO,CAAC;AAAA,EACnC,MAAM,SAAS,OAAO,UAAU,WAAW,MAAM,KAAK,EAAE,YAAY,IAAI,OAAO,UAAU,WAAW,OAAO,KAAK,IAAI;AAAA,EACpH,MAAM,OAAO,MAAM,QAAQ,MAAM,IAAI,OAAO,OAAO,CAAC,MAAmB,OAAO,MAAM,QAAQ,IAAI;AAAA,EAChG,MAAM,aAAa,OAAO,UAAU,YAAY,UAAU,QAAQ,CAAC,MAAM,QAAQ,KAAK,IAAI,OAAO,QAAQ,KAAgC,EAAE,OAAO,IAAI,OAAO,MAAM,aAAa,MAAM,QAAQ,MAAM,EAAE,IAAI,CAAC;AAAA,EAC3M,MAAM,aAAa,CAAC,MAAgB,OAAO,MAAM,WAAW,IAAI,OAAO,MAAM,WAAW,OAAO,CAAC,IAAI;AAAA,EACpG,OAAO,MAAM,OAAO,CAAC,SAAS;AAAA,IAC5B,MAAM,SAAS,OAAO,SAAS,YAAY,SAAS,QAAQ,CAAC,MAAM,QAAQ,IAAI,IAAK,OAAmC;AAAA,IACvH,YAAY,OAAO,SAAS;AAAA,MAAY,IAAI,CAAC,aAAY,SAAS,QAAQ,IAAI;AAAA,QAAG,OAAO;AAAA,IACxF,IAAI,WAAW;AAAA,MAAI,OAAO;AAAA,IAC1B,MAAM,SAAS,UAAU,QAAQ,OAAO,KAAK,MAAM,GAAG,IAAI,CAAC,MAAM,OAAO,EAAE,IAAI,CAAC,IAAI;AAAA,IACnF,OAAO,OAAO,KAAK,CAAC,MAAM,WAAW,CAAC,GAAG,YAAY,EAAE,SAAS,MAAM,KAAK,KAAK;AAAA,GACjF;AAAA;AAOI,IAAM,kBAA6E;AAAA,EACxF,SAAS,GAAG,OAAO,UAAU,SAAQ,OAAO,GAAG;AAAA,EAC/C,KAAK,GAAG,GAAG,QAAQ,SAAS,CAAC,IAAI,SAAS,CAAC;AAAA,EAC3C,KAAK,GAAG,GAAG,QAAQ,SAAS,CAAC,IAAI,SAAS,CAAC;AAAA,EAC3C,IAAI,GAAG,GAAG,QAAQ,aAAY,GAAG,CAAC;AAAA,EAClC,IAAI,GAAG,GAAG,QAAQ,SAAS,CAAC,IAAI,SAAS,CAAC;AAAA,EAC1C,OAAO,GAAG,OAAO,KAAK,UAAU,aAAY,OAAO,KAAK,GAAG;AAAA,EAC3D,MAAM,GAAG,IAAI,MAAM,MAAM,MAAM,gBAAiB,QAAO,IAAI,IAAI,OAAO;AAAA,EACtE,UAAU,GAAG,OAAO,SAAS,eAAgB,UAAU,aAAa,UAAU,OAAO,WAAW;AAAA,EAChG,QAAQ,GAAG,aAAc,MAAM,QAAQ,MAAM,IAAI,OAAO,IAAI,CAAC,MAAO,MAAM,aAAa,MAAM,OAAO,KAAK,OAAO,CAAC,CAAE,EAAE,KAAK,EAAE,IAAI;AAAA,EAChI,UAAU,GAAG,aAAc,MAAM,QAAQ,MAAM,IAAI,OAAO,KAAK,OAAM,IAAI;AAAA,EACzE,MAAM,GAAG,YAAa,UAAU,aAAa,UAAU,OAAO,YAAY,OAAO,KAAK;AAAA,EACtF,KAAK,GAAG,OAAO,OAAO,SAAS,eAAe;AAAA,IAC5C,MAAM,MAAM,UAAU,aAAa,UAAU,OAAO,KAAK,OAAO,KAAK;AAAA,IACrE,MAAM,QAAS,SAAS,CAAC;AAAA,IACzB,OAAO,OAAO,UAAU,eAAe,KAAK,OAAO,GAAG,IAAI,MAAM,OAAO;AAAA;AAAA,EAEzE,KAAK,GAAG,YAAa,MAAM,QAAQ,KAAK,IAAI,MAAM,SAAS,OAAO,UAAU,WAAW,MAAM,SAAS;AAAA,EACtG,MAAM,GAAG,UAAU,aAAa,cAAa,UAAU,MAAM;AAAA,EAC7D,QAAQ,GAAG,OAAO,OAAO,QAAQ,YAAY,aAAY,OAAO,OAAO,QAAQ,KAAK;AAAA,EAIpF,eAAe,0BAAyB;AAAA,EACxC,oBAAoB,0BAAyB;AAC/C;AACO,IAAM,uBAAyC,OAAO,KAAK,eAAc;;;;;;;;;;;;;ACzYzE,IAAM,UAA2C,OAAO,YAAY,OAAO,QAAQ,cAAU,EAAE,OAAO,EAAE,OAAO,CAAC,EAAE,WAAW,GAAG,CAAC,CAAC;AAElI,IAAM,kBAAyB,eAAW;AAE1C,IAAM,aAAoB,eAAW;AAErC,IAAM,qBAA4B,eAAW;AAE7C,IAAM,sBAA6B,eAAW;AAE9C,IAAM,qBAA4B,eAAW;AAE7C,IAAM,wBAA+B,eAAW;AAGhD,IAAM,gBAAe;AAAA,EAC1B,WAAW;AAAA,EACX,OAAO,uBAAuB;AAAA,EAC9B,YAAY,sBAAsB;AAAA,EAClC,eAAe,uBAAuB;AAAA,EACtC,cAAc,uBAAuB;AACvC;;;ACGA,IAAM,WAAW,CAAC,UAAkB,MAAM,QAAQ,OAAO,GAAG,EAAE,QAAQ,OAAO,GAAG;AAKhF,SAAS,GAAM,CAAC,OAAsC,KAA4B;AAAA,EAChF,OAAO,UAAU,aAAa,OAAO,UAAU,eAAe,KAAK,OAAO,GAAG,IAAI,MAAM,OAAO;AAAA;AAGzF,SAAS,aAAY,CAAC,MAAc,QAAmB,CAAC,GAAW;AAAA,EACxE,IAAI,KAAK,WAAW,GAAG;AAAA,IAAG,OAAO;AAAA,EACjC,MAAM,OAAO,MAAM,QAAQ;AAAA,EAC3B,IAAI,SAAS;AAAA,IAAI,OAAO;AAAA,EACxB,OAAO,GAAG,QAAQ;AAAA;AAIb,SAAS,QAAO,CAAC,OAAuC;AAAA,EAC7D,OAAO,UAAU,aAAa,OAAO,UAAU,eAAe,KAAK,OAAO,MAAM;AAAA;AAK3E,SAAS,SAAQ,CAAC,MAAe,MAAc,QAAmB,CAAC,GAAY;AAAA,EACpF,IAAI,CAAC,KAAK,WAAW,GAAG,KAAK,SAAQ,KAAK;AAAA,IAAG,OAAO,SAAS,KAAK,MAAM,OAAO,aAAY,MAAM,MAAM,IAAI,MAAM;AAAA,EACjH,OAAO,aAAY,MAAM,cAAa,MAAM,KAAK,CAAC;AAAA;AAIpD,IAAM,QAAQ;AAOP,SAAS,YAAW,CAAC,MAAe,SAA0B;AAAA,EACnE,IAAI,YAAY,MAAM,YAAY;AAAA,IAAK,OAAO;AAAA,EAC9C,IAAI,MAAe;AAAA,EAInB,WAAW,QAAQ,QAAQ,WAAW,GAAG,IAAI,QAAQ,MAAM,CAAC,IAAI,SAAS,MAAM,GAAG,GAAG;AAAA,IACnF,IAAI,QAAQ,aAAa,QAAQ,QAAQ,OAAO,QAAQ;AAAA,MAAU;AAAA,IAClE,MAAM,QAAQ,SAAS,GAAG;AAAA,IAC1B,IAAI,MAAM,QAAQ,GAAG;AAAA,MAAG,MAAM,UAAU,MAAM,IAAI,GAAG,EAAE,IAAI,MAAM,KAAK,KAAK,IAAI,IAAI,OAAO,KAAK,KAAK;AAAA,IACpG;AAAA,MAAK,MAAM,OAAO,UAAU,eAAe,KAAK,KAAK,KAAK,IAAK,IAAgC,SAAS;AAAA,EAC1G;AAAA,EACA,OAAO;AAAA;AAST,IAAM,aAAa,CAAC,SAAiB,IAAI,YAAY,EAAE,OAAO,IAAI,EAAE;AAG7D,SAAS,YAAW,CAAC,SAAoC;AAAA,EAC9D,IAAI,WAAW,OAAO,IAAI;AAAA,IAAmB,OAAO,gBAAe;AAAA,EACnE,IAAI,YAAY,MAAM,YAAY;AAAA,IAAK,OAAO,CAAC;AAAA,EAC/C,MAAM,UAAU,QAAQ,WAAW,GAAG,IAAI,QAAQ,MAAM,CAAC,IAAI,SAAS,MAAM,GAAG;AAAA,EAC/E,IAAI,OAAO,SAAS;AAAA,IAAsB,OAAO,gBAAe;AAAA,EAChE,OAAO,OAAO,IAAI,QAAQ;AAAA;AAIrB,IAAM,kBAAiB;AAAA,EAC5B,OAAO,6BAA6B;AAAA,EACpC,UAAU,+BAA+B;AAAA,EACzC,UAAU,CAAC,UAAkB,SAAS,KAAK,UAAU,KAAK;AAAA,EAC1D,SAAS,CAAC,OAAe,WAAmB,eAAe,uCAAuC;AACpG;AAKA,SAAS,UAAU,CAAC,OAAe,QAAiC;AAAA,EAClE,IAAI,UAAU;AAAA,IAAK,OAAO;AAAA,EAC1B,IAAI,CAAC,MAAM,KAAK,KAAK;AAAA,IAAG,OAAO,gBAAe,SAAS,KAAK;AAAA,EAC5D,MAAM,QAAQ,OAAO,KAAK;AAAA,EAC1B,OAAO,SAAS,SAAS,QAAQ,gBAAe,QAAQ,OAAO,MAAM;AAAA;AAGvE,SAAS,MAAM,CAAC,QAAiC,KAAa,OAAsB;AAAA,EAClF,OAAO,eAAe,QAAQ,KAAK,EAAE,OAAO,UAAU,MAAM,YAAY,MAAM,cAAc,KAAK,CAAC;AAAA;AAS7F,SAAS,aAAY,CAAC,MAAe,SAAiB,OAA8B;AAAA,EACzF,MAAM,SAAS,aAAY,OAAO;AAAA,EAClC,IAAI,OAAO,WAAW;AAAA,IAAU,OAAO,EAAE,MAAM,OAAO,OAAO;AAAA,EAC7D,IAAI,OAAO,WAAW;AAAA,IAAG,OAAO,EAAE,MAAM,UAAU,YAAY,CAAC,IAAI,MAAM;AAAA,EACzE,MAAM,QAAiD,CAAC;AAAA,EACxD,MAAM,OAA4B,CAAC;AAAA,EACnC,IAAI,MAAe;AAAA,EACnB,SAAS,IAAI,EAAG,IAAI,OAAO,QAAQ,KAAK;AAAA,IACtC,MAAM,QAAQ,OAAO;AAAA,IACrB,MAAM,OAAO,MAAM,OAAO,SAAS;AAAA,IACnC,IAAI,MAAM,QAAQ,GAAG,GAAG;AAAA,MACtB,MAAM,QAAQ,WAAW,OAAO,IAAI,MAAM;AAAA,MAC1C,IAAI,OAAO,UAAU;AAAA,QAAU,OAAO,EAAE,MAAM,OAAO,MAAM;AAAA,MAC3D,MAAM,OAAO,CAAC,GAAG,GAAG;AAAA,MACpB,IAAI,CAAC;AAAA,QAAM,MAAM,KAAK;AAAA,MACtB,KAAK,IAAI,UAAU,WAAW;AAAA,QAC5B,IAAI,QAAQ,KAAK;AAAA,UAAQ,KAAK,OAAO,OAAO,CAAC;AAAA,MAC/C,EAAE;AAAA,QAAK,KAAK,SAAS;AAAA,MACrB,MAAM,KAAK,IAAI;AAAA,MACf,KAAK,KAAK,KAAK;AAAA,IACjB,EAAE,KAAK;AAAA,MACL,MAAM,OAAgC,CAAC;AAAA,MACvC,IAAI,QAAQ,QAAQ,OAAO,QAAQ;AAAA,QAAU,YAAY,GAAG,MAAM,OAAO,QAAQ,GAAG;AAAA,UAAG,OAAO,MAAM,GAAG,CAAC;AAAA,MACxG,IAAI,CAAC;AAAA,QAAM,MAAM,OAAO,UAAU,eAAe,KAAK,MAAM,KAAK,IAAI,KAAK,SAAS;AAAA,MACnF,KAAK,IAAI,UAAU;AAAA,QAAW,OAAO,KAAK;AAAA,MAC1C;AAAA,QAAK,OAAO,MAAM,OAAO,KAAK;AAAA,MAC9B,MAAM,KAAK,IAAI;AAAA,MACf,KAAK,KAAK,KAAK;AAAA;AAAA,EAEnB;AAAA,EACA,SAAS,IAAI,MAAM,SAAS,EAAG,KAAK,GAAG,KAAK;AAAA,IAC1C,MAAM,SAAS,MAAM;AAAA,IACrB,IAAI,MAAM,QAAQ,MAAM;AAAA,MAAG,OAAO,KAAK,MAAgB,MAAM,IAAI;AAAA,IACjE;AAAA,MAAK,OAAO,QAAQ,KAAK,IAAc,MAAM,IAAI,EAAE;AAAA,EACrD;AAAA,EACA,OAAO,EAAE,MAAM,MAAM,GAAG;AAAA;AAK1B,IAAM,kBAA8E;AAAA,EAClF,KAAK,GAAG,aAAa,MAAM,QAAQ,MAAM,KAAK,OAAO,MAAM,OAAM;AAAA,EACjE,IAAI,GAAG,aAAa,MAAM,QAAQ,MAAM,KAAK,OAAO,KAAK,OAAM;AAAA,EAC/D,KAAK,GAAG,YAAY,CAAC,QAAO,KAAK;AAAA,EACjC,UAAU,GAAG,YAAY,QAAO,KAAK,KAAK,EAAE,MAAM,QAAQ,KAAK,KAAK,MAAM,WAAW;AACvF;AAWO,IAAM,kBAAgC,KAAK,oBAAoB,oBAAmB,0BAAyB;AAC3G,IAAM,uBAAyC,OAAO,KAAK,eAAc;AAmBhF,IAAM,eAAoC,IAAI,IAAI,sBAAqB;AACvE,IAAM,gBAAgB,IAAI;AAE1B,SAAS,WAAW,CAAC,SAAoD;AAAA,EACvE,IAAI,CAAC,QAAQ,aAAa,CAAC,QAAQ;AAAA,IAAK;AAAA,EACxC,MAAM,YAAY,QAAQ,cAAc,YAAY,kBAAiB;AAAA,EACrE,IAAI,QAAQ;AAAA,IAAK,OAAO,iBAAgB,WAAW,QAAQ,GAAG;AAAA,EAC9D,IAAI,QAAQ,cAAc,IAAI,SAAS;AAAA,EACvC,IAAI,CAAC;AAAA,IAAO,cAAc,IAAI,WAAY,QAAQ,iBAAgB,SAAS,CAAE;AAAA,EAC7E,OAAO;AAAA;AAGT,IAAI;AAIG,SAAS,eAAc,CAAC,OAAgB,MAAe,UAA0B,CAAC,GAAY;AAAA,EACnG,IAAI,WAAU,KAAK;AAAA,IAAG,OAAO,UAAS,MAAM,MAAM,MAAM,QAAQ,KAAK;AAAA,EACrE,IAAI,QAAO,KAAK,GAAG;AAAA,IACjB,MAAM,OAAgC,CAAC;AAAA,IACvC,YAAY,GAAG,MAAM,OAAO,QAAQ,MAAM,QAAQ,CAAC,CAAC;AAAA,MAAG,KAAK,KAAK,gBAAe,GAAG,MAAM,OAAO;AAAA,IAEhG,MAAM,KAAK,IAAI,QAAQ,WAAW,MAAM,IAAI,MAAM,aAAa,IAAI,MAAM,IAAI,IAAI,IAAI,YAAY,OAAO,GAAG,MAAM,IAAI,IAAI,cAAc,IAAI,iBAAgB,MAAM,IAAI;AAAA,IACrK,OAAO,KAAK,GAAG,IAAI,IAAI;AAAA,EACzB;AAAA,EACA,IAAI,OAAO,UAAU;AAAA,IAAU,OAAO,QAAQ,UAAU,eAAc,OAAO,QAAQ,OAAO,IAAI;AAAA,EAChG,IAAI,MAAM,QAAQ,KAAK;AAAA,IAAG,OAAO,MAAM,IAAI,CAAC,MAAM,gBAAe,GAAG,MAAM,OAAO,CAAC;AAAA,EAClF,IAAI,OAAO,UAAU,YAAY,UAAU,MAAM;AAAA,IAC/C,MAAM,MAA+B,CAAC;AAAA,IACtC,YAAY,GAAG,MAAM,OAAO,QAAQ,KAAK,GAAG;AAAA,MAC1C,MAAM,IAAI,gBAAe,GAAG,MAAM,OAAO;AAAA,MACzC,IAAI,MAAM;AAAA,QAAW,IAAI,KAAK;AAAA,IAChC;AAAA,IACA,OAAO;AAAA,EACT;AAAA,EACA,OAAO;AAAA;AAIF,SAAS,UAAS,CAAC,SAAkB,MAAe,UAA0B,CAAC,GAAY;AAAA,EAChG,IAAI,YAAY;AAAA,IAAW,OAAO;AAAA,EAClC,OAAO,QAAO,gBAAe,SAAS,MAAM,OAAO,CAAC;AAAA;AAwB/C,SAAS,cAAa,CAAC,MAAe,OAAgC,KAA0C,QAAmB,CAAC,GAAY;AAAA,EACrJ,IAAI,MAAM;AAAA,EACV,YAAY,KAAK,UAAU,OAAO,QAAQ,OAAO,CAAC,CAAC,GAAG;AAAA,IACpD,MAAM,QAAQ,MAAM;AAAA,IACpB,IAAI,CAAC,WAAU,KAAK;AAAA,MAAG;AAAA,IACvB,IAAI,CAAC,MAAM,KAAK,WAAW,GAAG,KAAK,SAAQ,KAAK;AAAA,MAAG;AAAA,IAEnD,MAAM,cAAa,KAAK,cAAa,MAAM,MAAM,KAAK,GAAG,KAAK,EAAE;AAAA,EAClE;AAAA,EACA,OAAO;AAAA;AAKF,IAAM,qBAAwC,CAAC,UAAU,UAAU,eAAe,WAAW,WAAW,QAAQ,OAAO;AAC9H,IAAM,WAAgC,IAAI,IAAI,kBAAkB;AAWzD,SAAS,oBAAmB,CAAC,MAAc,QAA+B;AAAA,EAC/E,MAAM,OAAO,CAAC,GAAW,YAAsD;AAAA,IAC7E,MAAM,OAAO,SAAS,IAAI,EAAE,SAAS,KAAK,EAAE,OAAO,SAAS,IAAI;AAAA,IAChE,IAAI,EAAE,OAAO,UAAU,EAAE,cAAc;AAAA,MAAQ,OAAO;AAAA,IACtD,WAAW,QAAQ,OAAO,OAAO,EAAE,SAAS,CAAC,CAAC,GAAG;AAAA,MAC/C,MAAM,MAAM,KAAK,MAAM,IAAI;AAAA,MAC3B,IAAI,QAAQ;AAAA,QAAW,OAAO;AAAA,IAChC;AAAA,IACA,WAAW,SAAS,EAAE,UAAU;AAAA,MAC9B,MAAM,MAAM,KAAK,OAAO,IAAI;AAAA,MAC5B,IAAI,QAAQ;AAAA,QAAW,OAAO;AAAA,IAChC;AAAA,IACA;AAAA;AAAA,EAEF,MAAM,UAAU,KAAK,MAAM,IAAI;AAAA,EAC/B,IAAI,CAAC,WAAY,QAAQ,cAAc,YAAY,QAAQ,cAAc,YAAa,QAAQ,MAAM,gBAAgB;AAAA,IAAO,OAAO;AAAA,EAClI,OAAO,QAAQ;AAAA;AAMV,SAAS,UAAS,CAAC,QAAgB,MAAe,UAA0B,CAAC,GAAkB;AAAA,EACpG,MAAM,MAAqB,EAAE,KAAK;AAAA,EAClC,MAAM,QAAQ,OAAO,QACjB,EAAE,MAAM,OAAO,MAAM,SAAU,OAAO,MAAM,UAAU,EAAE,SAAS,gBAAe,OAAO,MAAM,SAAS,MAAM,OAAO,EAA6B,IAAI,CAAC,EAAG,IACxJ;AAAA,EAEJ,MAAM,KAAK,OAAO;AAAA,EAClB,IAAI,IAAI;AAAA,IACN,MAAM,OAAO,gBAAe,GAAG,QAAQ,CAAC,GAAG,MAAM,OAAO;AAAA,IACxD,IAAI,GAAG,SAAS,OAAO;AAAA,MAErB,IAAI,OAAO,KAAK,SAAS,aAAa,KAAK,KAAK,WAAW,GAAG,KAAK,CAAC,SAAQ,QAAQ,KAAK,IAAI;AAAA,QAC3F,MAAM,UAAU,cAAa,KAAK,MAAM,QAAQ,KAAK;AAAA,QAGrD,MAAM,UAAU,cAAa,MAAM,SAAS,KAAK,UAAU,YAAY,OAAO,KAAK,KAAK;AAAA,QACxF,MAAM,QAAQ,KAAK,UAAU,aAAa,CAAC,QAAQ,QAAQ,cAAa,QAAQ,MAAM,SAAS,SAAS,IAAI;AAAA,QAC5G,IAAI,OAAO,MAAM;AAAA,QACjB,IAAI,MAAM;AAAA,UAAO,IAAI,QAAQ,MAAM;AAAA,MACrC;AAAA,IACF,EAAE;AAAA,MAAK,IAAI,OAAO,EAAE,MAAM,GAAG,MAAM,KAAK;AAAA,EAC1C;AAAA,EACA,IAAI;AAAA,IAAO,IAAI,QAAQ;AAAA,EACvB,OAAO;AAAA;AAQF,SAAS,aAAY,CAAC,QAAyC;AAAA,EACpE,IAAI,CAAC;AAAA,IAAQ,OAAO;AAAA,EACpB,IAAI,OAAO,SAAS;AAAA,IAAU,OAAO,OAAO,UAAU;AAAA,EACtD,IAAI,OAAO,SAAS;AAAA,IAAS,OAAO,OAAO,UAAU,aAAa,cAAa,OAAO,KAAK;AAAA,EAC3F,OAAO;AAAA;AAGT,IAAM,QAAQ,CAAC,MAA6C,OAAO,MAAM,YAAY,MAAM,QAAQ,CAAC,MAAM,QAAQ,CAAC;AAK5G,SAAS,YAAW,CAAC,OAAgB,QAAgC,MAAe,UAA0B,CAAC,GAAG,OAAmE,CAAC,GAAY;AAAA,EACvM,IAAI,WAAU,KAAK;AAAA,IAAG,OAAO,gBAAe,OAAO,MAAM,OAAO;AAAA,EAChE,IAAI,cAAa,MAAM;AAAA,IAAG,OAAO;AAAA,EACjC,IAAI,QAAQ,SAAS,WAAW,OAAO,SAAS,MAAM,QAAQ,KAAK;AAAA,IAAG,OAAO,MAAM,IAAI,CAAC,SAAS,aAAY,MAAM,OAAO,OAAO,MAAM,SAAS,IAAI,CAAC;AAAA,EACrJ,MAAM,QAAQ,QAAQ,SAAS,YAAY,OAAO,QAAQ,KAAK,OAAO,SAAS;AAAA,EAC/E,IAAI,SAAS,MAAM,KAAK,GAAG;AAAA,IACzB,MAAM,MAA+B,CAAC;AAAA,IACtC,YAAY,GAAG,MAAM,OAAO,QAAQ,KAAK,GAAG;AAAA,MAC1C,MAAM,IAAI,aAAY,GAAG,MAAM,WAAW,IAAI,MAAM,SAAS,IAAI;AAAA,MACjE,IAAI,MAAM;AAAA,QAAW,IAAI,KAAK;AAAA,IAChC;AAAA,IACA,OAAO;AAAA,EACT;AAAA,EACA,OAAO,gBAAe,OAAO,MAAM,OAAO;AAAA;AAKrC,SAAS,iBAAgB,CAAC,KAA+B,OAAgC,MAAe,UAA0B,CAAC,GAAG,OAAmE,CAAC,GAA4B;AAAA,EAC3O,MAAM,MAA+B,CAAC;AAAA,EACtC,YAAY,GAAG,MAAM,OAAO,QAAQ,KAAK,GAAG;AAAA,IAC1C,MAAM,IAAI,aAAY,GAAG,KAAK,MAAM,IAAI,MAAM,SAAS,IAAI;AAAA,IAC3D,IAAI,MAAM;AAAA,MAAW,IAAI,KAAK;AAAA,EAChC;AAAA,EACA,OAAO;AAAA;AAMF,SAAS,YAAW,CAAC,KAAwC;AAAA,EAClE,OAAO,KAAK,cAAc;AAAA;AASrB,SAAS,SAAQ,CAAC,UAAmB,MAA0B,OAAe,QAAmB,CAAC,GAAc;AAAA,EACrH,IAAI,WAAU,QAAQ;AAAA,IAAG,OAAO,EAAE,MAAM,GAAG,cAAa,SAAS,MAAM,KAAK,KAAK,QAAQ;AAAA,EACzF,OAAO,KAAM,MAAM,SAAS,YAAY,EAAE,MAAM,MAAM,KAAK,IAAI,CAAC,GAAI,MAAM,KAAK,OAAO;AAAA;AAIjF,SAAS,YAAW,CAAC,MAAc,UAAmB,MAA0B,OAAe,MAAe,UAA0B,CAAC,GAAkB;AAAA,EAChK,OAAO,UAAS,MAAM,MAAM,KAAK,SAAS,OAAO,UAAS,UAAU,MAAM,OAAO,QAAQ,KAAK,EAAE,CAAC;AAAA;AAM5F,SAAS,aAAY,CAAC,SAA2C,OAAe,QAAmB,CAAC,GAAc;AAAA,EACvH,OAAO,KAAM,MAAM,SAAS,YAAY,EAAE,MAAM,MAAM,KAAK,IAAI,CAAC,GAAI,MAAM,EAAE,OAAO,QAAQ,OAAO,OAAO,QAAQ,OAAO,MAAM,EAAE;AAAA;AAI3H,SAAS,kBAAiB,CAAC,MAAc,SAA2C,OAAe,MAAe,UAA0B,CAAC,GAAkB;AAAA,EACpK,OAAO,UAAS,MAAM,MAAM,KAAK,SAAS,OAAO,cAAa,SAAS,OAAO,QAAQ,KAAK,EAAE,CAAC;AAAA;AAWhG,IAAM,UAAU,CAAC,eAAsD,mBAAkB,UAAU;AAE5F,SAAS,SAAQ,CAAC,MAAc,MAAe,UAA0B,CAAC,GAAkB;AAAA,EACjG,MAAM,OAAO,QAAQ,QAAQ,UAAU;AAAA,EACvC,MAAM,OAAO,CAAC,MAA6B;AAAA,IACzC,IAAI,CAAC,WAAU,EAAE,SAAS,MAAM,OAAO;AAAA,MAAG,OAAO;AAAA,IACjD,MAAM,MAAM,KAAK,WAAW,EAAE;AAAA,IAC9B,MAAM,MAAc,EAAE,IAAI,EAAE,IAAI,WAAW,EAAE,WAAW,OAAO,kBAAiB,KAAK,EAAE,OAAO,MAAM,SAAS,KAAK,IAAI,GAAG,UAAU,CAAC,EAAE;AAAA,IACtI,IAAI,EAAE;AAAA,MAAO,IAAI,QAAQ,gBAAe,EAAE,OAAO,MAAM,OAAO;AAAA,IAC9D,IAAI,EAAE;AAAA,MAAI,IAAI,KAAK,EAAE;AAAA,IACrB,IAAI,EAAE,eAAe;AAAA,MACnB,MAAM,OAAO,gBAAe,EAAE,eAAe,MAAM,OAAO;AAAA,MAC1D,IAAI,OAAO,KAAK,IAAI,EAAE,SAAS;AAAA,QAAG,IAAI,gBAAgB;AAAA,IACxD;AAAA,IACA,WAAW,SAAS,EAAE,UAAU;AAAA,MAC9B,MAAM,QAAQ,KAAK,KAAK;AAAA,MACxB,IAAI;AAAA,QAAO,IAAI,SAAS,KAAK,KAAK;AAAA,IACpC;AAAA,IACA,IAAI,EAAE,OAAO;AAAA,MACX,IAAI,aAAY,GAAG;AAAA,QAAG,IAAI,QAAQ,EAAE;AAAA,MACpC;AAAA,QACE,YAAY,MAAM,UAAU,OAAO,QAAQ,EAAE,KAAK,GAAG;AAAA,UACnD,MAAM,QAAQ,KAAK,KAAK;AAAA,UACxB,IAAI;AAAA,aAAQ,IAAI,UAAU,CAAC,GAAG,QAAQ;AAAA,QACxC;AAAA,IACJ;AAAA,IACA,IAAI,EAAE;AAAA,MAAU,IAAI,WAAW,EAAE;AAAA,IACjC,IAAI,EAAE;AAAA,MAAQ,IAAI,SAAS,KAAK,EAAE,QAAQ,OAAO,gBAAe,EAAE,OAAO,OAAO,MAAM,OAAO,EAA6B;AAAA,IAC1H,OAAO;AAAA;AAAA,EAET,OAAO,KAAK,IAAI;AAAA;;;AC/alB,SAAS,cAAc,CAAC,QAA2B,OAAe,OAAwB;AAAA,EACxF,SAAS,KAAK,QAAQ,EAAG,KAAK,OAAO,QAAQ,MAAM,GAAG;AAAA,IACpD,MAAM,QAAQ,OAAO;AAAA,IACrB,IAAI,SAAS;AAAA,MAAO,OAAO;AAAA,IAC3B,IAAI,UAAU,QAAQ;AAAA,MAAG,OAAO;AAAA,EAClC;AAAA,EACA,OAAO;AAAA;AAIF,SAAS,WAAU,CAAC,QAAwC;AAAA,EACjE,OAAO,OAAO,IAAI,CAAC,OAAO,UAAU;AAAA,IAClC,IAAI,SAAS;AAAA,MAAG,OAAO,EAAE,SAAS,MAAM,KAAK,OAAO,aAAa,CAAC,EAAE;AAAA,IACpE,MAAM,cAAwB,CAAC;AAAA,IAC/B,SAAS,QAAQ,EAAG,SAAS,QAAQ,GAAG,SAAS,GAAG;AAAA,MAClD,IAAI,eAAe,QAAQ,OAAO,KAAK;AAAA,QAAG,YAAY,KAAK,KAAK;AAAA,IAClE;AAAA,IACA,OAAO,EAAE,SAAS,QAAQ,GAAG,KAAK,eAAe,QAAQ,OAAO,QAAQ,CAAC,GAAG,YAAY;AAAA,GACzF;AAAA;AAII,SAAS,UAAS,CAAC,MAAuB;AAAA,EAC/C,OAAO,KAAK,QAAQ,UAAU,SAAS,KAAK,OAAO,SAAS;AAAA;AAM9D,SAAS,YAAY,CAAC,MAAsB;AAAA,EAC1C,MAAM,QAAQ,WAAU,IAAI,IAAI,KAAK,QAAQ,MAAM,QAAQ,KAAK,MAAM;AAAA,EACtE,OAAO,OAAO,UAAU,YAAY,OAAO,SAAS,KAAK,KAAK,QAAQ,IAAI,KAAK,MAAM,KAAK,IAAI;AAAA;AAIhG,SAAS,QAAQ,CAAC,MAAuB;AAAA,EACvC,OAAO,CAAC,WAAU,IAAI,KAAK,KAAK,cAAc,gBAAgB,OAAO,KAAK,MAAM,UAAU;AAAA;AAI5F,SAAS,UAAU,CAAC,OAAe,GAAuC;AAAA,EACxE,MAAM,QAAiC,EAAE,MAAM;AAAA,EAC/C,IAAI,EAAE,YAAY;AAAA,IAAM,MAAM,UAAU,EAAE;AAAA,EAC1C,MAAM,MAAM,EAAE;AAAA,EACd,MAAM,cAAc,EAAE;AAAA,EACtB,OAAO;AAAA;AAOT,SAAS,YAAY,CAAC,OAAuB;AAAA,EAC3C,MAAM,SAAS,MAAM,IAAI,YAAY;AAAA,EACrC,MAAM,SAAS,YAAW,MAAM;AAAA,EAChC,MAAM,QAAQ,CAAC,MAAM,MAAM;AAAA,IACzB,MAAM,IAAI,OAAO;AAAA,IACjB,IAAI,WAAU,IAAI,GAAG;AAAA,MACnB,MAAM,OAAO,WAAW,IAAI;AAAA,MAC5B,IAAI;AAAA,QAAM,KAAK,QAAQ,WAAW,OAAO,IAAK,CAAC;AAAA,IACjD,EAAE,KAAK,IAAI,SAAS,IAAI,GAAG;AAAA,MACzB,QAAQ,OAAO,OAAO,UAAU,WAAW,OAAO,IAAK,CAAC;AAAA,MACxD,KAAK,QAAQ,KAAK,KAAK,OAAO,MAAM;AAAA,IACtC;AAAA,GACD;AAAA;AAIH,SAAS,UAAU,CAAC,KAAiC;AAAA,EACnD,OAAO,IAAI,SAAS,KAAK,CAAC,MAAM,EAAE,cAAc,gBAAgB,EAAE,QAAQ,SAAS,QAAQ;AAAA;AAKtF,SAAS,gBAAe,CAAC,MAAsB;AAAA,EACpD,MAAM,QAAQ,CAAC,SAAiB;AAAA,IAC9B,aAAa,KAAK,QAAQ;AAAA,IAC1B,WAAW,QAAQ,OAAO,OAAO,KAAK,SAAS,CAAC,CAAC,GAAG;AAAA,MAElD,aAAa,CAAC,IAAI,CAAC;AAAA,MACnB,MAAM,IAAI;AAAA,IACZ;AAAA,IACA,KAAK,SAAS,QAAQ,KAAK;AAAA;AAAA,EAE7B,aAAa,CAAC,IAAI,CAAC;AAAA,EACnB,MAAM,IAAI;AAAA,EACV,OAAO;AAAA;;;AC5FT,IAAM,YAAY;AAEX,IAAM,eAAiC,cAAa;AAqB3D,SAAS,KAAQ,CAAC,OAAa;AAAA,EAC7B,OAAO,UAAU,YAAY,QAAS,KAAK,MAAM,KAAK,UAAU,KAAK,CAAC;AAAA;AAGxE,IAAM,SAAQ,CAAC,MAA6C,OAAO,MAAM,YAAY,MAAM,QAAQ,CAAC,MAAM,QAAQ,CAAC;AAI5G,SAAS,kBAAiB,CAAC,OAAsE;AAAA,EACtG,IAAI,CAAC,OAAM,KAAK,KAAK,EAAE,UAAU;AAAA,IAAQ,OAAO;AAAA,EAChD,OAAO,OAAO,KAAK,KAAK,EAAE,MAAM,CAAC,MAAM,MAAM,UAAU,aAAY,SAAS,CAAC,CAAC;AAAA;AAKzE,SAAS,aAAY,CAAC,OAAoD,YAAoC;AAAA,EACnH,IAAI,MAAM,MAAM;AAAA,EAChB,IAAI,eAAe;AAAA,IAAM,OAAO;AAAA,EAChC,WAAW,MAAM,cAAa;AAAA,IAC5B,IAAI,MAAM;AAAA,MAAO,MAAM,MAAM;AAAA,IAC7B,IAAI,OAAO;AAAA,MAAY;AAAA,EACzB;AAAA,EACA,OAAO;AAAA;AAKF,SAAS,QAAO,CAAC,OAAgC,YAAoD;AAAA,EAC1G,MAAM,MAA+B,CAAC;AAAA,EACtC,YAAY,GAAG,MAAM,OAAO,QAAQ,KAAK;AAAA,IAAG,IAAI,KAAK,mBAAkB,CAAC,IAAI,cAAa,GAAG,UAAU,IAAI;AAAA,EAC1G,OAAO;AAAA;AAGT,SAAS,kBAAkB,CAAC,OAA2C;AAAA,EACrE,MAAM,OAAO,IAAI;AAAA,EACjB,WAAW,KAAK,OAAO,OAAO,KAAK;AAAA,IAAG,IAAI,mBAAkB,CAAC;AAAA,MAAG,WAAW,KAAK,OAAO,KAAK,CAAC;AAAA,QAAG,IAAI,MAAM;AAAA,UAAQ,KAAK,IAAI,CAAC;AAAA;AAAA,EAC5H,OAAO,aAAY,OAAO,CAAC,OAAO,KAAK,IAAI,EAAE,CAAC,EAAE,IAAI,CAAC,QAAQ,EAAE,YAAY,IAAI,OAAO,SAAQ,OAAO,EAAE,EAAE,EAAE;AAAA;AAG7G,SAAS,UAAU,CACjB,MACA,MACqC;AAAA,EACrC,IAAI,CAAC,QAAQ,CAAC;AAAA,IAAM;AAAA,EACpB,MAAM,MAA+B,KAAM,QAAQ,CAAC,EAAG;AAAA,EACvD,YAAY,GAAG,MAAM,OAAO,QAAQ,QAAQ,CAAC,CAAC,GAAG;AAAA,IAC/C,MAAM,SAAS,OAAO,MAAM,YAAY,MAAM,QAAQ,CAAC,MAAM,QAAQ,CAAC;AAAA,IACtE,IAAI,KAAK,SACL,KAAO,IAAI,MAAkC,CAAC,MAAQ,EAA8B,IACpF;AAAA,EACN;AAAA,EACA,OAAO;AAAA;AAGT,SAAS,YAAY,CACnB,QACA,SACQ;AAAA,EACR,MAAM,MAAM,MAAM,MAAM;AAAA,EACxB,IAAI,WAAW,IAAI,OAAO;AAAA,IACxB,IAAI,MAAM,UAAU,KAAM,IAAI,MAAM,WAAW,CAAC,MAAO,QAAQ;AAAA,EACjE;AAAA,EACA,OAAO;AAAA;AAKT,SAAS,WAAW,CAAC,KAAgB,KAAkB,OAAyC;AAAA,EAC9F,MAAM,QAAiC,CAAC;AAAA,EACxC,MAAM,SAAS,IAAI,KAAK,WAAW,IAAI,QAAQ,SAAS,CAAC;AAAA,EACzD,WAAW,QAAQ,IAAI,IAAI,aAAa;AAAA,IACtC,MAAM,QAAQ,IAAI,UAAU,SAAS,OAAO,OAAO;AAAA,IACnD,IAAI,UAAU;AAAA,MAAW,MAAM,QAAQ;AAAA,EACzC;AAAA,EACA,IAAI,OAAO;AAAA,IACT,MAAM,YAAY,WAAU,OAAO,GAAG;AAAA,IACtC,YAAY,GAAG,MAAM,OAAO,QAAQ,SAAS;AAAA,MAAG,MAAM,KAAK;AAAA,EAC7D;AAAA,EACA,OAAO;AAAA;AAGT,SAAS,KAAK,CAAC,YAAuB,IAA2B;AAAA,EAC/D,IAAI,WAAW,WAAW;AAAA,IAAG,OAAO,WAAW;AAAA,EAC/C,OAAO,EAAE,MAAM,IAAI,MAAM,EAAE,QAAQ,WAAW,EAAE;AAAA;AAKlD,SAAS,gBAAgB,CAAC,KAAoB,KAAqC;AAAA,EACjF,MAAM,QAAmB,CAAC;AAAA,EAC1B,IAAI,IAAI,QAAQ,WAAW;AAAA,IACzB,MAAM,QAAQ,MAAM,QAAQ,IAAI,GAAG,IAAI,IAAI,MAAM,CAAC,IAAI,GAAG;AAAA,IACzD,WAAW,KAAK,OAAO;AAAA,MACrB,MAAM,IAAI,oBAAmB,GAAG,GAAG;AAAA,MACnC,IAAI,MAAM;AAAA,QAAO,OAAO;AAAA,MACxB,IAAI,MAAM;AAAA,QAAM,MAAM,KAAK,CAAC;AAAA,IAC9B;AAAA,EACF;AAAA,EACA,IAAI,IAAI,SAAS,WAAW;AAAA,IAC1B,IAAI,UAAU;AAAA,IACd,MAAM,MAAiB,CAAC;AAAA,IACxB,WAAW,KAAK,IAAI,MAAM;AAAA,MACxB,MAAM,IAAI,oBAAmB,GAAG,GAAG;AAAA,MACnC,IAAI,MAAM,MAAM;AAAA,QACd,UAAU;AAAA,QACV;AAAA,MACF;AAAA,MACA,IAAI,MAAM;AAAA,QAAO,IAAI,KAAK,CAAC;AAAA,IAC7B;AAAA,IACA,IAAI,CAAC,SAAS;AAAA,MACZ,IAAI,IAAI,WAAW;AAAA,QAAG,OAAO;AAAA,MAC7B,MAAM,KAAK,MAAM,KAAK,IAAI,CAAC;AAAA,IAC7B;AAAA,EACF;AAAA,EACA,OAAO,MAAM,WAAW,IAAI,OAAO,MAAM,OAAO,KAAK;AAAA;AAGvD,SAAS,cAAc,CACrB,KACA,KACA,KACA,UACU;AAAA,EACV,MAAM,UAAU,iBAAiB,KAAK,GAAG;AAAA,EACzC,IAAI,YAAY;AAAA,IAAO,OAAO,CAAC;AAAA,EAC/B,MAAM,UAAU,YAAY,OAAO,YAAY;AAAA,EAC/C,IAAI,IAAI,UAAU,WAAW;AAAA,IAC3B,MAAM,QAAQ,WAAU,IAAI,IAAI,UAAU,GAAG;AAAA,IAC7C,IAAI,CAAC,MAAM,QAAQ,KAAK;AAAA,MAAG,OAAO,CAAC;AAAA,IACnC,MAAM,KAAK,IAAI,OAAO;AAAA,IACtB,OAAO,MAAM,IAAI,CAAC,MAAM,UACtB,UAAU,KAAK,KAAK,KAAK,KAAK,MAAM,KAAK,IAAI,OAAO,KAAK,MAAM,MAAM,EAAE,GAAG,GAAG,YAAY,IAAI,QAAQ,SAAS,OAAO,CACvH;AAAA,EACF;AAAA,EACA,MAAM,KAAK,IAAI,SAAS,SAAS,IAAI,OAAO,KAAK,GAAG,YAAY,IAAI;AAAA,EACpE,OAAO,CAAC,UAAU,KAAK,KAAK,KAAK,IAAI,OAAO,CAAC;AAAA;AAG/C,IAAM,QAAQ,CAAC,MAAe,KAAK,UAAU,CAAC;AAI9C,SAAS,SAAS,CAAC,KAAoB,KAAgB,KAAuD;AAAA,EAC5G,IAAI,CAAC,IAAI;AAAA,IAAO;AAAA,EAChB,MAAM,QAAQ,WAAU,IAAI,OAAO,GAAG;AAAA,EACtC,IAAI,WAAW;AAAA,EACf,WAAW,WAAW,IAAI,UAAU;AAAA,IAClC,MAAM,KAAK,WAAU,IAAI,OAAO,KAAK,KAAK,OAAO,QAAQ,MAAM,CAAC;AAAA,IAChE,MAAM,OAAgC,CAAC;AAAA,IACvC,YAAY,GAAG,MAAM,OAAO,QAAQ,EAAE;AAAA,MAAG,IAAI,CAAC,EAAE,WAAW,GAAG,KAAK,CAAC,EAAE,WAAW,GAAG,KAAK,MAAM,SAAS,EAAE,MAAM,MAAM,CAAC;AAAA,QAAG,KAAK,KAAK;AAAA,IACpI,IAAI,OAAO,KAAK,IAAI,EAAE,SAAS,GAAG;AAAA,MAChC,MAAM,MAAM,kCAAkC,QAAQ;AAAA,MACtD,MAAM,OAAO,KAAO,MAAM,QAAoC,CAAC,MAAO,KAAK;AAAA,IAC7E;AAAA,IACA,WAAW;AAAA,EACb;AAAA,EACA,OAAO,OAAO,KAAK,KAAK,EAAE,SAAS,IAAI,QAAQ;AAAA;AAGjD,SAAS,SAAS,CAChB,KACA,KACA,KACA,IACA,SACQ;AAAA,EACR,MAAM,QAAS,WAAU,IAAI,SAAS,CAAC,GAAG,GAAG,KAAiC,CAAC;AAAA,EAC/E,MAAM,QAAQ,UAAU,KAAK,KAAK,GAAG;AAAA,EACrC,MAAM,OAAe,EAAE,IAAI,WAAW,IAAI,WAAW,OAAO,UAAU,CAAC,EAAE;AAAA,EACzE,IAAI;AAAA,IAAO,KAAK,QAAQ;AAAA,EACxB,IAAI,YAAY;AAAA,IAAW,KAAK,UAAU;AAAA,EAC1C,KAAK,SAAS,EAAE,OAAO,IAAI,OAAO,MAAM,IAAI,MAAM,OAAO,YAAY,KAAK,KAAK,IAAI,OAAO,EAAE;AAAA,EAC5F,IAAI,IAAI,KAAK;AAAA,IACX,MAAM,KAA6B,CAAC;AAAA,IACpC,YAAY,WAAW,eAAe,OAAO,QAAQ,IAAI,GAAG,GAAG;AAAA,MAC7D,MAAM,SAAS,IAAI,OAAO,KAAK;AAAA,MAC/B,IAAI,CAAC;AAAA,QAAQ;AAAA,MACb,IAAI,QAAQ,IAAI,UAAU;AAAA,MAC1B,MAAM,UAAU,IAAI,WACf,WAAU,IAAI,UAAU,GAAG,IAC5B;AAAA,MACJ,GAAG,aAAa,aAAa,QAAQ,OAAO;AAAA,IAC9C;AAAA,IACA,IAAI,OAAO,KAAK,EAAE,EAAE,SAAS;AAAA,MAAG,KAAK,KAAK;AAAA,EAC5C;AAAA,EACA,IAAI,IAAI,MAAM;AAAA,IACZ,YAAY,WAAW,SAAS,OAAO,QAAQ,IAAI,IAAI,GAAG;AAAA,MACxD,MAAM,QAAQ,IAAI,UAAU,KAAK;AAAA,MACjC,IAAI,CAAC,WAAU,KAAK;AAAA,QAAG;AAAA,MACvB,MAAM,KAAM,KAAK,OAAO,CAAC;AAAA,MACzB,IAAI,GAAG,YAAY,cAAc;AAAA,QAI/B,MAAM,aAAa,IAAI,MAAM,cAAc;AAAA,QAC3C,MAAM,UAAU,MAAM,mEAAmE,KAAK;AAAA,QAC9F,IAAI,CAAC,IAAI,QAAQ,KAAK,CAAC,MAAM,EAAE,OAAO,IAAI,OAAO,MAAM,EAAE,YAAY,OAAO;AAAA,UAAG,IAAI,QAAQ,KAAK,EAAE,IAAI,IAAI,OAAO,IAAI,QAAQ,CAAC;AAAA,QAC9H;AAAA,MACF;AAAA,MACA,MAAM,QAAQ,WAAU,KAAK,OAAO,GAAG;AAAA,MACvC,GAAG,aAAa,KAAM,GAAG,cAAc,CAAC,GAAI,cAAc,EAAE,MAAM,OAAO,MAAM,UAAU,YAAY,EAAE,MAAM,MAAM,KAAK,IAAI,EAAE,MAAM,MAAM,MAAM,MAAM,EAAE,EAAE;AAAA,IAC5J;AAAA,EACF;AAAA,EACA,IAAI,IAAI,OAAO;AAAA,IACb,MAAM,OAAO,WAAU,IAAI,OAAO,GAAG;AAAA,IACrC,IAAI,OAAO,KAAK,IAAI,EAAE,SAAS;AAAA,MAAG,KAAK,gBAAgB;AAAA,EACzD;AAAA,EACA,IAAI,IAAI,OAAO;AAAA,IACb,YAAY,MAAM,QAAQ,OAAO,QAAQ,IAAI,KAAK,GAAG;AAAA,MACnD,IAAI,OAAO,QAAQ,UAAU;AAAA,QAC3B,MAAM,OAAO,IAAI,WAAW,QAAQ,IAAI,IAAI,MAAM,CAAC,IAAI;AAAA,QACvD,MAAM,QAAQ,OAAO,IAAI,OAAO,QAAQ,QAAQ;AAAA,QAChD,IAAI;AAAA,WAAQ,KAAK,UAAU,CAAC,GAAG,QAAQ;AAAA,QACvC;AAAA,MACF;AAAA,MACA,OAAO,SAAS,eAAe,KAAK,KAAK,KAAK,EAAE;AAAA,MAChD,IAAI;AAAA,SAAQ,KAAK,UAAU,CAAC,GAAG,QAAQ;AAAA,IACzC;AAAA,EACF;AAAA,EACA,WAAW,SAAS,IAAI,YAAY,CAAC,GAAG;AAAA,IACtC,IAAI,UAAU,aAAa;AAAA,MACzB,KAAK,SAAS,KAAK,GAAG,IAAI,OAAO,QAAQ;AAAA,MACzC,IAAI,IAAI,OAAO;AAAA,QAAU,KAAK,WAAW,IAAI,OAAO;AAAA,MACpD;AAAA,IACF;AAAA,IACA,IAAI,OAAO,UAAU,UAAU;AAAA,MAC7B,IAAI,MAAM,WAAW,QAAQ,GAAG;AAAA,QAC9B,MAAM,QAAQ,IAAI,OAAO,QAAQ,MAAM,MAAM,CAAC;AAAA,QAC9C,IAAI;AAAA,UAAO,KAAK,SAAS,KAAK,KAAK;AAAA,MACrC;AAAA,MACA;AAAA,IACF;AAAA,IACA,KAAK,SAAS,KAAK,GAAG,eAAe,OAAwB,KAAK,KAAK,EAAE,CAAC;AAAA,EAC5E;AAAA,EACA,OAAO;AAAA;AAIT,SAAS,WAAW,CAAC,MAAc,OAAe,KAAe,MAAmB,OAAe,QAAgC;AAAA,EACjI,IAAI,QAAQ;AAAA,IAAW,MAAM,IAAI,MAAM,SAAS,gCAAgC,WAAW;AAAA,EAC3F,MAAM,YAAY,SAAQ,KAAK,OAAO,IAAI;AAAA,EAE1C,IAAI,KAAK,IAAI,SAAS,UAAU,cAAc,aAAa,KAAK,WAAW,QAAQ,MAAM;AAAA,IAAW,UAAU,YAAY;AAAA,EAC1H,MAAM,MAAiB,EAAE,MAAM,OAAO,KAAK,QAAQ,MAAM,WAAW,UAAU,mBAAmB,KAAK,KAAK,GAAG,SAAS,IAAI,KAAO,OAAO;AAAA,EACzI,MAAM,MAAmB,EAAE,IAAI,KAAK,IAAI,OAAO,WAAW,MAAM,CAAC,EAAE;AAAA,EACnE,OAAO,QAAQ,eAAe,IAAI,MAAM,KAAK,KAAK,KAAK,EAAE;AAAA,EACzD,KAAK,QAAQ,WAAW,KAAK,OAAO,KAAK,KAAK;AAAA,EAC9C,IAAI,KAAK,SAAS,OAAO,KAAK,KAAK,KAAK,EAAE,WAAW;AAAA,IAAG,OAAO,KAAK;AAAA,EAMpE,MAAM,WAAW,KAAK,SAAS,CAAC,GAAI,KAAK,OAAO,YAAY,CAAC,CAAE,IAAI,OAAO,KAAK,KAAK,SAAS,CAAC,CAAC,EAAE,KAAK;AAAA,EACtG,IAAI,SAAS,SAAS,KAAK,KAAK;AAAA,IAAQ,KAAK,SAAS,KAAK,KAAK,QAAQ,SAAS;AAAA,EACjF,IAAI,KAAK,YAAY;AAAA,IAAW,KAAK,UAAU,KAAK;AAAA,EAGpD,IAAI,KAAK;AAAA,IAAe,KAAK,gBAAgB,KAAM,KAAK,iBAAiB,CAAC,MAAO,KAAK,cAAc;AAAA,EACpG,MAAM,YAAoC,KAAM,KAAK,MAAM,CAAC,EAAG;AAAA,EAC/D,YAAY,OAAO,WAAW,OAAO,QAAQ,KAAK,MAAM,CAAC,CAAC,GAAG;AAAA,IAC3D,IAAI,CAAC,IAAI,QAAQ,IAAI,KAAK;AAAA,MAAG,UAAU,SAAS;AAAA,EAClD;AAAA,EACA,IAAI,OAAO,KAAK,SAAS,EAAE,SAAS;AAAA,IAAG,KAAK,KAAK;AAAA,EACjD;AAAA,IAAK,OAAO,KAAK;AAAA,EACjB,OAAO,WAAW,MAAM,MAAM,QAAQ,GAAG,MAAM;AAAA;AAGjD,SAAS,UAAU,CAAC,MAAc,MAAmB,OAAe,QAAgC;AAAA,EAClG,MAAM,MAAc,KAAK,MAAM,UAAU,KAAK,SAAS,IAAI,CAAC,MAAM,WAAW,GAAG,MAAM,OAAO,MAAM,CAAC,EAAE;AAAA,EACtG,IAAI,KAAK,OAAO;AAAA,IACd,IAAI,QAAQ,CAAC;AAAA,IACb,YAAY,MAAM,UAAU,OAAO,QAAQ,KAAK,KAAK;AAAA,MAAG,IAAI,MAAM,QAAQ,WAAW,OAAO,MAAM,OAAO,MAAM;AAAA,EACjH;AAAA,EACA,MAAM,MAAM,KAAK,OAAO,IAAI;AAAA,EAC5B,IAAI,OAAO,KAAK,WAAW,IAAI,YAAY,SAAS,SAAS;AAAA,IAC3D,OAAO,YAAY,KAAK,IAAI,WAAW,KAAK,MAAM,OAAO,MAAM;AAAA,EACjE;AAAA,EACA,OAAO;AAAA;AAOF,SAAS,aAAY,CAC1B,MACA,UAA4E,CAAC,GACrE;AAAA,EAGR,OAAO,iBAAgB,WAAW,MAAM,IAAI,GAAG,mBAAkB,QAAQ,UAAU,GAAG,GAAG,QAAQ,MAAM,CAAC;AAAA;;;AChU1G,IAAM,QAA6B,IAAI,IAAI,WAAU;AACrD,IAAM,SAAS,CAAC,eAAsD,mBAAkB,UAAU;AAClG,IAAM,YAAiC,IAAI,IAAI,eAAc;AAC7D,IAAM,WAAW;AASjB,SAAS,WAAW,CAClB,QACA,OACA,MACA,MACA,QACM;AAAA,EACN,QAAQ,OAAO;AAAA,IACb,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AAAA,MACH,IAAI,OAAO,UAAU;AAAA,QAAU,OAAO,KAAK,EAAE,MAAM,SAAS,oBAAoB,CAAC;AAAA,MACjF,KAAK,IAAI,gBAAe,KAAK,MAAM,QAAQ,CAAC,aAAY,KAAK;AAAA,QAC3D,OAAO,KAAK,EAAE,MAAM,SAAS,2BAA2B,+BAA+B,CAAC;AAAA,MAC1F;AAAA,IACF,KAAK;AAAA,MACH,IAAI,OAAO,UAAU,YAAa,UAAU,MAAM,CAAC,SAAS,KAAK,KAAK;AAAA,QACpE,OAAO,KAAK,EAAE,MAAM,SAAS,sBAAsB,CAAC;AAAA,MACtD;AAAA,IACF,KAAK;AAAA,MACH,IAAI,OAAO,UAAU,YAAY,CAAC,OAAO,SAAS,KAAK;AAAA,QACrD,OAAO,KAAK,EAAE,MAAM,SAAS,oBAAoB,CAAC;AAAA,MACpD,KAAK,IAAI,OAAO,YAAY,aAAa,QAAQ,OAAO;AAAA,QAAS,OAAO,KAAK,EAAE,MAAM,SAAS,qBAAqB,OAAO,UAAU,CAAC;AAAA,MACrI,KAAK,IAAI,OAAO,YAAY,aAAa,QAAQ,OAAO;AAAA,QAAS,OAAO,KAAK,EAAE,MAAM,SAAS,oBAAoB,OAAO,UAAU,CAAC;AAAA,MACpI;AAAA,IACF,KAAK;AAAA,MACH,IAAI,OAAO,UAAU;AAAA,QAAW,OAAO,KAAK,EAAE,MAAM,SAAS,qBAAqB,CAAC;AAAA,MACnF;AAAA,IACF,KAAK,QAAQ;AAAA,MACX,MAAM,SAAS,OAAO,WAAW,OAAO,OAAO,KAAK,MAAM,OAAO,QAAQ;AAAA,MACzE,IAAI,CAAC;AAAA,QAAQ,OAAO,KAAK,EAAE,MAAM,SAAS,QAAQ,OAAO,sBAAsB,CAAC;AAAA,MAChF,KAAK,IAAI,CAAC,OAAO,SAAS,KAAe;AAAA,QACvC,OAAO,KAAK,EAAE,MAAM,SAAS,mBAAmB,OAAO,KAAK,GAAG,IAAI,CAAC;AAAA,MACtE;AAAA,IACF;AAAA,IACA,KAAK;AAAA,MACH,IAAI,OAAO,UAAU,YAAY,CAAC,MAAM,IAAI,KAAK;AAAA,QAC/C,OAAO,KAAK,EAAE,MAAM,SAAS,yBAAyB,CAAC;AAAA,MACzD;AAAA,IACF,KAAK;AAAA,MAGH,IAAI,cAAa,KAAK,KAAK,eAAc,KAAK,GAAG,UAAU;AAAA,QAAS;AAAA,MACpE,OAAO,KAAK,EAAE,MAAM,SAAS,yBAAyB,CAAC;AAAA,MACvD;AAAA,IACF,KAAK;AAAA,MACH,WAAW,SAAS,eAAc,OAAO,EAAE,MAAM,MAAM,MAAM,CAAC;AAAA,QAC5D,OAAO,KAAK,KAAK;AAAA,MACnB;AAAA,IACF,KAAK;AAAA,MACH,IAAI,CAAC,MAAM,QAAQ,KAAK,GAAG;AAAA,QACzB,OAAO,KAAK,EAAE,MAAM,SAAS,oBAAoB,CAAC;AAAA,QAClD;AAAA,MACF;AAAA,MACA,IAAI,OAAO;AAAA,QACT,MAAM,QAAQ,CAAC,MAAM,MAAM,WAAW,OAAO,OAAQ,MAAM,GAAG,QAAQ,MAAM,MAAM,MAAM,CAAC;AAAA,MAC3F;AAAA,IACF,KAAK,UAAU;AAAA,MACb,IAAI,OAAO,UAAU,YAAY,UAAU,QAAQ,MAAM,QAAQ,KAAK,GAAG;AAAA,QACvE,OAAO,KAAK,EAAE,MAAM,SAAS,qBAAqB,CAAC;AAAA,QACnD;AAAA,MACF;AAAA,MACA,IAAI,CAAC,OAAO;AAAA,QAAO;AAAA,MACnB,MAAM,MAAM,KAAK,KAAK,OAAO;AAAA,MAC7B,IAAI,CAAC,KAAK;AAAA,QACR,OAAO,KAAK,EAAE,MAAM,SAAS,SAAS,OAAO,uBAAuB,CAAC;AAAA,QACrE;AAAA,MACF;AAAA,MACA,WAAW,IAAI,YAAY,OAAkC,MAAM,MAAM,MAAM;AAAA,MAC/E;AAAA,IACF;AAAA;AAAA;AAIJ,SAAS,UAAU,CACjB,QACA,OACA,MACA,MACA,QACM;AAAA,EACN,IAAI,OAAO,YAAY,WAAU,KAAK;AAAA,IAAG;AAAA,EACzC,IAAI,OAAO,cAAc,mBAAkB,KAAK,GAAG;AAAA,IACjD,YAAY,IAAI,MAAM,OAAO,QAAQ,KAAK;AAAA,MAAG,YAAY,QAAQ,GAAG,GAAG,QAAQ,MAAM,MAAM,MAAM;AAAA,IACjG;AAAA,EACF;AAAA,EACA,IAAI,OAAO,cAAc,OAAO,UAAU,YAAY,UAAU,QAAQ,CAAC,MAAM,QAAQ,KAAK,KAAK,CAAC,WAAU,KAAK,GAAG;AAAA,IAClH,OAAO,KAAK,EAAE,MAAM,SAAS,0CAA0C,aAAY,KAAK,GAAG,YAAY,CAAC;AAAA,IACxG;AAAA,EACF;AAAA,EACA,YAAY,QAAQ,OAAO,MAAM,MAAM,MAAM;AAAA;AAG/C,SAAS,UAAU,CACjB,SACA,OACA,MACA,MACA,QACM;AAAA,EACN,YAAY,MAAM,WAAW,OAAO,QAAQ,OAAO,GAAG;AAAA,IACpD,MAAM,QAAQ,MAAM;AAAA,IACpB,IAAI,UAAU,aAAa,UAAU,MAAM;AAAA,MACzC,IAAI,OAAO;AAAA,QAAU,OAAO,KAAK,EAAE,MAAM,GAAG,QAAQ,QAAQ,SAAS,WAAW,CAAC;AAAA,MACjF;AAAA,IACF;AAAA,IACA,WAAW,QAAQ,OAAO,GAAG,QAAQ,QAAQ,MAAM,MAAM;AAAA,EAC3D;AAAA,EACA,WAAW,QAAQ,OAAO,KAAK,KAAK,GAAG;AAAA,IACrC,IAAI,EAAE,QAAQ;AAAA,MAAU,OAAO,KAAK,EAAE,MAAM,GAAG,QAAQ,QAAQ,SAAS,eAAe,CAAC;AAAA,EAC1F;AAAA;AAKK,SAAS,eAAc,CAAC,MAAuB;AAAA,EACpD,OAAO,UAAU,IAAI,IAAI,KAAK,wCAAwC,KAAK,IAAI;AAAA;AAGjF,SAAS,SAAS,CAAC,OAAyB,MAAc,QAA2B;AAAA,EACnF,IAAI,CAAC,gBAAe,MAAM,IAAI;AAAA,IAC5B,OAAO,KAAK,EAAE,MAAM,SAAS,qBAAqB,MAAM,iFAAiF,CAAC;AAAA;AAM9I,SAAS,cAAc,CAAC,OAAgB,MAAc,QAA2B;AAAA,EAC/E,IAAI,MAAM,QAAQ,KAAK,GAAG;AAAA,IACxB,MAAM,QAAQ,CAAC,GAAG,MAAM,eAAe,GAAG,GAAG,QAAQ,MAAM,MAAM,CAAC;AAAA,IAClE;AAAA,EACF;AAAA,EACA,IAAI,OAAO,UAAU,YAAY,UAAU;AAAA,IAAM;AAAA,EACjD,IAAI,QAAO,KAAK;AAAA,IAAG,UAAU,OAAO,MAAM,MAAM;AAAA,EAChD,YAAY,GAAG,MAAM,OAAO,QAAQ,KAAK;AAAA,IAAG,eAAe,GAAG,GAAG,QAAQ,KAAK,MAAM;AAAA;AAUtF,SAAS,cAAc,CAAC,OAAgB,QAAgC,MAAc,MAAmB,QAA2B;AAAA,EAClI,IAAI,QAAO,KAAK,GAAG;AAAA,IACjB,UAAU,OAAO,MAAM,MAAM;AAAA,IAC7B,eAAe,MAAM,MAAM,GAAG,aAAa,MAAM;AAAA,IACjD;AAAA,EACF;AAAA,EACA,IAAI,CAAC,UAAU,cAAa,MAAM;AAAA,IAAG;AAAA,EACrC,IAAI,OAAO,SAAS;AAAA,IAAS,OAAO,eAAe,OAAO,MAAM,MAAM;AAAA,EACtE,IAAI,OAAO,SAAS,WAAW,OAAO,SAAS,MAAM,QAAQ,KAAK,GAAG;AAAA,IACnE,MAAM,QAAQ,CAAC,MAAM,MAAM,eAAe,MAAM,OAAO,OAAO,GAAG,QAAQ,MAAM,MAAM,MAAM,CAAC;AAAA,IAC5F;AAAA,EACF;AAAA,EACA,MAAM,QAAQ,OAAO,SAAS,YAAY,OAAO,QAAQ,KAAK,KAAK,OAAO,SAAS;AAAA,EACnF,IAAI,SAAS,OAAO,UAAU,YAAY,UAAU,QAAQ,CAAC,MAAM,QAAQ,KAAK;AAAA,IAC9E,YAAY,GAAG,MAAM,OAAO,QAAQ,KAAK;AAAA,MAAG,eAAe,GAAG,MAAM,WAAW,IAAI,GAAG,QAAQ,KAAK,MAAM,MAAM;AAAA;AAKnH,SAAS,gBAAgB,CAAC,QAAiB,MAAc,QAA2B;AAAA,EAClF,IAAI,OAAO,WAAW,YAAY,WAAW;AAAA,IAAM;AAAA,EACnD,QAAQ,cAAc,UAAU;AAAA,EAChC,IAAI,QAAO,YAAY,GAAG;AAAA,IACxB,UAAU,cAAc,GAAG,qBAAqB,MAAM;AAAA,IACtD,eAAe,aAAa,MAAM,GAAG,0BAA0B,MAAM;AAAA,EACvE;AAAA,EACA,IAAI,OAAO,UAAU,YAAY,UAAU;AAAA,IAAM,eAAgB,MAAgC,SAAS,GAAG,sBAAsB,MAAM;AAAA;AASpI,SAAS,aAAY,CAC1B,MACA,UAAoD,CAAC,GACxC;AAAA,EACb,MAAM,SAAsB,CAAC;AAAA,EAC7B,MAAM,OAAO,OAAO,QAAQ,UAAU;AAAA,EACtC,MAAM,MAAM,KAAK,WAAW,KAAK;AAAA,EACjC,IAAI,KAAK,UAAU;AAAA,IAAW,WAAW,SAAS,eAAc,KAAK,OAAO,EAAE,MAAM,QAAQ,CAAC;AAAA,MAAG,OAAO,KAAK,KAAK;AAAA,EACjH,YAAY,GAAG,MAAM,OAAO,QAAQ,KAAK,KAAK;AAAA,IAAG,eAAe,GAAG,KAAK,MAAM,IAAI,SAAS,KAAK,MAAM,MAAM;AAAA,EAC5G,IAAI,KAAK,YAAY;AAAA,IAAW,eAAe,KAAK,SAAS,WAAW,MAAM;AAAA,EAC9E,YAAY,OAAO,WAAW,OAAO,QAAQ,KAAK,MAAM,CAAC,CAAC;AAAA,IAAG,iBAAiB,QAAQ,MAAM,SAAS,MAAM;AAAA,EAC3G,IAAI,KAAK,cAAc,WAAW,MAAM,QAAQ,KAAK,MAAM,OAAO,GAAG;AAAA,IACnE,MAAM,QAAQ,OAAO,KAAK,KAAK,SAAS,CAAC,CAAC;AAAA,IAC1C,KAAK,MAAM,QAAQ,QAAQ,CAAC,QAAQ,MAAM;AAAA,MACxC,IAAI,OAAO,WAAW,YAAY,WAAW,QAAS,OAA8B,SAAS;AAAA,QAAQ;AAAA,MACrG,MAAM,OAAQ,OAA8B;AAAA,MAC5C,IAAI,OAAO,SAAS;AAAA,QAAU,OAAO,KAAK,EAAE,MAAM,iBAAiB,WAAW,SAAS,+CAA+C,CAAC;AAAA,MACvI,KAAK,IAAI,CAAC,MAAM,SAAS,IAAI;AAAA,QAAG,OAAO,KAAK,EAAE,MAAM,iBAAiB,WAAW,SAAS,YAAY,+BAA+B,MAAM,KAAK,GAAG,KAAK,SAAS,CAAC;AAAA,KAClK;AAAA,EACH;AAAA,EACA,OAAO;AAAA;AAIF,SAAS,cAAa,CAC3B,KACA,OACA,UAAmE,CAAC,GACvD;AAAA,EACb,MAAM,SAAsB,CAAC;AAAA,EAC7B,WAAW,IAAI,OAAO,OAAO,QAAQ,QAAQ,SAAS,OAAO,QAAQ,UAAU,GAAG,MAAM;AAAA,EACxF,OAAO;AAAA;;;ACxNF,IAAM,YAAW;AAsBjB,SAAS,aAAY,CAAC,MAAuB;AAAA,EAClD,IAAI,OAAO,SAAS;AAAA,IAAU,OAAO,UAAS;AAAA,EAC9C,QAAQ,KAAI,UAAS,OAAO,IAAI,IAAI,UAAS,MAAM,QAAQ,cAAc,UAAS;AAAA;AAGpF,SAAS,SAAS,CAAC,OAA2C;AAAA,EAC5D,OAAO,OAAO,UAAU,YAAY,UAAU,QAAQ,OAAQ,MAA6B,SAAS;AAAA;AAKtG,IAAM,aAAwC;AAAA,EAC5C,WAAW,CAAC,KAAK,MAAM;AAAA,IACrB,MAAM,UAAU,KAAK;AAAA,IACrB,IAAI,YAAY,QAAQ,YAAY,QAAQ,YAAY,QAAQ,YAAY,MAAM;AAAA,MAChF,IAAI,YAAY;AAAA,MAChB,IAAI,QAAQ,EAAE,MAAM,IAAI,MAAM,MAAM,OAAO,QAAQ;AAAA,MACnD;AAAA,IACF;AAAA,IACA,IAAI,MAAM,UAAU,YAAY,OAAO,UAAU,YAAY,YAAY,YAAY;AAAA;AAAA,EAEvF,YAAY,CAAC,KAAK,MAAM;AAAA,IACtB,MAAM,UAAW,KAAK,WAAkC;AAAA,IACxD,IAAI,YAAY,UAAU;AAAA,MACxB,IAAI,YAAY;AAAA,MAChB,IAAI,QAAQ,EAAE,KAAK,IAAI,MAAM,KAAK,MAAM,KAAK,eAAe,GAAG;AAAA,MAC/D;AAAA,IACF;AAAA,IACA,MAAM,QACJ,YAAY,SACR,EAAE,OAAO,IAAI,QAAQ,GAAG,IACxB,YAAY,iBACV,EAAE,OAAO,KAAK,QAAQ,IAAI,IAC1B,YAAY,WACV,EAAE,OAAO,QAAQ,aAAa,EAAE,IAChC,EAAE,OAAO,QAAQ,aAAa,UAAU;AAAA,IAClD,IAAI,QAAQ,KAAM,IAAI,SAAS,CAAC,MAAO,MAAM;AAAA;AAAA,EAE/C,QAAQ,CAAC,KAAK,MAAM;AAAA,IAClB,IAAI,MAAM,OAAO,cAAa,KAAK,IAAI;AAAA;AAAA,EAEzC,IAAI,CAAC,KAAK,MAAM;AAAA,IACd,MAAM,OAAO,MAAM,QAAQ,KAAK,IAAI,IAAK,KAAK,OAA+C,CAAC;AAAA,IAC9F,IAAI,MAAM,OAAO,KAAK,IAAI,CAAC,SAAS,EAAE,OAAO,IAAI,OAAO,OAAO,IAAI,MAAM,EAAE;AAAA,IAC3E,IAAI,cAAc,KAAK,IAAI,CAAC,QAAQ,IAAI,KAAK;AAAA,IAC7C,IAAI,KAAK,SAAS;AAAA,MAAG,IAAI,MAAM,QAAQ,KAAK,GAAG;AAAA;AAAA,EAEjD,KAAK,CAAC,KAAK,MAAM;AAAA,IACf,IAAI,OAAO,KAAK,YAAY;AAAA,MAAU,IAAI,MAAM,UAAU,KAAK;AAAA,IAC/D,IAAI,OAAO,KAAK,YAAY;AAAA,MAAU,IAAI,cAAc,CAAC,KAAK,OAAO;AAAA,IACrE,IAAI,MAAM,OAAO;AAAA;AAAA,EAEnB,WAAW,CAAC,KAAK,MAAM,QAAQ;AAAA,IAC7B,MAAM,UAAU,OAAO,KAAK,UAAU,WAAW,KAAK,QAAQ;AAAA,IAC9D,MAAM,QAAQ,UAAU,OAAO,OAAO,IAAI;AAAA,IAC1C,IAAI,OAAO,cAAc;AAAA,MAAQ,IAAI,MAAM,QAAQ,MAAM;AAAA,IACzD,KAAK,IAAI,OAAO,cAAc;AAAA,MAAQ,IAAI,MAAM,OAAO,cAAa,MAAM,IAAI;AAAA,IAC9E,KAAK,IAAI;AAAA,MAAS,IAAI,cAAc,CAAC,OAAO;AAAA,IAC5C,IAAI,IAAI,MAAM,SAAS,aAAa,IAAI,MAAM,UAAU;AAAA,MAAW,IAAI,MAAM,OAAO;AAAA,IACpF,IAAI,KAAK,WAAW;AAAA,MAAW,IAAI,KAAK,EAAE,OAAO,KAAK,OAAiB;AAAA;AAAA,EAEzE,SAAS,CAAC,KAAK,MAAM;AAAA,IACnB,IAAI,MAAM,OAAO,KAAK;AAAA,IACtB,MAAM,UAAW,KAAK,WAAkC;AAAA,IACxD,IAAI,YAAY;AAAA,MAAY,IAAI,YAAY;AAAA,IAC5C;AAAA,MAAK,IAAI,MAAM,OAAO,YAAY,WAAW,WAAW,YAAY,aAAa,aAAa;AAAA,IAC9F,IAAI,OAAO,KAAK,qBAAqB,UAAU;AAAA,MAC7C,MAAM,QAAQ,UAAU,KAAK,KAAK,IAAI,KAAK,MAAM,OAAO,KAAK;AAAA,MAC7D,MAAM,SAAS,MAAM,QAAQ,IAAI,MAAM,MAAM,IAAI,CAAC,GAAI,IAAI,MAAM,MAAoB,IAAI,CAAC;AAAA,MACzF,OAAO,KAAK;AAAA,QACV,WAAW,EAAE,MAAM,SAAS,MAAM,EAAE,OAAO,EAAE,MAAM,MAAM,GAAG,SAAS,KAAK,iBAAiB,EAAE;AAAA,QAC7F,SAAS;AAAA,MACX,CAAC;AAAA,MACD,IAAI,MAAM,SAAS;AAAA,IACrB;AAAA;AAAA,EAEF,SAAS,CAAC,KAAK,MAAM;AAAA,IACnB,IAAI,MAAM,OAAO,KAAK;AAAA;AAAA,EAExB,YAAY,CAAC,KAAK,MAAM;AAAA,IACtB,IAAI,MAAM,OAAO,KAAK;AAAA,IACtB,MAAM,WAAW,KAAK,YAAY;AAAA,IAClC,MAAM,QAAQ,KAAK;AAAA,IACnB,MAAM,SAAS,MAAM,QAAQ,KAAK,IAC9B,WACG,MAAmB,KAAK,GAAG,IAC1B,MAAmB,MAAM,KAC7B;AAAA,IACJ,IAAI,WAAW;AAAA,MAAW,IAAI,MAAM,QAAQ;AAAA,IAC5C,IAAI,KAAK,eAAe,MAAM;AAAA,MAC5B,IAAI,YAAY;AAAA,MAChB,IAAI,MAAM,aAAa;AAAA,MACvB,IAAI,MAAM,WAAW;AAAA,IACvB,EAAE,KAAK,IAAI,KAAK,iBAAiB,SAAS;AAAA,MACxC,IAAI,YAAY;AAAA,MAChB,IAAI,QAAQ,EAAE,OAAO,IAAI,MAAM,SAAS,MAAM,WAAW,aAAa,UAAU,SAAS,WAAW,OAAO,IAAI,MAAM,MAAM;AAAA,IAC7H,EAAE,KAAK,IAAI,UAAU;AAAA,MACnB,IAAI,YAAY;AAAA,MAChB,IAAI,MAAM,WAAW;AAAA,IACvB;AAAA;AAEJ;AAIA,SAAS,IAAG,CAAC,OAAe,KAAsB;AAAA,EAChD,OAAO,OAAO,UAAU,eAAe,KAAK,OAAO,GAAG;AAAA;AAIjD,SAAS,kBAAiB,CAC/B,MACA,QACwB;AAAA,EACxB,MAAM,OAAO,KAAI,UAAS,YAAY,KAAK,SAAS,IAAI,UAAS,WAAW,KAAK,aAAa;AAAA,EAC9F,IAAI,CAAC;AAAA,IAAM,OAAO;AAAA,EAClB,MAAM,QAAiC,CAAC;AAAA,EACxC,YAAY,UAAU,SAAS,OAAO,QAAQ,KAAK,KAAK,GAAG;AAAA,IACzD,IAAI,OAAO,SAAS,UAAU;AAAA,MAC5B,IAAI,KAAK,UAAU;AAAA,QAAW,MAAM,YAAY,KAAK;AAAA,MACrD;AAAA,IACF;AAAA,IACA,IAAI,WAAW,MAAM;AAAA,MACnB,MAAM,YAAY,KAAK;AAAA,MACvB;AAAA,IACF;AAAA,IACA,IAAI,QAAQ,KAAK,SAAS,YAAY,KAAK,KAAK,QAAQ;AAAA,IACxD,IAAI,KAAK,OAAO,OAAO,UAAU,YAAY,KAAI,KAAK,KAAK,KAAK;AAAA,MAAG,QAAQ,KAAK,IAAI;AAAA,IACpF,IAAI,UAAU,aAAa,KAAK,YAAY;AAAA,MAAW,QAAQ,KAAK;AAAA,IACpE,IAAI,UAAU;AAAA,MAAW,MAAM,YAAY;AAAA,EAC7C;AAAA,EACA,MAAM,MAAuB,EAAE,WAAW,KAAK,IAAI,OAAO,aAAa,CAAC,GAAG,OAAO,CAAC,EAAE;AAAA,EACrF,IAAI,KAAK,aAAa,YAAY;AAAA,IAChC,MAAM,WAAW,KAAK;AAAA,IACtB,IAAI,MAAM,QAAQ,QAAQ;AAAA,MAAG,IAAI,cAAc;AAAA,IAC/C,KAAK,IAAI,YAAY,OAAO,aAAa;AAAA,MACvC,IAAI,WAAW,EAAE,WAAW,SAAS,aAAa,MAAM,SAAS,SAAU,OAAO,SAAS,QAAQ,WAAW,EAAE,KAAK,SAAS,IAAI,IAAI,CAAC,EAAG;AAAA,EAC9I,EAAE,KAAK,IAAI,KAAK,aAAa,WAAW,OAAO,KAAK,UAAU,UAAU;AAAA,IACtE,IAAI,cAAc,CAAC,KAAK,KAAK;AAAA,EAC/B;AAAA,EACA,IAAI,KAAK,WAAW;AAAA,IAClB,MAAM,KAAK,WAAW,KAAK;AAAA,IAC3B,IAAI,CAAC;AAAA,MAAI,MAAM,IAAI,MAAM,oDAAoD,KAAK,WAAW;AAAA,IAC7F,GAAG,KAAK,MAAM,MAAM;AAAA,EACtB;AAAA,EACA,OAAO;AAAA;AAGF,IAAM,yBAA2C,OAAO,KAAK,UAAU;;;AClKvE,IAAM,iBAAmC,CAAC,MAAM,aAAa,YAAY,SAAS,MAAM,SAAS,WAAW,iBAAiB,UAAU;AAC9I,IAAM,WAAW,IAAI,IAAI,cAAa;AAiCtC,SAAS,aAAa,CAAC,MAAc,QAAuB,cAAwE;AAAA,EAClI,MAAM,QAAkB,CAAC;AAAA,EACzB,MAAM,OAAO,IAAI;AAAA,EACjB,MAAM,QAAQ,IAAI;AAAA,EAClB,MAAM,UAAU,IAAI;AAAA,EACpB,IAAI,YAAY;AAAA,EAEhB,MAAM,YAAY,IAAI;AAAA,EACtB,MAAM,UAAU,CAAC,MAAc;AAAA,IAC7B,MAAM,KAAK,EAAE,UAAU;AAAA,IACvB,IAAI,OAAO,KAAK;AAAA,MAAI,YAAY;AAAA,IAChC,KAAK,IAAI,OAAO,aAAa,CAAC,KAAK,IAAI,EAAE,GAAG;AAAA,MAC1C,KAAK,IAAI,EAAE;AAAA,MACX,MAAM,KAAK,EAAE;AAAA,IACf;AAAA,IACA,WAAW,QAAQ,OAAO,OAAO,EAAE,SAAS,CAAC,CAAC;AAAA,MAAG,QAAQ,IAAI;AAAA,IAC7D,EAAE,SAAS,QAAQ,OAAO;AAAA;AAAA,EAE5B,MAAM,QAAQ,CAAC,MAAc;AAAA,IAC3B,MAAM,QAAQ,EAAE,SAAS,KAAK,CAAC,MAAM,KAAK,IAAI,EAAE,EAAE,CAAC,KAAK,OAAO,OAAO,EAAE,SAAS,CAAC,CAAC,EAAE,KAAK,CAAC,MAAM,KAAK,IAAI,EAAE,EAAE,CAAC;AAAA,IAC/G,IAAI,SAAS,CAAC,UAAU,IAAI,CAAC;AAAA,MAAG,UAAU,IAAI,GAAG,EAAE,UAAU,CAAC,GAAG,EAAE,QAAQ,MAAO,EAAE,QAAQ,EAAE,OAAO,KAAK,EAAE,MAAM,EAAE,IAAI,CAAC,EAAG,CAAC;AAAA,IAC7H,EAAE,WAAW,EAAE,SAAS,OAAO,CAAC,MAAM;AAAA,MACpC,IAAI,CAAC,KAAK,IAAI,EAAE,EAAE;AAAA,QAAG,OAAO;AAAA,MAC5B,IAAI,CAAC,MAAM,IAAI,EAAE,EAAE;AAAA,QAAG,MAAM,IAAI,EAAE,IAAI,CAAC;AAAA,MACvC,OAAO;AAAA,KACR;AAAA,IACD,IAAI,EAAE,OAAO;AAAA,MACX,YAAY,MAAM,SAAS,OAAO,QAAQ,EAAE,KAAK,GAAG;AAAA,QAClD,IAAI,CAAC,KAAK,IAAI,KAAK,EAAE;AAAA,UAAG;AAAA,QACxB,IAAI,CAAC,MAAM,IAAI,KAAK,EAAE;AAAA,UAAG,MAAM,IAAI,KAAK,IAAI,IAAI;AAAA,QAChD,OAAO,EAAE,MAAM;AAAA,MACjB;AAAA,MACA,IAAI,OAAO,KAAK,EAAE,KAAK,EAAE,WAAW;AAAA,QAAG,OAAO,EAAE;AAAA,IAClD;AAAA,IACA,WAAW,QAAQ,OAAO,OAAO,EAAE,SAAS,CAAC,CAAC;AAAA,MAAG,MAAM,IAAI;AAAA,IAC3D,EAAE,SAAS,QAAQ,KAAK;AAAA;AAAA,EAE1B,QAAQ,IAAI;AAAA,EACZ,SAAS,SAAS,GAAI,WAAW,GAAG,KAAK,QAAQ,MAAM,QAAQ,QAAQ,UAAU;AAAA,IAC/E,SAAS,GAAG,KAAK,QAAQ,MAAM,QAAQ,QAAQ;AAAA,IAC/C,MAAM,IAAI;AAAA,IACV,SAAS,IAAI,GAAI,MAAM,MAAM,QAAQ;AAAA,MACnC,IAAI,MAAM;AAAA,MACV,WAAW,QAAQ,CAAC,GAAG,MAAM,OAAO,CAAC;AAAA,QAAG,MAAM,IAAI;AAAA,IACpD;AAAA,IACA,WAAW,MAAM,OAAO;AAAA,MACtB,IAAI,MAAM,IAAI,EAAE,KAAK,QAAQ,IAAI,EAAE;AAAA,QAAG;AAAA,MACtC,MAAM,QAAQ,eAAe,EAAE;AAAA,MAC/B,IAAI;AAAA,QAAO,MAAM,IAAI,IAAI,KAAK;AAAA,MAC9B,KAAK;AAAA,QACH,QAAQ,IAAI,EAAE;AAAA,QACd,OAAO,KAAK,EAAE,IAAI,SAAS,sCAAsC,CAAC;AAAA;AAAA,IAEtE;AAAA,IACA,WAAW,QAAQ,CAAC,GAAG,MAAM,OAAO,CAAC;AAAA,MAAG,QAAQ,IAAI;AAAA,EACtD;AAAA,EACA,IAAI;AAAA,IAAW,OAAO,KAAK,EAAE,IAAI,KAAK,IAAI,SAAS,kCAAkC,CAAC;AAAA,EAItF,MAAM,SAAS,IAAI,IAAI,MAAM,KAAK,CAAC;AAAA,EACnC,UAAS;AAAA,IACP,YAAY,MAAM,SAAS,WAAW;AAAA,MACpC,KAAK,WAAW,KAAK,SAAS,OAAO,CAAC,MAAM,CAAC,OAAO,IAAI,EAAE,EAAE,CAAC;AAAA,MAC7D,IAAI,KAAK,OAAO;AAAA,QACd,MAAM,OAAO,OAAO,QAAQ,KAAK,KAAK,EAAE,OAAO,IAAI,OAAO,CAAC,OAAO,IAAI,EAAE,EAAE,CAAC;AAAA,QAC3E,IAAI,KAAK,SAAS;AAAA,UAAG,KAAK,QAAQ,OAAO,YAAY,IAAI;AAAA,QACzD;AAAA,UAAK,OAAO,KAAK;AAAA,MACnB;AAAA,IACF;AAAA,IACA,MAAM,OAAO,IAAI;AAAA,IACjB,WAAW,MAAM,QAAQ;AAAA,MACvB,MAAM,MAAM,IAAI;AAAA,MAChB,MAAM,OAAO,CAAC,MAAc;AAAA,QAC1B,MAAM,IAAI,EAAE,UAAU;AAAA,QACtB,IAAI,MAAM,aAAa,OAAO,IAAI,CAAC;AAAA,UAAG,IAAI,IAAI,CAAC;AAAA,QAC/C,WAAW,QAAQ,OAAO,OAAO,EAAE,SAAS,CAAC,CAAC;AAAA,UAAG,KAAK,IAAI;AAAA,QAC1D,EAAE,SAAS,QAAQ,IAAI;AAAA;AAAA,MAEzB,KAAK,MAAM,IAAI,EAAE,CAAE;AAAA,MACnB,KAAK,IAAI,IAAI,GAAG;AAAA,IAClB;AAAA,IACA,MAAM,UAAU,CAAC,MAAc,OAAwB;AAAA,MACrD,MAAM,OAAO,IAAI;AAAA,MACjB,MAAM,QAAQ,CAAC,GAAI,KAAK,IAAI,IAAI,KAAK,CAAC,CAAE;AAAA,MACxC,OAAO,MAAM,SAAS,GAAG;AAAA,QACvB,MAAM,KAAK,MAAM,IAAI;AAAA,QACrB,IAAI,OAAO;AAAA,UAAI,OAAO;AAAA,QACtB,IAAI,KAAK,IAAI,EAAE;AAAA,UAAG;AAAA,QAClB,KAAK,IAAI,EAAE;AAAA,QACX,MAAM,KAAK,GAAI,KAAK,IAAI,EAAE,KAAK,CAAC,CAAE;AAAA,MACpC;AAAA,MACA,OAAO;AAAA;AAAA,IAET,MAAM,SAAS,MAAM,OAAO,CAAC,OAAO,OAAO,IAAI,EAAE,KAAK,QAAQ,IAAI,EAAE,CAAC;AAAA,IACrE,IAAI,OAAO,WAAW;AAAA,MAAG;AAAA,IACzB,WAAW,MAAM,QAAQ;AAAA,MACvB,OAAO,OAAO,EAAE;AAAA,MAChB,OAAO,KAAK,EAAE,IAAI,SAAS,kCAAkC,CAAC;AAAA,IAChE;AAAA,EACF;AAAA,EACA,MAAM,MAAM,IAAI;AAAA,EAChB,WAAW,MAAM,OAAO;AAAA,IACtB,MAAM,OAAO,MAAM,IAAI,EAAE;AAAA,IACzB,IAAI,QAAQ,OAAO,IAAI,EAAE;AAAA,MAAG,IAAI,IAAI,IAAI,IAAI;AAAA,EAC9C;AAAA,EACA,OAAO;AAAA;AAOT,SAAS,MAAM,CAAC,MAAc,QAA6B,QAAiB,YAAqC,WAAmB,QAAqC;AAAA,EAGvK,MAAM,SAAS,EAAE,MAAM,iBAAgB,UAAU,OAAO,KAAK,CAAC,MAAM,EAAE,YAAY,cAAa,UAAU,EAAE;AAAA,EAC3G,OAAO,cAAc,SAAS,SAAS,cAAa,MAAM,EAAE,YAAY,OAAO,CAAC,IAAI,MAAM,WAAW,MAAM,GAAG,QAAQ,MAAM;AAAA,EAC5H,IAAI,OAAO,SAAS;AAAA,IAAG,OAAO,EAAE,MAAM,OAAO;AAAA,EAC7C,MAAM,YAAoC,CAAC;AAAA,EAC3C,YAAY,IAAI,SAAS;AAAA,IAAQ,UAAU,MAAM,cAAc,SAAS,SAAS,cAAa,MAAM,EAAE,YAAY,OAAO,CAAC,IAAI,MAAM,WAAW,MAAM,GAAG,QAAQ,MAAM;AAAA,EACtK,OAAO,EAAE,MAAM,QAAQ,UAAU;AAAA;AAUnC,SAAS,aAAa,CAAC,MAAc,QAA6C,QAA+B;AAAA,EAC/G,MAAM,QAAQ,KAAK,IAAI,MAAM;AAAA,EAC7B,MAAM,OAAO,CAAC,SAAuB;AAAA,IACnC,KAAK,WAAW,KAAK,SAAS,OAAO,CAAC,UAAU;AAAA,MAC9C,IAAI,CAAC,MAAM,QAAQ,MAAM,IAAI,MAAM;AAAA,QAAG,OAAO;AAAA,MAC7C,KAAK,KAAK;AAAA,MACV,OAAO;AAAA,KACR;AAAA,IACD,IAAI,KAAK;AAAA,MACP,YAAY,MAAM,SAAS,OAAO,QAAQ,KAAK,KAAK,GAAG;AAAA,QACrD,IAAI,CAAC,MAAM,QAAQ,KAAK,IAAI,MAAM;AAAA,UAAG,OAAO,KAAK,MAAM;AAAA,QACvD;AAAA,UAAK,KAAK,IAAI;AAAA,MAChB;AAAA;AAAA,EAEJ,KAAK,IAAI;AAAA,EACT,OAAO;AAAA;AAST,SAAS,QAAQ,CAAC,MAAc,WAAmB,QAA+B;AAAA,EAChF,MAAM,WAAW,IAAI,IAAI,OAAO,OAAO,CAAC,MAAM,EAAE,YAAY,cAAa,KAAK,EAAE,IAAI,CAAC,MAAM,EAAE,EAAE,CAAC;AAAA,EAChG,MAAM,QAA2C,CAAC,EAAE,MAAM,MAAM,OAAO,EAAE,CAAC;AAAA,EAC1E,OAAO,MAAM,QAAQ;AAAA,IACnB,QAAQ,MAAM,UAAU,MAAM,IAAI;AAAA,IAClC,MAAM,MAAM,CAAC,UAA0B;AAAA,MACrC,IAAI,QAAQ,KAAK;AAAA,QAAW,OAAO;AAAA,MACnC,IAAI,MAAM,cAAc,sBAAqB,MAAM,SAAS,WAAW,KAAK,MAAM,UAAU;AAAA,QAAW,OAAO;AAAA,MAC9G,IAAI,CAAC,SAAS,IAAI,MAAM,EAAE,GAAG;AAAA,QAC3B,SAAS,IAAI,MAAM,EAAE;AAAA,QACrB,OAAO,KAAK,EAAE,IAAI,MAAM,IAAI,SAAS,cAAa,MAAM,CAAC;AAAA,MAC3D;AAAA,MACA,OAAO,QAAQ,MAAM,IAAI,MAAM,WAAW,SAAS;AAAA;AAAA,IAErD,MAAM,OAAiB,CAAC;AAAA,IACxB,KAAK,WAAW,KAAK,SAAS,IAAI,CAAC,UAAU;AAAA,MAC3C,MAAM,SAAS,IAAI,KAAK;AAAA,MACxB,KAAK,KAAK,MAAM;AAAA,MAChB,OAAO;AAAA,KACR;AAAA,IACD,IAAI,KAAK;AAAA,MACP,YAAY,MAAM,SAAS,OAAO,QAAQ,KAAK,KAAK,GAAG;AAAA,QACrD,MAAM,SAAS,IAAI,IAAI;AAAA,QACvB,KAAK,MAAM,QAAQ;AAAA,QACnB,KAAK,KAAK,MAAM;AAAA,MAClB;AAAA,IACF,IAAI,QAAQ,IAAI;AAAA,MAAW;AAAA,IAC3B,SAAS,IAAI,KAAK,SAAS,EAAG,KAAK,GAAG;AAAA,MAAK,MAAM,KAAK,EAAE,MAAM,KAAK,IAAK,OAAO,QAAQ,EAAE,CAAC;AAAA,EAC5F;AAAA,EACA,OAAO;AAAA;AAGT,SAAS,OAAO,CAAC,IAAY,WAAmB,WAA2B;AAAA,EACzE,OAAO,EAAE,IAAI,WAAW,oBAAmB,OAAO,EAAE,WAAW,UAAU,GAAG,UAAU,CAAC,EAAE;AAAA;AAG3F,SAAS,QAAQ,CAAC,MAA8C;AAAA,EAC9D,MAAM,QAAiC,CAAC;AAAA,EACxC,YAAY,KAAK,UAAU,OAAO,QAAQ,IAAI,GAAG;AAAA,IAC/C,IAAI,CAAC,SAAS,IAAI,GAAG,KAAK,UAAU;AAAA,MAAW,MAAM,OAAO;AAAA,EAC9D;AAAA,EACA,OAAO;AAAA;AAGT,SAAS,YAAY,CAAC,WAAmB,YAA8C;AAAA,EACrF,OACE,cAAc,oBACd,cAAc,yBACd,cAAc,0BACd,WAAW,KAAK,CAAC,QAAQ,IAAI,OAAO,SAAS;AAAA;AAK1C,SAAS,aAAY,CAAC,OAAkC;AAAA,EAC7D,OAAO,OAAO,UAAU,aAAa,WAAU,KAAK;AAAA;AAG/C,SAAS,cAAa,CAAC,OAAyC;AAAA,EACrE,MAAM,MAAqB,EAAE,WAAW,MAAM,aAAa,MAAM,MAAM,KAAK;AAAA,EAC5E,IAAI,OAAO,MAAM,QAAQ;AAAA,IAAU,IAAI,MAAM,MAAM;AAAA,EACnD,OAAO;AAAA;AAUF,SAAS,cAAa,CAAC,YAAsC,SAAsC;AAAA,EACxG,MAAM,aAAa,QAAQ,cAAc,CAAC;AAAA,EAC1C,MAAM,OAAO,mBAAkB,UAAU;AAAA,EACzC,MAAM,SAAwB,CAAC;AAAA,EAC/B,MAAM,OAAO,IAAI;AAAA,EACjB,WAAW,QAAQ,CAAC,MAAM,MAAM;AAAA,IAI9B,IAAI,CAAC,QAAQ,OAAO,SAAS,YAAY,OAAO,KAAK,OAAO,YAAY,OAAO,KAAK,cAAc,UAAU;AAAA,MAC1G,OAAO,KAAK,EAAE,IAAI,QAAQ,UAAU,QAAQ,SAAS,cAAc,mEAAmE,CAAC;AAAA,MACvI;AAAA,IACF;AAAA,IACA,IAAI,KAAK,IAAI,KAAK,EAAE;AAAA,MAAG,OAAO,KAAK,EAAE,IAAI,KAAK,IAAI,SAAS,yCAAyC,CAAC;AAAA,IACrG,KAAK,IAAI,KAAK,IAAI,IAAI;AAAA,GACvB;AAAA,EACD,MAAM,SAAS,CAAC,OAAe,KAAK,IAAI,EAAE;AAAA,EAC1C,MAAM,QAAQ,QAAQ,cAAc;AAAA,EACpC,IAAI,CAAC,aAAa,QAAQ,WAAW,UAAU;AAAA,IAC7C,OAAO,KAAK,EAAE,IAAI,QAAQ,UAAU,QAAQ,SAAS,uBAAuB,QAAQ,YAAY,CAAC;AAAA,EACnG,MAAM,WAAW,IAAI;AAAA,EACrB,MAAM,SAAS,IAAI;AAAA,EAGnB,MAAM,gBAAgB,IAAI;AAAA,EAC1B,MAAM,SAAS,EAAE,MAAM,iBAAgB,UAAU,MAAM;AAAA,EAMvD,MAAM,QAAQ,CAAC,IAAY,UAAsC;AAAA,IAC/D,MAAM,OAAO,KAAK,IAAI,EAAE;AAAA,IACxB,IAAI,MAAM;AAAA,MAGR,IAAI,SAAS,IAAI,EAAE,GAAG;AAAA,QACpB,IAAI,CAAC,MAAM,QAAQ,IAAI,MAAM;AAAA,UAAG;AAAA,QAChC,OAAO,KAAK,EAAE,IAAI,SAAS,wBAAwB,CAAC;AAAA,QACpD,OAAO,QAAQ,IAAI,KAAK,WAAW,QAAQ,SAAS;AAAA,MACtD;AAAA,MACA,IAAI,OAAO,IAAI,EAAE,GAAG;AAAA,QAClB,IAAI,CAAC,cAAc,IAAI,EAAE,GAAG;AAAA,UAC1B,cAAc,IAAI,EAAE;AAAA,UACpB,OAAO,KAAK,EAAE,IAAI,SAAS,cAAa,UAAU,CAAC;AAAA,QACrD;AAAA,QACA;AAAA,MACF;AAAA,IACF;AAAA,IACA,IAAI,CAAC,MAAM,QAAQ,IAAI,MAAM;AAAA,MAAG;AAAA,IAChC,IAAI,CAAC,MAAM;AAAA,MACT,OAAO,KAAK,EAAE,IAAI,SAAS,4BAA4B,CAAC;AAAA,MACxD,OAAO,QAAQ,IAAI,IAAI,MAAM,QAAQ,SAAS;AAAA,IAChD;AAAA,IACA,OAAO,IAAI,EAAE;AAAA,IACb,IAAI,QAAQ,YAAW;AAAA,MACrB,OAAO,KAAK,EAAE,IAAI,SAAS,cAAa,MAAM,CAAC;AAAA,MAC/C,OAAO,QAAQ,IAAI,KAAK,WAAW,QAAQ,SAAS;AAAA,IACtD;AAAA,IACA,MAAM,QAAQ,CAAC,YAAoB,MAAM,SAAS,QAAQ,CAAC;AAAA,IAC3D,MAAM,WAAW,CAAC,QAA2B,IAAI,IAAI,KAAK,EAAE,OAAO,CAAC,MAAmB,MAAM,SAAS;AAAA,IACtG,SAAS,IAAI,EAAE;AAAA,IACf,IAAI;AAAA,IACJ,IAAI,OAAO;AAAA,MACT,MAAM,SAAS,mBAAkB,MAAM,MAAM;AAAA,MAC7C,IAAI,CAAC,QAAQ;AAAA,QACX,OAAO,KAAK,EAAE,IAAI,SAAS,mBAAmB,KAAK,2BAA2B,CAAC;AAAA,QAC/E,OAAO,QAAQ,IAAI,KAAK,WAAW,QAAQ,SAAS;AAAA,MACtD,EAAE,KAAK;AAAA,QACL,OAAO,EAAE,IAAI,WAAW,OAAO,WAAW,OAAO,OAAO,OAAO,UAAU,SAAS,OAAO,WAAW,EAAE;AAAA,QACtG,IAAI,OAAO;AAAA,UAAU,KAAK,WAAW,OAAO;AAAA,QAC5C,IAAI,OAAO;AAAA,UAAO,KAAK,QAAQ,OAAO;AAAA,QACtC,IAAI,OAAO;AAAA,UAAI,KAAK,KAAK,OAAO;AAAA,QAChC,YAAY,MAAM,YAAY,OAAO,QAAQ,OAAO,KAAK,GAAG;AAAA,UAC1D,MAAM,QAAQ,MAAM,OAAO;AAAA,UAC3B,IAAI;AAAA,aAAQ,KAAK,UAAU,CAAC,GAAG,QAAQ;AAAA,QACzC;AAAA;AAAA,IAEJ,EAAE,KAAK;AAAA,MACL,MAAM,MAAM,KAAK,WAAW,KAAK;AAAA,MACjC,IAAI,CAAC,KAAK;AAAA,QACR,OAAO,KAAK,EAAE,IAAI,SAAS,qBAAqB,KAAK,YAAY,CAAC;AAAA,QAClE,OAAO,QAAQ,IAAI,KAAK,WAAW,QAAQ,SAAS;AAAA,MACtD,EAAE,KAAK;AAAA,QACL,OAAO,EAAE,IAAI,WAAW,KAAK,WAAW,OAAO,SAAS,IAAI,GAAG,UAAU,CAAC,EAAE;AAAA,QAC5E,IAAI,MAAM,QAAQ,KAAK,QAAQ;AAAA,UAAG,KAAK,WAAW,SAAS,KAAK,QAAQ;AAAA,QACxE,KAAK,IAAI,KAAK,YAAY,OAAO,KAAK,aAAa;AAAA,UAAU,KAAK,WAAW,eAAc,KAAK,QAAQ;AAAA,QACxG,IAAI,KAAK;AAAA,UAAO,KAAK,QAAQ,KAAK;AAAA,QAClC,IAAI,KAAK;AAAA,UAAI,KAAK,KAAK,KAAK;AAAA,QAC5B,YAAY,MAAM,YAAY,OAAO,QAAQ,KAAK,SAAS,CAAC,CAAC,GAAG;AAAA,UAC9D,MAAM,QAAQ,MAAM,OAAO;AAAA,UAC3B,IAAI;AAAA,aAAQ,KAAK,UAAU,CAAC,GAAG,QAAQ;AAAA,QACzC;AAAA;AAAA;AAAA,IAIJ,IAAI,KAAK,YAAY,WAAW;AAAA,MAC9B,IAAI,cAAa,KAAK,OAAO;AAAA,QAAG,KAAK,UAAU,KAAK;AAAA,MACpD;AAAA,QAAK,OAAO,KAAK,EAAE,IAAI,SAAS,4DAA4D,CAAC;AAAA,IAC/F;AAAA,IACA,IAAI,KAAK;AAAA,MAAe,KAAK,gBAAgB,KAAK;AAAA,IAClD,SAAS,OAAO,EAAE;AAAA,IAClB,IAAI,QAAQ,aAAa,SAAS,KAAK,cAAc,oBAAmB;AAAA,MACtE,MAAM,MAAM,KAAK,WAAW,KAAK;AAAA,MACjC,IAAI,KAAK;AAAA,QACP,WAAW,SAAS,eAAc,KAAK,KAAK,OAAO,EAAE,MAAM,SAAS,WAAW,CAAC;AAAA,UAC9E,OAAO,KAAK,EAAE,IAAI,SAAS,GAAG,MAAM,SAAS,MAAM,UAAU,CAAC;AAAA,QAChE,IAAI,IAAI,aAAa,UAAU,KAAK,SAAS,SAAS;AAAA,UACpD,OAAO,KAAK,EAAE,IAAI,SAAS,GAAG,KAAK,8BAA8B,CAAC;AAAA,QACpE,WAAW,QAAQ,OAAO,KAAK,KAAK,SAAS,CAAC,CAAC;AAAA,UAC7C,IAAI,CAAC,aAAY,IAAI,OAAO,IAAI;AAAA,YAAG,OAAO,KAAK,EAAE,IAAI,SAAS,SAAS,SAAS,KAAK,6BAA6B,CAAC;AAAA,QACrH,WAAW,SAAS,cAAa,MAAM,EAAE,WAAW,CAAC;AAAA,UAAG,OAAO,KAAK,EAAE,IAAI,SAAS,GAAG,MAAM,SAAS,MAAM,UAAU,CAAC;AAAA,MACxH;AAAA,IACF;AAAA,IACA,OAAO;AAAA;AAAA,EAGT,MAAM,SAAS,QAAQ,UAAU;AAAA,EACjC,IAAI,OAAO,MAAM,QAAQ,CAAC,KAAK,QAAQ,QAAQ,IAAI,UAAU,QAAQ,SAAS;AAAA,EAC9E,MAAM,SAAS,cAAc,MAAM,QAAQ,CAAC,OAAQ,KAAK,IAAI,EAAE,KAAK,CAAC,OAAO,IAAI,EAAE,IAAI,MAAM,IAAI,CAAC,IAAI,SAAU;AAAA,EAC/G,OAAO,OAAO,MAAM,QAAQ,QAAQ,WAAW,OAAO,YAAY,QAAQ,WAAW,MAAM;AAAA;AAI7F,SAAS,KAAK,CAAC,QAA6C,IAAY,QAAgC;AAAA,EACtG,IAAI,OAAO,OAAO,GAAG;AAAA,IACnB,OAAO,QAAQ;AAAA,IACf,OAAO;AAAA,EACT;AAAA,EACA,IAAI,CAAC,OAAO;AAAA,IAAU,OAAO,KAAK,EAAE,IAAI,SAAS,cAAa,WAAW,CAAC;AAAA,EAC1E,OAAO,WAAW;AAAA,EAClB,OAAO;AAAA;AAIF,SAAS,YAAW,CAAC,OAAsC,MAAuB;AAAA,EACvF,QAAQ,SAAS,CAAC,GAAG,KAAK,CAAC,MAAM,MAAM,OAAO,MAAM,IAAI;AAAA;AAKnD,SAAS,aAAY,CAAC,MAAkB,SAAsD;AAAA,EACnG,MAAM,aAAa,QAAQ,cAAc,CAAC;AAAA,EAC1C,MAAM,OAAO,mBAAkB,UAAU;AAAA,EACzC,MAAM,SAAwB,CAAC;AAAA,EAC/B,MAAM,SAAS,EAAE,MAAM,iBAAgB,UAAU,MAAM;AAAA,EACvD,MAAM,OAAO,CAAC,GAAe,UAAsC;AAAA,IACjE,IAAI,CAAC,MAAM,QAAQ,EAAE,IAAI,MAAM;AAAA,MAAG;AAAA,IAClC,IAAI,QAAQ,YAAW;AAAA,MACrB,OAAO,KAAK,EAAE,IAAI,EAAE,IAAI,SAAS,cAAa,MAAM,CAAC;AAAA,MACrD,OAAO,QAAQ,EAAE,IAAI,EAAE,WAAW,QAAQ,SAAS;AAAA,IACrD;AAAA,IACA,MAAM,MAAM,KAAK,WAAW,EAAE;AAAA,IAC9B,IAAI,CAAC,KAAK;AAAA,MACR,OAAO,KAAK,EAAE,IAAI,EAAE,IAAI,SAAS,qBAAqB,EAAE,YAAY,CAAC;AAAA,MACrE,OAAO,QAAQ,EAAE,IAAI,EAAE,WAAW,QAAQ,SAAS;AAAA,IACrD;AAAA,IACA,MAAM,YAAY,EAAE,YAAY,CAAC,GAAG,IAAI,CAAC,MAAM,KAAK,GAAG,QAAQ,CAAC,CAAC,EAAE,OAAO,CAAC,MAAmB,MAAM,SAAS;AAAA,IAC7G,MAAM,OAAe,EAAE,IAAI,EAAE,IAAI,WAAW,EAAE,WAAW,OAAO,KAAM,EAAE,SAAS,CAAC,EAAG,GAAG,SAAS;AAAA,IACjG,IAAI,EAAE;AAAA,MAAO,KAAK,QAAQ,EAAE;AAAA,IAC5B,IAAI,EAAE,YAAY,WAAW;AAAA,MAC3B,IAAI,cAAa,EAAE,OAAO;AAAA,QAAG,KAAK,UAAU,EAAE;AAAA,MAC9C;AAAA,QAAK,OAAO,KAAK,EAAE,IAAI,EAAE,IAAI,SAAS,4DAA4D,CAAC;AAAA,IACrG;AAAA,IACA,IAAI,EAAE;AAAA,MAAI,KAAK,KAAK,EAAE;AAAA,IACtB,IAAI,EAAE;AAAA,MAAe,KAAK,gBAAgB,EAAE;AAAA,IAC5C,IAAI,EAAE;AAAA,MAAU,KAAK,WAAW,EAAE;AAAA,IAClC,IAAI,EAAE,OAAO;AAAA,MACX,KAAK,QAAQ,CAAC;AAAA,MACd,YAAY,MAAM,UAAU,OAAO,QAAQ,EAAE,KAAK,GAAG;AAAA,QACnD,MAAM,QAAQ,KAAK,OAAO,QAAQ,CAAC;AAAA,QACnC,IAAI;AAAA,UAAO,KAAK,MAAM,QAAQ;AAAA,MAChC;AAAA,IACF;AAAA,IACA,IAAI,QAAQ,aAAa,OAAO;AAAA,MAC9B,WAAW,SAAS,eAAc,KAAK,KAAK,OAAO,EAAE,MAAM,SAAS,WAAW,CAAC;AAAA,QAC9E,OAAO,KAAK,EAAE,IAAI,EAAE,IAAI,SAAS,GAAG,MAAM,SAAS,MAAM,UAAU,CAAC;AAAA,MACtE,IAAI,IAAI,aAAa,UAAU,KAAK,SAAS,SAAS;AAAA,QACpD,OAAO,KAAK,EAAE,IAAI,EAAE,IAAI,SAAS,GAAG,EAAE,8BAA8B,CAAC;AAAA,MACvE,WAAW,QAAQ,OAAO,KAAK,KAAK,SAAS,CAAC,CAAC;AAAA,QAC7C,IAAI,CAAC,aAAY,IAAI,OAAO,IAAI;AAAA,UAAG,OAAO,KAAK,EAAE,IAAI,EAAE,IAAI,SAAS,SAAS,SAAS,EAAE,6BAA6B,CAAC;AAAA,MACxH,WAAW,SAAS,cAAa,MAAM,EAAE,WAAW,CAAC;AAAA,QAAG,OAAO,KAAK,EAAE,IAAI,EAAE,IAAI,SAAS,GAAG,MAAM,SAAS,MAAM,UAAU,CAAC;AAAA,IAC9H;AAAA,IACA,OAAO;AAAA;AAAA,EAET,IAAI,OAAO,KAAK,MAAM,CAAC;AAAA,EACvB,MAAM,SAAS,cAAc,MAAM,MAAM;AAAA,EACzC,OAAO,OAAO,MAAM,QAAQ,QAAQ,WAAW,OAAO,YAAY,QAAQ,WAAW,MAAM;AAAA;AAItF,SAAS,SAAQ,CAAC,MAAwB;AAAA,EAC/C,MAAM,MAAgB,CAAC;AAAA,EACvB,MAAM,OAAO,CAAC,MAAc;AAAA,IAC1B,IAAI,KAAK,EAAE,EAAE;AAAA,IACb,WAAW,QAAQ,OAAO,OAAO,EAAE,SAAS,CAAC,CAAC;AAAA,MAAG,KAAK,IAAI;AAAA,IAC1D,EAAE,SAAS,QAAQ,IAAI;AAAA;AAAA,EAEzB,KAAK,IAAI;AAAA,EACT,OAAO;AAAA;;AC/dF,IAAM,qBAAwC,aAA8D,UAAU;AAatH,SAAS,eAAc,CAAC,SAAiB,MAAuB;AAAA,EACrE,OAAO,QAAQ,SAAS,GAAG,IAAI,KAAK,WAAW,QAAQ,MAAM,GAAG,EAAE,CAAC,IAAI,YAAY;AAAA;AAK9E,SAAS,eAAc,CAAC,QAAoC,MAAc,YAAuC;AAAA,EACtH,IAAI,mBAAkB,SAAS,IAAI;AAAA,IAAG,OAAO;AAAA,EAC7C,IAAI,CAAC;AAAA,IAAY,OAAO;AAAA,EACxB,MAAM,IAAI,UAAU,CAAC;AAAA,EACrB,MAAM,MAAM,CAAC,UAA8B,QAAQ,CAAC,GAAG,KAAK,CAAC,YAAY,gBAAe,SAAS,IAAI,CAAC;AAAA,EACtG,IAAI,IAAI,EAAE,IAAI;AAAA,IAAG,OAAO;AAAA,EACxB,IAAI,IAAI,EAAE,KAAK;AAAA,IAAG,OAAO;AAAA,EACzB,IAAI,IAAI,EAAE,GAAG;AAAA,IAAG,OAAO;AAAA,EACvB,OAAO,EAAE,WAAW;AAAA;AAKf,SAAS,iBAAgB,CAAC,GAAqB,GAAuC;AAAA,EAC3F,MAAM,OAAyC,EAAE,OAAO,GAAG,KAAK,GAAG,MAAM,GAAG,WAAW,EAAE;AAAA,EACzF,OAAO,KAAK,MAAM,KAAK,KAAK,IAAI;AAAA;AAK3B,SAAS,cAAa,CAAC,WAA0D;AAAA,EACtF,OAAO,EAAE,OAAO,aAAa,CAAC,GAAG,SAAS,OAAO;AAAA;AAuBnD,SAAS,QAAQ,CAAC,KAAa,SAA8B;AAAA,EAC3D,IAAI;AAAA,IACF,OAAO,IAAI,IAAI,GAAG;AAAA,IAClB,MAAM;AAAA,IACN,IAAI,CAAC;AAAA,MAAS,OAAO;AAAA,IACrB,IAAI;AAAA,MACF,OAAO,IAAI,IAAI,KAAK,OAAO;AAAA,MAC3B,MAAM;AAAA,MACN,OAAO;AAAA;AAAA;AAAA;AAKb,SAAS,WAAW,CAAC,SAAiB,MAAuB;AAAA,EAC3D,MAAM,IAAI,QAAQ,YAAY;AAAA,EAC9B,OAAO,EAAE,WAAW,IAAI,IAAI,KAAK,SAAS,EAAE,MAAM,CAAC,CAAC,KAAK,KAAK,SAAS,EAAE,SAAS,IAAI,SAAS;AAAA;AAKjG,SAAS,IAAI,CAAC,MAAuD;AAAA,EACnE,MAAM,IAAI,+CAA+C,KAAK,IAAI;AAAA,EAClE,IAAI,CAAC;AAAA,IAAG,OAAO;AAAA,EACf,MAAM,QAAQ,EAAE,MAAM,CAAC,EAAE,IAAI,MAAM;AAAA,EACnC,OAAO,MAAM,MAAM,CAAC,MAAM,KAAK,GAAG,IAAI,QAAQ;AAAA;AAKhD,SAAS,IAAI,CAAC,MAA+B;AAAA,EAC3C,IAAI,CAAC,KAAK,WAAW,GAAG,KAAK,CAAC,KAAK,SAAS,GAAG;AAAA,IAAG,OAAO;AAAA,EACzD,MAAM,OAAO,KAAK,MAAM,GAAG,EAAE;AAAA,EAC7B,MAAM,SAAS,KAAK,MAAM,IAAI;AAAA,EAC9B,IAAI,OAAO,SAAS;AAAA,IAAG,OAAO;AAAA,EAC9B,MAAM,SAAS,CAAC,SAAkC;AAAA,IAChD,IAAI,SAAS;AAAA,MAAI,OAAO,CAAC;AAAA,IACzB,MAAM,MAAgB,CAAC;AAAA,IACvB,WAAW,KAAK,KAAK,MAAM,GAAG,GAAG;AAAA,MAC/B,IAAI,CAAC,kBAAkB,KAAK,CAAC;AAAA,QAAG,OAAO;AAAA,MACvC,IAAI,KAAK,SAAS,GAAG,EAAE,CAAC;AAAA,IAC1B;AAAA,IACA,OAAO;AAAA;AAAA,EAET,MAAM,OAAO,OAAO,OAAO,EAAG;AAAA,EAC9B,MAAM,OAAO,OAAO,WAAW,IAAI,OAAO,OAAO,EAAG,IAAI,CAAC;AAAA,EACzD,IAAI,CAAC,QAAQ,CAAC;AAAA,IAAM,OAAO;AAAA,EAC3B,IAAI,OAAO,WAAW;AAAA,IAAG,OAAO,KAAK,WAAW,IAAI,OAAO;AAAA,EAC3D,IAAI,KAAK,SAAS,KAAK,SAAS;AAAA,IAAG,OAAO;AAAA,EAC1C,OAAO,CAAC,GAAG,MAAM,GAAG,IAAI,MAAc,IAAI,KAAK,SAAS,KAAK,MAAM,EAAE,KAAK,CAAC,GAAG,GAAG,IAAI;AAAA;AAGvF,SAAS,SAAS,EAAE,GAAG,IAA+C;AAAA,EAIpE,OAAO,MAAM,KAAK,MAAM,MAAO,MAAM,QAAQ,IAAI,SAAU,MAAO,MAAM,OAAQ,MAAM,OAAO,MAAM,OAAS,MAAM,OAAO,KAAK,MAAM,KAAK,MAAQ,MAAM,OAAO,MAAM;AAAA;AAItK,SAAS,IAAI,CAAC,IAAY,IAA8C;AAAA,EACtE,OAAO,CAAC,MAAM,GAAG,KAAK,KAAM,MAAM,GAAG,KAAK,GAAI;AAAA;AAYzC,SAAS,cAAa,CAAC,UAA2B;AAAA,EACvD,MAAM,OAAO,SAAS,YAAY,EAAE,QAAQ,OAAO,EAAE;AAAA,EACrD,IAAI,SAAS,eAAe,KAAK,SAAS,YAAY,KAAK,KAAK,SAAS,QAAQ;AAAA,IAAG,OAAO;AAAA,EAC3F,MAAM,KAAK,KAAK,IAAI;AAAA,EACpB,IAAI;AAAA,IAAI,OAAO,UAAU,EAAE;AAAA,EAC3B,MAAM,KAAK,KAAK,IAAI;AAAA,EACpB,IAAI,CAAC;AAAA,IAAI,OAAO;AAAA,EAChB,IAAI,GAAG,MAAM,CAAC,MAAM,MAAM,CAAC;AAAA,IAAG,OAAO;AAAA,EACrC,IAAI,GAAG,MAAM,GAAG,CAAC,EAAE,MAAM,CAAC,MAAM,MAAM,CAAC,KAAK,GAAG,OAAO;AAAA,IAAG,OAAO;AAAA,EAChE,KAAK,GAAG,KAAM,WAAY,UAAW,GAAG,KAAM,WAAY;AAAA,IAAQ,OAAO;AAAA,EAGzE,MAAM,SAAS,GAAG,MAAM,GAAG,CAAC,EAAE,MAAM,CAAC,MAAM,MAAM,CAAC,MAAM,GAAG,OAAO,SAAU,GAAG,OAAO;AAAA,EACtF,MAAM,QAAQ,GAAG,OAAO,OAAQ,GAAG,OAAO,SAAU,GAAG,MAAM,GAAG,CAAC,EAAE,MAAM,CAAC,MAAM,MAAM,CAAC;AAAA,EACvF,IAAI,UAAU;AAAA,IAAO,OAAO,UAAU,KAAK,GAAG,IAAK,GAAG,EAAG,CAAC;AAAA,EAC1D,IAAI,GAAG,OAAO;AAAA,IAAQ,OAAO,UAAU,KAAK,GAAG,IAAK,GAAG,EAAG,CAAC;AAAA,EAC3D,OAAO;AAAA;AAGT,SAAS,cAAc,CAAC,OAAsC,MAAuB;AAAA,EACnF,QAAQ,SAAS,CAAC,GAAG,KAAK,CAAC,MAAM,MAAM,OAAO,YAAY,GAAG,IAAI,CAAC;AAAA;AAM7D,SAAS,UAAS,CAAC,QAA+B,KAA0B;AAAA,EACjF,MAAM,SAAS,SAAS,IAAI,KAAK,GAAG,QAAQ,OAAO;AAAA,EACnD,IAAI,CAAC;AAAA,IAAQ,OAAO,EAAE,SAAS,OAAO,QAAQ,UAAU;AAAA,EACxD,MAAM,SAAS,OAAO,SAAS,QAAQ,MAAM,EAAE,EAAE,YAAY;AAAA,EAC7D,MAAM,UAAU,QAAQ,WAAW;AAAA,EACnC,IAAI,CAAC,QAAQ,SAAS,MAAM;AAAA,IAAG,OAAO,EAAE,SAAS,OAAO,KAAK,OAAO,MAAM,QAAQ,SAAS;AAAA,EAC3F,IAAI,WAAW,UAAU,WAAW,SAAS;AAAA,IAC3C,MAAM,OAAO,OAAO,SAAS,YAAY;AAAA,IACzC,IAAI,QAAQ,SAAS,CAAC,OAAO,MAAM,KAAK,CAAC,MAAM,YAAY,GAAG,IAAI,CAAC;AAAA,MAAG,OAAO,EAAE,SAAS,OAAO,KAAK,OAAO,MAAM,QAAQ,OAAO;AAAA,IAChI,IAAI,eAAc,IAAI,KAAK,CAAC,eAAe,QAAQ,cAAc,IAAI;AAAA,MAAG,OAAO,EAAE,SAAS,OAAO,KAAK,OAAO,MAAM,QAAQ,UAAU;AAAA,EACvI;AAAA,EACA,OAAO,EAAE,SAAS,MAAM,KAAK,OAAO,KAAK;AAAA;AA6BpC,SAAS,aAAY,CAAC,KAAa,UAAwB,CAAC,GAAwB;AAAA,EACzF,MAAM,IAAI,WAAU,EAAE,SAAS,QAAQ,SAAS,SAAS,QAAQ,WAAW,wBAAuB,OAAO,QAAQ,OAAO,cAAc,QAAQ,aAAa,GAAG,GAAG;AAAA,EAClK,IAAI,CAAC,EAAE,WAAW,CAAC,EAAE;AAAA,IAAK,OAAO;AAAA,EACjC,MAAM,OAAO,EAAE;AAAA,EACf,MAAM,UAAkC,CAAC;AAAA,EACzC,WAAW,QAAQ,QAAQ,SAAS,CAAC;AAAA,IAAG,IAAI,KAAK,WAAW,KAAK,MAAM;AAAA,MAAG,OAAO,OAAO,SAAS,KAAK,OAAO;AAAA,EAC7G,OAAO,EAAE,KAAK,MAAM,SAAS,UAAS,OAAO,EAAE;AAAA;AAK1C,SAAS,SAAQ,CAAC,QAA+B,KAAkC;AAAA,EACxF,IAAI,OAAO,QAAQ,YAAY,CAAC;AAAA,IAAK;AAAA,EACrC,MAAM,IAAI,WAAU,QAAQ,GAAG;AAAA,EAC/B,OAAO,EAAE,UAAU,EAAE,MAAM;AAAA;AAGtB,SAAS,SAAW,CAAC,QAA8C;AAAA,EACxE,OAAO,OAAO,YAAY,OAAO,QAAQ,MAAM,EAAE,KAAK,EAAE,KAAK,OAAQ,IAAI,IAAI,KAAK,IAAI,IAAI,IAAI,CAAE,CAAC;AAAA;AAQ5F,SAAS,gBAAe,CAAC,OAA4C;AAAA,EAC1E,IAAI,MAAM,KAAK;AAAA,IAAG,OAAO,eAAc,KAAK;AAAA,EAC5C,MAAM,IAAI,MAAM;AAAA,EAChB,MAAM,OAAO,CAAC,MAAe,IAAI,KAAK,IAAK,MAAM,MAAO,IAAK,MAAM,IAAI,KAAM;AAAA,EAC7E,MAAM,OAAO,CAAC,MAAe,IAAI,KAAK,IAAI,MAAM,KAAO,MAAM,IAAI,MAAO,IAAK;AAAA,EAC7E,MAAM,OAAO,CAAC,MAAe,IAAI,KAAK,KAAM,MAAM,MAAO,KAAO,MAAM,IAAI,MAAO,KAAO,MAAM,IAAI,MAAO,IAAK,MAAM,IAAI,QAAS,IAAI;AAAA,EACrI,MAAM,OAAO,CAAC,MAAe,IAAI,KAAK,KAAK,MAAM,KAAO,MAAM,IAAI,MAAO,IAAM,MAAM,IAAI,MAAO,KAAO,MAAM,IAAI,MAAO,QAAS,IAAI;AAAA,EACrI,MAAM,OAAO,CAAC,MAAe,IAAI,KAAK,IAAI,MAAM,KAAO,MAAM,IAAI,MAAO,IAAM,MAAM,IAAI,MAAO,KAAM;AAAA,EACrG,MAAM,SAAS,CAAC,KAAe,KAAK,MAAM,IAAI,MAAM,CAAC,GAAG,MAAM,MAAM,KAAK,OAAO,CAAC;AAAA,EACjF,MAAM,OAAO,CAAC,GAAkB,MAA+C,MAAM,QAAQ,MAAM,OAAO,OAAO,CAAC,GAAG,CAAC;AAAA,EACtH,IAAI,OAAO,CAAC,KAAM,IAAM,IAAM,IAAM,IAAM,IAAM,IAAM,EAAI,CAAC;AAAA,IAAG,OAAO,KAAK,KAAK,EAAE,GAAG,KAAK,EAAE,CAAC;AAAA,EAC5F,IAAI,OAAO,CAAC,IAAM,IAAM,IAAM,EAAI,CAAC,MAAM,MAAM,OAAO,MAAQ,MAAM,OAAO,OAAS,MAAM,OAAO;AAAA,IAAM,OAAO,KAAK,KAAK,CAAC,GAAG,KAAK,CAAC,CAAC;AAAA,EACnI,IAAI,OAAO,CAAC,IAAM,EAAI,CAAC,GAAG;AAAA,IACxB,MAAM,IAAI,KAAK,EAAE;AAAA,IACjB,OAAO,KAAK,KAAK,EAAE,GAAG,MAAM,OAAO,OAAO,KAAK,IAAI,IAAI,CAAC,CAAC;AAAA,EAC3D;AAAA,EACA,IAAI,KAAK,MAAM,OAAO,CAAC,IAAM,IAAM,IAAM,EAAI,CAAC,KAAK,OAAO,CAAC,IAAM,IAAM,IAAM,EAAI,GAAG,CAAC,GAAG;AAAA,IACtF,MAAM,OAAO,OAAO,aAAa,MAAM,KAAM,MAAM,KAAM,MAAM,KAAM,MAAM,GAAI;AAAA,IAC/E,IAAI,SAAS;AAAA,MAAQ,OAAO,KAAK,KAAK,EAAE,IAAK,OAAQ,KAAK,EAAE,IAAK,KAAM;AAAA,IACvE,IAAI,SAAS,QAAQ;AAAA,MACnB,MAAM,IAAI,KAAK,EAAE;AAAA,MACjB,OAAO,MAAM,OAAO,OAAO,EAAE,IAAI,SAAU,IAAK,MAAM,KAAM,SAAU,CAAC;AAAA,IACzE;AAAA,IACA,IAAI,SAAS,QAAQ;AAAA,MACnB,MAAM,IAAI,KAAK,EAAE;AAAA,MACjB,MAAM,IAAI,KAAK,EAAE;AAAA,MACjB,OAAO,MAAM,QAAQ,MAAM,OAAO,OAAO,CAAC,IAAI,GAAG,IAAI,CAAC;AAAA,IACxD;AAAA,IACA,OAAO;AAAA,EACT;AAAA,EACA,IAAI,OAAO,CAAC,KAAM,GAAI,CAAC,GAAG;AAAA,IACxB,IAAI,IAAI;AAAA,IACR,OAAO,IAAI,KAAK,GAAG;AAAA,MACjB,IAAI,MAAM,OAAO,KAAM;AAAA,QACrB,KAAK;AAAA,QACL;AAAA,MACF;AAAA,MACA,MAAM,SAAS,MAAM,IAAI;AAAA,MACzB,IAAI,WAAW,KAAM;AAAA,QACnB,KAAK;AAAA,QACL;AAAA,MACF;AAAA,MACA,IAAI,WAAW,OAAQ,WAAW,KAAS,UAAU,OAAQ,UAAU,KAAO;AAAA,QAC5E,KAAK;AAAA,QACL;AAAA,MACF;AAAA,MACA,MAAM,MAAM,KAAK,IAAI,CAAC;AAAA,MACtB,IAAI,QAAQ;AAAA,QAAM,OAAO;AAAA,MACzB,IAAI,UAAU,OAAQ,UAAU,OAAQ,WAAW,OAAQ,WAAW,OAAQ,WAAW;AAAA,QAAM,OAAO,KAAK,KAAK,IAAI,CAAC,GAAG,KAAK,IAAI,CAAC,CAAC;AAAA,MACnI,KAAK,IAAI;AAAA,IACX;AAAA,EACF;AAAA,EACA,OAAO;AAAA;AAIT,SAAS,KAAK,CAAC,OAA4B;AAAA,EACzC,MAAM,OAAO,MAAM,SAAS,GAAG,GAAG;AAAA,EAClC,IAAI,IAAI;AAAA,EACR,OAAO,IAAI,KAAK,WAAW,KAAK,OAAO,MAAQ,KAAK,OAAO,KAAQ,KAAK,OAAO,MAAQ,KAAK,OAAO,MAAQ,KAAK,OAAO;AAAA,IAAO,KAAK;AAAA,EACnI,MAAM,OAAO,OAAO,aAAa,GAAG,KAAK,SAAS,GAAG,IAAI,CAAC,CAAC,EAAE,YAAY;AAAA,EACzE,OAAO,KAAK,WAAW,MAAM,KAAK,KAAK,WAAW,OAAO;AAAA;AAG3D,IAAM,YAAoC,EAAE,IAAI,GAAG,IAAI,GAAG,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,MAAM,IAAI,KAAK,MAAM,IAAI,IAAI,IAAI,EAAE;AAGjI,SAAS,SAAS,CAAC,OAA8B;AAAA,EAC/C,MAAM,IAAI,MAAM,KAAK;AAAA,EACrB,MAAM,IAAI,gBAAgB,KAAK,CAAC;AAAA,EAChC,IAAI,MAAM,EAAE;AAAA,EACZ,IAAI,OAAO,EAAE,MAAM,IAAI,MAAM;AAAA,EAC7B,IAAI,QAAQ,KAAK,GAAG,GAAG;AAAA,IACrB,MAAM,IAAI,MAAM,GAAG,EAAE;AAAA,IACrB,OAAO,EAAE,MAAM,IAAI,MAAM;AAAA,EAC3B;AAAA,EACA,MAAM,QAAQ,UAAU,KAAK,KAAK;AAAA,EAClC,IAAI,UAAU,aAAa,CAAC,0CAA0C,KAAK,GAAG;AAAA,IAAG,OAAO;AAAA,EACxF,MAAM,IAAI,OAAO,GAAG;AAAA,EACpB,OAAO,OAAO,SAAS,CAAC,KAAK,KAAK,IAAI,IAAI,QAAQ;AAAA;AAGpD,SAAS,UAAU,CAAC,OAAwC;AAAA,EAC1D,MAAM,QAAQ,MAAM,MAAM,QAAQ,EAAE,OAAO,CAAC,MAAM,MAAM,EAAE;AAAA,EAC1D,IAAI,MAAM,WAAW,KAAK,MAAM,KAAK,CAAC,MAAM,CAAC,0CAA0C,KAAK,CAAC,CAAC;AAAA,IAAG,OAAO;AAAA,EACxG,MAAM,IAAI,OAAO,MAAM,EAAE;AAAA,EACzB,MAAM,IAAI,OAAO,MAAM,EAAE;AAAA,EACzB,OAAO,IAAI,KAAK,IAAI,KAAK,OAAO,SAAS,CAAC,KAAK,OAAO,SAAS,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI;AAAA;AAOxE,SAAS,cAAa,CAAC,OAA4C;AAAA,EACxE,IAAI,KAAK;AAAA,EACT,SAAS,IAAI,EAAG,IAAI,KAAK,MAAM,QAAQ,KAAK;AAAA,IAC1C,IAAI,MAAM,OAAO,MAAQ,MAAM,IAAI,OAAO,OAAQ,MAAM,IAAI,OAAO,OAAQ,MAAM,IAAI,OAAO,KAAM;AAAA,MAChG,KAAK;AAAA,MACL;AAAA,IACF;AAAA,EACF;AAAA,EACA,IAAI,KAAK;AAAA,IAAG,OAAO;AAAA,EACnB,IAAI,MAAM,MAAM,QAAQ,IAAM,EAAE;AAAA,EAChC,IAAI,MAAM;AAAA,IAAG,MAAM,MAAM;AAAA,EACzB,MAAM,MAAM,IAAI,YAAY,EAAE,OAAO,MAAM,SAAS,KAAK,GAAG,GAAG,CAAC;AAAA,EAChE,IAAI,QAAuB;AAAA,EAC3B,IAAI,SAAwB;AAAA,EAC5B,IAAI,UAAmC;AAAA,EACvC,WAAW,KAAK,IAAI,SAAS,qEAAqE,GAAG;AAAA,IACnG,MAAM,QAAQ,EAAE,MAAM,EAAE,MAAM;AAAA,IAC9B,IAAI,EAAE,OAAO;AAAA,MAAS,QAAQ,UAAU,KAAK;AAAA,IAC7C,KAAK,IAAI,EAAE,OAAO;AAAA,MAAU,SAAS,UAAU,KAAK;AAAA,IACpD,KAAK,IAAI,EAAE,OAAO;AAAA,MAAW,UAAU,WAAW,KAAK;AAAA,EACzD;AAAA,EACA,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI,UAAU,QAAQ,WAAW;AAAA,IAAM,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,MAAM;AAAA,EAC9D,KAAK,IAAI,UAAU;AAAA,IAAM,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,UAAW,QAAQ,QAAQ,KAAM,QAAQ,KAAK,GAAG;AAAA,EAC3F,KAAK,IAAI,WAAW;AAAA,IAAM,CAAC,GAAG,CAAC,IAAI,CAAC,UAAW,SAAS,QAAQ,KAAM,QAAQ,KAAK,KAAK,MAAM;AAAA,EAC9F;AAAA,IAAK,CAAC,GAAG,CAAC,IAAI,WAAW,CAAC,KAAK,GAAG;AAAA,EAClC,MAAM,KAAK,CAAC,MAAe,OAAO,SAAS,CAAC,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,KAAK,CAAC,GAAG,CAAC,GAAG,UAAU,IAAI;AAAA,EAClG,OAAO,CAAC,GAAG,CAAC,GAAG,GAAG,CAAC,CAAC;AAAA;AAMf,SAAS,YAAW,CAAC,OAA2B;AAAA,EACrD,MAAM,IAAI,MAAM;AAAA,EAChB,MAAM,OAAO,CAAC,MAAe,IAAI,KAAK,KAAM,MAAM,MAAO,KAAO,MAAM,IAAI,MAAO,KAAO,MAAM,IAAI,MAAO,IAAK,MAAM,IAAI,QAAS,IAAI;AAAA,EACrI,MAAM,OAAO,CAAC,MAAe,IAAI,KAAK,KAAK,MAAM,KAAO,MAAM,IAAI,MAAO,IAAM,MAAM,IAAI,MAAO,KAAO,MAAM,IAAI,MAAO,QAAS,IAAI;AAAA,EACrI,MAAM,MAAM,CAAC,MAAe,IAAI,KAAK,IAAI,OAAO,aAAa,MAAM,IAAK,MAAM,IAAI,IAAK,MAAM,IAAI,IAAK,MAAM,IAAI,EAAG,IAAI;AAAA,EACvH,MAAM,SAAS,CAAC,QAAkB,IAAI,MAAM,CAAC,GAAG,MAAM,MAAM,OAAO,CAAC;AAAA,EACpE,IAAI,SAAS;AAAA,EACb,IAAI,OAAO,CAAC,IAAM,IAAM,IAAM,EAAI,CAAC,MAAM,MAAM,OAAO,MAAQ,MAAM,OAAO,OAAS,MAAM,OAAO,IAAM;AAAA,IACrG,MAAM,aAAa,CAAC,MAAc;AAAA,MAChC,OAAO,IAAI,GAAG;AAAA,QACZ,MAAM,OAAO,MAAM;AAAA,QACnB,KAAK,IAAI;AAAA,QACT,IAAI,SAAS;AAAA,UAAG;AAAA,MAClB;AAAA,MACA,OAAO;AAAA;AAAA,IAET,MAAM,QAAQ,CAAC,WAAoB,SAAS,MAAO,MAAO,SAAS,KAAK,IAAK;AAAA,IAC7E,IAAI,IAAI,MAAM,IAAI,KAAK,MAAM,MAAM,GAAI,IAAI;AAAA,IAC3C,SAAS;AAAA,IACT,UAAS;AAAA,MACP,IAAI,MAAM,OAAO,IAAM;AAAA,QACrB,UAAU;AAAA,QACV,IAAI,IAAI,KAAK;AAAA,UAAG;AAAA,QAChB,IAAI,WAAW,IAAI,KAAK,MAAM,MAAM,IAAI,EAAG,IAAI,CAAC;AAAA,MAClD,EAAE,KAAK,IAAI,MAAM,OAAO;AAAA,QAAM,IAAI,WAAW,IAAI,CAAC;AAAA,MAClD;AAAA,QAAK;AAAA,IACP;AAAA,EACF,EAAE,KAAK,IAAI,OAAO,CAAC,KAAM,IAAM,IAAM,IAAM,IAAM,IAAM,IAAM,EAAI,CAAC,GAAG;AAAA,IACnE,IAAI,IAAI;AAAA,IACR,UAAS;AAAA,MACP,MAAM,MAAM,KAAK,CAAC;AAAA,MAClB,MAAM,OAAO,IAAI,IAAI,CAAC;AAAA,MACtB,IAAI,QAAQ,QAAQ,SAAS,QAAQ,SAAS;AAAA,QAAQ;AAAA,MACtD,IAAI,SAAS,QAAQ;AAAA,QACnB,SAAS,KAAK,IAAI,CAAC,KAAK;AAAA,QACxB;AAAA,MACF;AAAA,MACA,KAAK,KAAK;AAAA,IACZ;AAAA,EACF,EAAE,KAAK,IAAI,KAAK,MAAM,IAAI,CAAC,MAAM,UAAU,IAAI,CAAC,MAAM,UAAU,IAAI,EAAE,MAAM,UAAU,MAAM,MAAO,GAAM;AAAA,IACvG,IAAI,IAAI;AAAA,IACR,SAAS;AAAA,IACT,UAAS;AAAA,MACP,MAAM,OAAO,IAAI,CAAC;AAAA,MAClB,MAAM,OAAO,KAAK,IAAI,CAAC;AAAA,MACvB,IAAI,SAAS,QAAQ,SAAS;AAAA,QAAM;AAAA,MACpC,IAAI,SAAS;AAAA,QAAQ,UAAU;AAAA,MAC/B,KAAK,IAAI,QAAQ,OAAO;AAAA,IAC1B;AAAA,EACF;AAAA,EACA,OAAO,KAAK,IAAI,QAAQ,CAAC;AAAA;AASpB,SAAS,uBAAsB,CAAC,OAAmB,SAAkD,eAA6B;AAAA,EACvI,QAAQ,UAAU,cAAc;AAAA,EAChC,IAAI,MAAM,SAAS;AAAA,IAAU,OAAO,iBAAiB;AAAA,EACrD,MAAM,SAAS,CAAC,KAAe,KAAK,MAAM,IAAI,MAAM,CAAC,GAAG,MAAM,MAAM,KAAK,OAAO,CAAC;AAAA,EACjF,MAAM,SACJ,OAAO,CAAC,KAAM,IAAM,IAAM,IAAM,IAAM,IAAM,IAAM,EAAI,CAAC,KACtD,OAAO,CAAC,IAAM,IAAM,IAAM,EAAI,CAAC,MAAM,MAAM,OAAO,MAAQ,MAAM,OAAO,OAAS,MAAM,OAAO,MAC9F,OAAO,CAAC,IAAM,EAAI,CAAC,KACnB,OAAO,CAAC,KAAM,GAAI,CAAC,KAClB,MAAM,UAAU,MAAM,OAAO,CAAC,IAAM,IAAM,IAAM,EAAI,CAAC,KAAK,OAAO,CAAC,IAAM,IAAM,IAAM,EAAI,GAAG,CAAC;AAAA,EAC/F,IAAI,CAAC,UAAU,CAAC,MAAM,KAAK;AAAA,IAAG,OAAO;AAAA,EACrC,MAAM,OAAO,iBAAgB,KAAK;AAAA,EAClC,IAAI,CAAC;AAAA,IAAM,OAAO;AAAA,EAClB,OAAO,GAAG,KAAK;AAAA,EACf,MAAM,SAAS,aAAY,KAAK;AAAA,EAChC,IAAI,UAAU;AAAA,IAAG,OAAO,IAAI,IAAI,YAAY,YAAY,KAAK,WAAW,qBAAqB;AAAA,EAC7F,OAAO,IAAI,IAAI,SAAS,YAAY,YAAY,KAAK,OAAO,uBAAuB,qBAAqB;AAAA;;ACza1G,IAAM,SAAS;AAEf,SAAS,MAAM,CAAC,MAAsB;AAAA,EACpC,IAAI;AAAA,IACF,OAAO,mBAAmB,KAAK,QAAQ,OAAO,GAAG,CAAC;AAAA,IAClD,MAAM;AAAA,IACN,OAAO;AAAA;AAAA;AAMJ,SAAS,YAAW,CAAC,KAAkC;AAAA,EAC5D,MAAM,IAAI,OAAO,KAAK,IAAI,KAAK,CAAC;AAAA,EAChC,IAAI,CAAC;AAAA,IAAG,OAAO;AAAA,EACf,MAAM,OAAO,OAAO,EAAE,EAAG;AAAA,EACzB,IAAI,CAAC;AAAA,IAAM,OAAO;AAAA,EAClB,MAAM,SAAiC,CAAC;AAAA,EACxC,WAAW,SAAS,EAAE,MAAM,IAAI,MAAM,GAAG,GAAG;AAAA,IAC1C,IAAI,CAAC;AAAA,MAAM;AAAA,IACX,MAAM,KAAK,KAAK,QAAQ,GAAG;AAAA,IAC3B,MAAM,MAAM,OAAO,KAAK,IAAI,OAAO,KAAK,MAAM,GAAG,EAAE,CAAC;AAAA,IACpD,IAAI,CAAC;AAAA,MAAK;AAAA,IACV,OAAO,OAAO,KAAK,IAAI,KAAK,OAAO,KAAK,MAAM,KAAK,CAAC,CAAC;AAAA,EACvD;AAAA,EACA,OAAO,EAAE,KAAK,QAAQ,EAAE,GAAI,YAAY,GAAG,MAAM,QAAQ,UAAS,MAAM,EAAE;AAAA;AAiBrE,SAAS,iBAAgB,CAAC,QAAgB,QAAiD;AAAA,EAChG,IAAI,CAAC,UAAU,OAAO,WAAW;AAAA,IAAU,OAAO;AAAA,EAClD,MAAM,QAAkB,CAAC;AAAA,EACzB,WAAW,OAAO,OAAO,KAAK,MAAM,EAAE,KAAK,GAAG;AAAA,IAC5C,MAAM,IAAI,OAAO;AAAA,IACjB,IAAI,MAAM,QAAQ,MAAM;AAAA,MAAW;AAAA,IACnC,MAAM,OAAO,OAAO,MAAM,WAAW,KAAK,UAAU,CAAC,IAAI,OAAO,CAAC;AAAA,IACjE,MAAM,KAAK,GAAG,mBAAmB,GAAG,KAAK,mBAAmB,IAAI,GAAG;AAAA,EACrE;AAAA,EACA,IAAI,CAAC,MAAM;AAAA,IAAQ,OAAO;AAAA,EAC1B,OAAO,GAAG,SAAS,OAAO,SAAS,GAAG,IAAI,MAAM,MAAM,MAAM,KAAK,GAAG;AAAA;;AC/CtE,SAAS,SAAS,CAAC,MAAc,IAAY,KAAoB;AAAA,EAC/D,MAAM,OAAO,KAAK,KAAK;AAAA,EACvB,IAAI,CAAC;AAAA,IAAM;AAAA,EACX,IAAI;AAAA,IACF,IAAI,SAAS,KAAK,KAAK,MAAM,IAAI,CAAC;AAAA,IAClC,MAAM;AAAA,IACN,IAAI,OAAO,KAAK,EAAE,IAAI,SAAS,QAAQ,iBAAiB,CAAC;AAAA;AAAA;AAK7D,SAAS,SAAS,CAAC,MAAsB;AAAA,EACvC,IAAI,IAAI;AAAA,EACR,SAAS,IAAI,EAAG,IAAI,KAAK,QAAQ,KAAK;AAAA,IACpC,MAAM,IAAI,KAAK,WAAW,CAAC;AAAA,IAC3B,KAAK,IAAI,MAAO,IAAI,IAAI,OAAQ,IAAI,KAAK,SAAU,KAAK,QAAS,IAAI;AAAA,EACvE;AAAA,EACA,OAAO;AAAA;AAAA;AAOT,MAAM,MAAM;AAAA,EACF,QAAkB,CAAC;AAAA,EACnB,QAAQ;AAAA,EAER,WAAW;AAAA,EAEnB,IAAI,CAAC,OAAkC;AAAA,IACrC,MAAM,MAAyB,CAAC;AAAA,IAChC,IAAI,QAAQ;AAAA,IACZ,IAAI,KAAK,UAAU;AAAA,MACjB,MAAM,IAAI,MAAM,QAAQ;AAAA,CAAI;AAAA,MAC5B,IAAI,IAAI;AAAA,QAAG,OAAO;AAAA,MAClB,KAAK,WAAW;AAAA,MAChB,QAAQ,IAAI;AAAA,IACd;AAAA,IACA,IAAI,KAAK,MAAM,QAAQ;AAAA,GAAM,KAAK;AAAA,IAClC,OAAO,MAAM,GAAG;AAAA,MACd,MAAM,QAAQ,MAAM,MAAM,OAAO,EAAE;AAAA,MACnC,MAAM,YAAY,KAAK,QAAQ,UAAU,KAAK,IAAI;AAAA,MAClD,IAAI,KAAK,YAAY,OAAO,KAAK,MAAM,SAAS,KAAK,MAAM,KAAK,EAAE,IAAI,QAAQ,KAAK;AAAA,MACnF,KAAK,QAAQ,CAAC;AAAA,MACd,KAAK,QAAQ;AAAA,MACb,QAAQ,KAAK;AAAA,MACb,KAAK,MAAM,QAAQ;AAAA,GAAM,KAAK;AAAA,IAChC;AAAA,IACA,IAAI,QAAQ,MAAM,QAAQ;AAAA,MACxB,MAAM,OAAO,MAAM,MAAM,KAAK;AAAA,MAC9B,KAAK,MAAM,KAAK,IAAI;AAAA,MACpB,KAAK,SAAS,UAAU,IAAI;AAAA,IAC9B;AAAA,IACA,IAAI,KAAK,QAAQ,oBAAmB;AAAA,MAClC,IAAI,KAAK,IAAI;AAAA,MACb,KAAK,QAAQ,CAAC;AAAA,MACd,KAAK,QAAQ;AAAA,MACb,KAAK,WAAW;AAAA,IAClB;AAAA,IACA,OAAO;AAAA;AAAA,EAIT,GAAG,GAAkB;AAAA,IACnB,MAAM,WAAW,KAAK;AAAA,IACtB,MAAM,OAAO,KAAK,MAAM,KAAK,EAAE;AAAA,IAC/B,KAAK,QAAQ,CAAC;AAAA,IACd,KAAK,QAAQ;AAAA,IACb,KAAK,WAAW;AAAA,IAChB,OAAO,WAAW,OAAO;AAAA;AAE7B;AAEA,IAAM,YAAY,CAAC,IAAY,UAAyC,EAAE,IAAI,SAAS,GAAG,QAAQ,OAAO,cAAa,eAAe;AAAA;AAM9H,MAAM,cAAa;AAAA,EAChB,QAAQ,IAAI;AAAA,EACZ,OAAO;AAAA,EAEf,IAAI,CAAC,OAAwB;AAAA,IAC3B,MAAM,MAAe,EAAE,UAAU,CAAC,GAAG,QAAQ,CAAC,EAAE;AAAA,IAChD,WAAW,OAAO,KAAK,MAAM,KAAK,KAAK,GAAG;AAAA,MACxC,KAAK,QAAQ;AAAA,MACb,IAAI,QAAQ;AAAA,QAAM,IAAI,OAAO,KAAK,UAAU,KAAK,MAAM,MAAM,CAAC;AAAA,MAC9D;AAAA,QAAK,UAAU,KAAK,KAAK,MAAM,GAAG;AAAA,IACpC;AAAA,IACA,OAAO;AAAA;AAAA,EAGT,GAAG,GAAY;AAAA,IACb,MAAM,MAAe,EAAE,UAAU,CAAC,GAAG,QAAQ,CAAC,EAAE;AAAA,IAChD,MAAM,MAAM,KAAK,MAAM,IAAI;AAAA,IAC3B,IAAI,QAAQ,QAAQ,IAAI,KAAK,GAAG;AAAA,MAC9B,KAAK,QAAQ;AAAA,MACb,UAAU,KAAK,KAAK,MAAM,GAAG;AAAA,IAC/B;AAAA,IACA,OAAO;AAAA;AAEX;AAGO,SAAS,YAAW,CAAC,MAAuB;AAAA,EACjD,MAAM,UAAU,KAAK,KAAK;AAAA,EAC1B,IAAI,QAAQ,WAAW,GAAG,GAAG;AAAA,IAC3B,IAAI;AAAA,MACF,MAAM,QAAQ,KAAK,MAAM,OAAO;AAAA,MAChC,IAAI,MAAM,QAAQ,KAAK;AAAA,QAAG,OAAO,EAAE,UAAU,OAAO,QAAQ,CAAC,EAAE;AAAA,MAC/D,MAAM;AAAA,EAGV;AAAA,EACA,MAAM,IAAI,IAAI;AAAA,EACd,MAAM,IAAI,EAAE,KAAK,IAAI;AAAA,EACrB,MAAM,IAAI,EAAE,IAAI;AAAA,EAChB,OAAO,EAAE,UAAU,CAAC,GAAG,EAAE,UAAU,GAAG,EAAE,QAAQ,GAAG,QAAQ,CAAC,GAAG,EAAE,QAAQ,GAAG,EAAE,MAAM,EAAE;AAAA;AAAA;AAQjF,MAAM,YAAW;AAAA,EAGtB;AAAA,EACQ,QAAQ,IAAI;AAAA,EACZ,OAAiB,CAAC;AAAA,EAGlB,YAAY;AAAA,EACZ,YAAY;AAAA,EACZ,QAAQ;AAAA,EACR,QAAQ;AAAA,EAEhB,IAAI,CAAC,OAAwB;AAAA,IAC3B,MAAM,MAAe,EAAE,UAAU,CAAC,GAAG,QAAQ,CAAC,EAAE;AAAA,IAChD,WAAW,OAAO,KAAK,MAAM,KAAK,KAAK,GAAG;AAAA,MACxC,IAAI,QAAQ;AAAA,QAAM,KAAK,SAAS;AAAA,MAChC;AAAA,QAAK,KAAK,KAAK,IAAI,SAAS,IAAI,IAAI,IAAI,MAAM,GAAG,EAAE,IAAI,KAAK,GAAG;AAAA,IACjE;AAAA,IACA,OAAO;AAAA;AAAA,EAGT,GAAG,GAAY;AAAA,IACb,MAAM,MAAe,EAAE,UAAU,CAAC,GAAG,QAAQ,CAAC,EAAE;AAAA,IAChD,MAAM,MAAM,KAAK,MAAM,IAAI;AAAA,IAC3B,IAAI,QAAQ;AAAA,MAAM,KAAK,SAAS;AAAA,IAChC,KAAK,IAAI;AAAA,MAAK,KAAK,KAAK,KAAK,GAAG;AAAA,IAChC,KAAK,SAAS,GAAG;AAAA,IACjB,OAAO;AAAA;AAAA,EAKD,QAAQ,GAAS;AAAA,IACvB,KAAK,OAAO,CAAC;AAAA,IACb,KAAK,YAAY;AAAA,IACjB,KAAK,YAAY;AAAA;AAAA,EAGX,IAAI,CAAC,MAAc,KAAoB;AAAA,IAC7C,IAAI,SAAS;AAAA,MAAI,OAAO,KAAK,SAAS,GAAG;AAAA,IACzC,IAAI,KAAK,WAAW,GAAG;AAAA,MAAG;AAAA,IAC1B,MAAM,QAAQ,KAAK,QAAQ,GAAG;AAAA,IAC9B,MAAM,QAAQ,QAAQ,IAAI,OAAO,KAAK,MAAM,GAAG,KAAK;AAAA,IACpD,IAAI,QAAQ,QAAQ,IAAI,KAAK,KAAK,MAAM,QAAQ,CAAC;AAAA,IACjD,IAAI,MAAM,WAAW,GAAG;AAAA,MAAG,QAAQ,MAAM,MAAM,CAAC;AAAA,IAChD,IAAI,UAAU,QAAQ;AAAA,MACpB,IAAI,KAAK;AAAA,QAAW;AAAA,MACpB,KAAK,aAAa,UAAU,KAAK,IAAI;AAAA,MACrC,IAAI,KAAK,YAAY;AAAA,QAAmB,OAAO,KAAK,SAAS;AAAA,MAC7D,KAAK,KAAK,KAAK,KAAK;AAAA,IACtB,EAAE,KAAK,IAAI,UAAU;AAAA,MAAS,KAAK,QAAQ;AAAA,IAC3C,KAAK,IAAI,UAAU,WAAW,QAAQ,KAAK,KAAK;AAAA,MAAG,KAAK,UAAU,OAAO,KAAK;AAAA;AAAA,EAGxE,QAAQ,CAAC,KAAoB;AAAA,IACnC,KAAK,YAAY;AAAA,IACjB,IAAI,KAAK,WAAW;AAAA,MAClB,KAAK,YAAY;AAAA,MACjB,KAAK,SAAS;AAAA,MACd,KAAK,OAAO,CAAC;AAAA,MACb,KAAK,QAAQ;AAAA,MACb,IAAI,OAAO,KAAK,UAAU,KAAK,OAAO,OAAO,CAAC;AAAA,MAC9C;AAAA,IACF;AAAA,IACA,IAAI,CAAC,KAAK,KAAK,QAAQ;AAAA,MACrB,KAAK,QAAQ;AAAA,MACb;AAAA,IACF;AAAA,IACA,KAAK,SAAS;AAAA,IACd,MAAM,OAAO,KAAK,SAAS;AAAA,IAC3B,MAAM,OAAO,KAAK,KAAK,KAAK;AAAA,CAAI;AAAA,IAChC,KAAK,OAAO,CAAC;AAAA,IACb,KAAK,QAAQ;AAAA,IACb,IAAI,CAAC,YAAW,SAAS,IAAI;AAAA,MAAG;AAAA,IAChC,MAAM,IAAI,aAAY,IAAI;AAAA,IAC1B,IAAI,SAAS,KAAK,GAAG,EAAE,QAAQ;AAAA,IAC/B,IAAI,EAAE,OAAO;AAAA,MAAQ,IAAI,OAAO,KAAK,EAAE,IAAI,KAAK,OAAO,SAAS,SAAS,KAAK,oBAAoB,CAAC;AAAA;AAEvG;AAKO,SAAS,sBAAqB,CAAC,QAA0B;AAAA,EAC9D,MAAM,MAAe,EAAE,UAAU,CAAC,GAAG,QAAQ,CAAC,EAAE;AAAA,EAChD,IAAI,CAAC,UAAU,OAAO,WAAW;AAAA,IAAU,OAAO;AAAA,EAClD,MAAM,IAAI;AAAA,EACV,MAAM,aAAc,EAAE,mBAAsD;AAAA,EAC5E,IAAI,MAAM,QAAQ,UAAU;AAAA,IAAG,IAAI,SAAS,KAAK,GAAG,UAAU;AAAA,EAC9D,IAAI,MAAM,QAAQ,EAAE,OAAO,GAAG;AAAA,IAC5B,EAAE,QAAQ,QAAQ,CAAC,MAAM,MAAM;AAAA,MAC7B,MAAM,WAAY,MAA6E;AAAA,MAC/F,IAAK,MAA4B,SAAS,cAAc,CAAC,YAAY,CAAC,gBAAe,SAAS,SAAS,YAAY,EAAE;AAAA,QAAG;AAAA,MACxH,IAAI,OAAO,SAAS,SAAS;AAAA,QAAU;AAAA,MACvC,MAAM,IAAI,aAAY,SAAS,IAAI;AAAA,MACnC,IAAI,SAAS,KAAK,GAAG,EAAE,QAAQ;AAAA,MAC/B,WAAW,SAAS,EAAE;AAAA,QAAQ,IAAI,OAAO,KAAK,EAAE,IAAI,IAAI,GAAG,SAAS,WAAW,OAAO,MAAM,UAAU,CAAC;AAAA,KACxG;AAAA,EACH;AAAA,EACA,OAAO;AAAA;AAIF,SAAS,cAAa,CAAC,SAAwB,OAAe,kBAA4G;AAAA,EAC/K,OAAO,EAAE,QAAQ,cAAc,QAAQ,EAAE,MAAM,MAAM,WAAW,EAAE,QAAQ,EAAE,EAAE;AAAA;;AClPzE,IAAM,uBAAsB;AAE5B,IAAM,wBAA0C,CAAC,MAAM,aAAa,aAAa,aAAa,QAAQ;AACtG,IAAM,sBAAwC,CAAC,UAAU,UAAU,WAAW,WAAW,OAAO;AAChG,IAAM,qBAAuC,CAAC,UAAU,UAAU,WAAW,SAAS;AACtF,IAAM,kBAAoC,CAAC,QAAQ,aAAa,MAAM;AAoC7E,IAAM,WAAW,CAAC,MAA6C,CAAC,CAAC,KAAK,OAAO,MAAM,YAAY,CAAC,MAAM,QAAQ,CAAC;AAC/G,IAAM,eAAe,CAAC,MAA8B,MAAM,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,OAAO,MAAM,QAAQ;AAGrG,SAAS,qBAAoB,CAAC,QAAiB,IAA4B;AAAA,EAChF,MAAM,SAAyB,CAAC;AAAA,EAChC,IAAI,CAAC,SAAS,MAAM,KAAK,OAAO,SAAS,YAAY,CAAC,SAAS,OAAO,UAAU;AAAA,IAAG,OAAO,CAAC,EAAE,MAAM,IAAI,SAAS,kDAAkD,CAAC;AAAA,EAGnK,WAAW,QAAQ,OAAO,KAAK,OAAO,UAAU,EAAE,KAAK,GAAG;AAAA,IACxD,MAAM,QAAS,OAAO,WAAuC;AAAA,IAC7D,MAAM,KAAK,GAAG,iBAAiB;AAAA,IAC/B,IAAI,sBAAqB,SAAS,IAAI;AAAA,MAAG,OAAO,KAAK,EAAE,MAAM,IAAI,SAAS,GAAG,gCAAgC,CAAC;AAAA,IAC9G,IAAI,CAAC,SAAS,KAAK,KAAK,OAAO,MAAM,SAAS,YAAY,CAAC,oBAAmB,SAAS,MAAM,IAAI,GAAG;AAAA,MAClG,OAAO,KAAK,EAAE,MAAM,IAAI,SAAS,qBAAqB,oBAAmB,KAAK,GAAG,KAAK,CAAC;AAAA,MACvF;AAAA,IACF;AAAA,IACA,IAAI,MAAM,SAAS,cAAc,CAAC,aAAa,MAAM,IAAI,KAAK,CAAC,MAAM,KAAK,UAAU,MAAM,SAAS;AAAA,MAAW,OAAO,KAAK,EAAE,MAAM,GAAG,WAAW,SAAS,wDAAwD,CAAC;AAAA,IAClN,IAAI,MAAM,SAAS,SAAS;AAAA,MAC1B,MAAM,QAAQ,MAAM;AAAA,MACpB,IAAI,CAAC,SAAS,KAAK,KAAK,OAAO,MAAM,SAAS,YAAY,CAAC,mBAAkB,SAAS,MAAM,IAAI;AAAA,QAAG,OAAO,KAAK,EAAE,MAAM,GAAG,YAAY,SAAS,mBAAmB,mBAAkB,KAAK,GAAG,KAAK,CAAC;AAAA,MAClM,KAAK,IAAI,MAAM,SAAS,cAAc,CAAC,aAAa,MAAM,IAAI,KAAK,CAAC,MAAM,KAAK,UAAU,MAAM,SAAS;AAAA,QAAW,OAAO,KAAK,EAAE,MAAM,GAAG,iBAAiB,SAAS,uDAAuD,CAAC;AAAA,IAC9N,EAAE,KAAK,IAAI,MAAM,UAAU;AAAA,MAAW,OAAO,KAAK,EAAE,MAAM,GAAG,YAAY,SAAS,kCAAkC,CAAC;AAAA,IACrH,IAAI,MAAM,WAAW,cAAc,OAAO,MAAM,WAAW,YAAY,CAAC,gBAAe,SAAS,MAAM,MAAM,KAAK,MAAM,SAAS;AAAA,MAAW,OAAO,KAAK,EAAE,MAAM,GAAG,aAAa,SAAS,aAAa,gBAAe,KAAK,GAAG,sBAAsB,CAAC;AAAA,IACnP,WAAW,OAAO,CAAC,aAAa,WAAW,SAAS;AAAA,MAAG,IAAI,MAAM,SAAS,aAAa,OAAO,MAAM,SAAS;AAAA,QAAU,OAAO,KAAK,EAAE,MAAM,GAAG,MAAM,OAAO,SAAS,GAAG,kBAAkB,CAAC;AAAA,EAC5L;AAAA,EACA,IAAI,OAAO,aAAa,WAAW;AAAA,IACjC,IAAI,CAAC,aAAa,OAAO,QAAQ;AAAA,MAAG,OAAO,KAAK,EAAE,MAAM,GAAG,eAAe,SAAS,oCAAoC,CAAC;AAAA,IACxH;AAAA,MAAK,OAAO,SAAS,QAAQ,CAAC,MAAM,MAAM;AAAA,QACxC,IAAI,CAAC,OAAO,UAAU,eAAe,KAAK,OAAO,YAAsB,IAAI;AAAA,UAAG,OAAO,KAAK,EAAE,MAAM,GAAG,eAAe,KAAK,SAAS,GAAG,+BAA+B,CAAC;AAAA,OACtK;AAAA,EACH;AAAA,EACA,IAAI,OAAO,yBAAyB,aAAa,OAAO,OAAO,yBAAyB;AAAA,IAAW,OAAO,KAAK,EAAE,MAAM,GAAG,2BAA2B,SAAS,oCAAoC,CAAC;AAAA,EACnM,OAAO;AAAA;AAGT,IAAM,OAAO;AACb,IAAM,OAAO;AACb,IAAM,YAAY;AAElB,SAAS,YAAW,CAAC,MAAc,OAAgB,IAAY,OAAqH;AAAA,EAClL,MAAM,SAAyB,CAAC;AAAA,EAChC,QAAQ;AAAA,IACN,KAAK;AAAA,MACH,IAAI,OAAO,UAAU;AAAA,QAAU,OAAO,CAAC,EAAE,MAAM,IAAI,SAAS,WAAW,CAAC;AAAA,MACxE,IAAI,MAAM,QAAQ,CAAC,MAAM,KAAK,SAAS,KAAK;AAAA,QAAG,OAAO,KAAK,EAAE,MAAM,IAAI,SAAS,UAAU,MAAM,KAAK,KAAK,GAAG,IAAI,CAAC;AAAA,MAClH,IAAI,MAAM,cAAc,aAAa,CAAC,GAAG,KAAK,EAAE,SAAS,MAAM;AAAA,QAAW,OAAO,KAAK,EAAE,MAAM,IAAI,SAAS,WAAW,MAAM,uBAAuB,CAAC;AAAA,MACpJ,IAAI,MAAM,WAAW,UAAU,CAAC,KAAK,KAAK,KAAK;AAAA,QAAG,OAAO,KAAK,EAAE,MAAM,IAAI,SAAS,sBAAsB,CAAC;AAAA,MAC1G,IAAI,MAAM,WAAW,eAAe,CAAC,UAAU,KAAK,KAAK;AAAA,QAAG,OAAO,KAAK,EAAE,MAAM,IAAI,SAAS,yBAAyB,CAAC;AAAA,MACvH,IAAI,MAAM,WAAW,UAAU,CAAC,KAAK,KAAK,KAAK;AAAA,QAAG,OAAO,KAAK,EAAE,MAAM,IAAI,SAAS,iBAAiB,CAAC;AAAA,MACrG,OAAO;AAAA,IACT,KAAK;AAAA,IACL,KAAK;AAAA,MACH,IAAI,OAAO,UAAU,YAAY,CAAC,OAAO,SAAS,KAAK;AAAA,QAAG,OAAO,CAAC,EAAE,MAAM,IAAI,SAAS,WAAW,CAAC;AAAA,MACnG,IAAI,SAAS,aAAa,CAAC,OAAO,UAAU,KAAK;AAAA,QAAG,OAAO,CAAC,EAAE,MAAM,IAAI,SAAS,aAAa,CAAC;AAAA,MAC/F,IAAI,MAAM,YAAY,aAAa,QAAQ,MAAM;AAAA,QAAS,OAAO,KAAK,EAAE,MAAM,IAAI,SAAS,YAAY,MAAM,UAAU,CAAC;AAAA,MACxH,IAAI,MAAM,YAAY,aAAa,QAAQ,MAAM;AAAA,QAAS,OAAO,KAAK,EAAE,MAAM,IAAI,SAAS,WAAW,MAAM,UAAU,CAAC;AAAA,MACvH,OAAO;AAAA,IACT,KAAK;AAAA,MACH,OAAO,OAAO,UAAU,YAAY,CAAC,IAAI,CAAC,EAAE,MAAM,IAAI,SAAS,YAAY,CAAC;AAAA,IAC9E;AAAA,MACE,OAAO,CAAC;AAAA;AAAA;AAQP,SAAS,eAAc,CAAC,QAAsB,MAA+B;AAAA,EAClF,IAAI,CAAC,SAAS,IAAI;AAAA,IAAG,OAAO,CAAC,EAAE,MAAM,IAAI,SAAS,wBAAwB,CAAC;AAAA,EAC3E,MAAM,SAAyB,CAAC;AAAA,EAChC,MAAM,WAAW,IAAI,IAAI,OAAO,YAAY,CAAC,CAAC;AAAA,EAC9C,WAAW,QAAQ,OAAO,KAAK,OAAO,UAAU,EAAE,KAAK,GAAG;AAAA,IACxD,MAAM,QAAQ,OAAO,WAAW;AAAA,IAChC,MAAM,QAAQ,KAAK;AAAA,IACnB,IAAI,UAAU,aAAa,UAAU,MAAM;AAAA,MACzC,IAAI,SAAS,IAAI,IAAI;AAAA,QAAG,OAAO,KAAK,EAAE,MAAM,IAAI,QAAQ,SAAS,WAAW,CAAC;AAAA,MAC7E;AAAA,IACF;AAAA,IACA,IAAI,MAAM,SAAS,SAAS;AAAA,MAC1B,IAAI,CAAC,MAAM,QAAQ,KAAK,GAAG;AAAA,QACzB,OAAO,KAAK,EAAE,MAAM,IAAI,QAAQ,SAAS,SAAS,CAAC;AAAA,QACnD;AAAA,MACF;AAAA,MACA,IAAI,MAAM,cAAc,aAAa,MAAM,SAAS,MAAM;AAAA,QAAW,OAAO,KAAK,EAAE,MAAM,IAAI,QAAQ,SAAS,WAAW,MAAM,kBAAkB,CAAC;AAAA,MAClJ,MAAM,QAAQ,MAAM,SAAS,EAAE,MAAM,SAAS;AAAA,MAC9C,MAAM,QAAQ,CAAC,MAAM,MAAM,OAAO,KAAK,GAAG,aAAY,MAAM,MAAM,MAAM,IAAI,QAAQ,KAAK,EAAE,MAAM,MAAM,KAAK,CAAC,CAAC,CAAC;AAAA,MAC/G;AAAA,IACF;AAAA,IACA,OAAO,KAAK,GAAG,aAAY,MAAM,MAAM,OAAO,IAAI,QAAQ,KAAK,CAAC;AAAA,EAClE;AAAA,EACA,IAAI,OAAO,yBAAyB;AAAA,IAClC,WAAW,OAAO,OAAO,KAAK,IAAI,EAAE,KAAK;AAAA,MAAG,IAAI,CAAC,OAAO,UAAU,eAAe,KAAK,OAAO,YAAY,GAAG;AAAA,QAAG,OAAO,KAAK,EAAE,MAAM,IAAI,OAAO,SAAS,oBAAoB,CAAC;AAAA;AAAA,EAC9K,OAAO;AAAA;;;ACnIF,IAAM,kBAAiB;AAEvB,IAAM,qBAAuC,CAAC,kBAAkB,gBAAgB;AAEhF,IAAM,iBAAgB,EAAE,aAAa,aAAa,cAAc,QAAQ,cAAc,KAAK,UAAU,IAAI;AAEzG,IAAM,2BAA6C,CAAC,OAAO,MAAM,QAAQ,SAAS,QAAQ,SAAS,SAAS,QAAQ,OAAO,MAAM;AA4BxI,IAAM,MAAkC,CAAC,MAAM,OAAO,MAAM,KAAK;AAI1D,SAAS,mBAAkB,CAAC,QAA+E;AAAA,EAChH,IAAI,OAAO,WAAW;AAAA,IAAgB,OAAO;AAAA,EAC7C,MAAM,IAAI,OAAO;AAAA,EACjB,MAAM,WAAW,OAAO,EAAE,KAAK;AAAA,EAC/B,MAAM,UAAmC,CAAC;AAAA,EAC1C,WAAW,OAAO,OAAO,KAAK,CAAC,EAAE,KAAK,GAAG;AAAA,IACvC,IAAI,yBAAwB,SAAS,GAAG;AAAA,MAAG;AAAA,IAC3C,MAAM,MAAM,IAAI,YAAY,GAAG;AAAA,IAC/B,MAAM,SAAS,OAAO,IAAI,IAAI,MAAM,MAAM,CAAC,IAAI;AAAA,IAC/C,IAAI,MAAM,KAAM,IAA0B,SAAS,MAAM;AAAA,MAAG,QAAQ,KAAK,EAAE,OAAO,IAAI,MAAM,GAAG,GAAG,GAAG,IAAI,QAA2B,OAAO,EAAE,KAAM,CAAC;AAAA,IACpJ;AAAA,MAAK,QAAQ,KAAK,EAAE,OAAO,KAAK,IAAI,MAAM,OAAO,EAAE,KAAM,CAAC;AAAA,EAC5D;AAAA,EACA,QAAQ,KAAK,CAAC,GAAG,MAAO,EAAE,QAAQ,EAAE,QAAQ,KAAK,EAAE,QAAQ,EAAE,QAAQ,IAAI,EAAE,KAAK,EAAE,KAAK,KAAK,EAAE,KAAK,EAAE,KAAK,IAAI,CAAE;AAAA,EAChH,OAAO;AAAA,IACL,MAAM,OAAO;AAAA,IACb,MAAM,EAAE,SAAS,OAAO,EAAE,SAAS;AAAA,IACnC,MAAM,EAAE,MAAM,KAAK,KAAK,eAAc;AAAA,IACtC,OAAO,EAAE,UAAU,QAAQ,QAAQ,EAAE,UAAU,SAAS,SAAS,eAAc;AAAA,IAC/E,OAAO,OAAO,UAAU,QAAQ,KAAK,WAAW,IAAI,KAAK,IAAI,UAAU,eAAc,QAAQ,IAAI,eAAc;AAAA,IAC/G;AAAA,EACF;AAAA;AAGF,IAAM,MAAM,CAAC,MAA8B;AAAA,EACzC,IAAI,OAAO,MAAM;AAAA,IAAU,OAAO,OAAO,SAAS,CAAC,IAAI,IAAI;AAAA,EAC3D,IAAI,OAAO,MAAM,YAAY,EAAE,KAAK,MAAM,IAAI;AAAA,IAC5C,MAAM,IAAI,OAAO,CAAC;AAAA,IAClB,OAAO,OAAO,SAAS,CAAC,IAAI,IAAI;AAAA,EAClC;AAAA,EACA,OAAO;AAAA;AAET,IAAM,OAAO,CAAC,MAAwB,MAAM,QAAQ,MAAM,YAAY,KAAK,OAAO,MAAM,WAAW,IAAI,OAAO,MAAM,WAAW,KAAK,UAAU,CAAC,IAAI,OAAO,CAAC;AAG3J,SAAS,OAAO,CAAC,GAAY,GAAoB;AAAA,EAC/C,MAAM,KAAK,IAAI,CAAC;AAAA,EAChB,MAAM,KAAK,IAAI,CAAC;AAAA,EAChB,IAAI,OAAO,QAAQ,OAAO;AAAA,IAAM,OAAO,KAAK,KAAK,KAAK,KAAK,KAAK,IAAI;AAAA,EACpE,MAAM,KAAK,KAAK,CAAC;AAAA,EACjB,MAAM,KAAK,KAAK,CAAC;AAAA,EACjB,OAAO,KAAK,KAAK,KAAK,KAAK,KAAK,IAAI;AAAA;AAM/B,SAAS,aAAY,CAAC,MAA4B,OAAqB,KAA0E;AAAA,EACtJ,MAAM,QAAQ,CAAC,KAAgB,SAC7B,SAAS,cAAc,IAAI,YAAY,SAAS,cAAc,IAAI,YAAY,SAAS,OAAO,IAAI,KAAK,SAAS,cAAc,IAAI,YAAY,IAAI,KAAK;AAAA,EACzJ,MAAM,UAAU,KACb,OAAO,CAAC,QAAQ;AAAA,IACf,IAAI,IAAI,SAAS,MAAM;AAAA,MAAM,OAAO;AAAA,IACpC,IAAI,MAAM,SAAS,IAAI,OAAO,QAAQ,IAAI,cAAc,IAAI;AAAA,MAAK,OAAO;AAAA,IACxE,OAAO,MAAM,QAAQ,MAAM,CAAC,MAAM;AAAA,MAChC,MAAM,IAAI,MAAM,KAAK,EAAE,KAAK;AAAA,MAC5B,IAAI,EAAE,OAAO;AAAA,QAAM,OAAO,KAAK,CAAC,MAAM,EAAE;AAAA,MACxC,MAAM,IAAI,QAAQ,GAAG,EAAE,KAAK;AAAA,MAC5B,OAAO,EAAE,OAAO,OAAO,IAAI,IAAI,EAAE,OAAO,QAAQ,KAAK,IAAI,EAAE,OAAO,OAAO,IAAI,IAAI,KAAK;AAAA,KACvF;AAAA,GACF,EACA,KAAK,CAAC,GAAG,MAAM;AAAA,IACd,MAAM,IAAI,QAAQ,MAAM,GAAG,MAAM,IAAI,GAAG,MAAM,GAAG,MAAM,IAAI,CAAC;AAAA,IAC5D,IAAI,MAAM;AAAA,MAAG,OAAO,MAAM,UAAU,QAAQ,IAAI,CAAC;AAAA,IACjD,OAAO,EAAE,KAAK,EAAE,KAAK,KAAK,EAAE,KAAK,EAAE,KAAK,IAAI;AAAA,GAC7C;AAAA,EACH,OAAO;AAAA,IACL,MAAM,QAAQ,MAAM,GAAG,MAAM,KAAK,EAAE,IAAI,CAAC,SAAS;AAAA,SAC7C,IAAI;AAAA,MACP,IAAI,IAAI;AAAA,MACR,WAAW,IAAI;AAAA,MACf,WAAW,IAAI;AAAA,MACf,WAAW,IAAI;AAAA,MACf,QAAS,IAAI,aAAa,IAAI,QAAQ,IAAI,cAAe;AAAA,IAC3D,EAAE;AAAA,IACF,OAAO,QAAQ;AAAA,EACjB;AAAA;AAAA;AAgBK,MAAM,mBAAyC;AAAA,EAMjC;AAAA,EALX,OAAoB,CAAC;AAAA,EACrB,YAAY,IAAI;AAAA,EAChB,MAAM;AAAA,EAEd,WAAW,CACQ,UAAyG,CAAC,GAC3H;AAAA,IADiB;AAAA,IAEjB,KAAK,OAAO,CAAC,GAAI,QAAQ,QAAQ,CAAC,CAAE;AAAA;AAAA,EAGtC,SAAS,CAAC,MAAwD;AAAA,IAChE,KAAK,UAAU,IAAI,IAAI;AAAA,IACvB,KAAK,KAAK,IAAI;AAAA,IACd,OAAO,MAAM,KAAK,KAAK,UAAU,OAAO,IAAI;AAAA;AAAA,EAG9C,GAAG,CAAC,IAAmC;AAAA,IACrC,OAAO,KAAK,KAAK,KAAK,CAAC,MAAM,EAAE,OAAO,EAAE;AAAA;AAAA,QAGpC,MAAM,CAAC,OAA8F;AAAA,IACzG,MAAM,MAAM,KAAK,QAAQ,MAAM,KAAK,IAAI,KAAK,EAAE,YAAY;AAAA,IAC3D,IAAI,MAAM,OAAO,WAAW;AAAA,MAC1B,MAAM,MAAM,KAAK,IAAI,MAAM,EAAE;AAAA,MAC7B,IAAI,CAAC;AAAA,QAAK,MAAM,IAAI,MAAM,UAAU,MAAM,cAAc;AAAA,MACxD,KAAK,OAAO,KAAK,KAAK,IAAI,CAAC,MAAO,EAAE,OAAO,MAAM,KAAK,KAAK,GAAG,MAAM,KAAK,EAAE,SAAS,MAAM,KAAK,GAAG,WAAW,IAAI,IAAI,CAAE;AAAA,MACvH,KAAK,QAAQ;AAAA,MACb,OAAO,EAAE,IAAI,MAAM,GAAG;AAAA,IACxB;AAAA,IACA,MAAM,KAAK,KAAK,QAAQ,QAAQ,KAAK,IAAI,EAAE,KAAK;AAAA,IAChD,KAAK,OAAO,CAAC,GAAG,KAAK,MAAM,EAAE,IAAI,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,WAAW,KAAK,QAAQ,MAAM,MAAM,WAAW,KAAK,WAAW,IAAI,CAAC;AAAA,IACzI,KAAK,QAAQ;AAAA,IACb,OAAO,EAAE,GAAG;AAAA;AAAA,QAGR,MAAM,CAAC,IAA2B;AAAA,IACtC,IAAI,CAAC,KAAK,IAAI,EAAE;AAAA,MAAG,MAAM,IAAI,MAAM,UAAU,cAAc;AAAA,IAC3D,KAAK,OAAO,KAAK,KAAK,OAAO,CAAC,MAAM,EAAE,OAAO,EAAE;AAAA,IAC/C,KAAK,QAAQ;AAAA;AAAA,EAGP,OAAO,GAAS;AAAA,IACtB,WAAW,QAAQ,KAAK;AAAA,MAAW,KAAK,KAAK,IAAI;AAAA;AAErD;AAEA,IAAM,YAAW,CAAC,MAA6C,CAAC,CAAC,KAAK,OAAO,MAAM,YAAY,CAAC,MAAM,QAAQ,CAAC;AAMxG,SAAS,YAAW,CACzB,KACA,OACA,MAA6D,EAAE,IAAI,KAAK,GACqD;AAAA,EAC7H,MAAM,WAAW,CAAC,SAAiB;AAAA,IACjC,MAAM,MAAM,IAAI,UAAU;AAAA,IAC1B,IAAI,CAAC;AAAA,MAAK,MAAM,IAAI,MAAM,oBAAoB,MAAM;AAAA,IACpD,OAAO,IAAI;AAAA;AAAA,EAEb,OAAO;AAAA,IACL,SAAS;AAAA,OACN,kBAAiB,CAAC,QAAQ,SAAS;AAAA,QAClC,MAAM,QAAQ,oBAAmB,MAAM;AAAA,QACvC,IAAI,CAAC,SAAS,CAAC,IAAI,UAAU,MAAM;AAAA,UAAO,OAAO,KAAK,KAAK,IAAI;AAAA,QAC/D,OAAO,MAAM,UAAU,CAAC,SAAS,KAAK,cAAa,MAAM,OAAO,GAAG,CAAC,CAAC;AAAA;AAAA,IAEzE;AAAA,IACA,WAAW;AAAA,MACT,kBAAkB,OAAO,SAAS;AAAA,QAChC,MAAM,KAAK,OAAO,KAAK,OAAO,YAAY,KAAK,KAAK,KAAK,KAAK;AAAA,QAC9D,MAAM,OAAO,UAAS,KAAK,IAAI,IAAI,KAAK,OAAO,CAAC;AAAA,QAChD,MAAM,OAAO,KAAK,MAAM,IAAI,EAAE,IAAI;AAAA,QAClC,IAAI,MAAM,CAAC;AAAA,UAAM,MAAM,IAAI,MAAM,UAAU,cAAc;AAAA,QACzD,MAAM,OAAO,MAAM,QAAQ,OAAO,KAAK,QAAQ,EAAE;AAAA,QACjD,MAAM,SAAS,gBAAe,SAAS,IAAI,GAAG,OAAO,KAAK,KAAK,SAAS,KAAK,IAAI,IAAI;AAAA,QACrF,IAAI,OAAO;AAAA,UAAQ,MAAM,IAAI,MAAM,YAAY,OAAO,IAAI,CAAC,MAAM,GAAG,EAAE,QAAQ,OAAO,EAAE,SAAS,EAAE,KAAK,IAAI,GAAG;AAAA,QAC9G,OAAO,MAAM,OAAO,EAAE,MAAM,SAAU,KAAK,EAAE,GAAG,IAAI,CAAC,EAAG,CAAC;AAAA;AAAA,MAE3D,kBAAkB,OAAO,SAAS;AAAA,QAChC,MAAM,MAAM,OAAO,OAAO,KAAK,MAAM,EAAE,CAAC;AAAA,QACxC,OAAO;AAAA;AAAA,IAEX;AAAA,EACF;AAAA;;;ACzNK,IAAM,kCAAiC;AAAA;AACvC,IAAM,8BAA6B;AACnC,IAAM,qBAAoB;AAC1B,IAAM,mBAAkB;AAmB/B,IAAM,YAAW,CAAC,MAA6C,CAAC,CAAC,KAAK,OAAO,MAAM,YAAY,CAAC,MAAM,QAAQ,CAAC;AAMxG,SAAS,cAAa,CAAC,OAAwB;AAAA,EACpD,IAAI,UAAU,QAAQ,OAAO,UAAU,aAAa,OAAO,UAAU;AAAA,IAAU,OAAO,KAAK,UAAU,KAAK;AAAA,EAC1G,IAAI,OAAO,UAAU,UAAU;AAAA,IAC7B,IAAI,CAAC,OAAO,SAAS,KAAK;AAAA,MAAG,MAAM,IAAI,MAAM,kBAAkB,wBAAwB;AAAA,IACvF,OAAO,KAAK,UAAU,KAAK;AAAA,EAC7B;AAAA,EACA,IAAI,MAAM,QAAQ,KAAK;AAAA,IAAG,OAAO,IAAI,MAAM,IAAI,CAAC,MAAO,MAAM,YAAY,SAAS,eAAc,CAAC,CAAE,EAAE,KAAK,GAAG;AAAA,EAC7G,IAAI,UAAS,KAAK,GAAG;AAAA,IACnB,MAAM,OAAO,OAAO,KAAK,KAAK,EAC3B,OAAO,CAAC,MAAM,MAAM,OAAO,SAAS,EACpC,KAAK;AAAA,IACR,OAAO,IAAI,KAAK,IAAI,CAAC,MAAM,GAAG,KAAK,UAAU,CAAC,KAAK,eAAc,MAAM,EAAE,GAAG,EAAE,KAAK,GAAG;AAAA,EACxF;AAAA,EACA,MAAM,IAAI,MAAM,oBAAoB,OAAO,wBAAwB;AAAA;AAK9D,SAAS,uBAAsB,CAAC,MAAwD;AAAA,EAC7F,QAAQ,WAAW,eAAe,SAAS;AAAA,EAC3C,OAAO,IAAI,YAAY,EAAE,OAAO,kCAAiC,eAAc,IAAI,CAAC;AAAA;AAG/E,SAAS,gBAAe,CAAC,OAA2B;AAAA,EACzD,IAAI,IAAI;AAAA,EACR,WAAW,KAAK;AAAA,IAAO,KAAK,OAAO,aAAa,CAAC;AAAA,EACjD,OAAO,KAAK,CAAC,EAAE,QAAQ,OAAO,GAAG,EAAE,QAAQ,OAAO,GAAG,EAAE,QAAQ,OAAO,EAAE;AAAA;AAInE,SAAS,gBAAe,CAAC,MAA8C;AAAA,EAC5E,IAAI,CAAC,mBAAmB,KAAK,IAAI,KAAK,KAAK,SAAS,MAAM;AAAA,IAAG,OAAO;AAAA,EACpE,MAAM,MAAM,KAAK,KAAK,QAAQ,MAAM,GAAG,EAAE,QAAQ,MAAM,GAAG,IAAI,MAAM,OAAO,KAAK,SAAS,KAAK,CAAC,CAAC;AAAA,EAChG,OAAO,WAAW,KAAK,KAAK,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC;AAAA;AAI7C,SAAS,gBAAe,CAAC,KAA8C;AAAA,EAC5E,IAAI,OAAO,QAAQ,YAAY,CAAC,IAAI,WAAW,kBAAiB;AAAA,IAAG,OAAO;AAAA,EAC1E,MAAM,QAAQ,iBAAgB,IAAI,MAAM,mBAAkB,MAAM,CAAC;AAAA,EACjE,OAAO,OAAO,WAAW,KAAK,QAAQ;AAAA;AAGxC,IAAM,uBAAuB,WAAW,KAAK,CAAC,IAAM,IAAM,GAAM,GAAM,GAAM,IAAM,GAAM,GAAM,GAAM,IAAM,KAAM,KAAM,GAAM,IAAM,GAAM,EAAI,CAAC;AAKtI,eAAe,gBAAkD,CACtE,MACA,QAC2G;AAAA,EAC3G,IAAI,OAAO,KAAK,WAAW;AAAA,IAAI,MAAM,IAAI,MAAM,uCAAuC;AAAA,EACtF,MAAM,QAAQ,IAAI,WAAW,EAAE;AAAA,EAC/B,MAAM,IAAI,oBAAoB;AAAA,EAC9B,MAAM,IAAI,OAAO,MAAM,EAAE;AAAA,EACzB,MAAM,aAAa,MAAM,OAAO,OAAO,UAAU,SAAS,OAAO,EAAE,MAAM,UAAU,GAAG,MAAM,CAAC,MAAM,CAAC;AAAA,EACpG,MAAM,MAAM,MAAM,OAAO,OAAO,UAAU,OAAO,UAAU;AAAA,EAC3D,QAAQ,QAAQ,SAAS,WAAW,eAAe,SAAS;AAAA,EAC5D,MAAM,SAA4B,EAAE,MAAM,OAAO,MAAM,KAAK,GAAG,qBAAoB,IAAI,IAAI;AAAA,EAC3F,MAAM,WAAW,KAAK,MAAM,OAAO;AAAA,EACnC,MAAM,MAAM,IAAI,WAAW,MAAM,OAAO,OAAO,KAAK,EAAE,MAAM,UAAU,GAAG,YAAY,wBAAuB,QAAQ,CAAC,CAAC;AAAA,EACtH,OAAO,KAAK,UAAU,WAAW,EAAE,KAAK,WAAW,OAAO,iBAAgB,GAAG,EAAE,EAAE;AAAA;AAM5E,eAAe,kBAAiB,CAAC,MAAiD;AAAA,EACvF,IAAI,CAAC,UAAS,IAAI;AAAA,IAAG,OAAO,EAAE,QAAQ,WAAW,QAAQ,CAAC,EAAE,MAAM,IAAI,SAAS,8BAA8B,CAAC,EAAE;AAAA,EAChH,IAAI,KAAK,cAAc;AAAA,IAAW,OAAO,EAAE,QAAQ,WAAW;AAAA,EAC9D,MAAM,SAAyB,CAAC;AAAA,EAChC,MAAM,MAAM,KAAK;AAAA,EACjB,IAAI,QAAwC;AAAA,EAC5C,IAAI,CAAC,UAAS,GAAG;AAAA,IAAG,OAAO,KAAK,EAAE,MAAM,cAAc,SAAS,uCAAuC,CAAC;AAAA,EACvG,KAAK;AAAA,IACH,IAAI,IAAI,QAAQ;AAAA,MAA4B,OAAO,KAAK,EAAE,MAAM,kBAAkB,SAAS,iBAAiB,CAAC;AAAA,IAC7G,QAAQ,OAAO,IAAI,UAAU,WAAW,iBAAgB,IAAI,KAAK,IAAI;AAAA,IACrE,IAAI,OAAO,WAAW;AAAA,MAAI,OAAO,KAAK,EAAE,MAAM,oBAAoB,SAAS,+BAA+B,CAAC;AAAA;AAAA,EAE7G,MAAM,SAAS,KAAK;AAAA,EACpB,IAAI,MAAsC;AAAA,EAC1C,IAAI,CAAC,UAAS,MAAM;AAAA,IAAG,OAAO,KAAK,EAAE,MAAM,WAAW,SAAS,6CAA6C,CAAC;AAAA,EAC7G,KAAK;AAAA,IACH,MAAM,OAAO,OAAO;AAAA,IACpB,IAAI,OAAO,SAAS,YAAY,CAAC,KAAK,KAAK,KAAK,CAAC,GAAG,IAAI,EAAE,SAAS;AAAA,MAAiB,OAAO,KAAK,EAAE,MAAM,gBAAgB,SAAS,gBAAgB,8BAA6B,CAAC;AAAA,IAC/K,MAAM,iBAAgB,OAAO,GAAG;AAAA,IAChC,IAAI,CAAC;AAAA,MAAK,OAAO,KAAK,EAAE,MAAM,eAAe,SAAS,0CAA0C,CAAC;AAAA;AAAA,EAEnG,IAAI,OAAO;AAAA,IAAQ,OAAO,EAAE,QAAQ,WAAW,OAAO;AAAA,EACtD,IAAI,KAAK;AAAA,EACT,IAAI;AAAA,IACF,MAAM,YAAY,MAAM,OAAO,OAAO,UAAU,OAAO,KAAM,EAAE,MAAM,UAAU,GAAG,OAAO,CAAC,QAAQ,CAAC;AAAA,IACnG,KAAK,MAAM,OAAO,OAAO,OAAO,EAAE,MAAM,UAAU,GAAG,WAAW,OAAQ,wBAAuB,IAAI,CAAC;AAAA,IACpG,MAAM;AAAA,IACN,KAAK;AAAA;AAAA,EAEP,IAAI,CAAC;AAAA,IAAI,OAAO,EAAE,QAAQ,WAAW,QAAQ,CAAC,EAAE,MAAM,cAAc,SAAS,sCAAsC,CAAC,EAAE;AAAA,EACtH,MAAM,IAAI;AAAA,EACV,OAAO,EAAE,QAAQ,SAAS,QAAQ,EAAE,MAAM,EAAE,MAAgB,KAAK,EAAE,IAAc,EAAE;AAAA;;;AChI9E,IAAM,mBAAkB;AACxB,IAAM,cAAgC,CAAC,OAAO,QAAQ;AAC7D,IAAM,WAAW;AA2BjB,IAAM,YAAW,CAAC,MAA6C,CAAC,CAAC,KAAK,OAAO,MAAM,YAAY,CAAC,MAAM,QAAQ,CAAC;AAC/G,IAAM,gBAAe,CAAC,MAA8B,MAAM,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,OAAO,MAAM,QAAQ;AAE5G,SAAS,SAAS,CAAC,GAAoB;AAAA,EACrC,IAAI;AAAA,IACF,MAAM,IAAI,IAAI,IAAI,CAAC;AAAA,IACnB,QAAQ,EAAE,aAAa,YAAY,EAAE,aAAa,YAAY,CAAC,CAAC,EAAE;AAAA,IAClE,MAAM;AAAA,IACN,OAAO;AAAA;AAAA;AAKJ,SAAS,cAAa,CAAC,OAAgC;AAAA,EAC5D,IAAI,CAAC,UAAS,KAAK;AAAA,IAAG,OAAO,CAAC,EAAE,MAAM,UAAU,SAAS,8BAA8B,CAAC;AAAA,EACxF,MAAM,SAAyB,CAAC;AAAA,EAChC,WAAW,MAAM,OAAO,KAAK,KAAK,EAAE,KAAK,GAAG;AAAA,IAC1C,MAAM,OAAO,MAAM;AAAA,IACnB,MAAM,KAAK,UAAU;AAAA,IACrB,IAAI,CAAC,iBAAgB,KAAK,EAAE;AAAA,MAAG,OAAO,KAAK,EAAE,MAAM,IAAI,SAAS,kDAAkD,CAAC;AAAA,IACnH,IAAI,CAAC,UAAS,IAAI,GAAG;AAAA,MACnB,OAAO,KAAK,EAAE,MAAM,IAAI,SAAS,yCAAyC,CAAC;AAAA,MAC3E;AAAA,IACF;AAAA,IACA,IAAI,OAAO,KAAK,SAAS,YAAY,CAAC,YAAW,SAAS,KAAK,IAAI;AAAA,MAAG,OAAO,KAAK,EAAE,MAAM,GAAG,WAAW,SAAS,wBAAwB,CAAC;AAAA,IAC1I,IAAI,OAAO,KAAK,UAAU,YAAY,CAAC,KAAK,MAAM,KAAK;AAAA,MAAG,OAAO,KAAK,EAAE,MAAM,GAAG,YAAY,SAAS,6BAA6B,CAAC;AAAA,IACpI,IAAI,KAAK,gBAAgB,aAAa,OAAO,KAAK,gBAAgB;AAAA,MAAU,OAAO,KAAK,EAAE,MAAM,GAAG,kBAAkB,SAAS,0BAA0B,CAAC;AAAA,IACzJ,MAAM,SAAS,KAAK,QAAQ;AAAA,IAC5B,MAAM,aAAa,KAAK,YAAY;AAAA,IACpC,IAAI,KAAK,SAAS,SAAS,WAAW;AAAA,MAAY,OAAO,KAAK,EAAE,MAAM,IAAI,SAAS,qCAAqC,CAAC;AAAA,IACzH,IAAI,KAAK,SAAS,YAAY;AAAA,MAAQ,OAAO,KAAK,EAAE,MAAM,GAAG,UAAU,SAAS,qCAAqC,CAAC;AAAA,IACtH,IAAI,KAAK,SAAS,YAAY,CAAC;AAAA,MAAY,OAAO,KAAK,EAAE,MAAM,GAAG,cAAc,SAAS,gCAAgC,CAAC;AAAA,IAC1H,IAAI,WAAW,OAAO,KAAK,QAAQ,YAAY,CAAC,UAAU,KAAK,GAAG;AAAA,MAAI,OAAO,KAAK,EAAE,MAAM,GAAG,UAAU,SAAS,iCAAiC,CAAC;AAAA,IAClJ,IAAI,eAAe,OAAO,KAAK,YAAY,YAAY,CAAC,KAAK,QAAQ,KAAK;AAAA,MAAI,OAAO,KAAK,EAAE,MAAM,GAAG,cAAc,SAAS,gCAAgC,CAAC;AAAA,IAC7J,IAAI,KAAK,SAAS,cAAc,CAAC,cAAa,KAAK,IAAI,KAAK;AAAA,MAAS,OAAO,KAAK,EAAE,MAAM,GAAG,WAAW,SAAS,6CAA6C,CAAC;AAAA,IAC9J,IAAI,KAAK,QAAQ,cAAc,CAAC,cAAa,KAAK,GAAG,KAAK,KAAK,IAAI,KAAK,CAAC,MAAM,CAAC,SAAS,KAAK,CAAC,CAAC,KAAK;AAAA,MAAS,OAAO,KAAK,EAAE,MAAM,GAAG,UAAU,SAAS,mDAAmD,CAAC;AAAA,EAC9M;AAAA,EACA,OAAO;AAAA;AAKT,SAAS,QAAQ,CAAC,KAAqB;AAAA,EACrC,OAAO,QAAQ,MAAM,WAAW,KAAK,GAAG,IAAI,KAAK,UAAU,GAAG,IAAI;AAAA;AAI7D,SAAS,YAAW,CAAC,KAAgE;AAAA,EAC1F,OAAO,OAAO,KAAK,IAAI,SAAS,CAAC,CAAC,EAC/B,KAAK,EACL,IAAI,CAAC,OAAO;AAAA,IACX,MAAM,OAAO,IAAI,MAAO;AAAA,IACxB,MAAM,YAAY,KAAK,SAAS,WAAW,WAAW,KAAK,QAAQ,YAAY,SAAS;AAAA,IACxF,MAAM,SAAS,KAAK,OAAO,CAAC,KAAK,WAAW,IAAI,GAAI,KAAK,QAAQ,CAAC,CAAE,EAAE,IAAI,QAAQ,EAAE,KAAK,GAAG;AAAA,IAC5F,OAAO,EAAE,IAAI,MAAM,KAAK,MAAM,WAAW,OAAO,KAAK,OAAO,aAAa,KAAK,eAAe,MAAM,QAAQ,KAAK,CAAC,GAAI,KAAK,OAAO,CAAC,CAAE,EAAE;AAAA,GACvI;AAAA;AAKE,SAAS,eAAc,CAAC,WAAmB,QAAgB,MAA2B;AAAA,EAC3F,OAAO,GAAG,aAAa,UAAU,eAAc,IAAI;AAAA;AAK9C,SAAS,SAAQ,CAAC,MAA8D;AAAA,EACrF,MAAM,IAAI,8CAA8C,KAAK,IAAI;AAAA,EACjE,OAAO,IAAI,EAAE,QAAQ,EAAE,IAAK,MAAM,EAAE,MAAM,KAAK,IAAI;AAAA;;;AC9F9C,IAAM,kBAAiB,aAAK,QAAQ,QAAQ;AAC5C,IAAM,oBAAsC,aAAK,QAAQ,QAAQ;AACxE,IAAM,aAAgC,aAAK,QAAQ,QAAQ;AAC3D,IAAM,kBAAqC,aAAK,QAAQ,QAAQ;AAChE,IAAM,gBAAmC,aAAK,QAAQ,QAAQ;AAC9D,IAAM,oBAAuC,aAAK,QAAQ,QAAQ;AA2BlE,IAAM,YAAW,CAAC,MAA6C,CAAC,CAAC,KAAK,OAAO,MAAM,YAAY,CAAC,MAAM,QAAQ,CAAC;AAC/G,IAAM,OAAO,IAAI,OAAO,gBAAe,WAAW;AAClD,IAAM,SAAS,IAAI,OAAO,aAAK,QAAQ,QAAQ,aAAa;AAC5D,IAAM,WAAW;AAIV,SAAS,oBAAmB,CAAC,OAA0B;AAAA,EAC5D,MAAM,MAAgB,CAAC;AAAA,EACvB,MAAM,OAAO,CAAC,MAAe;AAAA,IAC3B,IAAI,OAAO,MAAM;AAAA,MAAU,WAAW,KAAK,EAAE,SAAS,QAAQ;AAAA,QAAG,IAAI,KAAK,EAAE,EAAG;AAAA,IAC/E,KAAK,IAAI,MAAM,QAAQ,CAAC;AAAA,MAAG,EAAE,QAAQ,IAAI;AAAA,IACzC,KAAK,IAAI,UAAS,CAAC;AAAA,MAAG,OAAO,OAAO,CAAC,EAAE,QAAQ,IAAI;AAAA;AAAA,EAErD,KAAK,KAAK;AAAA,EACV,OAAO;AAAA;AAKT,IAAM,QAAQ,CAAC,SAA2B,KAAK,YAAY,EAAE,MAAM,SAAS,EAAE,OAAO,OAAO;AAIrF,SAAS,mBAAkB,CAAC,QAA8B;AAAA,EAC/D,MAAM,OAAO,MAAM,OAAO,MAAM,GAAG,EAAE,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,EAAE;AAAA,EACxD,OAAO,SAAS,aAAa,cAAc,SAAS,IAAI,IAAI,SAAS;AAAA;AAKhE,SAAS,sBAAqB,CAAC,MAAuB;AAAA,EAC3D,OAAO,MAAM,IAAI,EAAE,KAAK,CAAC,SAAS,kBAAkB,SAAS,IAAI,CAAC;AAAA;AAIpE,SAAS,aAAa,CAAC,WAA8B;AAAA,EACnD,OAAO,MAAM,QAAQ,SAAS,IAAI,UAAU,OAAO,CAAC,MAAmB,OAAO,MAAM,YAAY,MAAM,EAAE,IAAI,CAAC;AAAA;AAKxG,SAAS,kBAAiB,CAAC,WAAoC;AAAA,EACpE,IAAI,CAAC,MAAM,QAAQ,SAAS,KAAK,UAAU,KAAK,CAAC,MAAM,OAAO,MAAM,YAAY,MAAM,EAAE;AAAA,IAAG,OAAO,CAAC,EAAE,MAAM,cAAc,SAAS,0CAA0C,CAAC;AAAA,EAC7K,MAAM,SAAyB,CAAC;AAAA,EAChC,UAAU,QAAQ,CAAC,MAAM,MAAM;AAAA,IAC7B,IAAI,UAAU,QAAQ,IAAI,MAAM;AAAA,MAAG,OAAO,KAAK,EAAE,MAAM,cAAc,KAAK,SAAS,sBAAsB,OAAO,CAAC;AAAA,GAClH;AAAA,EACD,OAAO;AAAA;AAMF,SAAS,aAAY,CAAC,SAAkB,SAAkB,WAAmC;AAAA,EAClG,IAAI,CAAC,MAAM,QAAQ,OAAO;AAAA,IAAG,OAAO,CAAC,EAAE,OAAO,MAAM,MAAM,OAAO,MAAM,YAAY,SAAS,6BAA6B,CAAC;AAAA,EAC1H,MAAM,SAAwB,CAAC;AAAA,EAC/B,IAAI,QAAQ,SAAS,gBAAe;AAAA,IAAU,OAAO,KAAK,EAAE,OAAO,MAAM,MAAM,WAAW,MAAM,YAAY,SAAS,yBAAyB,gBAAe,iBAAiB,CAAC;AAAA,EAC/K,MAAM,QAAQ,UAAS,OAAO,IAAI,OAAO,KAAK,OAAO,IAAI,CAAC;AAAA,EAC1D,MAAM,UAAU,cAAc,SAAS;AAAA,EACvC,MAAM,OAAO,IAAI;AAAA,EACjB,QAAQ,QAAQ,CAAC,QAAQ,UAAU;AAAA,IACjC,MAAM,KAAK,YAAY;AAAA,IACvB,MAAM,OAAO,CAAC,MAAc,MAAc,YAAoB,KAAK,OAAO,KAAK,EAAE,OAAO,MAAM,MAAM,GAAG,KAAK,QAAQ,QAAQ,CAAC;AAAA,IAC7H,IAAI,CAAC,UAAS,MAAM;AAAA,MAAG,OAAO,KAAK,OAAO,IAAI,0DAA0D;AAAA,IACxG,MAAM,OAAO,OAAO;AAAA,IACpB,IAAI,OAAO,SAAS,YAAY,CAAC,KAAK,KAAK,IAAI,KAAK,KAAK,SAAS,gBAAe,WAAW,KAAK,SAAS,gBAAe,SAAS;AAAA,MAChI,KAAK,QAAQ,SAAS,oDAAoD,gBAAe,eAAe,gBAAe,YAAY;AAAA,IACrI,KAAK,IAAI,KAAK,IAAI,IAAI;AAAA,MAAG,KAAK,aAAa,SAAS,kBAAkB,MAAM;AAAA,IAC5E;AAAA,MAAK,KAAK,IAAI,IAAI;AAAA,IAClB,IAAI,OAAO,OAAO,UAAU,YAAY,CAAC,OAAO,MAAM,KAAK,KAAK,OAAO,MAAM,SAAS,gBAAe;AAAA,MACnG,KAAK,SAAS,UAAU,0CAA0C,gBAAe,qBAAqB;AAAA,IACxG,IAAI,OAAO,OAAO,gBAAgB,YAAY,CAAC,OAAO,YAAY,KAAK,KAAK,OAAO,YAAY,SAAS,gBAAe;AAAA,MACrH,KAAK,eAAe,gBAAgB,gDAAgD,gBAAe,2BAA2B;AAAA,IAChI,MAAM,QAAQ,OAAO;AAAA,IACrB,IAAI,CAAC,UAAS,KAAK,KAAK,MAAM,SAAS,YAAa,MAAM,eAAe,aAAa,CAAC,UAAS,MAAM,UAAU;AAAA,MAC9G,KAAK,SAAS,UAAU,uCAAuC;AAAA,IACjE,IAAI,OAAO,WAAW,UAAU,OAAO,WAAW;AAAA,MAAS,KAAK,UAAU,WAAW,yBAAyB;AAAA,IAC9G,MAAM,aAAa,UAAS,KAAK,KAAK,UAAS,MAAM,UAAU,IAAI,MAAM,aAAa,CAAC;AAAA,IACvF,MAAM,MAAM,OAAO;AAAA,IACnB,IAAI,CAAC,UAAS,GAAG,KAAK,kBAAiB,OAAO,CAAC,OAAM,KAAK,IAAG,EAAE,WAAW;AAAA,MAAG,OAAO,KAAK,OAAO,QAAQ,oDAAoD;AAAA,IAC5J,WAAW,QAAQ,qBAAoB,GAAG;AAAA,MACxC,IAAI,CAAC,OAAO,UAAU,eAAe,KAAK,YAAY,KAAK,MAAM,GAAG,EAAE,EAAG;AAAA,QAAG,KAAK,YAAY,QAAQ,YAAY,+BAA+B;AAAA,IAClJ,IAAI;AAAA,IACJ,IAAI,aAAa,KAAK;AAAA,MACpB,MAAM,UAAU,IAAI;AAAA,MACpB,MAAM,KAAK,UAAS,OAAO,IAAI,QAAQ,KAAK;AAAA,MAC5C,IAAI,OAAO,OAAO,YAAY,CAAC,WAAW,SAAS,EAAE;AAAA,QACnD,OAAO,OAAO,WAAW,KAAK,eAAe,mBAAmB,gDAAgD,IAAI,KAAK,OAAO,mBAAmB,SAAS,WAAW,KAAK,IAAI,GAAG;AAAA,MACrL,IAAI,OAAQ,QAAoC,SAAS,YAAY,CAAC,MAAM,SAAU,QAAmC,IAAI;AAAA,QAC3H,KAAK,QAAQ,qBAAqB,oCAAoC;AAAA,MACxE,QAAQ,gBAAgB,SAAS,EAAE,IAAI,SAAS;AAAA,IAClD,EAAE,KAAK,IAAI,YAAY,KAAK;AAAA,MAC1B,MAAM,SAAS,IAAI;AAAA,MACnB,IAAI,OAAO,WAAW,YAAY,CAAC,OAAO,KAAK,MAAM;AAAA,QAAG,OAAO,KAAK,UAAU,eAAe,mDAAmD;AAAA,MAChJ,IAAI,uBAAsB,MAAM;AAAA,QAAG,OAAO,KAAK,eAAe,eAAe,uCAAuC;AAAA,MACpH,QAAQ,oBAAmB,MAAM;AAAA,IACnC,EAAE,KAAK;AAAA,MACL,IAAI,OAAO,IAAI,aAAa,YAAY,CAAC,QAAQ,SAAS,IAAI,QAAQ;AAAA,QAAG,KAAK,YAAY,iBAAiB,gDAAgD;AAAA,MAC3J,IAAI,OAAO,IAAI,SAAS,YAAY,IAAI,SAAS;AAAA,QAAI,OAAO,KAAK,OAAO,aAAa,4BAA4B;AAAA,MACjH,IAAI,uBAAsB,IAAI,IAAI;AAAA,QAAG,OAAO,KAAK,eAAe,aAAa,qCAAqC;AAAA,MAElH;AAAA;AAAA,IAEF,IAAI,OAAO,WAAW,UAAU,UAAU;AAAA,MAAS,KAAK,gBAAgB,WAAW,iCAAiC;AAAA,GACrH;AAAA,EACD,OAAO;AAAA;AAKF,SAAS,uBAAsB,CAAC,SAAkB,SAAkB,WAAoC;AAAA,EAC7G,OAAO,cAAa,SAAS,SAAS,SAAS,EAAE,IAAI,GAAG,MAAM,eAAe,EAAE,MAAM,QAAQ,EAAE;AAAA;;;ACzI1F,IAAM,0BAAyB;AAI/B,SAAS,oBAAmB,CAAC,eAAkC,CAAC,GAAa;AAAA,EAClF,MAAM,MAAgB,CAAC;AAAA,EACvB,WAAW,MAAM,CAAC,kBAAiB,uBAAsB,wBAAuB,GAAG,YAAY;AAAA,IAAG,IAAI,CAAC,IAAI,SAAS,EAAE;AAAA,MAAG,IAAI,KAAK,EAAE;AAAA,EACpI,OAAO;AAAA;AAIF,SAAS,mBAAkB,CAAC,eAAkC,CAAC,GAAkD;AAAA,EACtH,OAAO,EAAE,QAAQ,EAAE,qBAAqB,qBAAoB,YAAY,EAAE,EAAE;AAAA;AAqEvE,SAAS,oBAAmB,CAAC,MAAgJ;AAAA,EAClL,OAAO,KAAK,IAAI,CAAC,OAAO,EAAE,IAAI,EAAE,OAAQ,EAAE,UAAU,EAAE,SAAS,EAAE,QAAQ,IAAI,CAAC,GAAI,YAAY,CAAC,GAAG,OAAO,KAAK,EAAE,UAAU,GAAG,GAAG,OAAO,KAAK,EAAE,UAAU,CAAC,CAAC,CAAC,EAAE,EAAE;AAAA;AAGjK,IAAM,SAAS;AAGR,SAAS,iBAAgB,CAAC,MAAc,MAAuB;AAAA,EACpE,MAAM,IAAI,OAAO,KAAK,IAAI;AAAA,EAC1B,MAAM,IAAI,OAAO,KAAK,IAAI;AAAA,EAC1B,IAAI,CAAC,KAAK,CAAC;AAAA,IAAG,OAAO;AAAA,EACrB,OAAO,IAAI,IAAI,MAAM,CAAC,OAAO,EAAE,EAAE,GAAG,OAAO,EAAE,EAAE,GAAG,OAAO,EAAE,EAAE,CAAC;AAAA,EAC9D,OAAO,IAAI,IAAI,MAAM,CAAC,OAAO,EAAE,EAAE,GAAG,OAAO,EAAE,EAAE,GAAG,OAAO,EAAE,EAAE,CAAC;AAAA,EAC9D,OAAO,OAAO,OAAO,KAAK,MAAO,OAAO,MAAM,MAAM;AAAA;AAQtD,IAAM,YAAW,CAAC,MAA6C,CAAC,CAAC,KAAK,OAAO,MAAM,YAAY,CAAC,MAAM,QAAQ,CAAC;AAC/G,IAAM,UAAU;AAKT,SAAS,gBAAe,CAAC,KAAc,aAAgC,qBAAoB,GAAG,YAA4D;AAAA,EAC/J,MAAM,SAAyB,CAAC;AAAA,EAChC,IAAI,CAAC,UAAS,GAAG;AAAA,IAAG,OAAO,CAAC,EAAE,MAAM,IAAI,SAAS,yBAAyB,CAAC;AAAA,EAC3E,IAAI,IAAI,kBAAkB,WAAW;AAAA,IACnC,IAAI,OAAO,IAAI,kBAAkB,YAAY,CAAC,OAAO,UAAU,IAAI,aAAa,KAAK,IAAI,gBAAgB;AAAA,MAAG,OAAO,KAAK,EAAE,MAAM,kBAAkB,SAAS,sCAAsC,CAAC;AAAA,IAClM,KAAK,IAAI,IAAI,gBAAgB;AAAA,MAAwB,OAAO,KAAK,EAAE,MAAM,kBAAkB,SAAS,kBAAkB,IAAI,0CAA0C,2BAA0B,CAAC;AAAA,EACjM;AAAA,EACA,WAAW,OAAO,CAAC,MAAM,QAAQ,WAAW,WAAW;AAAA,IACrD,IAAI,OAAO,IAAI,SAAS,YAAY,CAAE,IAAI;AAAA,MAAiB,OAAO,KAAK,EAAE,MAAM,IAAI,OAAO,SAAS,GAAG,2BAA2B,CAAC;AAAA,EACpI,IAAI,OAAO,IAAI,cAAc,YAAY,IAAI,aAAa,CAAC,WAAW,SAAS,IAAI,SAAS;AAAA,IAC1F,OAAO,KAAK,EAAE,MAAM,cAAc,SAAS,uBAAuB,IAAI,YAAY,CAAC;AAAA,EACrF,IAAI,CAAC,UAAS,IAAI,SAAS,KAAK,CAAC,OAAO,KAAK,IAAI,SAAS,EAAE;AAAA,IAAQ,OAAO,KAAK,EAAE,MAAM,cAAc,SAAS,kCAAkC,CAAC;AAAA,EAClJ;AAAA,IACE,YAAY,IAAI,aAAa,OAAO,QAAQ,IAAI,SAAS,GAAG;AAAA,MAC1D,MAAM,KAAK,cAAc;AAAA,MACzB,IAAI,CAAC,UAAS,QAAQ,GAAG;AAAA,QACvB,OAAO,KAAK,EAAE,MAAM,IAAI,SAAS,0BAA0B,CAAC;AAAA,QAC5D;AAAA,MACF;AAAA,MACA,MAAM,aAAa,SAAS;AAAA,MAC5B,IAAI,CAAC,MAAM,QAAQ,UAAU,KAAK,CAAC,WAAW;AAAA,QAAQ,OAAO,KAAK,EAAE,MAAM,GAAG,iBAAiB,SAAS,kCAAkC,CAAC;AAAA,MAC1I,KAAK;AAAA,QACH,MAAM,MAAM,IAAI;AAAA,QAChB,WAAW,QAAQ,CAAC,GAAG,MAAM;AAAA,UAC3B,IAAI,CAAC,UAAS,CAAC,KAAK,OAAO,EAAE,OAAO,YAAY,OAAO,EAAE,cAAc;AAAA,YAAU,OAAO,KAAK,EAAE,MAAM,GAAG,iBAAiB,KAAK,SAAS,0CAA0C,CAAC;AAAA,UAClL,KAAK,IAAI,IAAI,IAAI,EAAE,EAAE;AAAA,YAAG,OAAO,KAAK,EAAE,MAAM,GAAG,iBAAiB,QAAQ,SAAS,gBAAgB,EAAE,KAAK,CAAC;AAAA,UACzG;AAAA,YAAK,IAAI,IAAI,EAAE,EAAE;AAAA,SAClB;AAAA,QACD,IAAI,CAAC,IAAI,IAAI,MAAM;AAAA,UAAG,OAAO,KAAK,EAAE,MAAM,GAAG,iBAAiB,SAAS,+BAA+B,CAAC;AAAA;AAAA,MAEzG,IAAI,SAAS,aAAa,WAAW;AAAA,QACnC,IAAI,CAAC,MAAM,QAAQ,SAAS,QAAQ;AAAA,UAAG,OAAO,KAAK,EAAE,MAAM,GAAG,eAAe,SAAS,uBAAuB,CAAC;AAAA,QAC9G;AAAA,UACE,SAAS,SAAS,QAAQ,CAAC,GAAG,MAAM;AAAA,YAClC,MAAM,KAAK,GAAG,eAAe;AAAA,YAC7B,IAAI,CAAC,UAAS,CAAC,KAAK,OAAO,EAAE,SAAS,YAAY,CAAC,QAAQ,KAAK,EAAE,IAAI;AAAA,cAAG,OAAO,KAAK,EAAE,MAAM,GAAG,WAAW,SAAS,yBAAyB,CAAC;AAAA,YAC9I,IAAI,CAAC,UAAS,CAAC,KAAK,OAAO,EAAE,WAAW,YAAY,CAAC,aAAY,EAAE,MAAM;AAAA,cAAG,OAAO,KAAK,EAAE,MAAM,GAAG,aAAa,SAAS,8BAA8B,CAAC;AAAA,WACzJ;AAAA,MACL;AAAA,IACF;AAAA,EACF,IAAI,IAAI,cAAc,cAAc,CAAC,MAAM,QAAQ,IAAI,SAAS,KAAK,IAAI,UAAU,KAAK,CAAC,MAAM,OAAO,MAAM,YAAY,CAAC,CAAC;AAAA,IACxH,OAAO,KAAK,EAAE,MAAM,cAAc,SAAS,mDAAmD,CAAC;AAAA,EACjG,IAAI,IAAI,YAAY,WAAW;AAAA,IAC7B,IAAI,CAAC,UAAS,IAAI,OAAO;AAAA,MAAG,OAAO,KAAK,EAAE,MAAM,YAAY,SAAS,gCAAgC,CAAC;AAAA,IACtG;AAAA,MACE,WAAW,QAAQ,OAAO,KAAK,IAAI,OAAO,EAAE,KAAK,GAAG;AAAA,QAClD,MAAM,MAAO,IAAI,QAAoC;AAAA,QACrD,MAAM,KAAK,YAAY;AAAA,QACvB,IAAI,CAAC,qBAAoB,KAAK,IAAI;AAAA,UAAG,OAAO,KAAK,EAAE,MAAM,IAAI,SAAS,sDAAsD,CAAC;AAAA,QAC7H,IAAI,CAAC,UAAS,GAAG;AAAA,UAAG,OAAO,KAAK,EAAE,MAAM,IAAI,SAAS,6BAA6B,CAAC;AAAA,QACnF;AAAA,UAAK,OAAO,KAAK,GAAG,sBAAqB,IAAI,QAAQ,GAAG,WAAW,CAAC;AAAA,MACtE;AAAA,EACJ;AAAA,EACA,IAAI,IAAI,YAAY,cAAc,CAAC,MAAM,QAAQ,IAAI,OAAO,KAAK,IAAI,QAAQ,KAAK,CAAC,MAAM,OAAO,MAAM,YAAY,CAAC,CAAC;AAAA,IAClH,OAAO,KAAK,EAAE,MAAM,YAAY,SAAS,+DAA+D,CAAC;AAAA,EAC3G,KAAK,IAAI,MAAM,QAAQ,IAAI,OAAO,KAAK,UAAS,IAAI,SAAS;AAAA,IAC3D,YAAY,IAAI,aAAa,OAAO,QAAQ,IAAI,SAAS,GAAG;AAAA,MAC1D,IAAI,CAAC,UAAS,QAAQ,KAAK,CAAC,MAAM,QAAQ,SAAS,QAAQ;AAAA,QAAG;AAAA,MAC9D,SAAS,SAAS,QAAQ,CAAC,GAAG,MAAM;AAAA,QAClC,IAAI,UAAS,CAAC,KAAK,OAAO,EAAE,WAAW,YAAY,aAAY,EAAE,MAAM,KAAK,CAAC,eAAc,IAAI,SAAqB,EAAE,MAAM;AAAA,UAC1H,OAAO,KAAK,EAAE,MAAM,cAAc,eAAe,YAAY,SAAS,UAAU,EAAE,yCAAyC,CAAC;AAAA,OAC/H;AAAA,IACH;AAAA,EAEF,IAAI,UAAS,IAAI,SAAS;AAAA,IACxB,YAAY,IAAI,aAAa,OAAO,QAAQ,IAAI,SAAS,GAAG;AAAA,MAC1D,IAAI,CAAC,UAAS,QAAQ,KAAK,CAAC,MAAM,QAAQ,SAAS,QAAQ;AAAA,QAAG;AAAA,MAC9D,SAAS,SAAS,QAAQ,CAAC,GAAG,MAAM;AAAA,QAClC,MAAM,SAAS,UAAS,CAAC,KAAK,OAAO,EAAE,WAAW,WAAW,aAAY,EAAE,MAAM,IAAI;AAAA,QACrF,IAAI,QAAQ,WAAW;AAAA,UAAgB;AAAA,QACvC,IAAI,CAAC,UAAS,IAAI,OAAO,KAAK,CAAC,OAAO,UAAU,eAAe,KAAK,IAAI,SAAS,OAAO,IAAI;AAAA,UAC1F,OAAO,KAAK,EAAE,MAAM,cAAc,eAAe,YAAY,SAAS,WAAW,OAAO,8BAA8B,CAAC;AAAA,OAC1H;AAAA,IACH;AAAA,EACF,IAAI,IAAI,UAAU;AAAA,IAAW,OAAO,KAAK,GAAG,eAAc,IAAI,KAAK,CAAC;AAAA,EACpE,IAAI,IAAI,cAAc;AAAA,IAAW,OAAO,KAAK,GAAG,mBAAkB,IAAI,SAAS,CAAC;AAAA,EAChF,IAAI,IAAI,YAAY;AAAA,IAAW,OAAO,KAAK,GAAG,wBAAuB,IAAI,SAAS,IAAI,SAAS,IAAI,SAAS,CAAC;AAAA,EAC7G,IAAI,IAAI,eAAe;AAAA,IAAW,OAAO,KAAK,GAAG,mBAAmB,IAAI,YAAY,YAAY,UAAU,CAAC;AAAA,EAC3G,OAAO;AAAA;AAGT,SAAS,kBAAkB,CAAC,MAAe,YAA+B,WAAsE;AAAA,EAC9I,IAAI,CAAC,MAAM,QAAQ,IAAI;AAAA,IAAG,OAAO,CAAC,EAAE,MAAM,eAAe,SAAS,qDAAqD,CAAC;AAAA,EACxH,MAAM,SAAyB,CAAC;AAAA,EAChC,MAAM,OAAO,IAAI;AAAA,EACjB,KAAK,QAAQ,CAAC,KAAK,MAAM;AAAA,IACvB,MAAM,KAAK,eAAe;AAAA,IAC1B,IAAI,CAAC,UAAS,GAAG;AAAA,MAAG,OAAO,KAAK,OAAO,KAAK,EAAE,MAAM,IAAI,SAAS,6CAA6C,CAAC;AAAA,IAC/G,MAAM,KAAK,OAAO,IAAI,OAAO,YAAY,IAAI,KAAK,IAAI,KAAK;AAAA,IAC3D,IAAI,CAAC;AAAA,MAAI,OAAO,KAAK,EAAE,MAAM,GAAG,SAAS,SAAS,0BAA0B,CAAC;AAAA,IAC7E,MAAM,UAAU,OAAO,IAAI,YAAY,YAAY,OAAO,KAAK,IAAI,OAAO,IAAI,IAAI,UAAU;AAAA,IAC5F,IAAI,CAAC;AAAA,MAAS,OAAO,KAAK,EAAE,MAAM,GAAG,cAAc,SAAS,+BAA+B,CAAC;AAAA,IAC5F,MAAM,aAAa,IAAI,eAAe,YAAY,CAAC,IAAI,MAAM,QAAQ,IAAI,UAAU,KAAK,IAAI,WAAW,MAAM,CAAC,MAAM,OAAO,MAAM,YAAY,CAAC,IAAK,IAAI,aAA0B;AAAA,IACjL,IAAI,CAAC;AAAA,MAAY,OAAO,KAAK,EAAE,MAAM,GAAG,iBAAiB,SAAS,0CAA0C,CAAC;AAAA,IAC7G,IAAI,CAAC;AAAA,MAAI;AAAA,IACT,IAAI,KAAK,IAAI,EAAE;AAAA,MAAG,OAAO,KAAK,OAAO,KAAK,EAAE,MAAM,GAAG,SAAS,SAAS,uBAAuB,KAAK,CAAC;AAAA,IACpG,KAAK,IAAI,EAAE;AAAA,IACX,MAAM,OAAO,WAAW,KAAK,CAAC,MAAM,EAAE,OAAO,EAAE;AAAA,IAC/C,IAAI,CAAC,WAAW,SAAS,EAAE,KAAM,aAAa,CAAC;AAAA,MAAO,OAAO,KAAK,OAAO,KAAK,EAAE,MAAM,GAAG,SAAS,SAAS,aAAa,mCAAmC,CAAC;AAAA,IAC5J,IAAI,CAAC;AAAA,MAAM;AAAA,IACX,IAAI,WAAW,KAAK,YAAY,aAAa,CAAC,kBAAiB,KAAK,SAAS,OAAO;AAAA,MAAG,OAAO,KAAK,EAAE,MAAM,GAAG,cAAc,SAAS,aAAa,MAAM,KAAK,6BAA6B,UAAU,CAAC;AAAA,IACrM,IAAI,KAAK;AAAA,OACN,cAAc,CAAC,GAAG,QAAQ,CAAC,MAAM,MAAM;AAAA,QACtC,IAAI,CAAC,KAAK,WAAY,SAAS,IAAI;AAAA,UAAG,OAAO,KAAK,EAAE,MAAM,GAAG,iBAAiB,KAAK,SAAS,aAAa,uBAAuB,OAAO,CAAC;AAAA,OACzI;AAAA,GACJ;AAAA,EACD,OAAO;AAAA;AAOF,SAAS,cAAa,CAAC,SAAwC,QAAyB;AAAA,EAC7F,IAAI,YAAY;AAAA,IAAW,OAAO;AAAA,EAClC,MAAM,SAAS,aAAY,MAAM;AAAA,EACjC,IAAI,CAAC;AAAA,IAAQ,OAAO;AAAA,EACpB,MAAM,OAAO,GAAG,OAAO,UAAU,OAAO;AAAA,EACxC,OAAO,QAAQ,KAAK,CAAC,MAAM,gBAAe,GAAG,IAAI,KAAK,gBAAe,GAAG,MAAM,CAAC;AAAA;AAK1E,SAAS,iBAAgB,CAAC,KAAiB,YAAoB,WAAmB,MAAwC;AAAA,EAC/H,MAAM,WAAW,IAAI,UAAU;AAAA,EAC/B,IAAI,CAAC;AAAA,IAAU,OAAO;AAAA,EACtB,MAAM,UAAU;AAAA,EAChB,MAAM,MAAuB;AAAA,IAC3B,EAAE,SAAS,eAAe,EAAE,WAAW,WAAW,IAAI,UAAU,EAAE;AAAA,IAClE,EAAE,SAAS,kBAAkB,EAAE,WAAW,YAAY,SAAS,WAAW,EAAE;AAAA,EAC9E;AAAA,EACA,MAAM,SAAS,WAAU,SAAS,MAAM,IAAI;AAAA,EAC5C,IAAI,WAAW;AAAA,IAAW,IAAI,KAAK,EAAE,SAAS,iBAAiB,EAAE,WAAW,MAAM,KAAK,OAAO,OAAO,EAAE,CAAC;AAAA,EACxG,WAAW,KAAK,SAAS,YAAY,CAAC;AAAA,IAAG,IAAI,KAAK,EAAE,SAAS,eAAe,EAAE,WAAW,MAAM,EAAE,MAAM,QAAQ,EAAE,OAAO,EAAE,CAAC;AAAA,EAC3H,OAAO;AAAA;AAKF,SAAS,UAAS,CAAC,MAAe,MAAwB;AAAA,EAC/D,IAAI,SAAS;AAAA,IAAW,OAAO;AAAA,EAC/B,IAAI,UAAS,IAAI,KAAK,UAAS,IAAI;AAAA,IAAG,OAAO,KAAK,SAAS,KAAK;AAAA,EAChE,OAAO;AAAA;;ACjQT,IAAM,YAAW,CAAC,MAA6C,CAAC,CAAC,KAAK,OAAO,MAAM,YAAY,CAAC,MAAM,QAAQ,CAAC;AAAA;AAiBxG,MAAM,YAAW;AAAA,EACd;AAAA,EACA,WAAW,IAAI;AAAA,EACf,WAAW,IAAI;AAAA,EACf;AAAA,EAER,WAAW,CAAC,UAA6B,CAAC,GAAG;AAAA,IAC3C,KAAK,eAAe,CAAC,GAAI,QAAQ,gBAAgB,CAAC,CAAE;AAAA,IACpD,KAAK,aAAa,QAAQ,aAAa,CAAC,GAAG,QAAQ,UAAU,IAAI;AAAA;AAAA,MAG/D,mBAAmB,GAAa;AAAA,IAClC,OAAO,qBAAoB,KAAK,YAAY;AAAA;AAAA,EAG9C,iBAAiB,CAAC,IAAY,WAAsC;AAAA,IAClE,IAAI,CAAC,KAAK,aAAa,SAAS,EAAE;AAAA,MAAG,KAAK,aAAa,KAAK,EAAE;AAAA,IAC9D,IAAI,KAAK,cAAc,CAAC,KAAK,WAAW,KAAK,CAAC,MAAM,EAAE,OAAO,EAAE;AAAA,MAAG,KAAK,WAAW,KAAK,aAAa,EAAE,GAAG,CAAC;AAAA;AAAA,EAK5G,cAAc,CAAC,KAAiC;AAAA,IAC9C,MAAM,SAAS,iBAAgB,KAAK,KAAK,qBAAqB,KAAK,UAAU;AAAA,IAC7E,IAAI,CAAC,OAAO;AAAA,MAAQ,KAAK,SAAS,IAAI,IAAI,IAAI,GAAG;AAAA,IACjD,OAAO;AAAA;AAAA,EAGT,OAAO,CAAC,IAAoC;AAAA,IAC1C,OAAO,KAAK,SAAS,IAAI,EAAE;AAAA;AAAA,EAG7B,OAAO,CAAC,IAAqC;AAAA,IAC3C,OAAO,KAAK,SAAS,IAAI,EAAE;AAAA;AAAA,EAG7B,UAAU,GAAa;AAAA,IACrB,OAAO,CAAC,GAAG,KAAK,SAAS,KAAK,CAAC;AAAA;AAAA,EAIjC,KAAK,CAAC,SAA4B;AAAA,IAEhC,IAAI,WAAU,OAAO;AAAA,MAAG,OAAO,CAAC,KAAK,QAAQ,UAAS,OAAO,IAAI,YAAY,OAAO,IAAI,IAAI,cAAa,YAAY,CAAC;AAAA,IACtH,IAAI,CAAC,UAAS,OAAO;AAAA,MAAG,OAAO,CAAC,KAAK,QAAQ,IAAI,4BAA4B,CAAC;AAAA,IAC9E,IAAI,QAAQ,YAAY,aAAa,QAAQ,YAAY;AAAA,MAAc,OAAO,CAAC,KAAK,QAAQ,YAAY,OAAO,GAAG,uBAAuB,OAAO,QAAQ,OAAO,GAAG,CAAC;AAAA,IACnK,MAAM,QAAQ,OAAO,KAAK,OAAO,EAAE,OAAO,CAAC,MAAM,MAAM,SAAS;AAAA,IAChE,IAAI,MAAM,WAAW,KAAK,CAAC,eAAc,SAAS,MAAM,EAAG;AAAA,MAAG,OAAO,CAAC,KAAK,QAAQ,YAAY,OAAO,GAAG,2BAA2B,eAAc,KAAK,IAAI,GAAG,CAAC;AAAA,IAC/J,MAAM,OAAO,MAAM;AAAA,IACnB,MAAM,OAAO,QAAQ;AAAA,IACrB,IAAI,CAAC,UAAS,IAAI,KAAK,OAAO,KAAK,cAAc,YAAY,CAAC,KAAK;AAAA,MAAW,OAAO,CAAC,KAAK,QAAQ,IAAI,GAAG,4BAA4B,CAAC;AAAA,IACvI,MAAM,YAAY,KAAK;AAAA,IACvB,QAAQ;AAAA,MACN,KAAK,iBAAiB;AAAA,QACpB,IAAI,OAAO,KAAK,cAAc;AAAA,UAAU,OAAO,CAAC,KAAK,QAAQ,WAAW,qCAAqC,CAAC;AAAA,QAC9G,IAAI,CAAC,KAAK,oBAAoB,SAAS,KAAK,SAAS;AAAA,UACnD,OAAO,CAAC,EAAE,IAAI,QAAQ,SAAS,cAAa,uBAAuB,WAAW,WAAW,KAAK,4BAA4B,EAAE,CAAC;AAAA,QAC/H,KAAK,SAAS,IAAI,WAAW,EAAE,WAAW,WAAW,KAAK,UAAU,CAAC;AAAA,QACrE,MAAM,KAAa,EAAE,IAAI,UAAU,WAAW,WAAW,KAAK,UAAU;AAAA,QACxE,IAAI,KAAK,UAAU;AAAA,UAAW,GAAG,QAAQ,KAAK;AAAA,QAC9C,IAAI,KAAK,kBAAkB;AAAA,UAAM,GAAG,gBAAgB;AAAA,QACpD,OAAO,CAAC,EAAE;AAAA,MACZ;AAAA,MACA,KAAK,oBAAoB;AAAA,QACvB,IAAI,CAAC,MAAM,QAAQ,KAAK,UAAU;AAAA,UAAG,OAAO,CAAC,KAAK,QAAQ,WAAW,yCAAyC,CAAC;AAAA,QAC/G,IAAI,CAAC,KAAK,SAAS,IAAI,SAAS;AAAA,UAAG,OAAO,CAAC,KAAK,QAAQ,SAAS,CAAC;AAAA,QAClE,OAAO,CAAC,EAAE,IAAI,cAAc,WAAW,YAAY,KAAK,WAAoB,CAAC;AAAA,MAC/E;AAAA,MACA,KAAK,mBAAmB;AAAA,QACtB,IAAI,CAAC,KAAK,SAAS,IAAI,SAAS;AAAA,UAAG,OAAO,CAAC,KAAK,QAAQ,SAAS,CAAC;AAAA,QAClE,IAAI,KAAK,SAAS,aAAa,OAAO,KAAK,SAAS;AAAA,UAAU,OAAO,CAAC,KAAK,QAAQ,WAAW,kCAAkC,CAAC;AAAA,QACjI,MAAM,OAAO,eAAc,KAAK,IAA0B;AAAA,QAC1D,OAAO,CAAC,WAAW,OAAO,EAAE,IAAI,QAAQ,WAAW,MAAM,OAAO,KAAK,MAAM,IAAI,EAAE,IAAI,QAAQ,WAAW,KAAK,CAAC;AAAA,MAChH;AAAA,MACA,KAAK,iBAAiB;AAAA,QACpB,IAAI,CAAC,KAAK,SAAS,IAAI,SAAS;AAAA,UAAG,OAAO,CAAC,KAAK,QAAQ,SAAS,CAAC;AAAA,QAClE,KAAK,SAAS,OAAO,SAAS;AAAA,QAC9B,OAAO,CAAC,EAAE,IAAI,UAAU,UAAU,CAAC;AAAA,MACrC;AAAA,MACA,KAAK,iBAAiB;AAAA,QACpB,MAAM,OAAO,KAAK,SAAS,IAAI,SAAS;AAAA,QACxC,IAAI,CAAC;AAAA,UAAM,OAAO,CAAC,KAAK,QAAQ,SAAS,CAAC;AAAA,QAC1C,IAAI,OAAO,KAAK,SAAS,YAAY,OAAO,KAAK,WAAW,YAAY,CAAC,aAAY,KAAK,MAAM;AAAA,UAC9F,OAAO,CAAC,KAAK,QAAQ,WAAW,qDAAqD,CAAC;AAAA,QAExF,MAAM,MAAM,KAAK,YAAY,KAAK,SAAS,IAAI,KAAK,SAAS,IAAI;AAAA,QACjE,IAAI,OAAO,CAAC,eAAc,IAAI,SAAS,KAAK,MAAM;AAAA,UAChD,OAAO,CAAC,EAAE,IAAI,QAAQ,SAAS,cAAa,iBAAiB,WAAW,UAAU,KAAK,4BAA4B,IAAI,gBAAgB,eAAc,KAAK,IAAI,KAAK,GAAG,EAAE,CAAC;AAAA,QAC3K,OAAO,CAAC,EAAE,IAAI,QAAQ,WAAW,MAAM,eAAc,KAAK,IAAI,GAAG,QAAQ,KAAK,OAAO,CAAC;AAAA,MACxF;AAAA,MACA,KAAK,iBAAiB;AAAA,QACpB,IAAI,OAAO,KAAK,eAAe;AAAA,UAAU,OAAO,CAAC,KAAK,QAAQ,WAAW,sCAAsC,CAAC;AAAA,QAChH,MAAM,MAAM,KAAK,YAAY,KAAK,YAAY,OAAO,KAAK,cAAc,WAAW,KAAK,YAAY,SAAS;AAAA,QAC7G,IAAI,CAAC;AAAA,UAAK,OAAO,CAAC,EAAE,IAAI,QAAQ,SAAS,cAAa,sBAAsB,WAAW,yCAAyC,KAAK,YAAY,EAAE,CAAC;AAAA,QACpJ,MAAM,MAAgB,CAAC;AAAA,QACvB,WAAW,KAAK,kBAAiB,KAAK,KAAK,YAAY,WAAW,KAAK,IAAI,KAAK,CAAC,GAAG;AAAA,UAClF,IAAI,KAAK,GAAG,KAAK,MAAM,CAAC,CAAC;AAAA,UAGzB,MAAM,OAAO,KAAK,SAAS,IAAI,SAAS;AAAA,UACxC,IAAI;AAAA,YAAM,KAAK,YAAY,IAAI;AAAA,QACjC;AAAA,QACA,OAAO;AAAA,MACT;AAAA;AAAA,IAEF,OAAO,CAAC,KAAK,QAAQ,WAAW,iBAAiB,CAAC;AAAA;AAAA,EAG5C,WAAW,CAAC,YAAoB,WAA4C;AAAA,IAClF,IAAI,cAAc,WAAW;AAAA,MAC3B,MAAM,MAAM,KAAK,SAAS,IAAI,SAAS;AAAA,MACvC,OAAO,OAAO,IAAI,UAAU,cAAc,MAAM;AAAA,IAClD;AAAA,IACA,WAAW,OAAO,KAAK,SAAS,OAAO;AAAA,MAAG,IAAI,IAAI,UAAU;AAAA,QAAa,OAAO;AAAA,IAChF;AAAA;AAAA,EAGM,OAAO,CAAC,WAAmB,SAAyB;AAAA,IAC1D,OAAO,EAAE,IAAI,QAAQ,SAAS,cAAa,mBAAmB,WAAW,OAAO,EAAE;AAAA;AAAA,EAG5E,OAAO,CAAC,WAA2B;AAAA,IACzC,OAAO,EAAE,IAAI,QAAQ,SAAS,cAAa,qBAAqB,WAAW,cAAc,qCAAqC,EAAE;AAAA;AAEpI;AAIA,SAAS,UAAS,CAAC,SAA2B;AAAA,EAC5C,IAAI;AAAA,EACJ,IAAI;AAAA,IACF,OAAO,KAAK,UAAU,OAAO;AAAA,IAC7B,MAAM;AAAA,IACN,OAAO;AAAA;AAAA,EAET,IAAI,SAAS,aAAa,KAAK,SAAS,KAAK;AAAA,IAAmB,OAAO;AAAA,EACvE,OAAO,KAAK,SAAS,sBAAqB,IAAI,YAAY,EAAE,OAAO,IAAI,EAAE,SAAS;AAAA;AAGpF,SAAS,WAAW,CAAC,SAA0C;AAAA,EAC7D,WAAW,KAAK,OAAO,OAAO,OAAO;AAAA,IAAG,IAAI,UAAS,CAAC,KAAK,OAAO,EAAE,cAAc;AAAA,MAAU,OAAO,EAAE;AAAA,EACrG,OAAO;AAAA;AAKF,SAAS,cAAa,CAAC,MAAkC;AAAA,EAC9D,OAAO,SAAS,aAAa,SAAS,MAAM,KAAK;AAAA;;AChG5C,MAAM,sBAAqB,MAAM;AAAA,EAE3B;AAAA,EACA;AAAA,EAFX,WAAW,CACA,WACA,QACT;AAAA,IACA,MAAM,2BAA2B,0BAA0B,OAAO,IAAI,CAAC,MAAM,GAAG,EAAE,QAAQ,OAAO,EAAE,SAAS,EAAE,KAAK,IAAI,GAAG;AAAA,IAHjH;AAAA,IACA;AAAA,IAGT,KAAK,OAAO;AAAA;AAEhB;AAEA,IAAM,aAAa;AAIZ,SAAS,oBAAmB,CAAC,OAAmE;AAAA,EACrG,IAAI,OAAO,UAAU,UAAU;AAAA,IAC7B,IAAI,CAAC,mBAAkB,SAAS,KAAK;AAAA,MAAG,OAAO,EAAE,OAAO,MAAM,QAAQ,CAAC,2BAA2B,kBAAkB,mBAAkB,KAAK,GAAG,GAAG,EAAE;AAAA,IACnJ,OAAO,EAAE,OAAO,cAAa,KAAK,GAAG,QAAQ,CAAC,EAAE;AAAA,EAClD;AAAA,EACA,QAAQ,OAAO,WAAW,cAAa,OAAO,EAAE,QAAQ,gBAAe,CAAC;AAAA,EACxE,OAAO,EAAE,OAAO,QAAQ,OAAO,IAAI,CAAC,MAAO,EAAE,OAAO,GAAG,EAAE,SAAS,EAAE,YAAY,EAAE,OAAQ,EAAE;AAAA;AAAA;AAavF,MAAM,cAAa;AAAA,EAkBkC;AAAA,EAjBjD;AAAA,EACT;AAAA,EACA;AAAA,EACA,gBAAgB;AAAA,EAER,OAAwB,CAAC;AAAA,EAEzB,SAAS;AAAA,EACT,YAAY,IAAI;AAAA,EACxB,OAAgC,CAAC;AAAA,EAGjC;AAAA,EACQ,UAAqG;AAAA,EACrG,YAAY,IAAI;AAAA,EACxB,UAAU;AAAA,EAEV,WAAW,CAAC,WAAmB,WAA2B,YAA2C;AAAA,IAA3C;AAAA,IACxD,KAAK,YAAY;AAAA,IACjB,KAAK,YAAY;AAAA;AAAA,MAMf,UAAU,GAA6B;AAAA,IACzC,KAAK,SAAS;AAAA,IACd,OAAO,KAAK;AAAA;AAAA,EAId,SAAS,CAAC,IAAuC;AAAA,IAC/C,MAAM,KAAK,KAAK,UAAU,IAAI,EAAE;AAAA,IAChC,OAAO,OAAO,YAAY,YAAY,KAAK,KAAK;AAAA;AAAA,MAG9C,IAAI,GAAkB;AAAA,IACxB,OAAO,KAAK,OAAO,EAAE;AAAA;AAAA,MAGnB,MAAM,GAAkB;AAAA,IAC1B,OAAO,KAAK,OAAO,EAAE;AAAA;AAAA,MAInB,SAAS,GAAuC;AAAA,IAClD,OAAO,KAAK,OAAO,EAAE;AAAA;AAAA,EAGf,MAAM,GAAG;AAAA,IACf,IAAI,CAAC,KAAK;AAAA,MACR,KAAK,UAAU,KAAK,KAAK,SAAS,eAAc,KAAK,MAAM,EAAE,WAAW,KAAK,WAAW,YAAY,KAAK,WAAW,EAAE,CAAC,IAAI,EAAE,MAAM,MAAM,QAAQ,CAAC,EAAE;AAAA,IACtJ,OAAO,KAAK;AAAA;AAAA,EAKd,aAAa,CAAC,YAA4C;AAAA,IACxD,IAAI,KAAK,QAAQ;AAAA,MACf,KAAK,OAAO,KAAK,KAAK,MAAM;AAAA,MAC5B,KAAK,SAAS;AAAA,IAChB;AAAA,IACA,WAAW,KAAK,YAAY;AAAA,MAC1B,MAAM,KAAK,KAAK,UAAU,IAAI,EAAE,EAAE;AAAA,MAClC,IAAI,OAAO,WAAW;AAAA,QACpB,KAAK,UAAU,IAAI,EAAE,IAAI,KAAK,KAAK,MAAM;AAAA,QACzC,KAAK,KAAK,KAAK,CAAC;AAAA,MAClB,EAAE;AAAA,QAAK,KAAK,KAAK,MAAM;AAAA,IACzB;AAAA,IACA,KAAK,UAAU;AAAA,IACf,KAAK,OAAO;AAAA;AAAA,EAId,UAAU,GAAS;AAAA,IACjB,KAAK,UAAU;AAAA,IACf,KAAK,OAAO;AAAA;AAAA,EAKd,OAAO,CAAC,SAAiB,OAAoC;AAAA,IAC3D,MAAM,UAAU,cAAa,KAAK,MAAM,SAAS,KAAK;AAAA,IACtD,IAAI,QAAQ;AAAA,MAAO,OAAO,QAAQ;AAAA,IAClC,KAAK,OAAO,QAAQ;AAAA,IACpB,KAAK,OAAO;AAAA,IACZ;AAAA;AAAA,EAGF,SAAS,CAAC,UAAgC;AAAA,IACxC,KAAK,UAAU,IAAI,QAAQ;AAAA,IAC3B,OAAO,MAAM,KAAK,UAAU,OAAO,QAAQ;AAAA;AAAA,EAG7C,MAAM,GAAS;AAAA,IACb,KAAK,WAAW;AAAA,IAChB,WAAW,KAAK,CAAC,GAAG,KAAK,SAAS;AAAA,MAAG,EAAE;AAAA;AAE3C;AAAA;AAEO,MAAM,iBAAgB;AAAA,EAoBP;AAAA,EAnBX;AAAA,EACD,SAAS,IAAI;AAAA,EAGb,gBAAgB,IAAI;AAAA,EAGpB,cAAc,IAAI;AAAA,EAClB,YAAY,IAAI;AAAA,EAChB;AAAA,EACA;AAAA,EACA;AAAA,EACR,SAA0B;AAAA,EAC1B;AAAA,EAEA;AAAA,EAEA,SAA+B,CAAC;AAAA,EAEhC,WAAW,CAAS,UAAuB,CAAC,GAAG;AAAA,IAA3B;AAAA,IAClB,KAAK,aAAa,CAAC,GAAI,QAAQ,cAAc,CAAC,CAAE;AAAA,IAChD,KAAK,SAAS,IAAI,YAAW,EAAE,cAAc,KAAK,WAAW,IAAI,CAAC,MAAM,EAAE,EAAE,GAAG,YAAY,qBAAoB,KAAK,UAAU,EAAE,CAAC;AAAA,IACjI,KAAK,YAAY,KAAM,QAAQ,aAAa,CAAC,EAAG;AAAA,IAChD,KAAK,UAAU,KAAM,QAAQ,WAAW,CAAC,EAAG;AAAA,IAC5C,WAAW,OAAO,QAAQ,YAAY,CAAC,GAAG;AAAA,MACxC,MAAM,SAAS,KAAK,eAAe,GAAG;AAAA,MACtC,IAAI,OAAO;AAAA,QAAQ,MAAM,IAAI,cAAa,OAAO,KAAK,OAAO,YAAY,IAAI,KAAK,IAAI,KAAK,KAAK,MAAM;AAAA,IACxG;AAAA;AAAA,MAKE,YAAY,GAAY;AAAA,IAC1B,OAAO,KAAK,QAAQ,cAAc;AAAA;AAAA,MAKhC,mBAAmB,GAAa;AAAA,IAClC,OAAO,KAAK,OAAO;AAAA;AAAA,EAGrB,kBAAkB,GAAG;AAAA,IACnB,OAAO,oBAAmB,KAAK,WAAW,IAAI,CAAC,MAAM,EAAE,EAAE,CAAC;AAAA;AAAA,MAGxD,aAAa,GAA4B;AAAA,IAC3C,OAAO,KAAK;AAAA;AAAA,EAGd,iBAAiB,CAAC,KAAyB;AAAA,IACzC,IAAI,KAAK,WAAW,KAAK,CAAC,MAAM,EAAE,OAAO,IAAI,EAAE;AAAA,MAAG;AAAA,IAClD,KAAK,WAAW,KAAK,GAAG;AAAA,IACxB,KAAK,OAAO,kBAAkB,IAAI,IAAI,qBAAoB,CAAC,GAAG,CAAC,EAAE,EAAE;AAAA,IACnE,WAAW,SAAS,KAAK,OAAO,OAAO;AAAA,MAAG,MAAM,WAAW;AAAA;AAAA,EAG7D,gBAAgB,CAAC,MAAc,IAAwB;AAAA,IACrD,KAAK,UAAU,QAAQ;AAAA;AAAA,EAGzB,cAAc,CAAC,QAAgB,UAAyC;AAAA,IACtE,KAAK,QAAQ,OAAO,YAAY,KAAK;AAAA;AAAA,EAKvC,cAAc,CAAC,KAAiC;AAAA,IAC9C,MAAM,SAAS,KAAK,OAAO,eAAe,GAAG;AAAA,IAC7C,MAAM,YAAY,OAAO,KAAK,OAAO,WAAW,IAAI,KAAK;AAAA,IACzD,WAAW,KAAK;AAAA,MAAQ,KAAK,OAAO,EAAE,MAAM,mBAAmB,SAAS,EAAE,SAAS,MAAM,EAAE,SAAU,YAAY,EAAE,UAAU,IAAI,CAAC,EAAG,CAAC;AAAA,IACtI,OAAO;AAAA;AAAA,EAGD,MAAM,CAAC,OAAwB;AAAA,IACrC,MAAM,OAAO,CAAC,GAAG,KAAK,QAAQ,KAAK;AAAA,IACnC,KAAK,SAAS,KAAK,SAAS,aAAa,KAAK,MAAM,KAAK,SAAS,UAAU,IAAI;AAAA,IAChF,KAAK,QAAQ,UAAU,KAAK;AAAA,IAC5B,KAAK,OAAO;AAAA;AAAA,EAKd,OAAO,CAAC,IAAsC;AAAA,IAC5C,OAAO,KAAK,OAAO,IAAI,EAAE;AAAA;AAAA,EAG3B,UAAU,GAAa;AAAA,IACrB,OAAO,CAAC,GAAG,KAAK,OAAO,KAAK,CAAC;AAAA;AAAA,EAG/B,SAAS,CAAC,UAAgC;AAAA,IACxC,KAAK,UAAU,IAAI,QAAQ;AAAA,IAC3B,OAAO,MAAM,KAAK,UAAU,OAAO,QAAQ;AAAA;AAAA,EAGrC,MAAM,GAAS;AAAA,IACrB,WAAW,KAAK,CAAC,GAAG,KAAK,SAAS;AAAA,MAAG,EAAE;AAAA;AAAA,EAKzC,OAAO,GAAS;AAAA,IACd,MAAM,IAAI,KAAK,QAAQ;AAAA,IACvB,IAAI,CAAC;AAAA,MAAG;AAAA,IACR,EAAE,MACA,CAAC,MAAM,KAAK,QAAQ,CAAC,GACrB,CAAC,QAAQ,WAAW;AAAA,MAClB,KAAK,SAAS;AAAA,MACd,KAAK,eAAe;AAAA,MACpB,KAAK,OAAO;AAAA,KAEhB;AAAA;AAAA,EAGF,KAAK,GAAS;AAAA,IACZ,KAAK,QAAQ,WAAW,MAAM;AAAA,IAC9B,WAAW,MAAM,KAAK,WAAW;AAAA,MAAG,KAAK,QAAQ,EAAE,IAAI,UAAU,WAAW,GAAG,CAAC;AAAA;AAAA,EAKlF,OAAO,CAAC,SAA4B;AAAA,IAClC,MAAM,MAAM,KAAK,OAAO,MAAM,OAAO;AAAA,IACrC,WAAW,MAAM;AAAA,MAAK,KAAK,QAAQ,EAAE;AAAA,IACrC,OAAO;AAAA;AAAA,EAGT,IAAI,CAAC,SAA8B;AAAA,IAC5B,KAAK,QAAQ,WAAW,KAAK,OAAO;AAAA,IACzC,KAAK,QAAQ,SAAS,OAAO;AAAA,IAC7B,IAAI,WAAW,SAAS;AAAA,MACtB,MAAM,IAAI,QAAQ;AAAA,MAClB,KAAK,OAAO,EAAE,MAAM,EAAE,MAAM,SAAS,EAAE,YAAa,EAAE,YAAY,EAAE,WAAW,EAAE,UAAU,IAAI,CAAC,MAAQ,EAAE,SAAS,YAAY,EAAE,MAAM,EAAE,KAAK,IAAI,CAAC,EAAG,CAAC;AAAA,IACzJ;AAAA;AAAA,EAGM,OAAO,CAAC,IAAkB;AAAA,IAChC,KAAK,QAAQ,OAAO,EAAE;AAAA,IACtB,QAAQ,GAAG;AAAA,MACT,KAAK,UAAU;AAAA,QACb,KAAK,OAAO,GAAG,SAAS;AAAA,QACxB,KAAK,kBAAkB,GAAG,SAAS;AAAA,QACnC,MAAM,QAAQ,IAAI,cAAa,GAAG,WAAW,GAAG,WAAW,MAAM,KAAK,UAAU;AAAA,QAChF,MAAM,gBAAgB,GAAG,kBAAkB;AAAA,QAC3C,MAAM,YAAY,KAAK,OAAO,QAAQ,GAAG,SAAS,GAAG;AAAA,QACrD,IAAI,GAAG,UAAU,aAAa,GAAG,UAAU,MAAM;AAAA,UAC/C,QAAQ,OAAO,WAAW,qBAAoB,GAAG,KAAK;AAAA,UACtD,IAAI;AAAA,YAAO,MAAM,QAAQ;AAAA,UACzB;AAAA,YAAK,KAAK,KAAK,cAAa,qBAAqB,GAAG,WAAW,oCAAoC,OAAO,KAAK,IAAI,KAAK,sBAAsB,CAAC;AAAA,QACjJ;AAAA,QACA,KAAK,OAAO,IAAI,GAAG,WAAW,KAAK;AAAA,QACnC,KAAK,OAAO;AAAA,QACZ;AAAA,MACF;AAAA,MACA,KAAK,cAAc;AAAA,QAGjB,MAAM,SAAS,KAAK,YAAY,IAAI,GAAG,SAAS;AAAA,QAChD,IAAI;AAAA,UAAQ,WAAW,KAAK,GAAG;AAAA,YAAY,OAAO,OAAO,EAAE,EAAE;AAAA,QAC7D,KAAK,OAAO,IAAI,GAAG,SAAS,GAAG,cAAc,GAAG,UAAU;AAAA,QAC1D;AAAA,MACF;AAAA,MACA,KAAK,QAAQ;AAAA,QACX,MAAM,QAAQ,KAAK,OAAO,IAAI,GAAG,SAAS,GAAG,QAAQ,GAAG,MAAM,GAAG,KAAK;AAAA,QACtE,IAAI;AAAA,UAAO,KAAK,KAAK,cAAa,qBAAqB,GAAG,WAAW,OAAO,GAAG,QAAQ,GAAG,CAAC;AAAA,QAC3F;AAAA,MACF;AAAA,MACA,KAAK,QAAQ;AAAA,QACX,MAAM,QAAQ,KAAK,OAAO,IAAI,GAAG,SAAS;AAAA,QAC1C,MAAM,SAAS,aAAY,GAAG,MAAM;AAAA,QACpC,MAAM,WAAW,SAAS,KAAK,QAAQ,OAAO,UAAU;AAAA,QACxD,IAAI,CAAC,SAAS,CAAC;AAAA,UAAQ;AAAA,QACvB,IAAI,CAAC,UAAU;AAAA,UACb,KAAK,KAAK,cAAa,qBAAqB,GAAG,WAAW,qCAAqC,OAAO,UAAU,GAAG,QAAQ,GAAG,CAAC;AAAA,UAC/H;AAAA,QACF;AAAA,QACA,MAAM,UAAU,KAAK,cAAc,IAAI,GAAG,SAAS,KAAK,CAAC;AAAA,QACzD,WAAW,OAAO;AAAA,UAAS,IAAI,IAAI,SAAS,GAAG;AAAA,YAAM,IAAI,OAAO;AAAA,QAChE,MAAM,OAAO,QAAQ,OAAO,CAAC,QAAQ,IAAI,SAAS,GAAG,IAAI;AAAA,QACzD,MAAM,SAAS,SAAS,QAAQ,CAAC,UAAU,KAAK,OAAO,IAAI,GAAG,SAAS,GAAG,QAAQ,GAAG,MAAM,KAAK,CAAC;AAAA,QACjG,KAAK,cAAc,IAAI,GAAG,WAAW,SAAS,CAAC,GAAG,MAAM,EAAE,MAAM,GAAG,MAAM,OAAO,CAAC,IAAI,IAAI;AAAA,QACzF;AAAA,MACF;AAAA,MACA,KAAK;AAAA,QACH,KAAK,OAAO,GAAG,SAAS;AAAA,QACxB,KAAK,kBAAkB,GAAG,SAAS;AAAA,QACnC,KAAK,OAAO,OAAO,GAAG,SAAS;AAAA,QAC/B,KAAK,OAAO;AAAA,QACZ;AAAA,MACF,KAAK,QAAQ;AAAA,QACX,MAAM,MAAM,WAAW,GAAG,UAAU,GAAG,QAAQ,QAAQ;AAAA,QACvD,IAAI,KAAK,SAAS,uBAAuB;AAAA,UACvC,KAAK,qBAAqB,IAAI,QAAQ,QAAQ,qBAAqB,IAAI;AAAA,UACvE,KAAK,OAAO;AAAA,QACd;AAAA,QACA,KAAK,KAAK,GAAG,OAAO;AAAA,QACpB;AAAA,MACF;AAAA;AAAA;AAAA,EAII,MAAM,CAAC,WAAyB;AAAA,IACtC,WAAW,OAAO,KAAK,cAAc,IAAI,SAAS,KAAK,CAAC;AAAA,MAAG,IAAI,OAAO;AAAA,IACtE,KAAK,cAAc,OAAO,SAAS;AAAA;AAAA,EAMrC,MAAM,CAAC,OAA0K;AAAA,IAC/K,MAAM,UAAU,eAAc;AAAA,MAC5B,MAAM,MAAM;AAAA,MACZ,WAAW,MAAM;AAAA,MACjB,mBAAmB,MAAM;AAAA,MACzB,WAAW,MAAM,aAAa,IAAI,KAAK,EAAE,YAAY;AAAA,MACrD,SAAS,MAAM,WAAW,CAAC;AAAA,MAC3B,SAAS,MAAM;AAAA,IACjB,CAAC;AAAA,IACD,KAAK,KAAK,OAAO;AAAA,IACjB,OAAO;AAAA;AAAA,EAIT,MAAM,CAAC,WAAmB,MAAgC;AAAA,IAExD,MAAM,aAAa,OAAO,UAAU,eAAe,KAAK,KAAK,WAAW,IAAI;AAAA,IAC5E,IAAI,WAAW,gBAAe,KAAK,QAAQ,QAAQ,WAAW,MAAM,UAAU;AAAA,IAC9E,MAAM,QAAQ,KAAK,OAAO,IAAI,SAAS,GAAG;AAAA,IAC1C,MAAM,MAAM,QAAQ,KAAK,OAAO,QAAQ,KAAK,IAAI;AAAA,IACjD,IAAI;AAAA,MAAK,WAAW,kBAAiB,UAAU,gBAAe,eAAc,IAAI,SAAS,GAAG,MAAM,UAAU,CAAC;AAAA,IAC7G,OAAO;AAAA;AAAA,QAKH,YAAY,CAAC,MAAkD;AAAA,IACnE,IAAI,KAAK,SAAS,WAAW;AAAA,MAC3B,MAAM,MAAM,OAAO,KAAK,KAAK,QAAQ,WAAW,KAAK,KAAK,MAAM;AAAA,MAChE,OAAO,EAAE,UAAU,KAAK,QAAQ,GAAG,IAAI,UAAU,OAAO;AAAA,IAC1D;AAAA,IACA,IAAI,KAAK,SAAS;AAAA,MAAQ,OAAO,EAAE,UAAU,KAAK,KAAK,KAAK,WAAW,KAAK,IAAI,IAAI,UAAU,OAAO;AAAA,IACrG,IAAI,WAAW,KAAK,OAAO,KAAK,WAAW,KAAK,IAAI;AAAA,IACpD,IAAI,aAAa,aAAa;AAAA,MAC5B,KAAK,KAAK,cAAa,sBAAsB,KAAK,WAAW,eAAe,KAAK,MAAM,CAAC;AAAA,MACxF,OAAO,EAAE,SAAS;AAAA,IACpB;AAAA,IACA,IAAI;AAAA,IACJ,IAAI,aAAa,OAAO;AAAA,MAGtB,IAAI,KAAK;AAAA,MACT,IAAI;AAAA,QACF,KAAM,MAAM,KAAK,QAAQ,QAAQ,iBAAiB,IAAI,MAAO;AAAA,QAC7D,OAAO,GAAG;AAAA,QACV,eAAe,aAAa,QAAQ,EAAE,UAAU,OAAO,CAAC;AAAA;AAAA,MAE1D,IAAI,CAAC;AAAA,QAAI,WAAW;AAAA,IACtB;AAAA,IACA,IAAI,aAAa,QAAQ;AAAA,MACvB,KAAK,KAAK,cAAa,mBAAmB,KAAK,WAAW,iBAAiB,YAAY,GAAG,KAAK,yBAAyB,GAAG,KAAK,kDAAkD,cAAc,CAAC;AAAA,MACjM,OAAO,iBAAiB,YAAY,EAAE,SAAS,IAAI,EAAE,UAAU,OAAO,aAAa;AAAA,IACrF;AAAA,IACA,MAAM,KAAK,OAAO,UAAU,eAAe,KAAK,KAAK,WAAW,KAAK,IAAI,IAAI,KAAK,UAAU,KAAK,QAAQ;AAAA,IACzG,IAAI,CAAC;AAAA,MAAI,OAAO,EAAE,UAAU,QAAQ;AAAA,IACpC,IAAI;AAAA,MACF,OAAO,EAAE,UAAU,SAAS,QAAQ,MAAM,GAAG,KAAK,MAAM,IAAI,EAAE;AAAA,MAC9D,OAAO,GAAG;AAAA,MACV,OAAO,EAAE,UAAU,SAAS,OAAO,aAAa,QAAQ,EAAE,UAAU,OAAO,CAAC,EAAE;AAAA;AAAA;AAAA,EASlF,IAAI,CAAC,WAAmB,MAAwC;AAAA,IAC9D,MAAM,OAAO,OAAO,KAAK,SAAS,WAAW,KAAK,OAAO;AAAA,IACzD,MAAM,SAAS,OAAO,KAAK,WAAW,WAAW,KAAK,SAAS;AAAA,IAC/D,IAAI,CAAC,UAAU,CAAC,KAAK,OAAO,IAAI,SAAS;AAAA,MAAG,OAAO;AAAA,IACnD,MAAM,SAAS,KAAK,UAAU,OAAO,KAAK,WAAW,YAAY,CAAC,MAAM,QAAQ,KAAK,MAAM,IAAK,KAAK,SAAqC;AAAA,IAC1I,MAAM,MAAM,KAAK,QAAQ,EAAE,SAAS,eAAc,eAAe,EAAE,WAAW,MAAM,QAAQ,kBAAiB,QAAQ,MAAM,EAAE,EAAE,CAAC;AAAA,IAChI,OAAO,IAAI,KAAK,CAAC,OAAO,GAAG,OAAO,MAAM;AAAA;AAAA,EAK1C,SAAS,GAAc;AAAA,IACrB,OAAO,EAAE,SAAS,KAAK,QAAQ,QAAQ,OAAO,YAAY,KAAK,QAAQ,QAAQ,KAAK;AAAA;AAAA,EAItF,OAAO,CAAC,KAAsB;AAAA,IAC5B,MAAM,IAAI,WAAU,KAAK,UAAU,GAAG,GAAG;AAAA,IACzC,IAAI,CAAC,EAAE,WAAW,CAAC,EAAE;AAAA,MAAK,OAAO;AAAA,IACjC,MAAM,OAAO,KAAK,QAAQ,QAAQ,YAAY,CAAC,MAAc,WAAW,QAAQ,KAAK,GAAG,UAAU,UAAU;AAAA,IAC5G,KAAK,EAAE,GAAG;AAAA,IACV,OAAO;AAAA;AAAA,EAUT,UAAU,CAAC,OAA0E;AAAA,IACnF,MAAM,QAAQ,KAAK,OAAO,IAAI,MAAM,SAAS;AAAA,IAC7C,IAAI,QAAQ,MAAM;AAAA,IAClB,OAAO,SAAS,CAAC,MAAM,UAAU,KAAK,KAAK,MAAM,SAAS,GAAG;AAAA,MAAG,QAAQ,MAAM,MAAM,GAAG,MAAM,YAAY,GAAG,CAAC;AAAA,IAC7G,MAAM,UAAU,OAAO,UAAU,KAAK;AAAA,IACtC,IAAI,SAAS,KAAK,YAAY,IAAI,MAAM,SAAS;AAAA,IACjD,IAAI,CAAC;AAAA,MAAQ,KAAK,YAAY,IAAI,MAAM,WAAY,SAAS,IAAI,GAAM;AAAA,IACvE,IAAI,QAAQ,OAAO,IAAI,KAAK;AAAA,IAC5B,IAAI,CAAC,SAAS,MAAM,cAAc;AAAA,MAAS,OAAO,IAAI,OAAQ,QAAQ,EAAE,WAAW,SAAS,KAAK,IAAI,IAAM,CAAE;AAAA,IAC7G,IAAI,MAAM,IAAI,IAAI,MAAM,WAAW;AAAA,MAAG;AAAA,IACtC,MAAM,IAAI,IAAI,MAAM,WAAW;AAAA,IAC/B,KAAK,KAAK,cAAa,gBAAe,MAAM,WAAW,MAAM,SAAS,eAAe,MAAM,aAAa,CAAC;AAAA;AAAA,EAGnG,iBAAiB,CAAC,WAAyB;AAAA,IACjD,KAAK,YAAY,OAAO,SAAS;AAAA;AAAA,EAInC,YAAY,GAA6B;AAAA,IACvC,OAAO,KAAK,QAAQ,QAAQ;AAAA;AAAA,EAI9B,YAAY,CAAC,KAAkC;AAAA,IAC7C,OAAO,cAAa,KAAK,KAAK,QAAQ,QAAQ,KAAK;AAAA;AAEvD;;AC1hBO,MAAM,iBAAqC;AAAA,EACvC,OAAwB,CAAC;AAAA,EAC1B;AAAA,EACA,UAAqB,CAAC;AAAA,EAC9B;AAAA,EAEA,KAAK,CAAC,SAAkB,QAAsB;AAAA,IAC5C,KAAK,YAAY;AAAA,IACjB,OAAO,MAAM;AAAA,IACb,MAAM,SAAS,KAAK;AAAA,IACpB,KAAK,UAAU,CAAC;AAAA,IAChB,OAAO,QAAQ,OAAO;AAAA;AAAA,EAGxB,IAAI,IAAI,UAA2B;AAAA,IACjC,IAAI,CAAC,KAAK;AAAA,MAAW,KAAK,QAAQ,KAAK,GAAG,QAAQ;AAAA,IAClD;AAAA,MAAK,SAAS,QAAQ,KAAK,SAAS;AAAA;AAAA,EAItC,SAAS,CAAC,MAAoB;AAAA,IAC5B,KAAK,KAAK,GAAG,aAAY,IAAI,EAAE,QAAQ;AAAA;AAAA,EAGzC,IAAI,CAAC,SAA8B;AAAA,IACjC,KAAK,KAAK,KAAK,OAAO;AAAA,IACtB,KAAK,SAAS,OAAO;AAAA;AAAA,EAGvB,KAAK,GAAS;AAAA,IACZ,KAAK,YAAY;AAAA;AAErB;AAAA;AAkBS,MAAM,gBAAqC;AAAA,EAO5B;AAAA,EANd;AAAA,EAIA,aAAa;AAAA,EAErB,WAAW,CAAW,SAA+B;AAAA,IAA/B;AAAA;AAAA,EAKtB,KAAK,CAAC,SAAkB,QAAsB;AAAA,IAC5C,KAAK,YAAY,MAAM;AAAA,IACvB,MAAM,MAAM,EAAE,KAAK;AAAA,IACd,KAAK,IAAI,KAAK,SAAS,MAAM;AAAA;AAAA,QAGtB,GAAG,CAAC,KAAa,SAAkB,QAA+B;AAAA,IAC9E,MAAM,IAAI,KAAK,QAAQ,SAAS;AAAA,IAChC,MAAM,OAAO,MAAM,QAAQ,KAAK;AAAA,IAChC,OAAO,KAAK,GAAG;AAAA,MACb,MAAM,aAAa,IAAI;AAAA,MACvB,KAAK,aAAa;AAAA,MAClB,OAAO,YAAY;AAAA,MACnB,IAAI,OAAO,KAAK,QAAQ,eAAe;AAAA,MACvC,IAAI;AAAA,QACF,MAAM,MAAM,MAAM,EAAE,KAAK,QAAQ,KAAK,EAAE,SAAS,EAAE,QAAQ,KAAK,OAAO,MAAM,KAAK,QAAQ,QAAQ,GAAG,QAAQ,WAAW,OAAO,CAAC;AAAA,QAChI,IAAI,CAAC,KAAK;AAAA,UAAG;AAAA,QACb,IAAI,CAAC,IAAI,MAAM,CAAC,IAAI;AAAA,UAAM,MAAM,IAAI,MAAM,QAAQ,IAAI,QAAQ;AAAA,QAC9D,OAAO,MAAM;AAAA,QACb,MAAM,SAAS,IAAI,KAAK,UAAU;AAAA,QAClC,MAAM,OAAO,IAAI;AAAA,QACjB,MAAM,MAAM,KAAK,QAAQ;AAAA,QACzB,UAAS;AAAA,UACP,QAAQ,MAAM,UAAU,MAAM,OAAO,KAAK;AAAA,UAC1C,IAAI,CAAC,KAAK;AAAA,YAAG;AAAA,UACb,IAAI;AAAA,YAAM;AAAA,UACV,IAAI,KAAK,KAAK,OAAO,OAAO,EAAE,QAAQ,KAAK,CAAC,CAAC,EAAE,SAAS,QAAQ,OAAO;AAAA,QACzE;AAAA,QACA,IAAI,IAAI,EAAE,SAAS,QAAQ,OAAO;AAAA,QAClC,OAAO,QAAQ;AAAA,QAEf,MAAM,YAAY,KAAK,QAAQ,cAAc,QAAQ,IAAI,YAAY;AAAA,QACrE,IAAI,CAAC,WAAW;AAAA,UACd,IAAI,KAAK;AAAA,YAAG,KAAK,cAAc;AAAA,UAC/B;AAAA,QACF;AAAA,QACA,IAAI,IAAI,YAAY,aAAa,KAAK,QAAQ,gBAAgB;AAAA,UAAW,OAAO,IAAI;AAAA,QACpF,OAAO,GAAG;AAAA,QACV,IAAI,CAAC,KAAK;AAAA,UAAG;AAAA,QACb,OAAO,SAAS,aAAa,QAAQ,EAAE,UAAU,OAAO,CAAC,CAAC;AAAA;AAAA,MAE5D,IAAI,CAAC,QAAQ,CAAC,KAAK;AAAA,QAAG;AAAA,MACtB,MAAM,IAAI,QAAQ,CAAC,MAAM,WAAW,GAAG,IAAI,CAAC;AAAA,IAC9C;AAAA;AAAA,QAGI,IAAI,CAAC,SAAuC;AAAA,IAChD,MAAM,IAAI,KAAK,QAAQ,SAAS;AAAA,IAChC,MAAM,EAAE,KAAK,QAAQ,WAAW,KAAK,QAAQ,KAAK,EAAE,QAAQ,QAAQ,SAAS,EAAE,gBAAgB,uBAAuB,KAAK,QAAQ,QAAQ,GAAG,MAAM,KAAK,UAAU,OAAO,EAAE,CAAC;AAAA;AAAA,EAG/K,KAAK,GAAS;AAAA,IACZ,KAAK,cAAc;AAAA,IACnB,KAAK,YAAY,MAAM;AAAA;AAE3B;AAAA;AAGO,MAAM,8BAA6B,gBAAgB;AAAA,EAC9C,OAAO,GAAG;AAAA,IAClB,OAAO,IAAI;AAAA;AAAA,EAEH,MAAM,GAAG;AAAA,IACjB,OAAO;AAAA;AAEX;AAAA;AAIO,MAAM,sBAAqB,gBAAgB;AAAA,EACtC,OAAO,GAAG;AAAA,IAClB,OAAO,IAAI;AAAA;AAAA,EAEH,MAAM,GAAG;AAAA,IACjB,OAAO;AAAA;AAEX;AAAA;AAIO,MAAM,oBAAwC;AAAA,EAM/B;AAAA,EALZ;AAAA,EAGA,aAAa;AAAA,EAErB,WAAW,CAAS,SAA6G;AAAA,IAA7G;AAAA;AAAA,EAEpB,KAAK,CAAC,SAAkB,QAAsB;AAAA,IAC5C,MAAM,MAAM,EAAE,KAAK;AAAA,IACnB,MAAM,OAAO,MAAM,QAAQ,KAAK;AAAA,IAChC,MAAM,KAAK,KAAK,QAAQ,aAAa;AAAA,IACrC,OAAO,YAAY;AAAA,IACnB,MAAM,SAAS,IAAI,GAAG,KAAK,QAAQ,KAAK,KAAK,QAAQ,SAAS;AAAA,IAC9D,KAAK,SAAS;AAAA,IACd,OAAO,SAAS,MAAM,KAAK,KAAK,OAAO,MAAM;AAAA,IAC7C,OAAO,YAAY,CAAC,OAAO;AAAA,MACzB,IAAI,KAAK,KAAK,OAAO,GAAG,SAAS;AAAA,QAAU,aAAY,GAAG,IAAI,EAAE,SAAS,QAAQ,OAAO;AAAA;AAAA,IAE1F,OAAO,UAAU,MAAM,KAAK,KAAK,OAAO,SAAS,iBAAiB;AAAA,IAClE,OAAO,UAAU,MAAM;AAAA,MACrB,IAAI,CAAC,KAAK;AAAA,QAAG;AAAA,MACb,OAAO,QAAQ;AAAA,MACf,MAAM,OAAO,KAAK,QAAQ,eAAe;AAAA,MACzC,IAAI;AAAA,QAAM,WAAW,MAAM,KAAK,KAAK,KAAK,MAAM,SAAS,MAAM,GAAG,IAAI;AAAA;AAAA;AAAA,EAI1E,IAAI,CAAC,SAA8B;AAAA,IACjC,IAAI,KAAK,QAAQ,eAAe;AAAA,MAAG,KAAK,OAAO,KAAK,KAAK,UAAU,OAAO,CAAC;AAAA;AAAA,EAG7E,KAAK,GAAS;AAAA,IACZ,KAAK,cAAc;AAAA,IACnB,KAAK,QAAQ,MAAM;AAAA;AAEvB;AAAA;AAkBO,MAAM,cAAkC;AAAA,EAKzB;AAAA,EAJZ,KAAK;AAAA,EACL;AAAA,EACA;AAAA,EAER,WAAW,CAAS,SAA8B;AAAA,IAA9B;AAAA;AAAA,EAEpB,KAAK,CAAC,SAAkB,QAAsB;AAAA,IAC5C,KAAK,YAAY;AAAA,IACjB,OAAO,YAAY;AAAA,KACb,YAAY;AAAA,MAChB,IAAI;AAAA,QACF,MAAM,KAAK,IAAI,cAAc,EAAE,iBAAiB,cAAc,cAAc,CAAC,GAAG,YAAY,EAAE,MAAM,kBAAkB,SAAS,QAAQ,EAAE,CAAC;AAAA,QAC1I,MAAM,SAAS,MAAM,KAAK,IAAI,cAAc,EAAE,MAAM,KAAK,QAAQ,MAAM,WAAW,KAAK,QAAQ,aAAa,CAAC,EAAE,CAAC;AAAA,QAChH,OAAO,MAAM;AAAA,QACb,uBAAsB,MAAM,EAAE,SAAS,QAAQ,OAAO;AAAA,QACtD,OAAO,GAAG;AAAA,QACV,OAAO,SAAS,aAAa,QAAQ,EAAE,UAAU,OAAO,CAAC,CAAC;AAAA;AAAA,OAE3D;AAAA;AAAA,QAGC,IAAI,CAAC,SAAuC;AAAA,IAChD,MAAM,OAAO,eAAc,SAAS,KAAK,QAAQ,UAAU;AAAA,IAC3D,MAAM,SAAS,MAAM,KAAK,IAAI,KAAK,QAAQ,KAAK,MAAM;AAAA,IACtD,IAAI,KAAK;AAAA,MAAW,uBAAsB,MAAM,EAAE,SAAS,QAAQ,KAAK,SAAS;AAAA;AAAA,EAGnF,KAAK,GAAS;AAAA,IACZ,KAAK,YAAY;AAAA;AAAA,QAGL,GAAG,CAAC,QAAgB,QAAmC;AAAA,IACnE,MAAM,IAAI,KAAK,QAAQ,SAAS;AAAA,IAChC,MAAM,KAAK,EAAE,KAAK;AAAA,IAClB,MAAM,MAAM,MAAM,EAAE,KAAK,QAAQ,KAAK;AAAA,MACpC,QAAQ;AAAA,MACR,SAAS,EAAE,gBAAgB,oBAAoB,QAAQ,0CAA2C,KAAK,UAAU,EAAE,kBAAkB,KAAK,QAAQ,IAAI,CAAC,MAAO,KAAK,QAAQ,QAAQ;AAAA,MACnL,MAAM,KAAK,UAAU,EAAE,SAAS,OAAO,IAAI,QAAQ,OAAO,CAAC;AAAA,IAC7D,CAAC;AAAA,IACD,MAAM,UAAU,IAAI,QAAQ,IAAI,gBAAgB;AAAA,IAChD,IAAI;AAAA,MAAS,KAAK,UAAU;AAAA,IAC5B,IAAI,CAAC,IAAI;AAAA,MAAI,MAAM,IAAI,MAAM,YAAY,IAAI,QAAQ;AAAA,IACrD,MAAM,OAAO,IAAI,QAAQ,IAAI,cAAc,KAAK;AAAA,IAChD,MAAM,OAAO,MAAM,IAAI,KAAK;AAAA,IAC5B,MAAM,UAAU,KAAK,SAAS,mBAAmB,KAAK,MAAM;AAAA,MAC1D,MAAM,IAAI,IAAI;AAAA,MACd,OAAO,CAAC,GAAG,EAAE,KAAK,IAAI,EAAE,UAAU,GAAG,EAAE,IAAI,EAAE,QAAQ;AAAA,OACpD,IAAI,CAAC,KAAK,MAAM,IAAI,CAAC;AAAA,IACxB,MAAM,QAAQ,QAAQ,KAAK,CAAC,MAAO,GAAuB,OAAO,EAAE;AAAA,IACnE,IAAI,CAAC;AAAA,MAAO,MAAM,IAAI,MAAM,oBAAoB,QAAQ;AAAA,IACxD,IAAI,MAAM;AAAA,MAAO,MAAM,IAAI,MAAM,QAAQ,MAAM,MAAM,WAAW,SAAS;AAAA,IACzE,OAAO,MAAM;AAAA;AAEjB;",
|
|
30
|
-
"debugId": "
|
|
29
|
+
"mappings": "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",
|
|
30
|
+
"debugId": "D45ACF1E76F349B864756E2164756E21",
|
|
31
31
|
"names": []
|
|
32
32
|
}
|