@forgeax/engine-graphics-extras 0.1.4 → 0.1.7

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/.tsbuildinfo CHANGED
@@ -1 +1 @@
1
- {"fileNames":["../../../node_modules/.pnpm/typescript@6.0.3/node_modules/typescript/lib/lib.es5.d.ts","../../../node_modules/.pnpm/typescript@6.0.3/node_modules/typescript/lib/lib.es2015.d.ts","../../../node_modules/.pnpm/typescript@6.0.3/node_modules/typescript/lib/lib.es2016.d.ts","../../../node_modules/.pnpm/typescript@6.0.3/node_modules/typescript/lib/lib.es2017.d.ts","../../../node_modules/.pnpm/typescript@6.0.3/node_modules/typescript/lib/lib.es2018.d.ts","../../../node_modules/.pnpm/typescript@6.0.3/node_modules/typescript/lib/lib.es2019.d.ts","../../../node_modules/.pnpm/typescript@6.0.3/node_modules/typescript/lib/lib.es2020.d.ts","../../../node_modules/.pnpm/typescript@6.0.3/node_modules/typescript/lib/lib.es2021.d.ts","../../../node_modules/.pnpm/typescript@6.0.3/node_modules/typescript/lib/lib.es2022.d.ts","../../../node_modules/.pnpm/typescript@6.0.3/node_modules/typescript/lib/lib.dom.d.ts","../../../node_modules/.pnpm/typescript@6.0.3/node_modules/typescript/lib/lib.dom.iterable.d.ts","../../../node_modules/.pnpm/typescript@6.0.3/node_modules/typescript/lib/lib.es2015.core.d.ts","../../../node_modules/.pnpm/typescript@6.0.3/node_modules/typescript/lib/lib.es2015.collection.d.ts","../../../node_modules/.pnpm/typescript@6.0.3/node_modules/typescript/lib/lib.es2015.generator.d.ts","../../../node_modules/.pnpm/typescript@6.0.3/node_modules/typescript/lib/lib.es2015.iterable.d.ts","../../../node_modules/.pnpm/typescript@6.0.3/node_modules/typescript/lib/lib.es2015.promise.d.ts","../../../node_modules/.pnpm/typescript@6.0.3/node_modules/typescript/lib/lib.es2015.proxy.d.ts","../../../node_modules/.pnpm/typescript@6.0.3/node_modules/typescript/lib/lib.es2015.reflect.d.ts","../../../node_modules/.pnpm/typescript@6.0.3/node_modules/typescript/lib/lib.es2015.symbol.d.ts","../../../node_modules/.pnpm/typescript@6.0.3/node_modules/typescript/lib/lib.es2015.symbol.wellknown.d.ts","../../../node_modules/.pnpm/typescript@6.0.3/node_modules/typescript/lib/lib.es2016.array.include.d.ts","../../../node_modules/.pnpm/typescript@6.0.3/node_modules/typescript/lib/lib.es2016.intl.d.ts","../../../node_modules/.pnpm/typescript@6.0.3/node_modules/typescript/lib/lib.es2017.arraybuffer.d.ts","../../../node_modules/.pnpm/typescript@6.0.3/node_modules/typescript/lib/lib.es2017.date.d.ts","../../../node_modules/.pnpm/typescript@6.0.3/node_modules/typescript/lib/lib.es2017.object.d.ts","../../../node_modules/.pnpm/typescript@6.0.3/node_modules/typescript/lib/lib.es2017.sharedmemory.d.ts","../../../node_modules/.pnpm/typescript@6.0.3/node_modules/typescript/lib/lib.es2017.string.d.ts","../../../node_modules/.pnpm/typescript@6.0.3/node_modules/typescript/lib/lib.es2017.intl.d.ts","../../../node_modules/.pnpm/typescript@6.0.3/node_modules/typescript/lib/lib.es2017.typedarrays.d.ts","../../../node_modules/.pnpm/typescript@6.0.3/node_modules/typescript/lib/lib.es2018.asyncgenerator.d.ts","../../../node_modules/.pnpm/typescript@6.0.3/node_modules/typescript/lib/lib.es2018.asynciterable.d.ts","../../../node_modules/.pnpm/typescript@6.0.3/node_modules/typescript/lib/lib.es2018.intl.d.ts","../../../node_modules/.pnpm/typescript@6.0.3/node_modules/typescript/lib/lib.es2018.promise.d.ts","../../../node_modules/.pnpm/typescript@6.0.3/node_modules/typescript/lib/lib.es2018.regexp.d.ts","../../../node_modules/.pnpm/typescript@6.0.3/node_modules/typescript/lib/lib.es2019.array.d.ts","../../../node_modules/.pnpm/typescript@6.0.3/node_modules/typescript/lib/lib.es2019.object.d.ts","../../../node_modules/.pnpm/typescript@6.0.3/node_modules/typescript/lib/lib.es2019.string.d.ts","../../../node_modules/.pnpm/typescript@6.0.3/node_modules/typescript/lib/lib.es2019.symbol.d.ts","../../../node_modules/.pnpm/typescript@6.0.3/node_modules/typescript/lib/lib.es2019.intl.d.ts","../../../node_modules/.pnpm/typescript@6.0.3/node_modules/typescript/lib/lib.es2020.bigint.d.ts","../../../node_modules/.pnpm/typescript@6.0.3/node_modules/typescript/lib/lib.es2020.date.d.ts","../../../node_modules/.pnpm/typescript@6.0.3/node_modules/typescript/lib/lib.es2020.promise.d.ts","../../../node_modules/.pnpm/typescript@6.0.3/node_modules/typescript/lib/lib.es2020.sharedmemory.d.ts","../../../node_modules/.pnpm/typescript@6.0.3/node_modules/typescript/lib/lib.es2020.string.d.ts","../../../node_modules/.pnpm/typescript@6.0.3/node_modules/typescript/lib/lib.es2020.symbol.wellknown.d.ts","../../../node_modules/.pnpm/typescript@6.0.3/node_modules/typescript/lib/lib.es2020.intl.d.ts","../../../node_modules/.pnpm/typescript@6.0.3/node_modules/typescript/lib/lib.es2020.number.d.ts","../../../node_modules/.pnpm/typescript@6.0.3/node_modules/typescript/lib/lib.es2021.promise.d.ts","../../../node_modules/.pnpm/typescript@6.0.3/node_modules/typescript/lib/lib.es2021.string.d.ts","../../../node_modules/.pnpm/typescript@6.0.3/node_modules/typescript/lib/lib.es2021.weakref.d.ts","../../../node_modules/.pnpm/typescript@6.0.3/node_modules/typescript/lib/lib.es2021.intl.d.ts","../../../node_modules/.pnpm/typescript@6.0.3/node_modules/typescript/lib/lib.es2022.array.d.ts","../../../node_modules/.pnpm/typescript@6.0.3/node_modules/typescript/lib/lib.es2022.error.d.ts","../../../node_modules/.pnpm/typescript@6.0.3/node_modules/typescript/lib/lib.es2022.intl.d.ts","../../../node_modules/.pnpm/typescript@6.0.3/node_modules/typescript/lib/lib.es2022.object.d.ts","../../../node_modules/.pnpm/typescript@6.0.3/node_modules/typescript/lib/lib.es2022.string.d.ts","../../../node_modules/.pnpm/typescript@6.0.3/node_modules/typescript/lib/lib.es2022.regexp.d.ts","../../../node_modules/.pnpm/typescript@6.0.3/node_modules/typescript/lib/lib.decorators.d.ts","../../../node_modules/.pnpm/typescript@6.0.3/node_modules/typescript/lib/lib.decorators.legacy.d.ts","../../types/dist/animation-target.d.ts","../../types/dist/asset-errors.d.ts","../../types/dist/result.d.ts","../../types/dist/asset-evidence.d.ts","../../types/dist/asset.d.ts","../../types/dist/asset-runtime.d.ts","../../types/dist/material/color-space.d.ts","../../types/dist/material/asset.d.ts","../../types/dist/vfx.d.ts","../../types/dist/handle.d.ts","../../types/dist/material/errors.d.ts","../../types/dist/material/resolve.d.ts","../../types/dist/material/index.d.ts","../../types/dist/asset-producer.d.ts","../../types/dist/catalog.d.ts","../../types/dist/runtime-scope.d.ts","../../types/dist/derive-paramschema.d.ts","../../types/dist/import.d.ts","../../types/dist/index.d.ts","../../geometry/dist/assets/mesh-decoder.d.ts","../../geometry/dist/assets/primitive-mesh.d.ts","../../geometry/dist/box.d.ts","../../geometry/dist/capsule.d.ts","../../geometry/dist/cone.d.ts","../../geometry/dist/cylinder.d.ts","../../math/dist/types.d.ts","../../math/dist/circle2.d.ts","../../math/dist/box2.d.ts","../../math/dist/box3.d.ts","../../math/dist/color.d.ts","../../math/dist/easing.d.ts","../../math/dist/euler.d.ts","../../math/dist/f32-to-f16-bytes.d.ts","../../math/dist/frustum.d.ts","../../math/dist/mat3.d.ts","../../math/dist/mat4.d.ts","../../math/dist/noise.d.ts","../../math/dist/quat.d.ts","../../math/dist/ray.d.ts","../../math/dist/ray2.d.ts","../../math/dist/sphere.d.ts","../../math/dist/vec2.d.ts","../../math/dist/vec3.d.ts","../../math/dist/vec4.d.ts","../../math/dist/index.d.ts","../../geometry/dist/dim2.d.ts","../../geometry/dist/plane.d.ts","../../geometry/dist/sphere.d.ts","../../geometry/dist/tangent.d.ts","../../geometry/dist/torus.d.ts","../../geometry/dist/vertex-attribute-layout.d.ts","../../geometry/dist/index.d.ts","../src/glyph-layout.ts","../../ecs/dist/entity-handle.d.ts","../../ecs/dist/storage/column.d.ts","../../ecs/dist/component-schema.d.ts","../../ecs/dist/component.d.ts","../../ecs/dist/entity.d.ts","../../ecs/dist/errors/query-and-component-errors.d.ts","../../ecs/dist/errors/relationship-errors.d.ts","../../ecs/dist/errors/sprite-and-shared-errors.d.ts","../../ecs/dist/errors/validation-errors.d.ts","../../ecs/dist/world-internal.d.ts","../../ecs/dist/query/query.d.ts","../../ecs/dist/relationship-index.d.ts","../../ecs/dist/shared-ref-store.d.ts","../../ecs/dist/world-change-journal.d.ts","../../ecs/dist/storage/table.d.ts","../../ecs/dist/storage/archetype.d.ts","../../ecs/dist/storage/archetype-graph.d.ts","../../ecs/dist/storage/change-detection.d.ts","../../ecs/dist/time.d.ts","../../ecs/dist/schedule-token.d.ts","../../ecs/dist/world.d.ts","../../ecs/dist/commands.d.ts","../../ecs/dist/schedule.d.ts","../../ecs/dist/execution/shared-kernel.d.ts","../../ecs/dist/errors.d.ts","../../../node_modules/.pnpm/@deepseek-ai+cosmokit@1.8.2/node_modules/@deepseek-ai/cosmokit/lib/types/array.d.ts","../../../node_modules/.pnpm/@deepseek-ai+cosmokit@1.8.2/node_modules/@deepseek-ai/cosmokit/lib/types/types.d.ts","../../../node_modules/.pnpm/@deepseek-ai+cosmokit@1.8.2/node_modules/@deepseek-ai/cosmokit/lib/types/misc.d.ts","../../../node_modules/.pnpm/@deepseek-ai+cosmokit@1.8.2/node_modules/@deepseek-ai/cosmokit/lib/types/string.d.ts","../../../node_modules/.pnpm/@deepseek-ai+cosmokit@1.8.2/node_modules/@deepseek-ai/cosmokit/lib/types/time.d.ts","../../../node_modules/.pnpm/@deepseek-ai+cosmokit@1.8.2/node_modules/@deepseek-ai/cosmokit/lib/types/index.d.ts","../../../node_modules/.pnpm/@standard-schema+spec@1.1.0/node_modules/@standard-schema/spec/dist/index.d.ts","../../../node_modules/.pnpm/@deepseek-ai+cordis@4.0.1_@deepseek-ai+cordis-plugin-loader@1.0.2/node_modules/@deepseek-ai/cordis/lib/types/utils.d.ts","../../../node_modules/.pnpm/@deepseek-ai+cordis@4.0.1_@deepseek-ai+cordis-plugin-loader@1.0.2/node_modules/@deepseek-ai/cordis/lib/types/registry.d.ts","../../../node_modules/.pnpm/@deepseek-ai+cordis@4.0.1_@deepseek-ai+cordis-plugin-loader@1.0.2/node_modules/@deepseek-ai/cordis/lib/types/reflect.d.ts","../../../node_modules/.pnpm/@deepseek-ai+cordis@4.0.1_@deepseek-ai+cordis-plugin-loader@1.0.2/node_modules/@deepseek-ai/cordis/lib/types/fiber.d.ts","../../../node_modules/.pnpm/@deepseek-ai+cordis@4.0.1_@deepseek-ai+cordis-plugin-loader@1.0.2/node_modules/@deepseek-ai/cordis/lib/types/events.d.ts","../../../node_modules/.pnpm/@deepseek-ai+cordis@4.0.1_@deepseek-ai+cordis-plugin-loader@1.0.2/node_modules/@deepseek-ai/cordis/lib/types/logger.d.ts","../../../node_modules/.pnpm/@deepseek-ai+cordis@4.0.1_@deepseek-ai+cordis-plugin-loader@1.0.2/node_modules/@deepseek-ai/cordis/lib/types/context.d.ts","../../../node_modules/.pnpm/@deepseek-ai+cordis@4.0.1_@deepseek-ai+cordis-plugin-loader@1.0.2/node_modules/@deepseek-ai/cordis/lib/types/service.d.ts","../../../node_modules/.pnpm/@deepseek-ai+cordis@4.0.1_@deepseek-ai+cordis-plugin-loader@1.0.2/node_modules/@deepseek-ai/cordis/lib/types/index.d.ts","../../tool-runtime/dist/types.d.ts","../../tool-runtime/dist/errors.d.ts","../../tool-runtime/dist/artifacts.d.ts","../../tool-runtime/dist/capability.d.ts","../../tool-runtime/dist/carrier.d.ts","../../tool-runtime/dist/lease.d.ts","../../tool-runtime/dist/migration.d.ts","../../tool-runtime/dist/runtime.d.ts","../../tool-runtime/dist/snapshot.d.ts","../../tool-runtime/dist/timing.d.ts","../../tool-runtime/dist/transport.d.ts","../../tool-runtime/dist/index.d.ts","../../plugin/dist/capability.d.ts","../../../node_modules/.pnpm/@deepseek-ai+cordis-plugin-loader@1.0.2_patch_hash=6e77a3b82171afbdac249c0e31290cc06386_1a14a168fdebad14b739afc92f305e1c/node_modules/@deepseek-ai/cordis-plugin-loader/lib/types/internal.d.ts","../../../node_modules/.pnpm/@deepseek-ai+cordis-plugin-loader@1.0.2_patch_hash=6e77a3b82171afbdac249c0e31290cc06386_1a14a168fdebad14b739afc92f305e1c/node_modules/@deepseek-ai/cordis-plugin-loader/lib/types/config/tree.d.ts","../../../node_modules/.pnpm/@deepseek-ai+cordis-plugin-loader@1.0.2_patch_hash=6e77a3b82171afbdac249c0e31290cc06386_1a14a168fdebad14b739afc92f305e1c/node_modules/@deepseek-ai/cordis-plugin-loader/lib/types/config/group.d.ts","../../../node_modules/.pnpm/@deepseek-ai+cordis-plugin-loader@1.0.2_patch_hash=6e77a3b82171afbdac249c0e31290cc06386_1a14a168fdebad14b739afc92f305e1c/node_modules/@deepseek-ai/cordis-plugin-loader/lib/types/config/entry.d.ts","../../../node_modules/.pnpm/@deepseek-ai+cordis-plugin-loader@1.0.2_patch_hash=6e77a3b82171afbdac249c0e31290cc06386_1a14a168fdebad14b739afc92f305e1c/node_modules/@deepseek-ai/cordis-plugin-loader/lib/types/config/isolate.d.ts","../../../node_modules/.pnpm/@deepseek-ai+cordis-plugin-loader@1.0.2_patch_hash=6e77a3b82171afbdac249c0e31290cc06386_1a14a168fdebad14b739afc92f305e1c/node_modules/@deepseek-ai/cordis-plugin-loader/lib/types/config/utils.d.ts","../../../node_modules/.pnpm/@deepseek-ai+cordis-plugin-loader@1.0.2_patch_hash=6e77a3b82171afbdac249c0e31290cc06386_1a14a168fdebad14b739afc92f305e1c/node_modules/@deepseek-ai/cordis-plugin-loader/lib/types/index.d.ts","../../plugin/dist/tool-plugin.d.ts","../../plugin/dist/loader.d.ts","../../plugin/dist/index.d.ts","../../ecs/dist/plugin-service.d.ts","../../ecs/dist/index.d.ts","../../rhi/dist/errors.d.ts","../../rhi/dist/queue-writes.d.ts","../../rhi/dist/index.d.ts","../src/glyph-mesh-bake.ts","../src/tile-bits.ts","../src/tileset-decoder.ts","../src/video-element-provider.ts","../src/video-loader.ts","../src/video-player.ts","../src/video-player-system.ts","../src/index.ts","../../../node_modules/.pnpm/@vitest+pretty-format@4.1.5/node_modules/@vitest/pretty-format/dist/index.d.ts","../../../node_modules/.pnpm/@vitest+utils@4.1.5/node_modules/@vitest/utils/dist/display.d.ts","../../../node_modules/.pnpm/@vitest+utils@4.1.5/node_modules/@vitest/utils/dist/types.d.ts","../../../node_modules/.pnpm/@vitest+utils@4.1.5/node_modules/@vitest/utils/dist/helpers.d.ts","../../../node_modules/.pnpm/@vitest+utils@4.1.5/node_modules/@vitest/utils/dist/timers.d.ts","../../../node_modules/.pnpm/@vitest+utils@4.1.5/node_modules/@vitest/utils/dist/index.d.ts","../../../node_modules/.pnpm/@vitest+utils@4.1.5/node_modules/@vitest/utils/dist/types.d-BCElaP-c.d.ts","../../../node_modules/.pnpm/@vitest+utils@4.1.5/node_modules/@vitest/utils/dist/diff.d.ts","../../../node_modules/.pnpm/@vitest+runner@4.1.5/node_modules/@vitest/runner/dist/tasks.d-Bh0IjN67.d.ts","../../../node_modules/.pnpm/@vitest+runner@4.1.5/node_modules/@vitest/runner/dist/index.d.ts","../../../node_modules/.pnpm/vitest@4.1.5_@types+node@20.19.40_@vitest+browser-playwright@4.1.5_@vitest+coverage-v8@_93fb3f30d132ee2e785bbc9f718b2231/node_modules/vitest/dist/chunks/traces.d.D2T_R8rx.d.ts","../../../node_modules/.pnpm/vite@8.0.10_@types+node@20.19.40_esbuild@0.27.7_jiti@1.21.7/node_modules/vite/types/hmrPayload.d.ts","../../../node_modules/.pnpm/vite@8.0.10_@types+node@20.19.40_esbuild@0.27.7_jiti@1.21.7/node_modules/vite/dist/node/chunks/moduleRunnerTransport.d.ts","../../../node_modules/.pnpm/vite@8.0.10_@types+node@20.19.40_esbuild@0.27.7_jiti@1.21.7/node_modules/vite/types/customEvent.d.ts","../../../node_modules/.pnpm/vite@8.0.10_@types+node@20.19.40_esbuild@0.27.7_jiti@1.21.7/node_modules/vite/types/hot.d.ts","../../../node_modules/.pnpm/vite@8.0.10_@types+node@20.19.40_esbuild@0.27.7_jiti@1.21.7/node_modules/vite/dist/node/module-runner.d.ts","../../../node_modules/.pnpm/@vitest+snapshot@4.1.5/node_modules/@vitest/snapshot/dist/environment.d-DOJxxZV9.d.ts","../../../node_modules/.pnpm/@vitest+snapshot@4.1.5/node_modules/@vitest/snapshot/dist/rawSnapshot.d-D_X3-62x.d.ts","../../../node_modules/.pnpm/@vitest+snapshot@4.1.5/node_modules/@vitest/snapshot/dist/index.d.ts","../../../node_modules/.pnpm/vitest@4.1.5_@types+node@20.19.40_@vitest+browser-playwright@4.1.5_@vitest+coverage-v8@_93fb3f30d132ee2e785bbc9f718b2231/node_modules/vitest/dist/chunks/config.d.A1h_Y6Jt.d.ts","../../../node_modules/.pnpm/vitest@4.1.5_@types+node@20.19.40_@vitest+browser-playwright@4.1.5_@vitest+coverage-v8@_93fb3f30d132ee2e785bbc9f718b2231/node_modules/vitest/dist/chunks/environment.d.CrsxCzP1.d.ts","../../../node_modules/.pnpm/vitest@4.1.5_@types+node@20.19.40_@vitest+browser-playwright@4.1.5_@vitest+coverage-v8@_93fb3f30d132ee2e785bbc9f718b2231/node_modules/vitest/dist/chunks/rpc.d.B_8sPU0w.d.ts","../../../node_modules/.pnpm/vitest@4.1.5_@types+node@20.19.40_@vitest+browser-playwright@4.1.5_@vitest+coverage-v8@_93fb3f30d132ee2e785bbc9f718b2231/node_modules/vitest/dist/chunks/worker.d.ZpHpO4yb.d.ts","../../../node_modules/.pnpm/vitest@4.1.5_@types+node@20.19.40_@vitest+browser-playwright@4.1.5_@vitest+coverage-v8@_93fb3f30d132ee2e785bbc9f718b2231/node_modules/vitest/dist/chunks/browser.d.BcoexmFG.d.ts","../../../node_modules/.pnpm/@vitest+spy@4.1.5/node_modules/@vitest/spy/optional-types.d.ts","../../../node_modules/.pnpm/@vitest+spy@4.1.5/node_modules/@vitest/spy/dist/index.d.ts","../../../node_modules/.pnpm/tinyrainbow@3.1.0/node_modules/tinyrainbow/dist/index.d.ts","../../../node_modules/.pnpm/@types+deep-eql@4.0.2/node_modules/@types/deep-eql/index.d.ts","../../../node_modules/.pnpm/assertion-error@2.0.1/node_modules/assertion-error/index.d.ts","../../../node_modules/.pnpm/@types+chai@5.2.3/node_modules/@types/chai/index.d.ts","../../../node_modules/.pnpm/@vitest+expect@4.1.5/node_modules/@vitest/expect/dist/index.d.ts","../../../node_modules/.pnpm/@vitest+runner@4.1.5/node_modules/@vitest/runner/dist/utils.d.ts","../../../node_modules/.pnpm/tinybench@2.9.0/node_modules/tinybench/dist/index.d.ts","../../../node_modules/.pnpm/vitest@4.1.5_@types+node@20.19.40_@vitest+browser-playwright@4.1.5_@vitest+coverage-v8@_93fb3f30d132ee2e785bbc9f718b2231/node_modules/vitest/dist/chunks/benchmark.d.DAaHLpsq.d.ts","../../../node_modules/.pnpm/vitest@4.1.5_@types+node@20.19.40_@vitest+browser-playwright@4.1.5_@vitest+coverage-v8@_93fb3f30d132ee2e785bbc9f718b2231/node_modules/vitest/dist/chunks/global.d.DVsSRdQ5.d.ts","../../../node_modules/.pnpm/vitest@4.1.5_@types+node@20.19.40_@vitest+browser-playwright@4.1.5_@vitest+coverage-v8@_93fb3f30d132ee2e785bbc9f718b2231/node_modules/vitest/optional-runtime-types.d.ts","../../../node_modules/.pnpm/@vitest+mocker@4.1.5_vite@8.0.10_@types+node@20.19.40_esbuild@0.27.7_jiti@1.21.7_/node_modules/@vitest/mocker/dist/types.d-BjI5eAwu.d.ts","../../../node_modules/.pnpm/@vitest+mocker@4.1.5_vite@8.0.10_@types+node@20.19.40_esbuild@0.27.7_jiti@1.21.7_/node_modules/@vitest/mocker/dist/index.d-B41z0AuW.d.ts","../../../node_modules/.pnpm/@vitest+mocker@4.1.5_vite@8.0.10_@types+node@20.19.40_esbuild@0.27.7_jiti@1.21.7_/node_modules/@vitest/mocker/dist/index.d.ts","../../../node_modules/.pnpm/vitest@4.1.5_@types+node@20.19.40_@vitest+browser-playwright@4.1.5_@vitest+coverage-v8@_93fb3f30d132ee2e785bbc9f718b2231/node_modules/vitest/dist/chunks/suite.d.udJtyAgw.d.ts","../../../node_modules/.pnpm/vitest@4.1.5_@types+node@20.19.40_@vitest+browser-playwright@4.1.5_@vitest+coverage-v8@_93fb3f30d132ee2e785bbc9f718b2231/node_modules/vitest/dist/chunks/evaluatedModules.d.BxJ5omdx.d.ts","../../../node_modules/.pnpm/vitest@4.1.5_@types+node@20.19.40_@vitest+browser-playwright@4.1.5_@vitest+coverage-v8@_93fb3f30d132ee2e785bbc9f718b2231/node_modules/vitest/dist/runners.d.ts","../../../node_modules/.pnpm/expect-type@1.3.0/node_modules/expect-type/dist/utils.d.ts","../../../node_modules/.pnpm/expect-type@1.3.0/node_modules/expect-type/dist/overloads.d.ts","../../../node_modules/.pnpm/expect-type@1.3.0/node_modules/expect-type/dist/branding.d.ts","../../../node_modules/.pnpm/expect-type@1.3.0/node_modules/expect-type/dist/messages.d.ts","../../../node_modules/.pnpm/expect-type@1.3.0/node_modules/expect-type/dist/index.d.ts","../../../node_modules/.pnpm/vitest@4.1.5_@types+node@20.19.40_@vitest+browser-playwright@4.1.5_@vitest+coverage-v8@_93fb3f30d132ee2e785bbc9f718b2231/node_modules/vitest/dist/index.d.ts","../src/__tests__/tile-bits.test.ts","../src/__tests__/video-capability-probe.unit.test.ts","../src/__tests__/video-loader.unit.test.ts","../src/__tests__/video-player-component.unit.test.ts","../src/__tests__/video-player-multi-entity.unit.test.ts","../../../node_modules/.pnpm/@types+node@20.19.40/node_modules/@types/node/compatibility/disposable.d.ts","../../../node_modules/.pnpm/@types+node@20.19.40/node_modules/@types/node/compatibility/indexable.d.ts","../../../node_modules/.pnpm/@types+node@20.19.40/node_modules/@types/node/compatibility/iterators.d.ts","../../../node_modules/.pnpm/@types+node@20.19.40/node_modules/@types/node/compatibility/index.d.ts","../../../node_modules/.pnpm/@types+node@20.19.40/node_modules/@types/node/globals.typedarray.d.ts","../../../node_modules/.pnpm/@types+node@20.19.40/node_modules/@types/node/buffer.buffer.d.ts","../../../node_modules/.pnpm/@types+node@20.19.40/node_modules/@types/node/globals.d.ts","../../../node_modules/.pnpm/@types+node@20.19.40/node_modules/@types/node/web-globals/abortcontroller.d.ts","../../../node_modules/.pnpm/@types+node@20.19.40/node_modules/@types/node/web-globals/domexception.d.ts","../../../node_modules/.pnpm/@types+node@20.19.40/node_modules/@types/node/web-globals/events.d.ts","../../../node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/header.d.ts","../../../node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/readable.d.ts","../../../node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/file.d.ts","../../../node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/fetch.d.ts","../../../node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/formdata.d.ts","../../../node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/connector.d.ts","../../../node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/client.d.ts","../../../node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/errors.d.ts","../../../node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/dispatcher.d.ts","../../../node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/global-dispatcher.d.ts","../../../node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/global-origin.d.ts","../../../node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/pool-stats.d.ts","../../../node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/pool.d.ts","../../../node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/handlers.d.ts","../../../node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/balanced-pool.d.ts","../../../node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/agent.d.ts","../../../node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/mock-interceptor.d.ts","../../../node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/mock-agent.d.ts","../../../node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/mock-client.d.ts","../../../node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/mock-pool.d.ts","../../../node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/mock-errors.d.ts","../../../node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/proxy-agent.d.ts","../../../node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/env-http-proxy-agent.d.ts","../../../node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/retry-handler.d.ts","../../../node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/retry-agent.d.ts","../../../node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/api.d.ts","../../../node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/interceptors.d.ts","../../../node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/util.d.ts","../../../node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/cookies.d.ts","../../../node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/patch.d.ts","../../../node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/websocket.d.ts","../../../node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/eventsource.d.ts","../../../node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/filereader.d.ts","../../../node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/diagnostics-channel.d.ts","../../../node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/content-type.d.ts","../../../node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/cache.d.ts","../../../node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/index.d.ts","../../../node_modules/.pnpm/@types+node@20.19.40/node_modules/@types/node/web-globals/fetch.d.ts","../../../node_modules/.pnpm/@types+node@20.19.40/node_modules/@types/node/assert.d.ts","../../../node_modules/.pnpm/@types+node@20.19.40/node_modules/@types/node/assert/strict.d.ts","../../../node_modules/.pnpm/@types+node@20.19.40/node_modules/@types/node/async_hooks.d.ts","../../../node_modules/.pnpm/@types+node@20.19.40/node_modules/@types/node/buffer.d.ts","../../../node_modules/.pnpm/@types+node@20.19.40/node_modules/@types/node/child_process.d.ts","../../../node_modules/.pnpm/@types+node@20.19.40/node_modules/@types/node/cluster.d.ts","../../../node_modules/.pnpm/@types+node@20.19.40/node_modules/@types/node/console.d.ts","../../../node_modules/.pnpm/@types+node@20.19.40/node_modules/@types/node/constants.d.ts","../../../node_modules/.pnpm/@types+node@20.19.40/node_modules/@types/node/crypto.d.ts","../../../node_modules/.pnpm/@types+node@20.19.40/node_modules/@types/node/dgram.d.ts","../../../node_modules/.pnpm/@types+node@20.19.40/node_modules/@types/node/diagnostics_channel.d.ts","../../../node_modules/.pnpm/@types+node@20.19.40/node_modules/@types/node/dns.d.ts","../../../node_modules/.pnpm/@types+node@20.19.40/node_modules/@types/node/dns/promises.d.ts","../../../node_modules/.pnpm/@types+node@20.19.40/node_modules/@types/node/domain.d.ts","../../../node_modules/.pnpm/@types+node@20.19.40/node_modules/@types/node/events.d.ts","../../../node_modules/.pnpm/@types+node@20.19.40/node_modules/@types/node/fs.d.ts","../../../node_modules/.pnpm/@types+node@20.19.40/node_modules/@types/node/fs/promises.d.ts","../../../node_modules/.pnpm/@types+node@20.19.40/node_modules/@types/node/http.d.ts","../../../node_modules/.pnpm/@types+node@20.19.40/node_modules/@types/node/http2.d.ts","../../../node_modules/.pnpm/@types+node@20.19.40/node_modules/@types/node/https.d.ts","../../../node_modules/.pnpm/@types+node@20.19.40/node_modules/@types/node/inspector.generated.d.ts","../../../node_modules/.pnpm/@types+node@20.19.40/node_modules/@types/node/module.d.ts","../../../node_modules/.pnpm/@types+node@20.19.40/node_modules/@types/node/net.d.ts","../../../node_modules/.pnpm/@types+node@20.19.40/node_modules/@types/node/os.d.ts","../../../node_modules/.pnpm/@types+node@20.19.40/node_modules/@types/node/path.d.ts","../../../node_modules/.pnpm/@types+node@20.19.40/node_modules/@types/node/perf_hooks.d.ts","../../../node_modules/.pnpm/@types+node@20.19.40/node_modules/@types/node/process.d.ts","../../../node_modules/.pnpm/@types+node@20.19.40/node_modules/@types/node/punycode.d.ts","../../../node_modules/.pnpm/@types+node@20.19.40/node_modules/@types/node/querystring.d.ts","../../../node_modules/.pnpm/@types+node@20.19.40/node_modules/@types/node/readline.d.ts","../../../node_modules/.pnpm/@types+node@20.19.40/node_modules/@types/node/readline/promises.d.ts","../../../node_modules/.pnpm/@types+node@20.19.40/node_modules/@types/node/repl.d.ts","../../../node_modules/.pnpm/@types+node@20.19.40/node_modules/@types/node/sea.d.ts","../../../node_modules/.pnpm/@types+node@20.19.40/node_modules/@types/node/stream.d.ts","../../../node_modules/.pnpm/@types+node@20.19.40/node_modules/@types/node/stream/promises.d.ts","../../../node_modules/.pnpm/@types+node@20.19.40/node_modules/@types/node/stream/consumers.d.ts","../../../node_modules/.pnpm/@types+node@20.19.40/node_modules/@types/node/stream/web.d.ts","../../../node_modules/.pnpm/@types+node@20.19.40/node_modules/@types/node/string_decoder.d.ts","../../../node_modules/.pnpm/@types+node@20.19.40/node_modules/@types/node/test.d.ts","../../../node_modules/.pnpm/@types+node@20.19.40/node_modules/@types/node/timers.d.ts","../../../node_modules/.pnpm/@types+node@20.19.40/node_modules/@types/node/timers/promises.d.ts","../../../node_modules/.pnpm/@types+node@20.19.40/node_modules/@types/node/tls.d.ts","../../../node_modules/.pnpm/@types+node@20.19.40/node_modules/@types/node/trace_events.d.ts","../../../node_modules/.pnpm/@types+node@20.19.40/node_modules/@types/node/tty.d.ts","../../../node_modules/.pnpm/@types+node@20.19.40/node_modules/@types/node/url.d.ts","../../../node_modules/.pnpm/@types+node@20.19.40/node_modules/@types/node/util.d.ts","../../../node_modules/.pnpm/@types+node@20.19.40/node_modules/@types/node/v8.d.ts","../../../node_modules/.pnpm/@types+node@20.19.40/node_modules/@types/node/vm.d.ts","../../../node_modules/.pnpm/@types+node@20.19.40/node_modules/@types/node/wasi.d.ts","../../../node_modules/.pnpm/@types+node@20.19.40/node_modules/@types/node/worker_threads.d.ts","../../../node_modules/.pnpm/@types+node@20.19.40/node_modules/@types/node/zlib.d.ts","../../../node_modules/.pnpm/@types+node@20.19.40/node_modules/@types/node/index.d.ts"],"fileIdsList":[[153,168,169,173,176,248,294],[153,168,170,171,173,176,248,294],[143,153,170,171,173,176,248,294],[143,153,169,170,171,173,176,248,294],[248,294],[143,153,167,168,169,170,171,172,173,176,248,294],[143,248,294,312],[143,145,146,147,148,149,150,248,294],[143,146,147,148,149,150,151,248,294],[143,144,145,146,147,148,149,150,151,248,294],[145,146,147,148,149,150,151,152,248,294],[145,146,147,148,149,150,151,248,294],[153,173,176,248,294],[138,139,140,141,142,248,294],[217,218,248,294],[248,291,294],[248,293,294],[294],[248,294,299,327],[248,294,295,300,305,313,324,335],[248,294,295,296,305,313],[243,244,245,248,294],[248,294,297,336],[248,294,298,299,306,314],[248,294,299,324,332],[248,294,300,302,305,313],[248,293,294,301],[248,294,302,303],[248,294,304,305],[248,293,294,305],[248,294,305,306,307,324,335],[248,294,305,306,307,320,324,327],[248,294,302,305,308,313,324,335],[248,294,305,306,308,309,313,324,332,335],[248,294,308,310,324,332,335],[246,247,248,249,250,251,252,290,291,292,293,294,295,296,297,298,299,300,301,302,303,304,305,306,307,308,309,310,311,312,313,314,315,316,317,318,319,320,321,322,323,324,325,326,327,328,329,330,331,332,333,334,335,336,337,338,339,340,341],[248,294,305,311],[248,294,312,335,340],[248,294,302,305,313,324],[248,294,314],[248,294,315],[248,293,294,316],[248,291,292,293,294,295,296,297,298,299,300,301,302,303,304,305,306,307,308,309,310,311,312,313,314,315,316,317,318,319,320,321,322,323,324,325,326,327,328,329,330,331,332,333,334,335,336,337,338,339,340,341],[248,294,318],[248,294,319],[248,294,305,320,321],[248,294,320,322,336,338],[248,294,305,324,325,327],[248,294,326,327],[248,294,324,325],[248,294,327],[248,294,328],[248,291,294,324,329],[248,294,305,330,331],[248,294,330,331],[248,294,299,313,324,332],[248,294,333],[248,294,313,334],[248,294,308,319,335],[248,294,299,336],[248,294,324,337],[248,294,312,338],[248,294,339],[248,289,294],[248,289,294,305,307,316,324,327,335,338,340],[248,294,324,341],[144,191,197,215,216,219,248,294],[226,248,294],[226,227,248,294],[195,197,198,248,294],[195,197,248,294],[195,248,294],[190,195,206,207,248,294],[190,195,206,248,294],[214,248,294],[190,196,248,294],[190,248,294],[192,248,294],[190,191,192,193,194,248,294],[232,233,248,294],[232,233,234,235,248,294],[232,234,248,294],[232,248,294],[248,261,265,294,335],[248,261,294,324,335],[248,256,294],[248,258,261,294,332,335],[248,294,313,332],[248,294,342],[248,256,294,342],[248,258,261,294,313,335],[248,253,254,257,260,294,305,324,335],[248,261,268,294],[248,253,259,294],[248,261,282,283,294],[248,257,261,294,327,335,342],[248,282,294,342],[248,255,256,294,342],[248,261,294],[248,255,256,257,258,259,260,261,262,263,265,266,267,268,269,270,271,272,273,274,275,276,277,278,279,280,281,283,284,285,286,287,288,294],[248,261,276,294],[248,261,268,269,294],[248,259,261,269,270,294],[248,260,294],[248,253,256,261,294],[248,261,265,269,270,294],[248,265,294],[248,259,261,264,294,335],[248,253,258,261,268,294],[248,294,324],[248,256,261,282,294,340,342],[201,248,294],[201,202,203,204,248,294],[203,248,294],[199,221,222,224,248,294],[199,200,212,224,248,294],[190,197,199,200,208,224,248,294],[205,248,294],[190,199,200,208,220,223,224,248,294],[199,200,205,208,224,248,294],[199,221,222,223,224,248,294],[199,205,209,210,211,224,248,294],[190,195,197,199,200,205,208,209,210,211,212,213,215,220,221,222,223,224,225,228,229,230,231,236,248,294],[190,197,199,200,208,209,221,222,223,224,229,248,294],[78,113,116,122,133,137,248,294],[116,248,294],[78,113,114,115,248,294],[118,119,120,121,136,248,294],[123,132,135,248,294],[113,115,116,117,123,124,125,131,132,133,134,135,137,177,248,294],[133,176,177,248,294],[78,113,116,122,137,248,294],[113,116,248,294],[78,116,123,132,133,134,137,248,294],[78,137,248,294],[116,127,128,130,248,294],[116,127,248,294],[113,116,126,127,129,248,294],[113,114,116,130,248,294],[113,248,294],[78,113,116,122,123,124,125,130,131,132,135,136,137,248,294],[78,248,294],[78,104,248,294],[78,79,80,81,82,83,84,105,106,107,108,109,110,248,294],[183,237,248,294],[186,188,237,248,294,306,335],[186,237,248,294],[78,178,187,237,248,294],[78,111,248,294],[78,111,112,178,181,248,294],[112,182,183,184,185,186,187,188,248,294],[78,178,248,294],[178,248,294],[85,86,248,294],[85,248,294],[85,87,248,294],[85,88,248,294],[85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,248,294],[85,86,87,248,294],[153,165,173,176,248,294],[153,166,173,174,175,176,248,294],[153,165,166,173,174,176,248,294],[78,179,180,248,294],[154,155,248,294],[154,248,294],[154,155,156,157,158,159,160,161,162,163,164,248,294],[154,158,248,294],[61,62,64,248,294],[61,62,64,78,248,294],[63,248,294],[62,64,73,248,294],[61,73,74,75,78,248,294],[60,61,62,64,65,67,68,69,72,73,74,75,76,77,248,294],[65,66,78,248,294],[67,248,294],[66,67,70,71,248,294],[62,67,70,248,294],[73,74,248,294]],"fileInfos":[{"version":"bcd24271a113971ba9eb71ff8cb01bc6b0f872a85c23fdbe5d93065b375933cd","affectsGlobalScope":true,"impliedFormat":1},{"version":"3f88bedbeb09c6f5a6645cb24c7c55f1aa22d19ae96c8e6959cbd8b85a707bc6","impliedFormat":1},{"version":"7fe93b39b810eadd916be8db880dd7f0f7012a5cc6ffb62de8f62a2117fa6f1f","impliedFormat":1},{"version":"bb0074cc08b84a2374af33d8bf044b80851ccc9e719a5e202eacf40db2c31600","impliedFormat":1},{"version":"1a7daebe4f45fb03d9ec53d60008fbf9ac45a697fdc89e4ce218bc94b94f94d6","impliedFormat":1},{"version":"f94b133a3cb14a288803be545ac2683e0d0ff6661bcd37e31aaaec54fc382aed","impliedFormat":1},{"version":"f59d0650799f8782fd74cf73c19223730c6d1b9198671b1c5b3a38e1188b5953","impliedFormat":1},{"version":"8a15b4607d9a499e2dbeed9ec0d3c0d7372c850b2d5f1fb259e8f6d41d468a84","impliedFormat":1},{"version":"26e0fe14baee4e127f4365d1ae0b276f400562e45e19e35fd2d4c296684715e6","impliedFormat":1},{"version":"d6b1eba8496bdd0eed6fc8a685768fe01b2da4a0388b5fe7df558290bffcf32f","affectsGlobalScope":true,"impliedFormat":1},{"version":"7f57fc4404ff020bc45b9c620aff2b40f700b95fe31164024c453a5e3c163c54","impliedFormat":1},{"version":"eadcffda2aa84802c73938e589b9e58248d74c59cb7fcbca6474e3435ac15504","affectsGlobalScope":true,"impliedFormat":1},{"version":"105ba8ff7ba746404fe1a2e189d1d3d2e0eb29a08c18dded791af02f29fb4711","affectsGlobalScope":true,"impliedFormat":1},{"version":"00343ca5b2e3d48fa5df1db6e32ea2a59afab09590274a6cccb1dbae82e60c7c","affectsGlobalScope":true,"impliedFormat":1},{"version":"ebd9f816d4002697cb2864bea1f0b70a103124e18a8cd9645eeccc09bdf80ab4","affectsGlobalScope":true,"impliedFormat":1},{"version":"2c1afac30a01772cd2a9a298a7ce7706b5892e447bb46bdbeef720f7b5da77ad","affectsGlobalScope":true,"impliedFormat":1},{"version":"7b0225f483e4fa685625ebe43dd584bb7973bbd84e66a6ba7bbe175ee1048b4f","affectsGlobalScope":true,"impliedFormat":1},{"version":"c0a4b8ac6ce74679c1da2b3795296f5896e31c38e888469a8e0f99dc3305de60","affectsGlobalScope":true,"impliedFormat":1},{"version":"3084a7b5f569088e0146533a00830e206565de65cae2239509168b11434cd84f","affectsGlobalScope":true,"impliedFormat":1},{"version":"c5079c53f0f141a0698faa903e76cb41cd664e3efb01cc17a5c46ec2eb0bef42","affectsGlobalScope":true,"impliedFormat":1},{"version":"32cafbc484dea6b0ab62cf8473182bbcb23020d70845b406f80b7526f38ae862","affectsGlobalScope":true,"impliedFormat":1},{"version":"fca4cdcb6d6c5ef18a869003d02c9f0fd95df8cfaf6eb431cd3376bc034cad36","affectsGlobalScope":true,"impliedFormat":1},{"version":"b93ec88115de9a9dc1b602291b85baf825c85666bf25985cc5f698073892b467","affectsGlobalScope":true,"impliedFormat":1},{"version":"f5c06dcc3fe849fcb297c247865a161f995cc29de7aa823afdd75aaaddc1419b","affectsGlobalScope":true,"impliedFormat":1},{"version":"b77e16112127a4b169ef0b8c3a4d730edf459c5f25fe52d5e436a6919206c4d7","affectsGlobalScope":true,"impliedFormat":1},{"version":"fbffd9337146eff822c7c00acbb78b01ea7ea23987f6c961eba689349e744f8c","affectsGlobalScope":true,"impliedFormat":1},{"version":"a995c0e49b721312f74fdfb89e4ba29bd9824c770bbb4021d74d2bf560e4c6bd","affectsGlobalScope":true,"impliedFormat":1},{"version":"c7b3542146734342e440a84b213384bfa188835537ddbda50d30766f0593aff9","affectsGlobalScope":true,"impliedFormat":1},{"version":"ce6180fa19b1cccd07ee7f7dbb9a367ac19c0ed160573e4686425060b6df7f57","affectsGlobalScope":true,"impliedFormat":1},{"version":"3f02e2476bccb9dbe21280d6090f0df17d2f66b74711489415a8aa4df73c9675","affectsGlobalScope":true,"impliedFormat":1},{"version":"45e3ab34c1c013c8ab2dc1ba4c80c780744b13b5676800ae2e3be27ae862c40c","affectsGlobalScope":true,"impliedFormat":1},{"version":"805c86f6cca8d7702a62a844856dbaa2a3fd2abef0536e65d48732441dde5b5b","affectsGlobalScope":true,"impliedFormat":1},{"version":"e42e397f1a5a77994f0185fd1466520691456c772d06bf843e5084ceb879a0ad","affectsGlobalScope":true,"impliedFormat":1},{"version":"f4c2b41f90c95b1c532ecc874bd3c111865793b23aebcc1c3cbbabcd5d76ffb0","affectsGlobalScope":true,"impliedFormat":1},{"version":"ab26191cfad5b66afa11b8bf935ef1cd88fabfcb28d30b2dfa6fad877d050332","affectsGlobalScope":true,"impliedFormat":1},{"version":"2088bc26531e38fb05eedac2951480db5309f6be3fa4a08d2221abb0f5b4200d","affectsGlobalScope":true,"impliedFormat":1},{"version":"cb9d366c425fea79716a8fb3af0d78e6b22ebbab3bd64d25063b42dc9f531c1e","affectsGlobalScope":true,"impliedFormat":1},{"version":"500934a8089c26d57ebdb688fc9757389bb6207a3c8f0674d68efa900d2abb34","affectsGlobalScope":true,"impliedFormat":1},{"version":"689da16f46e647cef0d64b0def88910e818a5877ca5379ede156ca3afb780ac3","affectsGlobalScope":true,"impliedFormat":1},{"version":"bc21cc8b6fee4f4c2440d08035b7ea3c06b3511314c8bab6bef7a92de58a2593","affectsGlobalScope":true,"impliedFormat":1},{"version":"7ca53d13d2957003abb47922a71866ba7cb2068f8d154877c596d63c359fed25","affectsGlobalScope":true,"impliedFormat":1},{"version":"54725f8c4df3d900cb4dac84b64689ce29548da0b4e9b7c2de61d41c79293611","affectsGlobalScope":true,"impliedFormat":1},{"version":"e5594bc3076ac29e6c1ebda77939bc4c8833de72f654b6e376862c0473199323","affectsGlobalScope":true,"impliedFormat":1},{"version":"2f3eb332c2d73e729f3364fcc0c2b375e72a121e8157d25a82d67a138c83a95c","affectsGlobalScope":true,"impliedFormat":1},{"version":"6f4427f9642ce8d500970e4e69d1397f64072ab73b97e476b4002a646ac743b1","affectsGlobalScope":true,"impliedFormat":1},{"version":"48915f327cd1dea4d7bd358d9dc7732f58f9e1626a29cc0c05c8c692419d9bb7","affectsGlobalScope":true,"impliedFormat":1},{"version":"b7bf9377723203b5a6a4b920164df22d56a43f593269ba6ae1fdc97774b68855","affectsGlobalScope":true,"impliedFormat":1},{"version":"db9709688f82c9e5f65a119c64d835f906efe5f559d08b11642d56eb85b79357","affectsGlobalScope":true,"impliedFormat":1},{"version":"4b25b8c874acd1a4cf8444c3617e037d444d19080ac9f634b405583fd10ce1f7","affectsGlobalScope":true,"impliedFormat":1},{"version":"37be57d7c90cf1f8112ee2636a068d8fd181289f82b744160ec56a7dc158a9f5","affectsGlobalScope":true,"impliedFormat":1},{"version":"a917a49ac94cd26b754ab84e113369a75d1a47a710661d7cd25e961cc797065f","affectsGlobalScope":true,"impliedFormat":1},{"version":"6d3261badeb7843d157ef3e6f5d1427d0eeb0af0cf9df84a62cfd29fd47ac86e","affectsGlobalScope":true,"impliedFormat":1},{"version":"195daca651dde22f2167ac0d0a05e215308119a3100f5e6268e8317d05a92526","affectsGlobalScope":true,"impliedFormat":1},{"version":"8b11e4285cd2bb164a4dc09248bdec69e9842517db4ca47c1ba913011e44ff2f","affectsGlobalScope":true,"impliedFormat":1},{"version":"0508571a52475e245b02bc50fa1394065a0a3d05277fbf5120c3784b85651799","affectsGlobalScope":true,"impliedFormat":1},{"version":"8f9af488f510c3015af3cc8c267a9e9d96c4dd38a1fdff0e11dc5a544711415b","affectsGlobalScope":true,"impliedFormat":1},{"version":"fc611fea8d30ea72c6bbfb599c9b4d393ce22e2f5bfef2172534781e7d138104","affectsGlobalScope":true,"impliedFormat":1},{"version":"1ce14b81c5cc821994aa8ec1d42b220dd41b27fcc06373bce3958af7421b77d4","affectsGlobalScope":true,"impliedFormat":1},{"version":"b3a048b3e9302ef9a34ef4ebb9aecfb28b66abb3bce577206a79fee559c230da","affectsGlobalScope":true,"impliedFormat":1},"89fe170d9a59f81cd9a9d95de3278f108ff91491810b2529cc0ffb502a57b6c0","0b4928041c807c01b33b1fa028236df635c52f7acff5a40f2c2d0d677b53428b","5ad2e5b8b17893d0eb1f11a1b6e8c03b17344be03a6a72a624cd38ab05fe4d5c","6a1e553079e654a1771463e9eeb98ea4f7bb4b6417a5237d4fdf9b546d49647f","7f11be86b9ac5c2cd5127cd9d40ccc7694c58868a3157692a153d452fc171525","8b52dd8be86f44f871db89a6c1f77f7585688d53141ff55b6c5fac3eb67b1241","6e3488ee1183ea915eb43f08aebc5f75e30be25aef1f678d1965324bdd7506e1","59ca967d9cb92088499ce15a1c389e55a39bb2cb905844439565d9f7d8b1ed5d","a318d8734523d9e750681e7b8e685ef817d4049c5612451f4e849da8b2b572a9","99440a4820b8621d65822e29b01afd8a5938ea94ebea634fdd31d32d3e735629","080e7748d9754ccaea8debbc933552c7976c1ef588f9642a6f07e5a4d139d43b","51342c51a9090c0bc8bae60c5ec1a0f46d6d44db84392f12a8cd46e6d8a9f617","ae777307a0baeb9b5d7ba18e6a029a54eb0b612b1491591dcedb020cc8d36f97","d7ba738e316b7baed10ca49cc156b57b8c973b747bec6612e62a925e9f7f33a4","1d5292578fcf0329a43ef19fe2481d7d1cde75e75610019a7897c70dcfff0b31","459b3765e622008ed590474ae6b61ab55107a7b9529a28d05087a6fef51d7248","ce15f7fa66eb0ff73351db6a626a397eb441aa3572707c2a156897c646b2911d","c68fbed241cfa01237d9d15cff9bab1ebdd06f2fe337f536e218c1c39aa5a841","a6fcec9d447e7ea2763d1e5f9cf32a20e7f7cff2fe0da4c48639db063b9cc531","4372dbf48082f6bea4883adefacd07184e396cf14a887077754c76b6d170832b","73dcf07a05ea1d7c2f0a60af30d86707faca44c41f2529c4b45612b91ffc7687","804b00d16aa40f4ee5603e3f30add96f6d3d4e06c841006be8832b148f40e066","03d7eafecd31716c9b3072d96bc167c23493beb06810dc9913ef91c41322491f","957dcae78ebc64252ca038f73f90908dd1ce74c18f5e6a1c6141daa10ea7514b","7cedcad44a368bec24e281e8ec7924ddf3eeabca9076f88cd1f7effa2119ba2f","728cc7c21f319d38b1dafdbdf1258350b675055a3fb61ae1a7c34562c58b8557","d474818de812636654d86a3f0f6f3b8f6ae725b5487f344a5d3a32decd68311f","87cb945db71dbb2cceac65375b84cc0c55bfe70a749b11e55b59a40df53503f6","dcadfb7e3411bb19e717855d891658f3d71c065248d25f09e027e4a6cdfa0e9f","1c3f1fae8db7ce0bb537e509ceb0243892e68a3b6e66ab1245c15932be41d037","b3b63929f7475d02520bde84913450bf633e86f6a5d51fcc13e95376ec3483a6","11fbb66f203aa1855d34dbb3d835879a75924cae9f08eb16997318fed41f9078","56d65795b8f53c0f68d66369fc42fb8f79f669f868fc8eda2f634297c47b156f","a35dc82e5a7955568d2883e308e7a3e138961dd3b40956b22fccd415dd307e4a","a10051e664b2713d31f07db5fdd71d0854732e57429cbfa00ebb329e89a27981","3cb9e3f85ef9f989394133fe2e4ef4f39da5578fe583124fc0cbb00474b471e8","8bbc25b37d24570dffba7209cb9e427a63c7eeed18412af5e57c450a37d6c059","27d3d1f171d4b7b86bdf1c352f22319c0915b17cfd919deb070bef13510a33a2","40a12a4c54a6564f2c1547a10bcafc9210fce809dc57d2a7815c918972f48895","a8f81f646b1bd12b6b0758d1f97cc6d26646d5ac72d92362cb3b340271589e8f","05d6d9fbf9c8fbb9fa36b4e0ad91292e57f6a9233dc407875d0fb06cdfd59bda","d08b909fffadfa1dece31aa587aca1c34782cafd9294c5c8b66cbab2aa897719","a49e93ed1861aa2493d363f26ee826ab71c7105b20c85cf8bd26bbb4e0b32cd6","9aca2738b7400d1d8c2d009ec6cbbaf3204e6413219edc962cea5bb6ef50db10","f23fc64dfc9c3e5b718eca7f1fdb0640d5c1f5c8993a599e66ce73ab33502036","3b0b4bf9fc2e55841f05e4848fb8648c3bec8fb093ef14a03cf45fd21bbe62ba","a5195ccfbf5fa6571979aefc0b074d610834cc243ed009e92667fec6dd7cee14","982b6d38664394a62e02cfca6f852d01797b330ac68a75c93bdd23fd9ebea1a4","d3b48b0f38857e31bc7b8ebad9d55dfb530175890bb84e1ee5625264f15ecc0a","74e0442194fad61b84f8320b7a5aac602bde3cf41d8685a322af0af86f467f12","9665442bd70f0ee75c5e68400bb312e62a210e24a24e5fcedc15095456c51033","b2ab882884fbbac86759aef507cc42bf39d415aa221398cf7100d36b9b69c570",{"version":"628af60512a1a310cc55d3325966d74b54289e4bc29e7ee382d48335d649030a","signature":"958f381419846f2798b8764278d852f1f4fe1336d369c40795c9824fb14bac36"},"b866405af1564f0690ea323f070c87509bfeb2ba8afa7c49c255dbe13c176bf8","ce648e4449eb59292b997226148647ce9ca22bc9ff9062959f5f1fe6bfe06cd8","ce3d7045ddbf0f8c968829a4e32d5064af66cba795f8c8490afec9eb677a4f45","6192bdb56ca09fde8176590331c36f3eec2fd5fb3ad7dd7401727efb2398d7fb","0810b73622b33b91f89f5d0f8b1fc0b92841e6b751a84d2c005508c563748d16","9a1b69540b9533e337c81d470724ebb054a15b994a11b759a969367b28e81368","854cbb22c44beb0fe44a46f5428521a27e8b9fb645e6ce803a5622ff44ec74ce","dd6776bc5480997847e4d3c495951de5f0401667e1880b6176f57584c49aa401","5173f8a542f4174c378adfa9a98f92a38b07755e40a14ba139cb46f6986d64d6","2278fcff8ca72dc791b3907ac363bd7370ec04e38653827c14c5dbd3fc99e335","ee7cd212dd2cfef9efd135a36a577fa35cb4af99f7e6fd3023cc9d2f7c6f438b","0bc016e4da8853d924fbfde9820db77121de75539641d02012232396b09e7dd6","6647e4b21b341f971ef92cbdbeaee6a42d77b291a43cdc73b970b2ad505bb912","2f9485d1b731e3d1d373c2a2a20e3ad41b55616b9fa13bf261d2a058cd23149b","d9df407e562a322f63c0cc3f1bcea9c1cbec38d0c92b3f49169291f22374cb6c","ba9d80c5b60b7708524491768da7d44a796042529ed945678f45356beb2504f9","7689fbecdcdb8f32296c94fe5cf5edef16a9db673d696a2aaa40ad54470e5965","2c2b0520a51bf2f420ec605fa5e327ea7d96732cc97a373c167e12ad71dda21f","5f15c8ce469d7e9da71f9ca502370c454eb29629d6c2e548fa722d00700dfb46","ce5251c882968a3ce8fc6c2e3b2c3b739a740f614eebf066b73e8ee7c5dc4f63","2146d63418ecb6b19792c162b39fb1246f4bb28a7eefcdc3e589e880140834f2","8f373e06438a141f82616c5e0b171e0bf613cc95aa1e6b8b41a8ae520dd2948e","5c9cf44d7fea3b0c9876102abc143967f2e7015dd0a89edcbe28a49906621206","6db8a395b3c5f988123adb6cc84b6410a82a060c4acde2491012b9b44b32b300","4c44739d6f89fe451021d088397f7c9fe93c24fcf2de14019c5d011fb442082d",{"version":"fb6f2007d60e8b519a2ef0c5a27026ddfe06418ae6261c4eb0cb670cca5e1bc2","impliedFormat":99},{"version":"a48f1b69ec0b94b16c7ece2cf6d6003cc8d0c329538117c1c364d8525a100850","impliedFormat":99},{"version":"cd5713ac354e4869fdf837e12d24d3ae14fd9d94a5bb2d340df63b899b74e6ca","impliedFormat":99},{"version":"56210599298d6eca6285eab99c7e9333d7e275c3a73a7f401b3055e8d55c67e8","impliedFormat":99},{"version":"2845576622e416da9871e1f3c788ba41dc4f24eb764362b10eceeb0dbaa67208","impliedFormat":99},{"version":"f0421e04e2a5238754cf444bf2a56fe7e7a94a08c14c1f9d063ff51c85825823","impliedFormat":99},{"version":"bdd14f07b4eca0b4b5203b85b8dbc4d084c749fa590bee5ea613e1641dcd3b29","impliedFormat":99},{"version":"967b227fad024ba8a7c32127534089bce5adc800840b0288f44d41c4c849278e","impliedFormat":99},{"version":"ffd229492af3cb444c01e8e51a78dfdbed670940bac40dde083675d57d6984fc","impliedFormat":99},{"version":"57cdef8252cb041b4b646cc9e80dcb27d2180bb78fcf95761136d99be4079cb3","impliedFormat":99},{"version":"eb5fd8d19b0330da4dccb6cab3eae0304f056ac8fbd5bd9589ce48f0920bff78","impliedFormat":99},{"version":"db565a086622cbe616a950186dc90e82a74060864b9cd1d0f25285860daea9b4","impliedFormat":99},{"version":"71087395cc862f52662ab2629a0f3838f8f2aaf84eb40c97f4f4004f2fcbbed6","impliedFormat":99},{"version":"1e2e6cfcab26ae01d7f2dd1f78a1d25ddb7f3b2e27f50c9eb3b54ee206a87884","impliedFormat":99},{"version":"489ec23ef8dc0e869cf3d8d77a39ba83ab24e5e71362320f5662491b3dc5bd04","impliedFormat":99},{"version":"c93dd79fae382105510c69cc8eef95a96c8c43e50b47e16efa98a3f9e76f304b","impliedFormat":99},"4a5b020726455dd70acdf34ccc435273e6333cbb1a3ff08b6c451148c61b21fd","eb4d76417ff2ac49726b2efaf83e5b9924f7040151293d092e1ba38905479a02","3bae912eb95706a507e668cdfe378bb612c81b46323aae337689fabc00c3ae29","129aaa58f8b8ed74d8ef3ab03d3219f1b5a7b2902c4e111e080abdaf043686ef","c0a9cb9a3fe662b66cf598c1e2e6bc799b423699b81249bb62586acbc817b1e7","7d3bbcb2ef65e80202188d77d2e06f30c5d5d2603ca49cde35a6b298565247e9","f90ae41777b29281dcd4aa3fafb9d84c6b328860d639114a8c3fcf36beb23817","eadfe727983087acea4f17095671faba65ba5233acaed7213f140269d4528c9a","6bbe3b367d76debfa83ec26a13d0013f8dad891cddd8909a1fbdcdb719b064d9","9fec96292881b3ee00f9b34d757887223221db25d0fb534b521743e9be298d9f","fbd59a37ab9b1a3a21f2e968b539f91453e560507d9e92748f0623f7118306be","92523b7353d096bd2464e1611035b284803894aa952541021922567dfe9f15aa","49ca23a8e2de57d49da1b5b5aa2f0e0d341b4230a899efe1a6078d3779e2ea53",{"version":"be53d0833468d1d4de05770f4af2d3ec465b7ef5d5181b748997a02bf362ebd0","impliedFormat":99},{"version":"4920f950330f6a8a00a084beb7998de838a15cd54f5c774962b75614c15f8bed","impliedFormat":99},{"version":"e892ea4cf5fc5e5ab078f265c617efa3ab44a1cbd477f91fd29a27698c45eb77","impliedFormat":99},{"version":"6a33bd0416049803becacbdccd852c02f342eedce7dea12956d1176966269eeb","impliedFormat":99},{"version":"f74c6749e3944913d8002c1dd30523c520de426e9113d47b6730565318349154","impliedFormat":99},{"version":"ac5d5fd3358d3f7491400869278ea288df297b4fbc1ba035c7fd09c8df822358","impliedFormat":99},{"version":"0ce13f49afeb385ad05698a5420580c7381d758779b730c1992be7386578e1e7","impliedFormat":99},"8fa74a106f75c2eed4b65fa571e4e9b78e9a3a68f65b6c70261e87f7f47b931d","d82719b8e8a552f66dea370df85e00f9473537bb9c35dcb711d7f48cb5e707cd","a3c435d1e1eb110bb7382103c522bf44e9abb8b6883a493360fc5859db0aee10","1487f3b04d5e9ed9c5d823ff91bedbd7a8ce7a4c44b7ef16fa64a2d930a731e9","18dfdac2f4092e68e453e7a9da3d0e800e597e82fa567c49c2c7bb4c4dfb26ff","8d6101c60d99ac57af23b947db35bedaa5580f2e7ae126c5b39841aa423cd242","cd253019e2f5488d5de2a1dbe4d1f5821b182135f66acc582d526f964ef6293f","5bb2ba05ee7656cd2c64c8bd9dd987d571dba2e7a18456a489e0b7253250cbfc",{"version":"1a3389c461cac120c2773a294ae33bc305127c072c31230f97d9f47b0d963f61","signature":"989427c8e330282c0cae8e1a6251dbafa80a68181deaf73df97f5f5313f05c4f"},{"version":"07adde27e17662101033ee9d2e7ebd9566cfc5294d6487e320380133d2210934","signature":"0def390b5e29be5be042a7de256bdb8e4cb6eb8c6e504b43e605803ae9434d84"},{"version":"70b58b40cd61f803bc17379c1233f23fcb3f8bdfc5a91b7cdac093071ab268f1","signature":"25402f1d7b5ed8ddd03f9a6cb23f418620906ea1d7b39018cc668523aa84b459"},{"version":"b634cfc24e63ead9e663f3ab377959115e5209c4564aaeb505e3debec4a1886d","signature":"914796adcff68dee6aa7a3053d49df9b1f3f9d7bc14fd262b195005f2957c795"},{"version":"e328256b317d1c6d841ce2b6d83ad15cfbc0aba285ae702a58cf954983311649","signature":"bc18a540223a72c415754aff08931cc562319377788752a0bec65231ba047e92"},{"version":"e68cee917292a8df6189a7bcf7c7da44db22df87f9edefbf978e20b6d6336854","signature":"2033255257875ec4e33b175c778e80ab6631747d8f8df0a8087c89d951f98e50"},{"version":"93b6448e54c610f1eca337b06c3e590947c06e46b430aa21c915648389e89934","signature":"b3a5acbc0c6b436cdb0c1c9189e840cbd057845b97fa0765aeecdc4618c492fc"},{"version":"a842a89d408c4c1aa93435cd25b860434f12bdcd690a543046da17694a434df8","signature":"b0fb81a9ff05e7672535ea37beccfe971eaea97c41b369f7ef83240e827ea483"},{"version":"3a582c6e8906f5b094ccf0de6cc6f4f8a54b05a34f52517aba5c9c7f704f6b28","impliedFormat":99},{"version":"0528f6d21f7a02d4092895090d2dd86104bd5a3e79eced96d5a1a7dd90943d17","impliedFormat":99},{"version":"b5ce343886d23392be9c8280e9f24a87f1d7d3667f6672c2fe4aa61fa4ece7d4","impliedFormat":99},{"version":"72ce5b734c05da85c85a6f6dc05823b051d6aa41acaedeeb1d17c72f3b4efa72","impliedFormat":99},{"version":"b0857bb28fd5236ace84280f79a25093f919fd0eff13e47cc26ea03de60a7294","impliedFormat":99},{"version":"5e43e0824f10cd8c48e7a8c5c673638488925a12c31f0f9e0957965c290eb14c","impliedFormat":99},{"version":"ef13c73d6157a32933c612d476c1524dd674cf5b9a88571d7d6a0d147544d529","impliedFormat":99},{"version":"3b0a56d056d81a011e484b9c05d5e430711aaecd561a788bad1d0498aad782c7","impliedFormat":99},{"version":"9443967db823b66d1682be7fc66392be7c7924e10c3e54900f456341e94591a6","impliedFormat":99},{"version":"424f71d1fae96ac2e878af92345bb87bea1d29f757228fbc190133b305643f2c","impliedFormat":99},{"version":"61bb64660ee150f3ab618340e15cca0a81664801bede7c966ca0eca3a952fe63","impliedFormat":99},{"version":"3b89216a7e38a454985ad17bb2ff85792837dc812f2a89fa5f60ad0a2e216fa7","impliedFormat":99},{"version":"16fe60bb544cfedfd2b5bb2f7d0b3957be7978706d57d9f06edc9c0c8dbdba23","impliedFormat":99},{"version":"82179358c2d9d7347f1602dc9300039a2250e483137b38ebf31d4d2e5519c181","impliedFormat":99},{"version":"4e003c868b0d8f8ad200b96cbc653e18e513fa23e1c19c4fe3cc25d4394efc47","impliedFormat":99},{"version":"605450898939e8abce51e8085a41b60640278337a969c33cd6b169e7c4f9c3f2","impliedFormat":99},{"version":"42a12f2faa483c9b48195ed794d22698162274e755f6e07219c2351c4f08d732","impliedFormat":99},{"version":"ec0c42bb0f465e4993f2bc68a6ce9df9a2dcbc7b83e21748f82f1b69561938e3","impliedFormat":99},{"version":"f50ff37a9cbbe74475f426474d9827083c7c2c138a954d28f1690df338f69291","impliedFormat":99},{"version":"61fd6c17235d530c40f543dd7c40afab091d91c1ef890baeed30db6d82b04b28","impliedFormat":99},{"version":"bcbd3becd08b4515225880abea0dbfbbf0d1181ce3af8f18f72f61edbe4febfb","impliedFormat":99},{"version":"091767bc841f937654ed597d49e023ed59850355e746ae1a6f20ab31076ee1fb","impliedFormat":99},{"version":"19c6d6135af59693698d384050b45a8a049493500add442f58e4bd7c8a255ab6","impliedFormat":99},{"version":"6a0dba12d55314638a8c51108b20fe2f68f1364a619d098918bda91c22dec154","impliedFormat":99},{"version":"c76c02846ba7d40b9b3488f0e8d75d02cbdee2f0bc5fcd55dd3bd2e1457646ea","impliedFormat":99},{"version":"4ead13a482c539b77394b2a97e3b877b809eac596390371cea490286f53b996a","impliedFormat":99},{"version":"06db2f8ba1d1dfacf04529cb731081ab23f133f29c7608ebdfbcab356996827c","impliedFormat":99},{"version":"427fe2004642504828c1476d0af4270e6ad4db6de78c0b5da3e4c5ca95052a99","impliedFormat":1},{"version":"2eeffcee5c1661ddca53353929558037b8cf305ffb86a803512982f99bcab50d","impliedFormat":99},{"version":"9afb4cb864d297e4092a79ee2871b5d3143ea14153f62ef0bb04ede25f432030","affectsGlobalScope":true,"impliedFormat":99},{"version":"5c935b7fc4ddc1410ea1cd7cd4e35ed106a6e4920dd27a9480a40fd224359dc3","affectsGlobalScope":true,"impliedFormat":99},{"version":"ed9bb55ddcbebd5cb3eee991f57ff21438546ee40ee1c310281bd12a6c7cf65b","impliedFormat":99},{"version":"69bf2422313487956e4dacf049f30cb91b34968912058d244cb19e4baa24da97","impliedFormat":99},{"version":"6987dfb4b0c4e02112cc4e548e7a77b3d9ddfeffa8c8a2db13ceac361a4567d9","impliedFormat":99},{"version":"4ffba3c5848b4fe62ee59b754fd5f256ad9656a0db6d37b9a2a8cb40dfc7ac21","impliedFormat":99},{"version":"c76c02846ba7d40b9b3488f0e8d75d02cbdee2f0bc5fcd55dd3bd2e1457646ea","impliedFormat":99},{"version":"5e2ba3d18d78aebbde1f34bde356e41e9c76eeaeaeee56a37036596a9eff4211","impliedFormat":99},{"version":"8280ae8ccc0493b32d1742d585357ab9f0a508ea050af25a5a20d64010d0a5cf","impliedFormat":99},{"version":"7adfd9f9056ecd4ae6c65fde2a98654960c662714c73f048478959d04c09e144","impliedFormat":99},{"version":"32b35cf0dc3a1b1a7118b61c34ce2ad1a29695851679f9ec34e0776f2ece2a69","impliedFormat":99},{"version":"b413fbc6658fe2774f8bf9a15cf4c53e586fc38a2d5256b3b9647da242c14389","impliedFormat":99},{"version":"59e5e964b84fdb2378e9455e4e59405030e4ed2b4c6f891ce395f17796af3cbb","impliedFormat":99},{"version":"c30a41267fc04c6518b17e55dcb2b810f267af4314b0b6d7df1c33a76ce1b330","impliedFormat":1},{"version":"72422d0bac4076912385d0c10911b82e4694fc106e2d70added091f88f0824ba","impliedFormat":1},{"version":"da251b82c25bee1d93f9fd80c5a61d945da4f708ca21285541d7aff83ecb8200","impliedFormat":1},{"version":"64db14db2bf37ac089766fdb3c7e1160fabc10e9929bc2deeede7237e4419fc8","impliedFormat":1},{"version":"98b94085c9f78eba36d3d2314affe973e8994f99864b8708122750788825c771","impliedFormat":1},{"version":"90ba95a763101bb61b8a799731a2ed60b5016b8135c1a2d5186862d4b534d4a1","impliedFormat":99},{"version":"3d7fc099f5cab9100a66ef17847a440128f12f207ec22ab56a864e04120816dd","signature":"8e609bb71c20b858c77f0e9f90bb1319db8477b13f9f965f1a1e18524bf50881"},{"version":"c86dea3db03fc250c83d151e4794811599bcafe0d228ae9a92454e9046fb6430","signature":"8e609bb71c20b858c77f0e9f90bb1319db8477b13f9f965f1a1e18524bf50881"},{"version":"24dbce6f1c51a40dbdbe7a0702279c594ffca9e38d2c43f8cddc78dfbf47ff92","signature":"8e609bb71c20b858c77f0e9f90bb1319db8477b13f9f965f1a1e18524bf50881"},{"version":"6310d5ff1a9c32521cff012a3748aa98c936e46b02049c4b0b99c402f6818f45","signature":"8e609bb71c20b858c77f0e9f90bb1319db8477b13f9f965f1a1e18524bf50881"},{"version":"3e0eeda9dc5f49756323eedc1e544536d205230383730937473302853082fcea","signature":"8e609bb71c20b858c77f0e9f90bb1319db8477b13f9f965f1a1e18524bf50881"},{"version":"70521b6ab0dcba37539e5303104f29b721bfb2940b2776da4cc818c07e1fefc1","affectsGlobalScope":true,"impliedFormat":1},{"version":"ab41ef1f2cdafb8df48be20cd969d875602483859dc194e9c97c8a576892c052","affectsGlobalScope":true,"impliedFormat":1},{"version":"d153a11543fd884b596587ccd97aebbeed950b26933ee000f94009f1ab142848","affectsGlobalScope":true,"impliedFormat":1},{"version":"21d819c173c0cf7cc3ce57c3276e77fd9a8a01d35a06ad87158781515c9a438a","impliedFormat":1},{"version":"98cffbf06d6bab333473c70a893770dbe990783904002c4f1a960447b4b53dca","affectsGlobalScope":true,"impliedFormat":1},{"version":"ba481bca06f37d3f2c137ce343c7d5937029b2468f8e26111f3c9d9963d6568d","affectsGlobalScope":true,"impliedFormat":1},{"version":"6d9ef24f9a22a88e3e9b3b3d8c40ab1ddb0853f1bfbd5c843c37800138437b61","affectsGlobalScope":true,"impliedFormat":1},{"version":"1db0b7dca579049ca4193d034d835f6bfe73096c73663e5ef9a0b5779939f3d0","affectsGlobalScope":true,"impliedFormat":1},{"version":"9798340ffb0d067d69b1ae5b32faa17ab31b82466a3fc00d8f2f2df0c8554aaa","affectsGlobalScope":true,"impliedFormat":1},{"version":"f26b11d8d8e4b8028f1c7d618b22274c892e4b0ef5b3678a8ccbad85419aef43","affectsGlobalScope":true,"impliedFormat":1},{"version":"5929864ce17fba74232584d90cb721a89b7ad277220627cc97054ba15a98ea8f","impliedFormat":1},{"version":"763fe0f42b3d79b440a9b6e51e9ba3f3f91352469c1e4b3b67bfa4ff6352f3f4","impliedFormat":1},{"version":"25c8056edf4314820382a5fdb4bb7816999acdcb929c8f75e3f39473b87e85bc","impliedFormat":1},{"version":"c464d66b20788266e5353b48dc4aa6bc0dc4a707276df1e7152ab0c9ae21fad8","impliedFormat":1},{"version":"78d0d27c130d35c60b5e5566c9f1e5be77caf39804636bc1a40133919a949f21","impliedFormat":1},{"version":"c6fd2c5a395f2432786c9cb8deb870b9b0e8ff7e22c029954fabdd692bff6195","impliedFormat":1},{"version":"1d6e127068ea8e104a912e42fc0a110e2aa5a66a356a917a163e8cf9a65e4a75","impliedFormat":1},{"version":"5ded6427296cdf3b9542de4471d2aa8d3983671d4cac0f4bf9c637208d1ced43","impliedFormat":1},{"version":"7f182617db458e98fc18dfb272d40aa2fff3a353c44a89b2c0ccb3937709bfb5","impliedFormat":1},{"version":"cadc8aced301244057c4e7e73fbcae534b0f5b12a37b150d80e5a45aa4bebcbd","impliedFormat":1},{"version":"385aab901643aa54e1c36f5ef3107913b10d1b5bb8cbcd933d4263b80a0d7f20","impliedFormat":1},{"version":"9670d44354bab9d9982eca21945686b5c24a3f893db73c0dae0fd74217a4c219","impliedFormat":1},{"version":"0b8a9268adaf4da35e7fa830c8981cfa22adbbe5b3f6f5ab91f6658899e657a7","impliedFormat":1},{"version":"11396ed8a44c02ab9798b7dca436009f866e8dae3c9c25e8c1fbc396880bf1bb","impliedFormat":1},{"version":"ba7bc87d01492633cb5a0e5da8a4a42a1c86270e7b3d2dea5d156828a84e4882","impliedFormat":1},{"version":"4893a895ea92c85345017a04ed427cbd6a1710453338df26881a6019432febdd","impliedFormat":1},{"version":"c21dc52e277bcfc75fac0436ccb75c204f9e1b3fa5e12729670910639f27343e","impliedFormat":1},{"version":"13f6f39e12b1518c6650bbb220c8985999020fe0f21d818e28f512b7771d00f9","impliedFormat":1},{"version":"9b5369969f6e7175740bf51223112ff209f94ba43ecd3bb09eefff9fd675624a","impliedFormat":1},{"version":"4fe9e626e7164748e8769bbf74b538e09607f07ed17c2f20af8d680ee49fc1da","impliedFormat":1},{"version":"24515859bc0b836719105bb6cc3d68255042a9f02a6022b3187948b204946bd2","impliedFormat":1},{"version":"ea0148f897b45a76544ae179784c95af1bd6721b8610af9ffa467a518a086a43","impliedFormat":1},{"version":"24c6a117721e606c9984335f71711877293a9651e44f59f3d21c1ea0856f9cc9","impliedFormat":1},{"version":"dd3273ead9fbde62a72949c97dbec2247ea08e0c6952e701a483d74ef92d6a17","impliedFormat":1},{"version":"405822be75ad3e4d162e07439bac80c6bcc6dbae1929e179cf467ec0b9ee4e2e","impliedFormat":1},{"version":"0db18c6e78ea846316c012478888f33c11ffadab9efd1cc8bcc12daded7a60b6","impliedFormat":1},{"version":"e61be3f894b41b7baa1fbd6a66893f2579bfad01d208b4ff61daef21493ef0a8","impliedFormat":1},{"version":"bd0532fd6556073727d28da0edfd1736417a3f9f394877b6d5ef6ad88fba1d1a","impliedFormat":1},{"version":"89167d696a849fce5ca508032aabfe901c0868f833a8625d5a9c6e861ef935d2","impliedFormat":1},{"version":"615ba88d0128ed16bf83ef8ccbb6aff05c3ee2db1cc0f89ab50a4939bfc1943f","impliedFormat":1},{"version":"a4d551dbf8746780194d550c88f26cf937caf8d56f102969a110cfaed4b06656","impliedFormat":1},{"version":"8bd86b8e8f6a6aa6c49b71e14c4ffe1211a0e97c80f08d2c8cc98838006e4b88","impliedFormat":1},{"version":"317e63deeb21ac07f3992f5b50cdca8338f10acd4fbb7257ebf56735bf52ab00","impliedFormat":1},{"version":"4732aec92b20fb28c5fe9ad99521fb59974289ed1e45aecb282616202184064f","impliedFormat":1},{"version":"2e85db9e6fd73cfa3d7f28e0ab6b55417ea18931423bd47b409a96e4a169e8e6","impliedFormat":1},{"version":"c46e079fe54c76f95c67fb89081b3e399da2c7d109e7dca8e4b58d83e332e605","impliedFormat":1},{"version":"bf67d53d168abc1298888693338cb82854bdb2e69ef83f8a0092093c2d562107","impliedFormat":1},{"version":"b52476feb4a0cbcb25e5931b930fc73cb6643fb1a5060bf8a3dda0eeae5b4b68","affectsGlobalScope":true,"impliedFormat":1},{"version":"e2677634fe27e87348825bb041651e22d50a613e2fdf6a4a3ade971d71bac37e","impliedFormat":1},{"version":"7394959e5a741b185456e1ef5d64599c36c60a323207450991e7a42e08911419","impliedFormat":1},{"version":"8c0bcd6c6b67b4b503c11e91a1fb91522ed585900eab2ab1f61bba7d7caa9d6f","impliedFormat":1},{"version":"8cd19276b6590b3ebbeeb030ac271871b9ed0afc3074ac88a94ed2449174b776","affectsGlobalScope":true,"impliedFormat":1},{"version":"696eb8d28f5949b87d894b26dc97318ef944c794a9a4e4f62360cd1d1958014b","impliedFormat":1},{"version":"3f8fa3061bd7402970b399300880d55257953ee6d3cd408722cb9ac20126460c","impliedFormat":1},{"version":"35ec8b6760fd7138bbf5809b84551e31028fb2ba7b6dc91d95d098bf212ca8b4","affectsGlobalScope":true,"impliedFormat":1},{"version":"5524481e56c48ff486f42926778c0a3cce1cc85dc46683b92b1271865bcf015a","impliedFormat":1},{"version":"68bd56c92c2bd7d2339457eb84d63e7de3bd56a69b25f3576e1568d21a162398","affectsGlobalScope":true,"impliedFormat":1},{"version":"3e93b123f7c2944969d291b35fed2af79a6e9e27fdd5faa99748a51c07c02d28","impliedFormat":1},{"version":"9d19808c8c291a9010a6c788e8532a2da70f811adb431c97520803e0ec649991","impliedFormat":1},{"version":"87aad3dd9752067dc875cfaa466fc44246451c0c560b820796bdd528e29bef40","impliedFormat":1},{"version":"4aacb0dd020eeaef65426153686cc639a78ec2885dc72ad220be1d25f1a439df","impliedFormat":1},{"version":"f0bd7e6d931657b59605c44112eaf8b980ba7f957a5051ed21cb93d978cf2f45","impliedFormat":1},{"version":"8db0ae9cb14d9955b14c214f34dae1b9ef2baee2fe4ce794a4cd3ac2531e3255","affectsGlobalScope":true,"impliedFormat":1},{"version":"15fc6f7512c86810273af28f224251a5a879e4261b4d4c7e532abfbfc3983134","impliedFormat":1},{"version":"58adba1a8ab2d10b54dc1dced4e41f4e7c9772cbbac40939c0dc8ce2cdb1d442","impliedFormat":1},{"version":"641942a78f9063caa5d6b777c99304b7d1dc7328076038c6d94d8a0b81fc95c1","impliedFormat":1},{"version":"092c1137e31de289f3cc6a57fdccb3cca298d8a680d1e367d206d3318f1394a1","impliedFormat":1},{"version":"855cd5f7eb396f5f1ab1bc0f8580339bff77b68a770f84c6b254e319bbfd1ac7","impliedFormat":1},{"version":"5650cf3dace09e7c25d384e3e6b818b938f68f4e8de96f52d9c5a1b3db068e86","impliedFormat":1},{"version":"1354ca5c38bd3fd3836a68e0f7c9f91f172582ba30ab15bb8c075891b91502b7","affectsGlobalScope":true,"impliedFormat":1},{"version":"7e20d899c28ca26a2a7afc98beaa69e63ff7fba0a8bc47b4e3bf3ede5e09e424","impliedFormat":1},{"version":"2d2fcaab481b31a5882065c7951255703ddbe1c0e507af56ea42d79ac3911201","impliedFormat":1},{"version":"a192fe8ec33f75edbc8d8f3ed79f768dfae11ff5735e7fe52bfa69956e46d78d","impliedFormat":1},{"version":"ca867399f7db82df981d6915bcbb2d81131d7d1ef683bc782b59f71dda59bc85","affectsGlobalScope":true,"impliedFormat":1},{"version":"372413016d17d804e1d139418aca0c68e47a83fb6669490857f4b318de8cccb3","affectsGlobalScope":true,"impliedFormat":1},{"version":"9e043a1bc8fbf2a255bccf9bf27e0f1caf916c3b0518ea34aa72357c0afd42ec","impliedFormat":1},{"version":"b4f70ec656a11d570e1a9edce07d118cd58d9760239e2ece99306ee9dfe61d02","impliedFormat":1},{"version":"3bc2f1e2c95c04048212c569ed38e338873f6a8593930cf5a7ef24ffb38fc3b6","impliedFormat":1},{"version":"6e70e9570e98aae2b825b533aa6292b6abd542e8d9f6e9475e88e1d7ba17c866","impliedFormat":1},{"version":"f9d9d753d430ed050dc1bf2667a1bab711ccbb1c1507183d794cc195a5b085cc","impliedFormat":1},{"version":"9eece5e586312581ccd106d4853e861aaaa1a39f8e3ea672b8c3847eedd12f6e","impliedFormat":1},{"version":"085f552d005479e2e6a7311cdbbe5d8c55c497b4d19274285df161ee9684cd9c","impliedFormat":1},{"version":"37ba7b45141a45ce6e80e66f2a96c8a5ab1bcef0fc2d0f56bb58df96ec67e972","impliedFormat":1},{"version":"45650f47bfb376c8a8ed39d4bcda5902ab899a3150029684ee4c10676d9fbaee","impliedFormat":1},{"version":"007faacc9268357caa21d24169f3f3f2497af3e9241308df2d89f6e6d9bb3f2e","affectsGlobalScope":true,"impliedFormat":1},{"version":"74cf591a0f63db318651e0e04cb55f8791385f86e987a67fd4d2eaab8191f730","impliedFormat":1},{"version":"5eab9b3dc9b34f185417342436ec3f106898da5f4801992d8ff38ab3aff346b5","impliedFormat":1},{"version":"12ed4559eba17cd977aa0db658d25c4047067444b51acfdcbf38470630642b23","affectsGlobalScope":true,"impliedFormat":1},{"version":"f3ffabc95802521e1e4bcba4c88d8615176dc6e09111d920c7a213bdda6e1d65","impliedFormat":1},{"version":"809821b8a065e3234a55b3a9d7846231ed18d66dd749f2494c66288d890daf7f","impliedFormat":1},{"version":"ae56f65caf3be91108707bd8dfbccc2a57a91feb5daabf7165a06a945545ed26","impliedFormat":1},{"version":"a136d5de521da20f31631a0a96bf712370779d1c05b7015d7019a9b2a0446ca9","impliedFormat":1},{"version":"c3b41e74b9a84b88b1dca61ec39eee25c0dbc8e7d519ba11bb070918cfacf656","affectsGlobalScope":true,"impliedFormat":1},{"version":"4737a9dc24d0e68b734e6cfbcea0c15a2cfafeb493485e27905f7856988c6b29","affectsGlobalScope":true,"impliedFormat":1},{"version":"36d8d3e7506b631c9582c251a2c0b8a28855af3f76719b12b534c6edf952748d","impliedFormat":1},{"version":"1ca69210cc42729e7ca97d3a9ad48f2e9cb0042bada4075b588ae5387debd318","impliedFormat":1},{"version":"f5ebe66baaf7c552cfa59d75f2bfba679f329204847db3cec385acda245e574e","impliedFormat":1},{"version":"ed59add13139f84da271cafd32e2171876b0a0af2f798d0c663e8eeb867732cf","affectsGlobalScope":true,"impliedFormat":1},{"version":"b7c5e2ea4a9749097c347454805e933844ed207b6eefec6b7cfd418b5f5f7b28","impliedFormat":1},{"version":"b1810689b76fd473bd12cc9ee219f8e62f54a7d08019a235d07424afbf074d25","impliedFormat":1}],"root":[112,[182,189],[238,242]],"options":{"composite":true,"declaration":true,"declarationMap":true,"emitDeclarationOnly":true,"exactOptionalPropertyTypes":true,"module":99,"noFallthroughCasesInSwitch":true,"noImplicitOverride":true,"noImplicitReturns":true,"noUncheckedIndexedAccess":true,"noUnusedLocals":true,"noUnusedParameters":true,"outDir":"./","rootDir":"../src","skipLibCheck":true,"strict":true,"target":9,"tsBuildInfoFile":"./.tsbuildinfo","useDefineForClassFields":true,"verbatimModuleSyntax":true},"referencedMap":[[170,1],[169,2],[171,3],[168,4],[172,5],[173,6],[167,7],[151,8],[149,9],[148,10],[153,11],[150,12],[147,9],[146,10],[152,12],[145,13],[138,5],[143,14],[140,5],[141,5],[142,5],[139,5],[144,5],[219,15],[217,5],[291,16],[292,16],[293,17],[248,18],[294,19],[295,20],[296,21],[243,5],[246,22],[244,5],[245,5],[297,23],[298,24],[299,25],[300,26],[301,27],[302,28],[303,28],[304,29],[305,30],[306,31],[307,32],[249,5],[247,5],[308,33],[309,34],[310,35],[342,36],[311,37],[312,38],[313,39],[314,40],[315,41],[316,42],[317,43],[318,44],[319,45],[320,46],[321,46],[322,47],[323,5],[324,48],[326,49],[325,50],[327,51],[328,52],[329,53],[330,54],[331,55],[332,56],[333,57],[334,58],[335,59],[336,60],[337,61],[338,62],[339,63],[250,5],[251,5],[252,5],[290,64],[340,65],[341,66],[220,67],[227,68],[228,69],[226,5],[190,5],[199,70],[198,71],[221,70],[206,72],[208,73],[207,74],[215,75],[214,5],[197,76],[191,77],[193,78],[195,79],[194,5],[196,77],[192,5],[218,5],[234,80],[236,81],[235,82],[233,83],[232,5],[222,5],[216,5],[58,5],[59,5],[10,5],[11,5],[13,5],[12,5],[2,5],[14,5],[15,5],[16,5],[17,5],[18,5],[19,5],[20,5],[21,5],[3,5],[22,5],[23,5],[4,5],[24,5],[28,5],[25,5],[26,5],[27,5],[29,5],[30,5],[31,5],[5,5],[32,5],[33,5],[34,5],[35,5],[6,5],[39,5],[36,5],[37,5],[38,5],[40,5],[7,5],[41,5],[46,5],[47,5],[42,5],[43,5],[44,5],[45,5],[8,5],[51,5],[48,5],[49,5],[50,5],[52,5],[9,5],[53,5],[54,5],[55,5],[57,5],[56,5],[1,5],[268,84],[278,85],[267,84],[288,86],[259,87],[258,88],[287,89],[281,90],[286,91],[261,92],[275,93],[260,94],[284,95],[256,96],[255,89],[285,97],[257,98],[262,99],[263,5],[266,99],[253,5],[289,100],[279,101],[270,102],[271,103],[273,104],[269,105],[272,106],[282,89],[264,107],[265,108],[274,109],[254,110],[277,101],[276,99],[280,5],[283,111],[202,112],[205,113],[203,112],[201,5],[204,114],[223,115],[213,116],[209,117],[210,72],[230,118],[224,119],[211,120],[229,121],[200,5],[212,122],[237,123],[231,124],[225,5],[134,125],[115,126],[116,127],[113,5],[117,126],[137,128],[118,5],[119,5],[120,5],[121,126],[136,129],[178,130],[177,131],[123,132],[124,133],[132,5],[135,134],[125,135],[129,136],[128,137],[130,138],[114,126],[127,139],[131,5],[126,140],[122,5],[133,141],[79,142],[80,142],[81,142],[82,142],[83,142],[84,142],[105,143],[111,144],[106,142],[107,142],[108,142],[109,142],[110,142],[238,145],[239,146],[240,147],[241,148],[242,148],[112,149],[182,150],[189,151],[183,5],[184,142],[185,152],[186,142],[188,5],[187,153],[87,154],[88,155],[86,156],[89,155],[90,5],[91,155],[92,5],[93,157],[104,158],[94,155],[95,155],[96,5],[97,155],[98,157],[99,159],[100,157],[85,5],[101,155],[102,155],[103,155],[166,160],[176,161],[175,162],[174,160],[179,142],[181,163],[180,5],[156,164],[157,165],[158,5],[155,165],[165,166],[159,5],[160,165],[161,165],[162,165],[163,165],[164,167],[154,5],[60,5],[61,5],[63,168],[73,5],[65,169],[64,170],[74,171],[76,142],[69,142],[77,172],[78,173],[67,174],[66,175],[70,5],[72,176],[71,177],[62,5],[75,178],[68,5]],"latestChangedDtsFile":"./__tests__/video-player-multi-entity.unit.test.d.ts","version":"6.0.3"}
1
+ {"fileNames":["../../../node_modules/.pnpm/typescript@6.0.3/node_modules/typescript/lib/lib.es5.d.ts","../../../node_modules/.pnpm/typescript@6.0.3/node_modules/typescript/lib/lib.es2015.d.ts","../../../node_modules/.pnpm/typescript@6.0.3/node_modules/typescript/lib/lib.es2016.d.ts","../../../node_modules/.pnpm/typescript@6.0.3/node_modules/typescript/lib/lib.es2017.d.ts","../../../node_modules/.pnpm/typescript@6.0.3/node_modules/typescript/lib/lib.es2018.d.ts","../../../node_modules/.pnpm/typescript@6.0.3/node_modules/typescript/lib/lib.es2019.d.ts","../../../node_modules/.pnpm/typescript@6.0.3/node_modules/typescript/lib/lib.es2020.d.ts","../../../node_modules/.pnpm/typescript@6.0.3/node_modules/typescript/lib/lib.es2021.d.ts","../../../node_modules/.pnpm/typescript@6.0.3/node_modules/typescript/lib/lib.es2022.d.ts","../../../node_modules/.pnpm/typescript@6.0.3/node_modules/typescript/lib/lib.dom.d.ts","../../../node_modules/.pnpm/typescript@6.0.3/node_modules/typescript/lib/lib.dom.iterable.d.ts","../../../node_modules/.pnpm/typescript@6.0.3/node_modules/typescript/lib/lib.es2015.core.d.ts","../../../node_modules/.pnpm/typescript@6.0.3/node_modules/typescript/lib/lib.es2015.collection.d.ts","../../../node_modules/.pnpm/typescript@6.0.3/node_modules/typescript/lib/lib.es2015.generator.d.ts","../../../node_modules/.pnpm/typescript@6.0.3/node_modules/typescript/lib/lib.es2015.iterable.d.ts","../../../node_modules/.pnpm/typescript@6.0.3/node_modules/typescript/lib/lib.es2015.promise.d.ts","../../../node_modules/.pnpm/typescript@6.0.3/node_modules/typescript/lib/lib.es2015.proxy.d.ts","../../../node_modules/.pnpm/typescript@6.0.3/node_modules/typescript/lib/lib.es2015.reflect.d.ts","../../../node_modules/.pnpm/typescript@6.0.3/node_modules/typescript/lib/lib.es2015.symbol.d.ts","../../../node_modules/.pnpm/typescript@6.0.3/node_modules/typescript/lib/lib.es2015.symbol.wellknown.d.ts","../../../node_modules/.pnpm/typescript@6.0.3/node_modules/typescript/lib/lib.es2016.array.include.d.ts","../../../node_modules/.pnpm/typescript@6.0.3/node_modules/typescript/lib/lib.es2016.intl.d.ts","../../../node_modules/.pnpm/typescript@6.0.3/node_modules/typescript/lib/lib.es2017.arraybuffer.d.ts","../../../node_modules/.pnpm/typescript@6.0.3/node_modules/typescript/lib/lib.es2017.date.d.ts","../../../node_modules/.pnpm/typescript@6.0.3/node_modules/typescript/lib/lib.es2017.object.d.ts","../../../node_modules/.pnpm/typescript@6.0.3/node_modules/typescript/lib/lib.es2017.sharedmemory.d.ts","../../../node_modules/.pnpm/typescript@6.0.3/node_modules/typescript/lib/lib.es2017.string.d.ts","../../../node_modules/.pnpm/typescript@6.0.3/node_modules/typescript/lib/lib.es2017.intl.d.ts","../../../node_modules/.pnpm/typescript@6.0.3/node_modules/typescript/lib/lib.es2017.typedarrays.d.ts","../../../node_modules/.pnpm/typescript@6.0.3/node_modules/typescript/lib/lib.es2018.asyncgenerator.d.ts","../../../node_modules/.pnpm/typescript@6.0.3/node_modules/typescript/lib/lib.es2018.asynciterable.d.ts","../../../node_modules/.pnpm/typescript@6.0.3/node_modules/typescript/lib/lib.es2018.intl.d.ts","../../../node_modules/.pnpm/typescript@6.0.3/node_modules/typescript/lib/lib.es2018.promise.d.ts","../../../node_modules/.pnpm/typescript@6.0.3/node_modules/typescript/lib/lib.es2018.regexp.d.ts","../../../node_modules/.pnpm/typescript@6.0.3/node_modules/typescript/lib/lib.es2019.array.d.ts","../../../node_modules/.pnpm/typescript@6.0.3/node_modules/typescript/lib/lib.es2019.object.d.ts","../../../node_modules/.pnpm/typescript@6.0.3/node_modules/typescript/lib/lib.es2019.string.d.ts","../../../node_modules/.pnpm/typescript@6.0.3/node_modules/typescript/lib/lib.es2019.symbol.d.ts","../../../node_modules/.pnpm/typescript@6.0.3/node_modules/typescript/lib/lib.es2019.intl.d.ts","../../../node_modules/.pnpm/typescript@6.0.3/node_modules/typescript/lib/lib.es2020.bigint.d.ts","../../../node_modules/.pnpm/typescript@6.0.3/node_modules/typescript/lib/lib.es2020.date.d.ts","../../../node_modules/.pnpm/typescript@6.0.3/node_modules/typescript/lib/lib.es2020.promise.d.ts","../../../node_modules/.pnpm/typescript@6.0.3/node_modules/typescript/lib/lib.es2020.sharedmemory.d.ts","../../../node_modules/.pnpm/typescript@6.0.3/node_modules/typescript/lib/lib.es2020.string.d.ts","../../../node_modules/.pnpm/typescript@6.0.3/node_modules/typescript/lib/lib.es2020.symbol.wellknown.d.ts","../../../node_modules/.pnpm/typescript@6.0.3/node_modules/typescript/lib/lib.es2020.intl.d.ts","../../../node_modules/.pnpm/typescript@6.0.3/node_modules/typescript/lib/lib.es2020.number.d.ts","../../../node_modules/.pnpm/typescript@6.0.3/node_modules/typescript/lib/lib.es2021.promise.d.ts","../../../node_modules/.pnpm/typescript@6.0.3/node_modules/typescript/lib/lib.es2021.string.d.ts","../../../node_modules/.pnpm/typescript@6.0.3/node_modules/typescript/lib/lib.es2021.weakref.d.ts","../../../node_modules/.pnpm/typescript@6.0.3/node_modules/typescript/lib/lib.es2021.intl.d.ts","../../../node_modules/.pnpm/typescript@6.0.3/node_modules/typescript/lib/lib.es2022.array.d.ts","../../../node_modules/.pnpm/typescript@6.0.3/node_modules/typescript/lib/lib.es2022.error.d.ts","../../../node_modules/.pnpm/typescript@6.0.3/node_modules/typescript/lib/lib.es2022.intl.d.ts","../../../node_modules/.pnpm/typescript@6.0.3/node_modules/typescript/lib/lib.es2022.object.d.ts","../../../node_modules/.pnpm/typescript@6.0.3/node_modules/typescript/lib/lib.es2022.string.d.ts","../../../node_modules/.pnpm/typescript@6.0.3/node_modules/typescript/lib/lib.es2022.regexp.d.ts","../../../node_modules/.pnpm/typescript@6.0.3/node_modules/typescript/lib/lib.decorators.d.ts","../../../node_modules/.pnpm/typescript@6.0.3/node_modules/typescript/lib/lib.decorators.legacy.d.ts","../../types/dist/animation-target.d.ts","../../types/dist/asset-errors.d.ts","../../types/dist/result.d.ts","../../types/dist/asset-evidence.d.ts","../../types/dist/asset.d.ts","../../types/dist/material/color-space.d.ts","../../types/dist/material/asset.d.ts","../../types/dist/vfx.d.ts","../../types/dist/asset-runtime.d.ts","../../types/dist/handle.d.ts","../../types/dist/material/errors.d.ts","../../types/dist/material/resolve.d.ts","../../types/dist/material/index.d.ts","../../types/dist/asset-producer.d.ts","../../types/dist/catalog.d.ts","../../types/dist/runtime-scope.d.ts","../../types/dist/derive-paramschema.d.ts","../../types/dist/import.d.ts","../../types/dist/index.d.ts","../../geometry/dist/assets/mesh-decoder.d.ts","../../geometry/dist/assets/primitive-mesh.d.ts","../../geometry/dist/box.d.ts","../../geometry/dist/capsule.d.ts","../../geometry/dist/cone.d.ts","../../geometry/dist/cylinder.d.ts","../../math/dist/types.d.ts","../../math/dist/circle2.d.ts","../../math/dist/box2.d.ts","../../math/dist/box3.d.ts","../../math/dist/color.d.ts","../../math/dist/easing.d.ts","../../math/dist/euler.d.ts","../../math/dist/f32-to-f16-bytes.d.ts","../../math/dist/frustum.d.ts","../../math/dist/mat3.d.ts","../../math/dist/mat4.d.ts","../../math/dist/noise.d.ts","../../math/dist/quat.d.ts","../../math/dist/ray.d.ts","../../math/dist/ray2.d.ts","../../math/dist/sphere.d.ts","../../math/dist/vec2.d.ts","../../math/dist/vec3.d.ts","../../math/dist/vec4.d.ts","../../math/dist/index.d.ts","../../geometry/dist/dim2.d.ts","../../geometry/dist/plane.d.ts","../../geometry/dist/sphere.d.ts","../../geometry/dist/tangent.d.ts","../../geometry/dist/torus.d.ts","../../geometry/dist/vertex-attribute-layout.d.ts","../../geometry/dist/index.d.ts","../src/glyph-layout.ts","../../ecs/dist/entity-handle.d.ts","../../ecs/dist/storage/column.d.ts","../../ecs/dist/component-schema.d.ts","../../ecs/dist/component.d.ts","../../ecs/dist/entity.d.ts","../../ecs/dist/errors/query-and-component-errors.d.ts","../../ecs/dist/errors/relationship-errors.d.ts","../../ecs/dist/errors/sprite-and-shared-errors.d.ts","../../ecs/dist/errors/validation-errors.d.ts","../../ecs/dist/world-internal.d.ts","../../ecs/dist/query/query.d.ts","../../ecs/dist/relationship-index.d.ts","../../ecs/dist/shared-ref-store.d.ts","../../ecs/dist/world-change-journal.d.ts","../../ecs/dist/storage/table.d.ts","../../ecs/dist/storage/archetype.d.ts","../../ecs/dist/storage/archetype-graph.d.ts","../../ecs/dist/storage/change-detection.d.ts","../../ecs/dist/time.d.ts","../../ecs/dist/schedule-token.d.ts","../../ecs/dist/world.d.ts","../../ecs/dist/commands.d.ts","../../ecs/dist/schedule.d.ts","../../ecs/dist/execution/shared-kernel.d.ts","../../ecs/dist/errors.d.ts","../../../node_modules/.pnpm/@deepseek-ai+cosmokit@1.8.2/node_modules/@deepseek-ai/cosmokit/lib/types/array.d.ts","../../../node_modules/.pnpm/@deepseek-ai+cosmokit@1.8.2/node_modules/@deepseek-ai/cosmokit/lib/types/types.d.ts","../../../node_modules/.pnpm/@deepseek-ai+cosmokit@1.8.2/node_modules/@deepseek-ai/cosmokit/lib/types/misc.d.ts","../../../node_modules/.pnpm/@deepseek-ai+cosmokit@1.8.2/node_modules/@deepseek-ai/cosmokit/lib/types/string.d.ts","../../../node_modules/.pnpm/@deepseek-ai+cosmokit@1.8.2/node_modules/@deepseek-ai/cosmokit/lib/types/time.d.ts","../../../node_modules/.pnpm/@deepseek-ai+cosmokit@1.8.2/node_modules/@deepseek-ai/cosmokit/lib/types/index.d.ts","../../../node_modules/.pnpm/@standard-schema+spec@1.1.0/node_modules/@standard-schema/spec/dist/index.d.ts","../../../node_modules/.pnpm/@deepseek-ai+cordis@4.0.1_@deepseek-ai+cordis-plugin-loader@1.0.2/node_modules/@deepseek-ai/cordis/lib/types/utils.d.ts","../../../node_modules/.pnpm/@deepseek-ai+cordis@4.0.1_@deepseek-ai+cordis-plugin-loader@1.0.2/node_modules/@deepseek-ai/cordis/lib/types/registry.d.ts","../../../node_modules/.pnpm/@deepseek-ai+cordis@4.0.1_@deepseek-ai+cordis-plugin-loader@1.0.2/node_modules/@deepseek-ai/cordis/lib/types/reflect.d.ts","../../../node_modules/.pnpm/@deepseek-ai+cordis@4.0.1_@deepseek-ai+cordis-plugin-loader@1.0.2/node_modules/@deepseek-ai/cordis/lib/types/fiber.d.ts","../../../node_modules/.pnpm/@deepseek-ai+cordis@4.0.1_@deepseek-ai+cordis-plugin-loader@1.0.2/node_modules/@deepseek-ai/cordis/lib/types/events.d.ts","../../../node_modules/.pnpm/@deepseek-ai+cordis@4.0.1_@deepseek-ai+cordis-plugin-loader@1.0.2/node_modules/@deepseek-ai/cordis/lib/types/logger.d.ts","../../../node_modules/.pnpm/@deepseek-ai+cordis@4.0.1_@deepseek-ai+cordis-plugin-loader@1.0.2/node_modules/@deepseek-ai/cordis/lib/types/context.d.ts","../../../node_modules/.pnpm/@deepseek-ai+cordis@4.0.1_@deepseek-ai+cordis-plugin-loader@1.0.2/node_modules/@deepseek-ai/cordis/lib/types/service.d.ts","../../../node_modules/.pnpm/@deepseek-ai+cordis@4.0.1_@deepseek-ai+cordis-plugin-loader@1.0.2/node_modules/@deepseek-ai/cordis/lib/types/index.d.ts","../../tool-runtime/dist/types.d.ts","../../tool-runtime/dist/errors.d.ts","../../tool-runtime/dist/artifacts.d.ts","../../tool-runtime/dist/capability.d.ts","../../tool-runtime/dist/carrier.d.ts","../../tool-runtime/dist/lease.d.ts","../../tool-runtime/dist/migration.d.ts","../../tool-runtime/dist/runtime.d.ts","../../tool-runtime/dist/snapshot.d.ts","../../tool-runtime/dist/timing.d.ts","../../tool-runtime/dist/transport.d.ts","../../tool-runtime/dist/index.d.ts","../../plugin/dist/capability.d.ts","../../../node_modules/.pnpm/@deepseek-ai+cordis-plugin-loader@1.0.2_patch_hash=6e77a3b82171afbdac249c0e31290cc06386_1a14a168fdebad14b739afc92f305e1c/node_modules/@deepseek-ai/cordis-plugin-loader/lib/types/internal.d.ts","../../../node_modules/.pnpm/@deepseek-ai+cordis-plugin-loader@1.0.2_patch_hash=6e77a3b82171afbdac249c0e31290cc06386_1a14a168fdebad14b739afc92f305e1c/node_modules/@deepseek-ai/cordis-plugin-loader/lib/types/config/tree.d.ts","../../../node_modules/.pnpm/@deepseek-ai+cordis-plugin-loader@1.0.2_patch_hash=6e77a3b82171afbdac249c0e31290cc06386_1a14a168fdebad14b739afc92f305e1c/node_modules/@deepseek-ai/cordis-plugin-loader/lib/types/config/group.d.ts","../../../node_modules/.pnpm/@deepseek-ai+cordis-plugin-loader@1.0.2_patch_hash=6e77a3b82171afbdac249c0e31290cc06386_1a14a168fdebad14b739afc92f305e1c/node_modules/@deepseek-ai/cordis-plugin-loader/lib/types/config/entry.d.ts","../../../node_modules/.pnpm/@deepseek-ai+cordis-plugin-loader@1.0.2_patch_hash=6e77a3b82171afbdac249c0e31290cc06386_1a14a168fdebad14b739afc92f305e1c/node_modules/@deepseek-ai/cordis-plugin-loader/lib/types/config/isolate.d.ts","../../../node_modules/.pnpm/@deepseek-ai+cordis-plugin-loader@1.0.2_patch_hash=6e77a3b82171afbdac249c0e31290cc06386_1a14a168fdebad14b739afc92f305e1c/node_modules/@deepseek-ai/cordis-plugin-loader/lib/types/config/utils.d.ts","../../../node_modules/.pnpm/@deepseek-ai+cordis-plugin-loader@1.0.2_patch_hash=6e77a3b82171afbdac249c0e31290cc06386_1a14a168fdebad14b739afc92f305e1c/node_modules/@deepseek-ai/cordis-plugin-loader/lib/types/index.d.ts","../../plugin/dist/tool-plugin.d.ts","../../plugin/dist/loader.d.ts","../../plugin/dist/index.d.ts","../../ecs/dist/plugin-service.d.ts","../../ecs/dist/index.d.ts","../../rhi/dist/errors.d.ts","../../rhi/dist/index.d.ts","../src/glyph-mesh-bake.ts","../src/tile-bits.ts","../src/tileset-decoder.ts","../src/video-element-provider.ts","../src/video-loader.ts","../src/video-player.ts","../src/video-player-system.ts","../src/index.ts","../../../node_modules/.pnpm/@vitest+pretty-format@4.0.18/node_modules/@vitest/pretty-format/dist/index.d.ts","../../../node_modules/.pnpm/@vitest+utils@4.0.18/node_modules/@vitest/utils/dist/display.d.ts","../../../node_modules/.pnpm/@vitest+utils@4.0.18/node_modules/@vitest/utils/dist/types.d.ts","../../../node_modules/.pnpm/@vitest+utils@4.0.18/node_modules/@vitest/utils/dist/helpers.d.ts","../../../node_modules/.pnpm/@vitest+utils@4.0.18/node_modules/@vitest/utils/dist/timers.d.ts","../../../node_modules/.pnpm/@vitest+utils@4.0.18/node_modules/@vitest/utils/dist/index.d.ts","../../../node_modules/.pnpm/@vitest+runner@4.0.18/node_modules/@vitest/runner/dist/tasks.d-C7UxawJ9.d.ts","../../../node_modules/.pnpm/@vitest+utils@4.0.18/node_modules/@vitest/utils/dist/types.d-BCElaP-c.d.ts","../../../node_modules/.pnpm/@vitest+utils@4.0.18/node_modules/@vitest/utils/dist/diff.d.ts","../../../node_modules/.pnpm/@vitest+runner@4.0.18/node_modules/@vitest/runner/dist/types.d.ts","../../../node_modules/.pnpm/@vitest+runner@4.0.18/node_modules/@vitest/runner/dist/index.d.ts","../../../node_modules/.pnpm/vitest@4.0.18_@types+node@20.19.40_@vitest+browser-playwright@4.0.18_jiti@1.21.7_jsdom@26.1.0_lightningcss@1.32.0/node_modules/vitest/dist/chunks/traces.d.402V_yFI.d.ts","../../../node_modules/.pnpm/vite@7.3.6_@types+node@20.19.40_jiti@1.21.7_lightningcss@1.32.0/node_modules/vite/types/hmrPayload.d.ts","../../../node_modules/.pnpm/vite@7.3.6_@types+node@20.19.40_jiti@1.21.7_lightningcss@1.32.0/node_modules/vite/dist/node/chunks/moduleRunnerTransport.d.ts","../../../node_modules/.pnpm/vite@7.3.6_@types+node@20.19.40_jiti@1.21.7_lightningcss@1.32.0/node_modules/vite/types/customEvent.d.ts","../../../node_modules/.pnpm/vite@7.3.6_@types+node@20.19.40_jiti@1.21.7_lightningcss@1.32.0/node_modules/vite/types/hot.d.ts","../../../node_modules/.pnpm/vite@7.3.6_@types+node@20.19.40_jiti@1.21.7_lightningcss@1.32.0/node_modules/vite/dist/node/module-runner.d.ts","../../../node_modules/.pnpm/@vitest+snapshot@4.0.18/node_modules/@vitest/snapshot/dist/environment.d-DHdQ1Csl.d.ts","../../../node_modules/.pnpm/@vitest+snapshot@4.0.18/node_modules/@vitest/snapshot/dist/rawSnapshot.d-lFsMJFUd.d.ts","../../../node_modules/.pnpm/@vitest+snapshot@4.0.18/node_modules/@vitest/snapshot/dist/index.d.ts","../../../node_modules/.pnpm/vitest@4.0.18_@types+node@20.19.40_@vitest+browser-playwright@4.0.18_jiti@1.21.7_jsdom@26.1.0_lightningcss@1.32.0/node_modules/vitest/dist/chunks/config.d.Cy95HiCx.d.ts","../../../node_modules/.pnpm/vitest@4.0.18_@types+node@20.19.40_@vitest+browser-playwright@4.0.18_jiti@1.21.7_jsdom@26.1.0_lightningcss@1.32.0/node_modules/vitest/dist/chunks/environment.d.CrsxCzP1.d.ts","../../../node_modules/.pnpm/vitest@4.0.18_@types+node@20.19.40_@vitest+browser-playwright@4.0.18_jiti@1.21.7_jsdom@26.1.0_lightningcss@1.32.0/node_modules/vitest/dist/chunks/rpc.d.RH3apGEf.d.ts","../../../node_modules/.pnpm/vitest@4.0.18_@types+node@20.19.40_@vitest+browser-playwright@4.0.18_jiti@1.21.7_jsdom@26.1.0_lightningcss@1.32.0/node_modules/vitest/dist/chunks/worker.d.Dyxm8DEL.d.ts","../../../node_modules/.pnpm/vitest@4.0.18_@types+node@20.19.40_@vitest+browser-playwright@4.0.18_jiti@1.21.7_jsdom@26.1.0_lightningcss@1.32.0/node_modules/vitest/dist/chunks/browser.d.ChKACdzH.d.ts","../../../node_modules/.pnpm/@vitest+spy@4.0.18/node_modules/@vitest/spy/dist/index.d.ts","../../../node_modules/.pnpm/tinyrainbow@3.1.0/node_modules/tinyrainbow/dist/index.d.ts","../../../node_modules/.pnpm/@types+deep-eql@4.0.2/node_modules/@types/deep-eql/index.d.ts","../../../node_modules/.pnpm/assertion-error@2.0.1/node_modules/assertion-error/index.d.ts","../../../node_modules/.pnpm/@types+chai@5.2.3/node_modules/@types/chai/index.d.ts","../../../node_modules/.pnpm/@vitest+expect@4.0.18/node_modules/@vitest/expect/dist/index.d.ts","../../../node_modules/.pnpm/@vitest+runner@4.0.18/node_modules/@vitest/runner/dist/utils.d.ts","../../../node_modules/.pnpm/tinybench@2.9.0/node_modules/tinybench/dist/index.d.ts","../../../node_modules/.pnpm/vitest@4.0.18_@types+node@20.19.40_@vitest+browser-playwright@4.0.18_jiti@1.21.7_jsdom@26.1.0_lightningcss@1.32.0/node_modules/vitest/dist/chunks/benchmark.d.DAaHLpsq.d.ts","../../../node_modules/.pnpm/vitest@4.0.18_@types+node@20.19.40_@vitest+browser-playwright@4.0.18_jiti@1.21.7_jsdom@26.1.0_lightningcss@1.32.0/node_modules/vitest/dist/chunks/global.d.B15mdLcR.d.ts","../../../node_modules/.pnpm/vitest@4.0.18_@types+node@20.19.40_@vitest+browser-playwright@4.0.18_jiti@1.21.7_jsdom@26.1.0_lightningcss@1.32.0/node_modules/vitest/dist/chunks/suite.d.BJWk38HB.d.ts","../../../node_modules/.pnpm/vitest@4.0.18_@types+node@20.19.40_@vitest+browser-playwright@4.0.18_jiti@1.21.7_jsdom@26.1.0_lightningcss@1.32.0/node_modules/vitest/dist/chunks/evaluatedModules.d.BxJ5omdx.d.ts","../../../node_modules/.pnpm/expect-type@1.3.0/node_modules/expect-type/dist/utils.d.ts","../../../node_modules/.pnpm/expect-type@1.3.0/node_modules/expect-type/dist/overloads.d.ts","../../../node_modules/.pnpm/expect-type@1.3.0/node_modules/expect-type/dist/branding.d.ts","../../../node_modules/.pnpm/expect-type@1.3.0/node_modules/expect-type/dist/messages.d.ts","../../../node_modules/.pnpm/expect-type@1.3.0/node_modules/expect-type/dist/index.d.ts","../../../node_modules/.pnpm/vitest@4.0.18_@types+node@20.19.40_@vitest+browser-playwright@4.0.18_jiti@1.21.7_jsdom@26.1.0_lightningcss@1.32.0/node_modules/vitest/dist/index.d.ts","../src/__tests__/tile-bits.test.ts","../src/__tests__/video-capability-backend-kind-owner.test-d.ts","../src/__tests__/video-capability-probe.unit.test.ts","../src/__tests__/video-player-component.unit.test.ts","../src/__tests__/video-player-multi-entity.unit.test.ts","../../../node_modules/.pnpm/@types+node@20.19.40/node_modules/@types/node/compatibility/disposable.d.ts","../../../node_modules/.pnpm/@types+node@20.19.40/node_modules/@types/node/compatibility/indexable.d.ts","../../../node_modules/.pnpm/@types+node@20.19.40/node_modules/@types/node/compatibility/iterators.d.ts","../../../node_modules/.pnpm/@types+node@20.19.40/node_modules/@types/node/compatibility/index.d.ts","../../../node_modules/.pnpm/@types+node@20.19.40/node_modules/@types/node/globals.typedarray.d.ts","../../../node_modules/.pnpm/@types+node@20.19.40/node_modules/@types/node/buffer.buffer.d.ts","../../../node_modules/.pnpm/@types+node@20.19.40/node_modules/@types/node/globals.d.ts","../../../node_modules/.pnpm/@types+node@20.19.40/node_modules/@types/node/web-globals/abortcontroller.d.ts","../../../node_modules/.pnpm/@types+node@20.19.40/node_modules/@types/node/web-globals/domexception.d.ts","../../../node_modules/.pnpm/@types+node@20.19.40/node_modules/@types/node/web-globals/events.d.ts","../../../node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/header.d.ts","../../../node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/readable.d.ts","../../../node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/file.d.ts","../../../node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/fetch.d.ts","../../../node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/formdata.d.ts","../../../node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/connector.d.ts","../../../node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/client.d.ts","../../../node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/errors.d.ts","../../../node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/dispatcher.d.ts","../../../node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/global-dispatcher.d.ts","../../../node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/global-origin.d.ts","../../../node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/pool-stats.d.ts","../../../node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/pool.d.ts","../../../node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/handlers.d.ts","../../../node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/balanced-pool.d.ts","../../../node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/agent.d.ts","../../../node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/mock-interceptor.d.ts","../../../node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/mock-agent.d.ts","../../../node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/mock-client.d.ts","../../../node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/mock-pool.d.ts","../../../node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/mock-errors.d.ts","../../../node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/proxy-agent.d.ts","../../../node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/env-http-proxy-agent.d.ts","../../../node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/retry-handler.d.ts","../../../node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/retry-agent.d.ts","../../../node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/api.d.ts","../../../node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/interceptors.d.ts","../../../node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/util.d.ts","../../../node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/cookies.d.ts","../../../node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/patch.d.ts","../../../node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/websocket.d.ts","../../../node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/eventsource.d.ts","../../../node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/filereader.d.ts","../../../node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/diagnostics-channel.d.ts","../../../node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/content-type.d.ts","../../../node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/cache.d.ts","../../../node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/index.d.ts","../../../node_modules/.pnpm/@types+node@20.19.40/node_modules/@types/node/web-globals/fetch.d.ts","../../../node_modules/.pnpm/@types+node@20.19.40/node_modules/@types/node/assert.d.ts","../../../node_modules/.pnpm/@types+node@20.19.40/node_modules/@types/node/assert/strict.d.ts","../../../node_modules/.pnpm/@types+node@20.19.40/node_modules/@types/node/async_hooks.d.ts","../../../node_modules/.pnpm/@types+node@20.19.40/node_modules/@types/node/buffer.d.ts","../../../node_modules/.pnpm/@types+node@20.19.40/node_modules/@types/node/child_process.d.ts","../../../node_modules/.pnpm/@types+node@20.19.40/node_modules/@types/node/cluster.d.ts","../../../node_modules/.pnpm/@types+node@20.19.40/node_modules/@types/node/console.d.ts","../../../node_modules/.pnpm/@types+node@20.19.40/node_modules/@types/node/constants.d.ts","../../../node_modules/.pnpm/@types+node@20.19.40/node_modules/@types/node/crypto.d.ts","../../../node_modules/.pnpm/@types+node@20.19.40/node_modules/@types/node/dgram.d.ts","../../../node_modules/.pnpm/@types+node@20.19.40/node_modules/@types/node/diagnostics_channel.d.ts","../../../node_modules/.pnpm/@types+node@20.19.40/node_modules/@types/node/dns.d.ts","../../../node_modules/.pnpm/@types+node@20.19.40/node_modules/@types/node/dns/promises.d.ts","../../../node_modules/.pnpm/@types+node@20.19.40/node_modules/@types/node/domain.d.ts","../../../node_modules/.pnpm/@types+node@20.19.40/node_modules/@types/node/events.d.ts","../../../node_modules/.pnpm/@types+node@20.19.40/node_modules/@types/node/fs.d.ts","../../../node_modules/.pnpm/@types+node@20.19.40/node_modules/@types/node/fs/promises.d.ts","../../../node_modules/.pnpm/@types+node@20.19.40/node_modules/@types/node/http.d.ts","../../../node_modules/.pnpm/@types+node@20.19.40/node_modules/@types/node/http2.d.ts","../../../node_modules/.pnpm/@types+node@20.19.40/node_modules/@types/node/https.d.ts","../../../node_modules/.pnpm/@types+node@20.19.40/node_modules/@types/node/inspector.generated.d.ts","../../../node_modules/.pnpm/@types+node@20.19.40/node_modules/@types/node/module.d.ts","../../../node_modules/.pnpm/@types+node@20.19.40/node_modules/@types/node/net.d.ts","../../../node_modules/.pnpm/@types+node@20.19.40/node_modules/@types/node/os.d.ts","../../../node_modules/.pnpm/@types+node@20.19.40/node_modules/@types/node/path.d.ts","../../../node_modules/.pnpm/@types+node@20.19.40/node_modules/@types/node/perf_hooks.d.ts","../../../node_modules/.pnpm/@types+node@20.19.40/node_modules/@types/node/process.d.ts","../../../node_modules/.pnpm/@types+node@20.19.40/node_modules/@types/node/punycode.d.ts","../../../node_modules/.pnpm/@types+node@20.19.40/node_modules/@types/node/querystring.d.ts","../../../node_modules/.pnpm/@types+node@20.19.40/node_modules/@types/node/readline.d.ts","../../../node_modules/.pnpm/@types+node@20.19.40/node_modules/@types/node/readline/promises.d.ts","../../../node_modules/.pnpm/@types+node@20.19.40/node_modules/@types/node/repl.d.ts","../../../node_modules/.pnpm/@types+node@20.19.40/node_modules/@types/node/sea.d.ts","../../../node_modules/.pnpm/@types+node@20.19.40/node_modules/@types/node/stream.d.ts","../../../node_modules/.pnpm/@types+node@20.19.40/node_modules/@types/node/stream/promises.d.ts","../../../node_modules/.pnpm/@types+node@20.19.40/node_modules/@types/node/stream/consumers.d.ts","../../../node_modules/.pnpm/@types+node@20.19.40/node_modules/@types/node/stream/web.d.ts","../../../node_modules/.pnpm/@types+node@20.19.40/node_modules/@types/node/string_decoder.d.ts","../../../node_modules/.pnpm/@types+node@20.19.40/node_modules/@types/node/test.d.ts","../../../node_modules/.pnpm/@types+node@20.19.40/node_modules/@types/node/timers.d.ts","../../../node_modules/.pnpm/@types+node@20.19.40/node_modules/@types/node/timers/promises.d.ts","../../../node_modules/.pnpm/@types+node@20.19.40/node_modules/@types/node/tls.d.ts","../../../node_modules/.pnpm/@types+node@20.19.40/node_modules/@types/node/trace_events.d.ts","../../../node_modules/.pnpm/@types+node@20.19.40/node_modules/@types/node/tty.d.ts","../../../node_modules/.pnpm/@types+node@20.19.40/node_modules/@types/node/url.d.ts","../../../node_modules/.pnpm/@types+node@20.19.40/node_modules/@types/node/util.d.ts","../../../node_modules/.pnpm/@types+node@20.19.40/node_modules/@types/node/v8.d.ts","../../../node_modules/.pnpm/@types+node@20.19.40/node_modules/@types/node/vm.d.ts","../../../node_modules/.pnpm/@types+node@20.19.40/node_modules/@types/node/wasi.d.ts","../../../node_modules/.pnpm/@types+node@20.19.40/node_modules/@types/node/worker_threads.d.ts","../../../node_modules/.pnpm/@types+node@20.19.40/node_modules/@types/node/zlib.d.ts","../../../node_modules/.pnpm/@types+node@20.19.40/node_modules/@types/node/index.d.ts"],"fileIdsList":[[153,168,169,173,176,242,288],[153,168,170,171,173,176,242,288],[143,153,170,171,173,176,242,288],[143,153,169,170,171,173,176,242,288],[242,288],[143,153,167,168,169,170,171,172,173,176,242,288],[143,242,288,306],[143,145,146,147,148,149,150,242,288],[143,146,147,148,149,150,151,242,288],[143,144,145,146,147,148,149,150,151,242,288],[145,146,147,148,149,150,151,152,242,288],[145,146,147,148,149,150,151,242,288],[153,173,176,242,288],[138,139,140,141,142,242,288],[216,217,242,288],[242,285,288],[242,287,288],[288],[242,288,293,321],[242,288,289,294,299,307,318,329],[242,288,289,290,299,307],[237,238,239,242,288],[242,288,291,330],[242,288,292,293,300,308],[242,288,293,318,326],[242,288,294,296,299,307],[242,287,288,295],[242,288,296,297],[242,288,298,299],[242,287,288,299],[242,288,299,300,301,318,329],[242,288,299,300,301,314,318,321],[242,288,296,299,302,307,318,329],[242,288,299,300,302,303,307,318,326,329],[242,288,302,304,318,326,329],[240,241,242,243,244,245,246,284,285,286,287,288,289,290,291,292,293,294,295,296,297,298,299,300,301,302,303,304,305,306,307,308,309,310,311,312,313,314,315,316,317,318,319,320,321,322,323,324,325,326,327,328,329,330,331,332,333,334,335],[242,288,299,305],[242,288,306,329,334],[242,288,296,299,307,318],[242,288,308],[242,288,309],[242,287,288,310],[242,285,286,287,288,289,290,291,292,293,294,295,296,297,298,299,300,301,302,303,304,305,306,307,308,309,310,311,312,313,314,315,316,317,318,319,320,321,322,323,324,325,326,327,328,329,330,331,332,333,334,335],[242,288,312],[242,288,313],[242,288,299,314,315],[242,288,314,316,330,332],[242,288,299,318,319,321],[242,288,320,321],[242,288,318,319],[242,288,321],[242,288,322],[242,285,288,318,323],[242,288,299,324,325],[242,288,324,325],[242,288,293,307,318,326],[242,288,327],[242,288,307,328],[242,288,302,313,329],[242,288,293,330],[242,288,318,331],[242,288,306,332],[242,288,333],[242,283,288],[242,283,288,299,301,310,318,321,329,332,334],[242,288,318,335],[144,190,194,197,199,214,215,218,223,242,288],[194,195,197,198,242,288],[194,242,288],[194,195,197,242,288],[194,195,242,288],[189,206,207,242,288],[189,206,242,288],[189,196,242,288],[189,242,288],[191,242,288],[189,190,191,192,193,242,288],[226,227,242,288],[226,227,228,229,242,288],[226,228,242,288],[226,242,288],[242,255,259,288,329],[242,255,288,318,329],[242,250,288],[242,252,255,288,326,329],[242,288,307,326],[242,288,336],[242,250,288,336],[242,252,255,288,307,329],[242,247,248,251,254,288,299,318,329],[242,255,262,288],[242,247,253,288],[242,255,276,277,288],[242,251,255,288,321,329,336],[242,276,288,336],[242,249,250,288,336],[242,255,288],[242,249,250,251,252,253,254,255,256,257,259,260,261,262,263,264,265,266,267,268,269,270,271,272,273,274,275,277,278,279,280,281,282,288],[242,255,270,288],[242,255,262,263,288],[242,253,255,263,264,288],[242,254,288],[242,247,250,255,288],[242,255,259,263,264,288],[242,259,288],[242,253,255,258,288,329],[242,247,252,255,262,288],[242,288,318],[242,250,255,276,288,334,336],[201,242,288],[201,202,203,204,242,288],[203,242,288],[199,220,221,223,242,288],[199,200,212,223,242,288],[189,197,199,208,223,242,288],[205,242,288],[189,199,208,211,219,222,223,242,288],[199,200,205,208,223,242,288],[199,220,221,222,223,242,288],[199,205,209,210,211,223,242,288],[189,194,197,199,200,205,208,209,210,211,212,213,214,219,220,221,222,223,224,225,230,242,288],[78,113,116,122,133,137,242,288],[116,242,288],[78,113,114,115,242,288],[118,119,120,121,136,242,288],[123,132,135,242,288],[113,115,116,117,123,124,125,131,132,133,134,135,137,177,242,288],[133,176,177,242,288],[78,113,116,122,137,242,288],[113,116,242,288],[78,116,123,132,133,134,137,242,288],[78,137,242,288],[116,127,128,130,242,288],[116,127,242,288],[113,116,126,127,129,242,288],[113,114,116,130,242,288],[113,242,288],[78,113,116,122,123,124,125,130,131,132,135,136,137,242,288],[78,242,288],[78,104,242,288],[78,79,80,81,82,83,84,105,106,107,108,109,110,242,288],[182,231,242,288],[180,187,231,242,288],[185,187,231,242,288,300,329],[78,178,186,231,242,288],[78,111,242,288],[78,111,112,178,180,242,288],[112,181,182,183,184,185,186,187,242,288],[78,178,242,288],[180,242,288],[178,242,288],[85,86,242,288],[85,242,288],[85,87,242,288],[85,88,242,288],[85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,242,288],[85,86,87,242,288],[153,165,173,176,242,288],[153,166,173,174,175,176,242,288],[153,165,166,173,174,176,242,288],[78,179,242,288],[154,155,242,288],[154,242,288],[154,155,156,157,158,159,160,161,162,163,164,242,288],[154,158,242,288],[61,62,64,242,288],[61,62,64,78,242,288],[63,242,288],[62,64,73,242,288],[61,73,74,75,78,242,288],[60,61,62,64,66,67,68,69,72,73,74,75,76,77,242,288],[65,78,242,288],[66,242,288],[65,66,70,71,242,288],[62,66,70,242,288],[73,74,242,288]],"fileInfos":[{"version":"bcd24271a113971ba9eb71ff8cb01bc6b0f872a85c23fdbe5d93065b375933cd","affectsGlobalScope":true,"impliedFormat":1},{"version":"3f88bedbeb09c6f5a6645cb24c7c55f1aa22d19ae96c8e6959cbd8b85a707bc6","impliedFormat":1},{"version":"7fe93b39b810eadd916be8db880dd7f0f7012a5cc6ffb62de8f62a2117fa6f1f","impliedFormat":1},{"version":"bb0074cc08b84a2374af33d8bf044b80851ccc9e719a5e202eacf40db2c31600","impliedFormat":1},{"version":"1a7daebe4f45fb03d9ec53d60008fbf9ac45a697fdc89e4ce218bc94b94f94d6","impliedFormat":1},{"version":"f94b133a3cb14a288803be545ac2683e0d0ff6661bcd37e31aaaec54fc382aed","impliedFormat":1},{"version":"f59d0650799f8782fd74cf73c19223730c6d1b9198671b1c5b3a38e1188b5953","impliedFormat":1},{"version":"8a15b4607d9a499e2dbeed9ec0d3c0d7372c850b2d5f1fb259e8f6d41d468a84","impliedFormat":1},{"version":"26e0fe14baee4e127f4365d1ae0b276f400562e45e19e35fd2d4c296684715e6","impliedFormat":1},{"version":"d6b1eba8496bdd0eed6fc8a685768fe01b2da4a0388b5fe7df558290bffcf32f","affectsGlobalScope":true,"impliedFormat":1},{"version":"7f57fc4404ff020bc45b9c620aff2b40f700b95fe31164024c453a5e3c163c54","impliedFormat":1},{"version":"eadcffda2aa84802c73938e589b9e58248d74c59cb7fcbca6474e3435ac15504","affectsGlobalScope":true,"impliedFormat":1},{"version":"105ba8ff7ba746404fe1a2e189d1d3d2e0eb29a08c18dded791af02f29fb4711","affectsGlobalScope":true,"impliedFormat":1},{"version":"00343ca5b2e3d48fa5df1db6e32ea2a59afab09590274a6cccb1dbae82e60c7c","affectsGlobalScope":true,"impliedFormat":1},{"version":"ebd9f816d4002697cb2864bea1f0b70a103124e18a8cd9645eeccc09bdf80ab4","affectsGlobalScope":true,"impliedFormat":1},{"version":"2c1afac30a01772cd2a9a298a7ce7706b5892e447bb46bdbeef720f7b5da77ad","affectsGlobalScope":true,"impliedFormat":1},{"version":"7b0225f483e4fa685625ebe43dd584bb7973bbd84e66a6ba7bbe175ee1048b4f","affectsGlobalScope":true,"impliedFormat":1},{"version":"c0a4b8ac6ce74679c1da2b3795296f5896e31c38e888469a8e0f99dc3305de60","affectsGlobalScope":true,"impliedFormat":1},{"version":"3084a7b5f569088e0146533a00830e206565de65cae2239509168b11434cd84f","affectsGlobalScope":true,"impliedFormat":1},{"version":"c5079c53f0f141a0698faa903e76cb41cd664e3efb01cc17a5c46ec2eb0bef42","affectsGlobalScope":true,"impliedFormat":1},{"version":"32cafbc484dea6b0ab62cf8473182bbcb23020d70845b406f80b7526f38ae862","affectsGlobalScope":true,"impliedFormat":1},{"version":"fca4cdcb6d6c5ef18a869003d02c9f0fd95df8cfaf6eb431cd3376bc034cad36","affectsGlobalScope":true,"impliedFormat":1},{"version":"b93ec88115de9a9dc1b602291b85baf825c85666bf25985cc5f698073892b467","affectsGlobalScope":true,"impliedFormat":1},{"version":"f5c06dcc3fe849fcb297c247865a161f995cc29de7aa823afdd75aaaddc1419b","affectsGlobalScope":true,"impliedFormat":1},{"version":"b77e16112127a4b169ef0b8c3a4d730edf459c5f25fe52d5e436a6919206c4d7","affectsGlobalScope":true,"impliedFormat":1},{"version":"fbffd9337146eff822c7c00acbb78b01ea7ea23987f6c961eba689349e744f8c","affectsGlobalScope":true,"impliedFormat":1},{"version":"a995c0e49b721312f74fdfb89e4ba29bd9824c770bbb4021d74d2bf560e4c6bd","affectsGlobalScope":true,"impliedFormat":1},{"version":"c7b3542146734342e440a84b213384bfa188835537ddbda50d30766f0593aff9","affectsGlobalScope":true,"impliedFormat":1},{"version":"ce6180fa19b1cccd07ee7f7dbb9a367ac19c0ed160573e4686425060b6df7f57","affectsGlobalScope":true,"impliedFormat":1},{"version":"3f02e2476bccb9dbe21280d6090f0df17d2f66b74711489415a8aa4df73c9675","affectsGlobalScope":true,"impliedFormat":1},{"version":"45e3ab34c1c013c8ab2dc1ba4c80c780744b13b5676800ae2e3be27ae862c40c","affectsGlobalScope":true,"impliedFormat":1},{"version":"805c86f6cca8d7702a62a844856dbaa2a3fd2abef0536e65d48732441dde5b5b","affectsGlobalScope":true,"impliedFormat":1},{"version":"e42e397f1a5a77994f0185fd1466520691456c772d06bf843e5084ceb879a0ad","affectsGlobalScope":true,"impliedFormat":1},{"version":"f4c2b41f90c95b1c532ecc874bd3c111865793b23aebcc1c3cbbabcd5d76ffb0","affectsGlobalScope":true,"impliedFormat":1},{"version":"ab26191cfad5b66afa11b8bf935ef1cd88fabfcb28d30b2dfa6fad877d050332","affectsGlobalScope":true,"impliedFormat":1},{"version":"2088bc26531e38fb05eedac2951480db5309f6be3fa4a08d2221abb0f5b4200d","affectsGlobalScope":true,"impliedFormat":1},{"version":"cb9d366c425fea79716a8fb3af0d78e6b22ebbab3bd64d25063b42dc9f531c1e","affectsGlobalScope":true,"impliedFormat":1},{"version":"500934a8089c26d57ebdb688fc9757389bb6207a3c8f0674d68efa900d2abb34","affectsGlobalScope":true,"impliedFormat":1},{"version":"689da16f46e647cef0d64b0def88910e818a5877ca5379ede156ca3afb780ac3","affectsGlobalScope":true,"impliedFormat":1},{"version":"bc21cc8b6fee4f4c2440d08035b7ea3c06b3511314c8bab6bef7a92de58a2593","affectsGlobalScope":true,"impliedFormat":1},{"version":"7ca53d13d2957003abb47922a71866ba7cb2068f8d154877c596d63c359fed25","affectsGlobalScope":true,"impliedFormat":1},{"version":"54725f8c4df3d900cb4dac84b64689ce29548da0b4e9b7c2de61d41c79293611","affectsGlobalScope":true,"impliedFormat":1},{"version":"e5594bc3076ac29e6c1ebda77939bc4c8833de72f654b6e376862c0473199323","affectsGlobalScope":true,"impliedFormat":1},{"version":"2f3eb332c2d73e729f3364fcc0c2b375e72a121e8157d25a82d67a138c83a95c","affectsGlobalScope":true,"impliedFormat":1},{"version":"6f4427f9642ce8d500970e4e69d1397f64072ab73b97e476b4002a646ac743b1","affectsGlobalScope":true,"impliedFormat":1},{"version":"48915f327cd1dea4d7bd358d9dc7732f58f9e1626a29cc0c05c8c692419d9bb7","affectsGlobalScope":true,"impliedFormat":1},{"version":"b7bf9377723203b5a6a4b920164df22d56a43f593269ba6ae1fdc97774b68855","affectsGlobalScope":true,"impliedFormat":1},{"version":"db9709688f82c9e5f65a119c64d835f906efe5f559d08b11642d56eb85b79357","affectsGlobalScope":true,"impliedFormat":1},{"version":"4b25b8c874acd1a4cf8444c3617e037d444d19080ac9f634b405583fd10ce1f7","affectsGlobalScope":true,"impliedFormat":1},{"version":"37be57d7c90cf1f8112ee2636a068d8fd181289f82b744160ec56a7dc158a9f5","affectsGlobalScope":true,"impliedFormat":1},{"version":"a917a49ac94cd26b754ab84e113369a75d1a47a710661d7cd25e961cc797065f","affectsGlobalScope":true,"impliedFormat":1},{"version":"6d3261badeb7843d157ef3e6f5d1427d0eeb0af0cf9df84a62cfd29fd47ac86e","affectsGlobalScope":true,"impliedFormat":1},{"version":"195daca651dde22f2167ac0d0a05e215308119a3100f5e6268e8317d05a92526","affectsGlobalScope":true,"impliedFormat":1},{"version":"8b11e4285cd2bb164a4dc09248bdec69e9842517db4ca47c1ba913011e44ff2f","affectsGlobalScope":true,"impliedFormat":1},{"version":"0508571a52475e245b02bc50fa1394065a0a3d05277fbf5120c3784b85651799","affectsGlobalScope":true,"impliedFormat":1},{"version":"8f9af488f510c3015af3cc8c267a9e9d96c4dd38a1fdff0e11dc5a544711415b","affectsGlobalScope":true,"impliedFormat":1},{"version":"fc611fea8d30ea72c6bbfb599c9b4d393ce22e2f5bfef2172534781e7d138104","affectsGlobalScope":true,"impliedFormat":1},{"version":"1ce14b81c5cc821994aa8ec1d42b220dd41b27fcc06373bce3958af7421b77d4","affectsGlobalScope":true,"impliedFormat":1},{"version":"b3a048b3e9302ef9a34ef4ebb9aecfb28b66abb3bce577206a79fee559c230da","affectsGlobalScope":true,"impliedFormat":1},"89fe170d9a59f81cd9a9d95de3278f108ff91491810b2529cc0ffb502a57b6c0","0b4928041c807c01b33b1fa028236df635c52f7acff5a40f2c2d0d677b53428b","5ad2e5b8b17893d0eb1f11a1b6e8c03b17344be03a6a72a624cd38ab05fe4d5c","6a1e553079e654a1771463e9eeb98ea4f7bb4b6417a5237d4fdf9b546d49647f","7f11be86b9ac5c2cd5127cd9d40ccc7694c58868a3157692a153d452fc171525","6e3488ee1183ea915eb43f08aebc5f75e30be25aef1f678d1965324bdd7506e1","bc2f20caa6ccca429df0bf6a6f21506c4b00f9b171fdc3a4b6ada1775252db31","a318d8734523d9e750681e7b8e685ef817d4049c5612451f4e849da8b2b572a9","8b52dd8be86f44f871db89a6c1f77f7585688d53141ff55b6c5fac3eb67b1241","beae2d03867dde9fdf8da461c7e7e84da71612842422d4b482ab1c2a15fe6b12","080e7748d9754ccaea8debbc933552c7976c1ef588f9642a6f07e5a4d139d43b","51342c51a9090c0bc8bae60c5ec1a0f46d6d44db84392f12a8cd46e6d8a9f617","ae777307a0baeb9b5d7ba18e6a029a54eb0b612b1491591dcedb020cc8d36f97","d7ba738e316b7baed10ca49cc156b57b8c973b747bec6612e62a925e9f7f33a4","1d5292578fcf0329a43ef19fe2481d7d1cde75e75610019a7897c70dcfff0b31","459b3765e622008ed590474ae6b61ab55107a7b9529a28d05087a6fef51d7248","e1f11ad703121f97a74001059d054aba25c9c4662af44da05ead0a247fe18742","d9c64d02dfe3a9c74da35fdbcc645cf4e8d4ca0f4162ec312de51474103ac3a7","f4fbd89956010d9d27d3bbc562f0e5e00d374ba03a3f3bb11bcc94f5505bc3d2","4372dbf48082f6bea4883adefacd07184e396cf14a887077754c76b6d170832b","73dcf07a05ea1d7c2f0a60af30d86707faca44c41f2529c4b45612b91ffc7687","804b00d16aa40f4ee5603e3f30add96f6d3d4e06c841006be8832b148f40e066","03d7eafecd31716c9b3072d96bc167c23493beb06810dc9913ef91c41322491f","957dcae78ebc64252ca038f73f90908dd1ce74c18f5e6a1c6141daa10ea7514b","7cedcad44a368bec24e281e8ec7924ddf3eeabca9076f88cd1f7effa2119ba2f","728cc7c21f319d38b1dafdbdf1258350b675055a3fb61ae1a7c34562c58b8557","d474818de812636654d86a3f0f6f3b8f6ae725b5487f344a5d3a32decd68311f","87cb945db71dbb2cceac65375b84cc0c55bfe70a749b11e55b59a40df53503f6","dcadfb7e3411bb19e717855d891658f3d71c065248d25f09e027e4a6cdfa0e9f","1c3f1fae8db7ce0bb537e509ceb0243892e68a3b6e66ab1245c15932be41d037","b3b63929f7475d02520bde84913450bf633e86f6a5d51fcc13e95376ec3483a6","11fbb66f203aa1855d34dbb3d835879a75924cae9f08eb16997318fed41f9078","56d65795b8f53c0f68d66369fc42fb8f79f669f868fc8eda2f634297c47b156f","a35dc82e5a7955568d2883e308e7a3e138961dd3b40956b22fccd415dd307e4a","a10051e664b2713d31f07db5fdd71d0854732e57429cbfa00ebb329e89a27981","3cb9e3f85ef9f989394133fe2e4ef4f39da5578fe583124fc0cbb00474b471e8","8bbc25b37d24570dffba7209cb9e427a63c7eeed18412af5e57c450a37d6c059","27d3d1f171d4b7b86bdf1c352f22319c0915b17cfd919deb070bef13510a33a2","40a12a4c54a6564f2c1547a10bcafc9210fce809dc57d2a7815c918972f48895","a8f81f646b1bd12b6b0758d1f97cc6d26646d5ac72d92362cb3b340271589e8f","05d6d9fbf9c8fbb9fa36b4e0ad91292e57f6a9233dc407875d0fb06cdfd59bda","d08b909fffadfa1dece31aa587aca1c34782cafd9294c5c8b66cbab2aa897719","a49e93ed1861aa2493d363f26ee826ab71c7105b20c85cf8bd26bbb4e0b32cd6","9aca2738b7400d1d8c2d009ec6cbbaf3204e6413219edc962cea5bb6ef50db10","f23fc64dfc9c3e5b718eca7f1fdb0640d5c1f5c8993a599e66ce73ab33502036","3b0b4bf9fc2e55841f05e4848fb8648c3bec8fb093ef14a03cf45fd21bbe62ba","a5195ccfbf5fa6571979aefc0b074d610834cc243ed009e92667fec6dd7cee14","982b6d38664394a62e02cfca6f852d01797b330ac68a75c93bdd23fd9ebea1a4","d3b48b0f38857e31bc7b8ebad9d55dfb530175890bb84e1ee5625264f15ecc0a","74e0442194fad61b84f8320b7a5aac602bde3cf41d8685a322af0af86f467f12","9665442bd70f0ee75c5e68400bb312e62a210e24a24e5fcedc15095456c51033","b2ab882884fbbac86759aef507cc42bf39d415aa221398cf7100d36b9b69c570",{"version":"628af60512a1a310cc55d3325966d74b54289e4bc29e7ee382d48335d649030a","signature":"958f381419846f2798b8764278d852f1f4fe1336d369c40795c9824fb14bac36"},"b866405af1564f0690ea323f070c87509bfeb2ba8afa7c49c255dbe13c176bf8","ce648e4449eb59292b997226148647ce9ca22bc9ff9062959f5f1fe6bfe06cd8","ce3d7045ddbf0f8c968829a4e32d5064af66cba795f8c8490afec9eb677a4f45","6192bdb56ca09fde8176590331c36f3eec2fd5fb3ad7dd7401727efb2398d7fb","0810b73622b33b91f89f5d0f8b1fc0b92841e6b751a84d2c005508c563748d16","9a1b69540b9533e337c81d470724ebb054a15b994a11b759a969367b28e81368","854cbb22c44beb0fe44a46f5428521a27e8b9fb645e6ce803a5622ff44ec74ce","dd6776bc5480997847e4d3c495951de5f0401667e1880b6176f57584c49aa401","21f4110077118497558bb4ca8462c9cd1dfd391e6c1608bcac4b437a4ed77d7d","2278fcff8ca72dc791b3907ac363bd7370ec04e38653827c14c5dbd3fc99e335","ee7cd212dd2cfef9efd135a36a577fa35cb4af99f7e6fd3023cc9d2f7c6f438b","0bc016e4da8853d924fbfde9820db77121de75539641d02012232396b09e7dd6","6647e4b21b341f971ef92cbdbeaee6a42d77b291a43cdc73b970b2ad505bb912","2f9485d1b731e3d1d373c2a2a20e3ad41b55616b9fa13bf261d2a058cd23149b","d9df407e562a322f63c0cc3f1bcea9c1cbec38d0c92b3f49169291f22374cb6c","ba9d80c5b60b7708524491768da7d44a796042529ed945678f45356beb2504f9","7689fbecdcdb8f32296c94fe5cf5edef16a9db673d696a2aaa40ad54470e5965","2c2b0520a51bf2f420ec605fa5e327ea7d96732cc97a373c167e12ad71dda21f","5f15c8ce469d7e9da71f9ca502370c454eb29629d6c2e548fa722d00700dfb46","ce5251c882968a3ce8fc6c2e3b2c3b739a740f614eebf066b73e8ee7c5dc4f63","33652e868da0fef68b0f8622283a014fe66a21e409f4000e77778d9dc3edc8af","8f373e06438a141f82616c5e0b171e0bf613cc95aa1e6b8b41a8ae520dd2948e","5c9cf44d7fea3b0c9876102abc143967f2e7015dd0a89edcbe28a49906621206","6db8a395b3c5f988123adb6cc84b6410a82a060c4acde2491012b9b44b32b300","28d3e288a396ce5654f673fc8bc2330edb14e52dd33d75a3e999ecf68197de1a",{"version":"fb6f2007d60e8b519a2ef0c5a27026ddfe06418ae6261c4eb0cb670cca5e1bc2","impliedFormat":99},{"version":"a48f1b69ec0b94b16c7ece2cf6d6003cc8d0c329538117c1c364d8525a100850","impliedFormat":99},{"version":"cd5713ac354e4869fdf837e12d24d3ae14fd9d94a5bb2d340df63b899b74e6ca","impliedFormat":99},{"version":"56210599298d6eca6285eab99c7e9333d7e275c3a73a7f401b3055e8d55c67e8","impliedFormat":99},{"version":"2845576622e416da9871e1f3c788ba41dc4f24eb764362b10eceeb0dbaa67208","impliedFormat":99},{"version":"f0421e04e2a5238754cf444bf2a56fe7e7a94a08c14c1f9d063ff51c85825823","impliedFormat":99},{"version":"bdd14f07b4eca0b4b5203b85b8dbc4d084c749fa590bee5ea613e1641dcd3b29","impliedFormat":99},{"version":"967b227fad024ba8a7c32127534089bce5adc800840b0288f44d41c4c849278e","impliedFormat":99},{"version":"ffd229492af3cb444c01e8e51a78dfdbed670940bac40dde083675d57d6984fc","impliedFormat":99},{"version":"57cdef8252cb041b4b646cc9e80dcb27d2180bb78fcf95761136d99be4079cb3","impliedFormat":99},{"version":"eb5fd8d19b0330da4dccb6cab3eae0304f056ac8fbd5bd9589ce48f0920bff78","impliedFormat":99},{"version":"db565a086622cbe616a950186dc90e82a74060864b9cd1d0f25285860daea9b4","impliedFormat":99},{"version":"71087395cc862f52662ab2629a0f3838f8f2aaf84eb40c97f4f4004f2fcbbed6","impliedFormat":99},{"version":"1e2e6cfcab26ae01d7f2dd1f78a1d25ddb7f3b2e27f50c9eb3b54ee206a87884","impliedFormat":99},{"version":"489ec23ef8dc0e869cf3d8d77a39ba83ab24e5e71362320f5662491b3dc5bd04","impliedFormat":99},{"version":"c93dd79fae382105510c69cc8eef95a96c8c43e50b47e16efa98a3f9e76f304b","impliedFormat":99},"4a5b020726455dd70acdf34ccc435273e6333cbb1a3ff08b6c451148c61b21fd","eb4d76417ff2ac49726b2efaf83e5b9924f7040151293d092e1ba38905479a02","3bae912eb95706a507e668cdfe378bb612c81b46323aae337689fabc00c3ae29","129aaa58f8b8ed74d8ef3ab03d3219f1b5a7b2902c4e111e080abdaf043686ef","c0a9cb9a3fe662b66cf598c1e2e6bc799b423699b81249bb62586acbc817b1e7","7d3bbcb2ef65e80202188d77d2e06f30c5d5d2603ca49cde35a6b298565247e9","f90ae41777b29281dcd4aa3fafb9d84c6b328860d639114a8c3fcf36beb23817","eadfe727983087acea4f17095671faba65ba5233acaed7213f140269d4528c9a","6bbe3b367d76debfa83ec26a13d0013f8dad891cddd8909a1fbdcdb719b064d9","9fec96292881b3ee00f9b34d757887223221db25d0fb534b521743e9be298d9f","fbd59a37ab9b1a3a21f2e968b539f91453e560507d9e92748f0623f7118306be","92523b7353d096bd2464e1611035b284803894aa952541021922567dfe9f15aa","49ca23a8e2de57d49da1b5b5aa2f0e0d341b4230a899efe1a6078d3779e2ea53",{"version":"be53d0833468d1d4de05770f4af2d3ec465b7ef5d5181b748997a02bf362ebd0","impliedFormat":99},{"version":"4920f950330f6a8a00a084beb7998de838a15cd54f5c774962b75614c15f8bed","impliedFormat":99},{"version":"e892ea4cf5fc5e5ab078f265c617efa3ab44a1cbd477f91fd29a27698c45eb77","impliedFormat":99},{"version":"6a33bd0416049803becacbdccd852c02f342eedce7dea12956d1176966269eeb","impliedFormat":99},{"version":"f74c6749e3944913d8002c1dd30523c520de426e9113d47b6730565318349154","impliedFormat":99},{"version":"ac5d5fd3358d3f7491400869278ea288df297b4fbc1ba035c7fd09c8df822358","impliedFormat":99},{"version":"0ce13f49afeb385ad05698a5420580c7381d758779b730c1992be7386578e1e7","impliedFormat":99},"8fa74a106f75c2eed4b65fa571e4e9b78e9a3a68f65b6c70261e87f7f47b931d","d82719b8e8a552f66dea370df85e00f9473537bb9c35dcb711d7f48cb5e707cd","a3c435d1e1eb110bb7382103c522bf44e9abb8b6883a493360fc5859db0aee10","1487f3b04d5e9ed9c5d823ff91bedbd7a8ce7a4c44b7ef16fa64a2d930a731e9","18dfdac2f4092e68e453e7a9da3d0e800e597e82fa567c49c2c7bb4c4dfb26ff","8d6101c60d99ac57af23b947db35bedaa5580f2e7ae126c5b39841aa423cd242","28361b3472a80a6249aa6db3122c2ebe8a24be0310c071e64b79cd1cd3c2f297",{"version":"1a3389c461cac120c2773a294ae33bc305127c072c31230f97d9f47b0d963f61","signature":"989427c8e330282c0cae8e1a6251dbafa80a68181deaf73df97f5f5313f05c4f"},{"version":"07adde27e17662101033ee9d2e7ebd9566cfc5294d6487e320380133d2210934","signature":"0def390b5e29be5be042a7de256bdb8e4cb6eb8c6e504b43e605803ae9434d84"},{"version":"70b58b40cd61f803bc17379c1233f23fcb3f8bdfc5a91b7cdac093071ab268f1","signature":"25402f1d7b5ed8ddd03f9a6cb23f418620906ea1d7b39018cc668523aa84b459"},{"version":"b634cfc24e63ead9e663f3ab377959115e5209c4564aaeb505e3debec4a1886d","signature":"914796adcff68dee6aa7a3053d49df9b1f3f9d7bc14fd262b195005f2957c795"},{"version":"e328256b317d1c6d841ce2b6d83ad15cfbc0aba285ae702a58cf954983311649","signature":"bc18a540223a72c415754aff08931cc562319377788752a0bec65231ba047e92"},{"version":"e68cee917292a8df6189a7bcf7c7da44db22df87f9edefbf978e20b6d6336854","signature":"2033255257875ec4e33b175c778e80ab6631747d8f8df0a8087c89d951f98e50"},{"version":"74a99987394b647e63e775e702baa20ab75d3f3451d0e7e5f24e65bc4fccd92a","signature":"15363a40a0b7c120db07b0ba25fb50222a918740eadae6e465ce4011395f3bd5"},{"version":"d22d1eb775ec26457543d80c613a2778acfe85e9eed350fb2fd2b24c8383cb00","signature":"b0fb81a9ff05e7672535ea37beccfe971eaea97c41b369f7ef83240e827ea483"},{"version":"acfb723d81eda39156251aed414c553294870bf53062429ebfcfba8a68cb4753","impliedFormat":99},{"version":"fa69a90381c2f85889722a911a732a5ee3596dc3acecda8a9aa2fa89b9615d8d","impliedFormat":99},{"version":"b5ce343886d23392be9c8280e9f24a87f1d7d3667f6672c2fe4aa61fa4ece7d4","impliedFormat":99},{"version":"57e9e1b0911874c62d743af24b5d56032759846533641d550b12a45ff404bf07","impliedFormat":99},{"version":"b0857bb28fd5236ace84280f79a25093f919fd0eff13e47cc26ea03de60a7294","impliedFormat":99},{"version":"5e43e0824f10cd8c48e7a8c5c673638488925a12c31f0f9e0957965c290eb14c","impliedFormat":99},{"version":"854cd3a3375ffc4e7a92b2168dd065d7ff2614b43341038a65cca865a44c00c5","impliedFormat":99},{"version":"ef13c73d6157a32933c612d476c1524dd674cf5b9a88571d7d6a0d147544d529","impliedFormat":99},{"version":"3b0a56d056d81a011e484b9c05d5e430711aaecd561a788bad1d0498aad782c7","impliedFormat":99},{"version":"2f863ee9b873a65d9c3338ea7aaddbdb41a9673f062f06983d712bd01c25dc6b","impliedFormat":99},{"version":"67aa128c2bc170b93794f191feffc65a4b33e878db211cfcb7658c4b72f7a1f5","impliedFormat":99},{"version":"ac3d263474022e9a14c43f588f485d549641d839b159ecc971978b90f34bdf6b","impliedFormat":99},{"version":"a7ca8df4f2931bef2aa4118078584d84a0b16539598eaadf7dce9104dfaa381c","impliedFormat":1},{"version":"10073cdcf56982064c5337787cc59b79586131e1b28c106ede5bff362f912b70","impliedFormat":99},{"version":"72950913f4900b680f44d8cab6dd1ea0311698fc1eefb014eb9cdfc37ac4a734","impliedFormat":1},{"version":"36977c14a7f7bfc8c0426ae4343875689949fb699f3f84ecbe5b300ebf9a2c55","impliedFormat":1},{"version":"ff0a83c9a0489a627e264ffcb63f2264b935b20a502afa3a018848139e3d8575","impliedFormat":99},{"version":"324ac98294dab54fbd580c7d0e707d94506d7b2c3d5efe981a8495f02cf9ad96","impliedFormat":99},{"version":"9ec72eb493ff209b470467e24264116b6a8616484bca438091433a545dfba17e","impliedFormat":99},{"version":"c35b8117804c639c53c87f2c23e0c786df61d552e513bd5179f5b88e29964838","impliedFormat":99},{"version":"c609331c6ed4ad4af54e101088c6a4dcb48f8db7b0b97e44a6efeb130f4331bd","impliedFormat":99},{"version":"bcbd3becd08b4515225880abea0dbfbbf0d1181ce3af8f18f72f61edbe4febfb","impliedFormat":99},{"version":"67acaedb46832d66c15f1b09fb7b6a0b7f41bdbf8eaa586ec70459b3e8896eb9","impliedFormat":99},{"version":"4535ab977ee871e956eb7bebe2db5de79f5d5ec7dfbbf1d35e08f4a2d6630dac","impliedFormat":99},{"version":"b79b5ed99f26ffb2f8ae4bdcc4b34a9542197dc3fa96cfb425c2a81e618cff28","impliedFormat":99},{"version":"31fd7c12f6e27154efb52a916b872509a771880f3b20f2dfd045785c13aa813f","impliedFormat":99},{"version":"06db2f8ba1d1dfacf04529cb731081ab23f133f29c7608ebdfbcab356996827c","impliedFormat":99},{"version":"427fe2004642504828c1476d0af4270e6ad4db6de78c0b5da3e4c5ca95052a99","impliedFormat":1},{"version":"2eeffcee5c1661ddca53353929558037b8cf305ffb86a803512982f99bcab50d","impliedFormat":99},{"version":"9afb4cb864d297e4092a79ee2871b5d3143ea14153f62ef0bb04ede25f432030","affectsGlobalScope":true,"impliedFormat":99},{"version":"4e258d11c899cb9ff36b4b5c53df59cf4a5ccae9a9931529686e77431e0a3518","affectsGlobalScope":true,"impliedFormat":99},{"version":"a5ae67a67f786ffe92d34b55467a40fb50fb0093e92388cadce6168fa42690fd","impliedFormat":99},{"version":"69bf2422313487956e4dacf049f30cb91b34968912058d244cb19e4baa24da97","impliedFormat":99},{"version":"6987dfb4b0c4e02112cc4e548e7a77b3d9ddfeffa8c8a2db13ceac361a4567d9","impliedFormat":99},{"version":"a534e61c2f06a147d97aebad720db97dffd8066b7142212e46bcbcdcb640b81a","impliedFormat":99},{"version":"ddf569d04470a4d629090d43a16735185001f3fcf0ae036ead99f2ceab62be48","impliedFormat":99},{"version":"b413fbc6658fe2774f8bf9a15cf4c53e586fc38a2d5256b3b9647da242c14389","impliedFormat":99},{"version":"c30a41267fc04c6518b17e55dcb2b810f267af4314b0b6d7df1c33a76ce1b330","impliedFormat":1},{"version":"72422d0bac4076912385d0c10911b82e4694fc106e2d70added091f88f0824ba","impliedFormat":1},{"version":"da251b82c25bee1d93f9fd80c5a61d945da4f708ca21285541d7aff83ecb8200","impliedFormat":1},{"version":"64db14db2bf37ac089766fdb3c7e1160fabc10e9929bc2deeede7237e4419fc8","impliedFormat":1},{"version":"98b94085c9f78eba36d3d2314affe973e8994f99864b8708122750788825c771","impliedFormat":1},{"version":"53c448183c7177c83d3eb0b40824cf8952721a6584cf22052adc24f778986732","impliedFormat":99},{"version":"3d7fc099f5cab9100a66ef17847a440128f12f207ec22ab56a864e04120816dd","signature":"8e609bb71c20b858c77f0e9f90bb1319db8477b13f9f965f1a1e18524bf50881"},{"version":"b026d9a73b6693c3ac3810991b16d6157acbf21325f65c178081b220c3f1be10","signature":"8e609bb71c20b858c77f0e9f90bb1319db8477b13f9f965f1a1e18524bf50881"},{"version":"c86dea3db03fc250c83d151e4794811599bcafe0d228ae9a92454e9046fb6430","signature":"8e609bb71c20b858c77f0e9f90bb1319db8477b13f9f965f1a1e18524bf50881"},{"version":"6310d5ff1a9c32521cff012a3748aa98c936e46b02049c4b0b99c402f6818f45","signature":"8e609bb71c20b858c77f0e9f90bb1319db8477b13f9f965f1a1e18524bf50881"},{"version":"3e0eeda9dc5f49756323eedc1e544536d205230383730937473302853082fcea","signature":"8e609bb71c20b858c77f0e9f90bb1319db8477b13f9f965f1a1e18524bf50881"},{"version":"70521b6ab0dcba37539e5303104f29b721bfb2940b2776da4cc818c07e1fefc1","affectsGlobalScope":true,"impliedFormat":1},{"version":"ab41ef1f2cdafb8df48be20cd969d875602483859dc194e9c97c8a576892c052","affectsGlobalScope":true,"impliedFormat":1},{"version":"d153a11543fd884b596587ccd97aebbeed950b26933ee000f94009f1ab142848","affectsGlobalScope":true,"impliedFormat":1},{"version":"21d819c173c0cf7cc3ce57c3276e77fd9a8a01d35a06ad87158781515c9a438a","impliedFormat":1},{"version":"98cffbf06d6bab333473c70a893770dbe990783904002c4f1a960447b4b53dca","affectsGlobalScope":true,"impliedFormat":1},{"version":"ba481bca06f37d3f2c137ce343c7d5937029b2468f8e26111f3c9d9963d6568d","affectsGlobalScope":true,"impliedFormat":1},{"version":"6d9ef24f9a22a88e3e9b3b3d8c40ab1ddb0853f1bfbd5c843c37800138437b61","affectsGlobalScope":true,"impliedFormat":1},{"version":"1db0b7dca579049ca4193d034d835f6bfe73096c73663e5ef9a0b5779939f3d0","affectsGlobalScope":true,"impliedFormat":1},{"version":"9798340ffb0d067d69b1ae5b32faa17ab31b82466a3fc00d8f2f2df0c8554aaa","affectsGlobalScope":true,"impliedFormat":1},{"version":"f26b11d8d8e4b8028f1c7d618b22274c892e4b0ef5b3678a8ccbad85419aef43","affectsGlobalScope":true,"impliedFormat":1},{"version":"5929864ce17fba74232584d90cb721a89b7ad277220627cc97054ba15a98ea8f","impliedFormat":1},{"version":"763fe0f42b3d79b440a9b6e51e9ba3f3f91352469c1e4b3b67bfa4ff6352f3f4","impliedFormat":1},{"version":"25c8056edf4314820382a5fdb4bb7816999acdcb929c8f75e3f39473b87e85bc","impliedFormat":1},{"version":"c464d66b20788266e5353b48dc4aa6bc0dc4a707276df1e7152ab0c9ae21fad8","impliedFormat":1},{"version":"78d0d27c130d35c60b5e5566c9f1e5be77caf39804636bc1a40133919a949f21","impliedFormat":1},{"version":"c6fd2c5a395f2432786c9cb8deb870b9b0e8ff7e22c029954fabdd692bff6195","impliedFormat":1},{"version":"1d6e127068ea8e104a912e42fc0a110e2aa5a66a356a917a163e8cf9a65e4a75","impliedFormat":1},{"version":"5ded6427296cdf3b9542de4471d2aa8d3983671d4cac0f4bf9c637208d1ced43","impliedFormat":1},{"version":"7f182617db458e98fc18dfb272d40aa2fff3a353c44a89b2c0ccb3937709bfb5","impliedFormat":1},{"version":"cadc8aced301244057c4e7e73fbcae534b0f5b12a37b150d80e5a45aa4bebcbd","impliedFormat":1},{"version":"385aab901643aa54e1c36f5ef3107913b10d1b5bb8cbcd933d4263b80a0d7f20","impliedFormat":1},{"version":"9670d44354bab9d9982eca21945686b5c24a3f893db73c0dae0fd74217a4c219","impliedFormat":1},{"version":"0b8a9268adaf4da35e7fa830c8981cfa22adbbe5b3f6f5ab91f6658899e657a7","impliedFormat":1},{"version":"11396ed8a44c02ab9798b7dca436009f866e8dae3c9c25e8c1fbc396880bf1bb","impliedFormat":1},{"version":"ba7bc87d01492633cb5a0e5da8a4a42a1c86270e7b3d2dea5d156828a84e4882","impliedFormat":1},{"version":"4893a895ea92c85345017a04ed427cbd6a1710453338df26881a6019432febdd","impliedFormat":1},{"version":"c21dc52e277bcfc75fac0436ccb75c204f9e1b3fa5e12729670910639f27343e","impliedFormat":1},{"version":"13f6f39e12b1518c6650bbb220c8985999020fe0f21d818e28f512b7771d00f9","impliedFormat":1},{"version":"9b5369969f6e7175740bf51223112ff209f94ba43ecd3bb09eefff9fd675624a","impliedFormat":1},{"version":"4fe9e626e7164748e8769bbf74b538e09607f07ed17c2f20af8d680ee49fc1da","impliedFormat":1},{"version":"24515859bc0b836719105bb6cc3d68255042a9f02a6022b3187948b204946bd2","impliedFormat":1},{"version":"ea0148f897b45a76544ae179784c95af1bd6721b8610af9ffa467a518a086a43","impliedFormat":1},{"version":"24c6a117721e606c9984335f71711877293a9651e44f59f3d21c1ea0856f9cc9","impliedFormat":1},{"version":"dd3273ead9fbde62a72949c97dbec2247ea08e0c6952e701a483d74ef92d6a17","impliedFormat":1},{"version":"405822be75ad3e4d162e07439bac80c6bcc6dbae1929e179cf467ec0b9ee4e2e","impliedFormat":1},{"version":"0db18c6e78ea846316c012478888f33c11ffadab9efd1cc8bcc12daded7a60b6","impliedFormat":1},{"version":"e61be3f894b41b7baa1fbd6a66893f2579bfad01d208b4ff61daef21493ef0a8","impliedFormat":1},{"version":"bd0532fd6556073727d28da0edfd1736417a3f9f394877b6d5ef6ad88fba1d1a","impliedFormat":1},{"version":"89167d696a849fce5ca508032aabfe901c0868f833a8625d5a9c6e861ef935d2","impliedFormat":1},{"version":"615ba88d0128ed16bf83ef8ccbb6aff05c3ee2db1cc0f89ab50a4939bfc1943f","impliedFormat":1},{"version":"a4d551dbf8746780194d550c88f26cf937caf8d56f102969a110cfaed4b06656","impliedFormat":1},{"version":"8bd86b8e8f6a6aa6c49b71e14c4ffe1211a0e97c80f08d2c8cc98838006e4b88","impliedFormat":1},{"version":"317e63deeb21ac07f3992f5b50cdca8338f10acd4fbb7257ebf56735bf52ab00","impliedFormat":1},{"version":"4732aec92b20fb28c5fe9ad99521fb59974289ed1e45aecb282616202184064f","impliedFormat":1},{"version":"2e85db9e6fd73cfa3d7f28e0ab6b55417ea18931423bd47b409a96e4a169e8e6","impliedFormat":1},{"version":"c46e079fe54c76f95c67fb89081b3e399da2c7d109e7dca8e4b58d83e332e605","impliedFormat":1},{"version":"bf67d53d168abc1298888693338cb82854bdb2e69ef83f8a0092093c2d562107","impliedFormat":1},{"version":"b52476feb4a0cbcb25e5931b930fc73cb6643fb1a5060bf8a3dda0eeae5b4b68","affectsGlobalScope":true,"impliedFormat":1},{"version":"e2677634fe27e87348825bb041651e22d50a613e2fdf6a4a3ade971d71bac37e","impliedFormat":1},{"version":"7394959e5a741b185456e1ef5d64599c36c60a323207450991e7a42e08911419","impliedFormat":1},{"version":"8c0bcd6c6b67b4b503c11e91a1fb91522ed585900eab2ab1f61bba7d7caa9d6f","impliedFormat":1},{"version":"8cd19276b6590b3ebbeeb030ac271871b9ed0afc3074ac88a94ed2449174b776","affectsGlobalScope":true,"impliedFormat":1},{"version":"696eb8d28f5949b87d894b26dc97318ef944c794a9a4e4f62360cd1d1958014b","impliedFormat":1},{"version":"3f8fa3061bd7402970b399300880d55257953ee6d3cd408722cb9ac20126460c","impliedFormat":1},{"version":"35ec8b6760fd7138bbf5809b84551e31028fb2ba7b6dc91d95d098bf212ca8b4","affectsGlobalScope":true,"impliedFormat":1},{"version":"5524481e56c48ff486f42926778c0a3cce1cc85dc46683b92b1271865bcf015a","impliedFormat":1},{"version":"68bd56c92c2bd7d2339457eb84d63e7de3bd56a69b25f3576e1568d21a162398","affectsGlobalScope":true,"impliedFormat":1},{"version":"3e93b123f7c2944969d291b35fed2af79a6e9e27fdd5faa99748a51c07c02d28","impliedFormat":1},{"version":"9d19808c8c291a9010a6c788e8532a2da70f811adb431c97520803e0ec649991","impliedFormat":1},{"version":"87aad3dd9752067dc875cfaa466fc44246451c0c560b820796bdd528e29bef40","impliedFormat":1},{"version":"4aacb0dd020eeaef65426153686cc639a78ec2885dc72ad220be1d25f1a439df","impliedFormat":1},{"version":"f0bd7e6d931657b59605c44112eaf8b980ba7f957a5051ed21cb93d978cf2f45","impliedFormat":1},{"version":"8db0ae9cb14d9955b14c214f34dae1b9ef2baee2fe4ce794a4cd3ac2531e3255","affectsGlobalScope":true,"impliedFormat":1},{"version":"15fc6f7512c86810273af28f224251a5a879e4261b4d4c7e532abfbfc3983134","impliedFormat":1},{"version":"58adba1a8ab2d10b54dc1dced4e41f4e7c9772cbbac40939c0dc8ce2cdb1d442","impliedFormat":1},{"version":"641942a78f9063caa5d6b777c99304b7d1dc7328076038c6d94d8a0b81fc95c1","impliedFormat":1},{"version":"092c1137e31de289f3cc6a57fdccb3cca298d8a680d1e367d206d3318f1394a1","impliedFormat":1},{"version":"855cd5f7eb396f5f1ab1bc0f8580339bff77b68a770f84c6b254e319bbfd1ac7","impliedFormat":1},{"version":"5650cf3dace09e7c25d384e3e6b818b938f68f4e8de96f52d9c5a1b3db068e86","impliedFormat":1},{"version":"1354ca5c38bd3fd3836a68e0f7c9f91f172582ba30ab15bb8c075891b91502b7","affectsGlobalScope":true,"impliedFormat":1},{"version":"7e20d899c28ca26a2a7afc98beaa69e63ff7fba0a8bc47b4e3bf3ede5e09e424","impliedFormat":1},{"version":"2d2fcaab481b31a5882065c7951255703ddbe1c0e507af56ea42d79ac3911201","impliedFormat":1},{"version":"a192fe8ec33f75edbc8d8f3ed79f768dfae11ff5735e7fe52bfa69956e46d78d","impliedFormat":1},{"version":"ca867399f7db82df981d6915bcbb2d81131d7d1ef683bc782b59f71dda59bc85","affectsGlobalScope":true,"impliedFormat":1},{"version":"372413016d17d804e1d139418aca0c68e47a83fb6669490857f4b318de8cccb3","affectsGlobalScope":true,"impliedFormat":1},{"version":"9e043a1bc8fbf2a255bccf9bf27e0f1caf916c3b0518ea34aa72357c0afd42ec","impliedFormat":1},{"version":"b4f70ec656a11d570e1a9edce07d118cd58d9760239e2ece99306ee9dfe61d02","impliedFormat":1},{"version":"3bc2f1e2c95c04048212c569ed38e338873f6a8593930cf5a7ef24ffb38fc3b6","impliedFormat":1},{"version":"6e70e9570e98aae2b825b533aa6292b6abd542e8d9f6e9475e88e1d7ba17c866","impliedFormat":1},{"version":"f9d9d753d430ed050dc1bf2667a1bab711ccbb1c1507183d794cc195a5b085cc","impliedFormat":1},{"version":"9eece5e586312581ccd106d4853e861aaaa1a39f8e3ea672b8c3847eedd12f6e","impliedFormat":1},{"version":"085f552d005479e2e6a7311cdbbe5d8c55c497b4d19274285df161ee9684cd9c","impliedFormat":1},{"version":"37ba7b45141a45ce6e80e66f2a96c8a5ab1bcef0fc2d0f56bb58df96ec67e972","impliedFormat":1},{"version":"45650f47bfb376c8a8ed39d4bcda5902ab899a3150029684ee4c10676d9fbaee","impliedFormat":1},{"version":"007faacc9268357caa21d24169f3f3f2497af3e9241308df2d89f6e6d9bb3f2e","affectsGlobalScope":true,"impliedFormat":1},{"version":"74cf591a0f63db318651e0e04cb55f8791385f86e987a67fd4d2eaab8191f730","impliedFormat":1},{"version":"5eab9b3dc9b34f185417342436ec3f106898da5f4801992d8ff38ab3aff346b5","impliedFormat":1},{"version":"12ed4559eba17cd977aa0db658d25c4047067444b51acfdcbf38470630642b23","affectsGlobalScope":true,"impliedFormat":1},{"version":"f3ffabc95802521e1e4bcba4c88d8615176dc6e09111d920c7a213bdda6e1d65","impliedFormat":1},{"version":"809821b8a065e3234a55b3a9d7846231ed18d66dd749f2494c66288d890daf7f","impliedFormat":1},{"version":"ae56f65caf3be91108707bd8dfbccc2a57a91feb5daabf7165a06a945545ed26","impliedFormat":1},{"version":"a136d5de521da20f31631a0a96bf712370779d1c05b7015d7019a9b2a0446ca9","impliedFormat":1},{"version":"c3b41e74b9a84b88b1dca61ec39eee25c0dbc8e7d519ba11bb070918cfacf656","affectsGlobalScope":true,"impliedFormat":1},{"version":"4737a9dc24d0e68b734e6cfbcea0c15a2cfafeb493485e27905f7856988c6b29","affectsGlobalScope":true,"impliedFormat":1},{"version":"36d8d3e7506b631c9582c251a2c0b8a28855af3f76719b12b534c6edf952748d","impliedFormat":1},{"version":"1ca69210cc42729e7ca97d3a9ad48f2e9cb0042bada4075b588ae5387debd318","impliedFormat":1},{"version":"f5ebe66baaf7c552cfa59d75f2bfba679f329204847db3cec385acda245e574e","impliedFormat":1},{"version":"ed59add13139f84da271cafd32e2171876b0a0af2f798d0c663e8eeb867732cf","affectsGlobalScope":true,"impliedFormat":1},{"version":"b7c5e2ea4a9749097c347454805e933844ed207b6eefec6b7cfd418b5f5f7b28","impliedFormat":1},{"version":"b1810689b76fd473bd12cc9ee219f8e62f54a7d08019a235d07424afbf074d25","impliedFormat":1}],"root":[112,[181,188],[232,236]],"options":{"composite":true,"declaration":true,"declarationMap":true,"emitDeclarationOnly":true,"exactOptionalPropertyTypes":true,"module":99,"noFallthroughCasesInSwitch":true,"noImplicitOverride":true,"noImplicitReturns":true,"noUncheckedIndexedAccess":true,"noUnusedLocals":true,"noUnusedParameters":true,"outDir":"./","rootDir":"../src","skipLibCheck":true,"strict":true,"target":9,"tsBuildInfoFile":"./.tsbuildinfo","useDefineForClassFields":true,"verbatimModuleSyntax":true},"referencedMap":[[170,1],[169,2],[171,3],[168,4],[172,5],[173,6],[167,7],[151,8],[149,9],[148,10],[153,11],[150,12],[147,9],[146,10],[152,12],[145,13],[138,5],[143,14],[140,5],[141,5],[142,5],[139,5],[144,5],[218,15],[216,5],[285,16],[286,16],[287,17],[242,18],[288,19],[289,20],[290,21],[237,5],[240,22],[238,5],[239,5],[291,23],[292,24],[293,25],[294,26],[295,27],[296,28],[297,28],[298,29],[299,30],[300,31],[301,32],[243,5],[241,5],[302,33],[303,34],[304,35],[336,36],[305,37],[306,38],[307,39],[308,40],[309,41],[310,42],[311,43],[312,44],[313,45],[314,46],[315,46],[316,47],[317,5],[318,48],[320,49],[319,50],[321,51],[322,52],[323,53],[324,54],[325,55],[326,56],[327,57],[328,58],[329,59],[330,60],[331,61],[332,62],[333,63],[244,5],[245,5],[246,5],[284,64],[334,65],[335,66],[219,67],[189,5],[199,68],[195,69],[198,70],[220,71],[206,5],[208,72],[207,73],[214,5],[197,74],[190,75],[192,76],[194,77],[193,5],[196,75],[191,5],[217,5],[228,78],[230,79],[229,80],[227,81],[226,5],[221,5],[215,5],[58,5],[59,5],[10,5],[11,5],[13,5],[12,5],[2,5],[14,5],[15,5],[16,5],[17,5],[18,5],[19,5],[20,5],[21,5],[3,5],[22,5],[23,5],[4,5],[24,5],[28,5],[25,5],[26,5],[27,5],[29,5],[30,5],[31,5],[5,5],[32,5],[33,5],[34,5],[35,5],[6,5],[39,5],[36,5],[37,5],[38,5],[40,5],[7,5],[41,5],[46,5],[47,5],[42,5],[43,5],[44,5],[45,5],[8,5],[51,5],[48,5],[49,5],[50,5],[52,5],[9,5],[53,5],[54,5],[55,5],[57,5],[56,5],[1,5],[262,82],[272,83],[261,82],[282,84],[253,85],[252,86],[281,87],[275,88],[280,89],[255,90],[269,91],[254,92],[278,93],[250,94],[249,87],[279,95],[251,96],[256,97],[257,5],[260,97],[247,5],[283,98],[273,99],[264,100],[265,101],[267,102],[263,103],[266,104],[276,87],[258,105],[259,106],[268,107],[248,108],[271,99],[270,97],[274,5],[277,109],[202,110],[205,111],[203,110],[201,5],[204,112],[222,113],[213,114],[209,115],[210,69],[225,116],[223,117],[211,118],[224,119],[200,5],[212,120],[231,121],[134,122],[115,123],[116,124],[113,5],[117,123],[137,125],[118,5],[119,5],[120,5],[121,123],[136,126],[178,127],[177,128],[123,129],[124,130],[132,5],[135,131],[125,132],[129,133],[128,134],[130,135],[114,123],[127,136],[131,5],[126,137],[122,5],[133,138],[79,139],[80,139],[81,139],[82,139],[83,139],[84,139],[105,140],[111,141],[106,139],[107,139],[108,139],[109,139],[110,139],[232,142],[233,143],[234,144],[235,145],[236,145],[112,146],[181,147],[188,148],[182,5],[183,139],[184,149],[185,139],[187,150],[186,151],[87,152],[88,153],[86,154],[89,153],[90,5],[91,153],[92,5],[93,155],[104,156],[94,153],[95,153],[96,5],[97,153],[98,155],[99,157],[100,155],[85,5],[101,153],[102,153],[103,153],[166,158],[176,159],[175,160],[174,158],[179,139],[180,161],[156,162],[157,163],[158,5],[155,163],[165,164],[159,5],[160,163],[161,163],[162,163],[163,163],[164,165],[154,5],[60,5],[61,5],[63,166],[73,5],[68,167],[64,168],[74,169],[76,139],[69,139],[77,170],[78,171],[66,172],[65,173],[70,5],[72,174],[71,175],[62,5],[75,176],[67,5]],"latestChangedDtsFile":"./__tests__/video-player-multi-entity.unit.test.d.ts","version":"6.0.3"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=video-capability-backend-kind-owner.test-d.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"video-capability-backend-kind-owner.test-d.d.ts","sourceRoot":"","sources":["../../src/__tests__/video-capability-backend-kind-owner.test-d.ts"],"names":[],"mappings":""}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAQA,OAAO,EACL,sBAAsB,EACtB,KAAK,iBAAiB,EACtB,eAAe,EACf,oBAAoB,EACpB,oBAAoB,EACpB,aAAa,GACd,MAAM,gBAAgB,CAAC;AACxB,OAAO,EACL,aAAa,EACb,mBAAmB,EACnB,oBAAoB,EACpB,KAAK,mBAAmB,GACzB,MAAM,mBAAmB,CAAC;AAG3B,OAAO,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAC7D,OAAO,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AAExD,OAAO,EACL,0BAA0B,EAC1B,KAAK,oBAAoB,GAC1B,MAAM,0BAA0B,CAAC;AAClC,OAAO,EAAE,iBAAiB,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAEhE,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAE7C,OAAO,EAAE,wBAAwB,EAAE,MAAM,uBAAuB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAQA,OAAO,EACL,sBAAsB,EACtB,KAAK,iBAAiB,EACtB,eAAe,EACf,oBAAoB,EACpB,oBAAoB,EACpB,aAAa,GACd,MAAM,gBAAgB,CAAC;AACxB,OAAO,EACL,aAAa,EACb,mBAAmB,EACnB,oBAAoB,EACpB,KAAK,mBAAmB,GACzB,MAAM,mBAAmB,CAAC;AAG3B,OAAO,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAC7D,OAAO,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AAGxD,OAAO,EACL,0BAA0B,EAC1B,KAAK,oBAAoB,GAC1B,MAAM,0BAA0B,CAAC;AAClC,OAAO,EAAE,iBAAiB,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAEhE,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAE7C,OAAO,EAAE,wBAAwB,EAAE,MAAM,uBAAuB,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/glyph-layout.ts","../src/glyph-mesh-bake.ts","../src/tile-bits.ts","../src/tileset-decoder.ts","../src/video-element-provider.ts","../src/video-loader.ts","../src/video-player.ts","../src/video-player-system.ts"],"names":["PROCEDURAL_FLOATS_PER_VERTEX","ok","err"],"mappings":"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","file":"index.mjs","sourcesContent":["// @forgeax/engine-graphics-extras - glyph layout algorithm\n// (feat-20260531-world-space-msdf-text-rendering M4 / w15).\n//\n// Pure functions: lay out a `GlyphText` string against a `FontAsset`'s glyph\n// metrics into per-glyph quad vertices (position + uv) and indices, plus a\n// conservative bounding-sphere radius for pick (plan-strategy D-5). NO ECS,\n// NO GPU -- the mesh baking (12-float stride fill + register) is the job of\n// `glyph-mesh-bake.ts` (w17); this module produces only the geometry data.\n//\n// Layout model (plan-strategy D-2 / D-4 / D-5):\n// - left-aligned: the pen advances by `metric.advance * fontSize` per glyph.\n// - baseline at local y = 0 on the first line; the local space is Y-up so a\n// glyph quad's top edge sits at `penY - bearingY*s + size.h*s` and its\n// bottom edge at `penY - bearingY*s` (BMFont yoffset measures DOWN from\n// the line top; we negate into Y-up so higher bearingY -> lower top).\n// - `\\n` resets penX to 0 and drops penY by `lineHeight * fontSize`\n// (line-2 baseline = -lineHeight, AC-21).\n// - missing codepoint -> notdef TOFU fallback; the glyph still counts and\n// emits a quad (AC-14). A codepoint with neither a metric nor a notdef\n// emits no quad but still advances by the notdef-or-zero advance.\n// - empty string -> zero vertices / zero indices / radius 0 (the bake\n// helper registers a 0-vertex mesh, which is legal; pick skips it).\n//\n// Vertex layout produced here is the 12-float canonical stride\n// (PROCEDURAL_FLOATS_PER_VERTEX): position(vec3) + normal(vec3) + uv(vec2) +\n// tangent(vec4). This module writes position + uv as real values and leaves\n// normal/tangent as placeholder constants so the buffer is register-ready\n// without a second pass (R-2: 12-float stride is a hard register gate). The\n// per-vertex offsets are exported so the bake helper + tests share one SSOT.\n\nimport { PROCEDURAL_FLOATS_PER_VERTEX } from '@forgeax/engine-geometry';\nimport type { FontAsset, GlyphMetric } from '@forgeax/engine-types';\nimport { TextError } from '@forgeax/engine-types';\n\n/**\n * Canonical 12-float vertex stride (position vec3 + normal vec3 + uv vec2 +\n * tangent vec4) owned by `PROCEDURAL_FLOATS_PER_VERTEX` in\n * `@forgeax/engine-geometry`. R-2: the baked mesh must satisfy this stride or `register`\n * fail-fasts with `mesh-vertex-stride-mismatch`.\n */\n/** Byte-free float offsets within a single 12-float vertex. */\nexport const VERTEX_OFFSET = {\n position: 0, // vec3\n normal: 3, // vec3 (placeholder (0,0,1))\n uv: 6, // vec2\n tangent: 8, // vec4 (placeholder (0,0,0,1))\n} as const;\n\n/** Soft per-frame concurrent-font ceiling (plan-strategy D-8 / AC-20). */\nexport const FONT_CONCURRENCY_LIMIT = 8;\n\n/** Layout output: per-glyph quad geometry + conservative sphere radius. */\nexport interface GlyphLayoutResult {\n /** 12-float-stride interleaved vertices (4 vertices per glyph). */\n readonly vertices: Float32Array;\n /** Triangle indices (6 per glyph: two triangles). */\n readonly indices: Uint16Array;\n /**\n * Conservative bounding-sphere radius from the anchor (local origin) to the\n * farthest glyph quad corner (plan-strategy D-5). The bake helper turns this\n * into a cube AABB (half-side = radius) so pick is orientation-independent.\n */\n readonly radius: number;\n}\n\n// Module-level set tracking distinct FontAsset handle ids active in the\n// current frame. The layout system resets this at the top of each frame\n// (resetFontConcurrency) and calls trackFontConcurrency once per distinct\n// font; the 9th distinct font throws a structured TextError (D-8 rejects\n// silently evicting the oldest font).\nconst activeFontIds = new Set<number>();\n\n/** Reset the per-frame concurrent-font tracker (call once at frame start). */\nexport function resetFontConcurrency(): void {\n activeFontIds.clear();\n}\n\n/**\n * Track one distinct FontAsset handle id as active this frame. Re-tracking an\n * already-active id is a no-op; the (N+1)th distinct id beyond\n * {@link FONT_CONCURRENCY_LIMIT} throws `TextError('font-concurrency-exceeded')`\n * (plan-strategy D-8 / AC-20).\n */\nexport function trackFontConcurrency(fontId: number): void {\n if (activeFontIds.has(fontId)) return;\n if (activeFontIds.size >= FONT_CONCURRENCY_LIMIT) {\n throw new TextError({\n code: 'font-concurrency-exceeded',\n expected: String(FONT_CONCURRENCY_LIMIT),\n hint: 'reuse a shared FontAsset across labels, or split text into fewer distinct fonts per frame',\n detail: { active: activeFontIds.size, limit: FONT_CONCURRENCY_LIMIT, rejected: fontId },\n });\n }\n activeFontIds.add(fontId);\n}\n\nconst NEWLINE = '\\n'.codePointAt(0) as number;\n\n/**\n * Lay out `text` against `font` at `fontSize`, producing per-glyph quad\n * geometry (12-float stride) + indices + the conservative sphere radius.\n *\n * @param font The resolved FontAsset (glyph metrics + common block).\n * @param text The authoring string (`\\n` starts a new line).\n * @param fontSize Uniform scale applied to all metric units.\n */\nexport function layoutGlyphText(\n font: FontAsset,\n text: string,\n fontSize: number,\n): GlyphLayoutResult {\n const s = fontSize;\n const { atlasWidth, atlasHeight, lineHeight } = font.common;\n\n // First pass over code points: collect the renderable glyph quads.\n const quads: Array<{ x0: number; y0: number; x1: number; y1: number; m: GlyphMetric }> = [];\n let penX = 0;\n let penY = 0;\n let maxCornerDist = 0;\n\n // Iterate by code point so surrogate pairs count as one glyph.\n for (const ch of text) {\n const cp = ch.codePointAt(0) as number;\n if (cp === NEWLINE) {\n penX = 0;\n penY -= lineHeight * s;\n continue;\n }\n const metric = font.glyphs[cp] ?? font.notdef;\n if (metric === undefined) {\n // Neither a glyph nor a notdef -> nothing to render; advance by zero so\n // the cursor does not jump (rare: a font with no notdef and missing cp).\n continue;\n }\n // Quad corners in Y-up local space (baseline at penY).\n const x0 = penX + metric.bearingX * s;\n const yTop = penY - metric.bearingY * s + metric.size.h * s;\n const yBot = penY - metric.bearingY * s;\n const x1 = x0 + metric.size.w * s;\n quads.push({ x0, y0: yBot, x1, y1: yTop, m: metric });\n maxCornerDist = Math.max(\n maxCornerDist,\n Math.hypot(x0, yBot),\n Math.hypot(x1, yBot),\n Math.hypot(x0, yTop),\n Math.hypot(x1, yTop),\n );\n penX += metric.advance * s;\n }\n\n const glyphCount = quads.length;\n const vertices = new Float32Array(glyphCount * 4 * PROCEDURAL_FLOATS_PER_VERTEX);\n const indices = new Uint16Array(glyphCount * 6);\n\n for (let g = 0; g < glyphCount; g++) {\n const q = quads[g] as (typeof quads)[number];\n const { region } = q.m;\n // Atlas UV (top-left origin) normalized into [0,1].\n const u0 = region.x / atlasWidth;\n const u1 = (region.x + region.w) / atlasWidth;\n const v0 = region.y / atlasHeight;\n const v1 = (region.y + region.h) / atlasHeight;\n // 4 corners: TL, TR, BR, BL (CCW); position z = 0 (billboard before).\n // uv pairs the top edge (y1) with v0 and the bottom edge (y0) with v1.\n writeVertex(vertices, g * 4 + 0, q.x0, q.y1, u0, v0);\n writeVertex(vertices, g * 4 + 1, q.x1, q.y1, u1, v0);\n writeVertex(vertices, g * 4 + 2, q.x1, q.y0, u1, v1);\n writeVertex(vertices, g * 4 + 3, q.x0, q.y0, u0, v1);\n const vbase = g * 4;\n const ibase = g * 6;\n indices[ibase + 0] = vbase + 0;\n indices[ibase + 1] = vbase + 1;\n indices[ibase + 2] = vbase + 2;\n indices[ibase + 3] = vbase + 0;\n indices[ibase + 4] = vbase + 2;\n indices[ibase + 5] = vbase + 3;\n }\n\n return { vertices, indices, radius: maxCornerDist };\n}\n\n/** Write one 12-float vertex (position + placeholder normal + uv + placeholder tangent). */\nfunction writeVertex(\n out: Float32Array,\n vertexIndex: number,\n x: number,\n y: number,\n u: number,\n v: number,\n): void {\n const o = vertexIndex * PROCEDURAL_FLOATS_PER_VERTEX;\n // position (vec3)\n out[o + VERTEX_OFFSET.position + 0] = x;\n out[o + VERTEX_OFFSET.position + 1] = y;\n out[o + VERTEX_OFFSET.position + 2] = 0;\n // normal placeholder (0,0,1)\n out[o + VERTEX_OFFSET.normal + 0] = 0;\n out[o + VERTEX_OFFSET.normal + 1] = 0;\n out[o + VERTEX_OFFSET.normal + 2] = 1;\n // uv (vec2)\n out[o + VERTEX_OFFSET.uv + 0] = u;\n out[o + VERTEX_OFFSET.uv + 1] = v;\n // tangent placeholder (0,0,0,1)\n out[o + VERTEX_OFFSET.tangent + 0] = 0;\n out[o + VERTEX_OFFSET.tangent + 1] = 0;\n out[o + VERTEX_OFFSET.tangent + 2] = 0;\n out[o + VERTEX_OFFSET.tangent + 3] = 1;\n}\n","// @forgeax/engine-graphics-extras - glyph mesh bake helper\n// (feat-20260531-world-space-msdf-text-rendering M4 / w17).\n//\n// Turns the pure layout output (w15) into a registered `MeshAsset` and a\n// conservative bounding-sphere cube AABB (plan-strategy D-4 / D-5). Called by\n// the `glyphTextLayoutSystem` (w18) -- not a public AI-user API; AI users\n// declare a `GlyphText` component and the system bakes behind the scenes.\n//\n// 12-float stride (R-2 hard gate): the layout already produced interleaved\n// vertices at the canonical `PROCEDURAL_FLOATS_PER_VERTEX` stride (position + uv\n// real, normal (0,0,1) / tangent (0,0,0,1) placeholder). We deinterleave into\n// the `VertexAttributeMap` (position / normal / uv / tangent) so\n// `AssetRegistry.register` can derive the GPU vertex layout + AABB. The\n// register call fail-fasts with `mesh-vertex-stride-mismatch` if the stride is\n// ever wrong -- this module never bypasses that gate.\n//\n// Empty string -> 0-vertex / 0-index mesh; `register` accepts the empty mesh\n// (validateMeshPayload branch (b)) and pick skips it (inverted-infinity AABB).\n//\n// Conservative cube AABB (D-5): pick must be orientation-independent (text may\n// billboard toward the camera at draw time, but `pick.ts` raycasts against the\n// static local AABB x world matrix without the billboard rotation). The baked\n// mesh's `attributes.position` carries the 8 corners of a cube centered at the\n// anchor with half-side = the layout radius R; `AssetRegistry.register`\n// computes the local AABB from that position attribute (`computeAABB`), so the\n// REGISTERED mesh AABB is the conservative cube -- a ray that would hit the\n// text from any in-plane orientation is caught. The GPU vertex buffer is built\n// from the interleaved `vertices` (real glyph quads), which is fully decoupled\n// from `attributes.position` (uploadMeshById reads `mesh.vertices`). `pick.ts`\n// is NOT modified -- the cube is purely a bake-step property of the mesh.\n\nimport type { World } from '@forgeax/engine-ecs';\nimport {\n buildMeshAttributeMapForUvSets,\n PROCEDURAL_FLOATS_PER_VERTEX,\n} from '@forgeax/engine-geometry';\nimport { ok, type Result } from '@forgeax/engine-rhi';\nimport type { AssetError, Handle, MeshAsset } from '@forgeax/engine-types';\n\nimport type { GlyphLayoutResult } from './glyph-layout';\n\n/** Result of baking a glyph layout into a registered mesh. */\nexport interface GlyphMeshBakeResult {\n /** The registered unmanaged mesh handle (feed to `MeshFilter.assetHandle`). */\n readonly handle: Handle<'MeshAsset', 'shared'>;\n /**\n * Conservative bounding-sphere cube AABB in local space: 6 floats\n * [-R,-R,-R, R,R,R] centered at the anchor (plan-strategy D-5). Empty\n * layout -> all-zero box.\n */\n readonly aabb: Float32Array;\n}\n\n/** Build the MeshAsset POD (12-float stride) from a glyph layout. */\nexport function buildGlyphMeshAsset(layout: GlyphLayoutResult): MeshAsset {\n const { vertices, indices, radius } = layout;\n return {\n kind: 'mesh',\n vertices,\n indices,\n // `attributes.position` carries the 8 conservative-cube corners (half-side\n // = radius) so `register` computes the orientation-independent cube AABB\n // (D-5). The GPU vertex buffer is built from the interleaved `vertices`\n // (uploadMeshById reads `mesh.vertices`), fully decoupled from this\n // position attribute -- which exists only to drive `computeAABB`.\n attributes: {\n // Keep the conservative pick/cull position stream and the canonical\n // 12-float upload layout in one geometry-owned projection.\n ...buildMeshAttributeMapForUvSets(1),\n position: cubeCornerAttributes(radius).position,\n },\n submeshes: [\n {\n indexOffset: 0,\n indexCount: indices.length,\n vertexCount: vertices.length / PROCEDURAL_FLOATS_PER_VERTEX,\n topology: 'triangle-list',\n materialSlot: 0,\n },\n ],\n materialSlots: [{ slotName: 'Default' }],\n };\n}\n\n/** Conservative cube AABB centered at the anchor with half-side = layout radius. */\nexport function conservativeCubeAabb(radius: number): Float32Array {\n return Float32Array.of(-radius, -radius, -radius, radius, radius, radius);\n}\n\n/**\n * Bake a glyph layout into a registered mesh + conservative cube AABB.\n *\n * @param assets The AssetRegistry that owns the mesh handle lifecycle.\n * @param layout The pure layout output from `layoutGlyphText` (w15).\n * @returns `Result.ok({ handle, aabb })` or `Result.err(AssetError)` when\n * `register` fail-fasts (e.g. stride mismatch -- should never happen for a\n * layout produced by w15, but the gate is honored, not bypassed).\n */\nexport function bakeGlyphMesh(\n world: World,\n layout: GlyphLayoutResult,\n): Result<GlyphMeshBakeResult, AssetError> {\n const aabb = conservativeCubeAabb(layout.radius);\n // feat-20260614 M8 (D-17/D-19): the baked text mesh is a runtime-minted\n // user-tier asset allocated directly into the world's SharedRefStore. Unlike\n // `AssetRegistry.catalog` (which runs `withMeshAabb` to compute the AABB from\n // `attributes.position`), `allocSharedRef` stores the payload verbatim -- so\n // the mesh POD must carry its own `.aabb` for the cull / pick path to read it.\n const meshAsset: MeshAsset = { ...buildGlyphMeshAsset(layout), aabb };\n const handle = world.allocSharedRef<'MeshAsset', MeshAsset>('MeshAsset', meshAsset);\n return ok({ handle, aabb });\n}\n\n/**\n * The 8 corners of a cube centered at the anchor with half-side = radius,\n * packed as a flat `position` attribute (x,y,z per corner). `computeAABB`\n * reduces this to the conservative cube AABB (D-5). For an empty layout\n * (radius 0) all corners collapse to the origin, yielding a zero-volume box\n * that pick treats as a point miss -- consistent with the empty-string path.\n */\nfunction cubeCornerAttributes(radius: number): { position: Float32Array } {\n const r = radius;\n return {\n position: Float32Array.of(\n -r,\n -r,\n -r,\n r,\n -r,\n -r,\n r,\n r,\n -r,\n -r,\n r,\n -r,\n -r,\n -r,\n r,\n r,\n -r,\n r,\n r,\n r,\n r,\n -r,\n r,\n r,\n ),\n };\n}\n","// @forgeax/engine-graphics-extras - tile-bits (Tiled .tmj wire-format helpers).\n//\n// Tiled .tmj packs each cell as a uint32 where the high 4 bits encode flip /\n// rotation slots and the low 28 bits encode the 1-indexed tile id (id 0 means\n// \"empty cell\"). The wire layout, from MSB to LSB:\n//\n// bit 31 flipHorizontal\n// bit 30 flipVertical\n// bit 29 flipDiagonal (== 90deg CW rotation in Tiled semantics)\n// bit 28 flipHex120 (Tiled hex 120deg flip; preserved for fidelity,\n// unused by the orthogonal renderer in M0)\n// bits 0..27 tileId (0..0x0FFFFFFF; 0 sentinel = empty)\n//\n// Anchors: requirements integration points (engine-runtime tile-bits SSOT);\n// plan-strategy §M0 targetFiles (tile-bits.ts); feat-20260604 D-2 wire\n// compatibility lock.\n//\n// charter mapping: F1 (single-import barrel — encode/decode pair lives at\n// `@forgeax/engine-runtime/tile-bits`), P3 (overflow / negative / non-integer\n// tile id surface as RangeError, never silently clamp), P4 (encode and decode\n// share the same bit layout and are inverse functions over the supported\n// 0..0x0FFFFFFF tile id range).\n\nconst TILE_ID_MAX = 0x0fffffff;\nconst FLIP_H_BIT = 1 << 31;\nconst FLIP_V_BIT = 1 << 30;\nconst FLIP_D_BIT = 1 << 29;\nconst FLIP_HEX120_BIT = 1 << 28;\n\n/**\n * Pack a Tiled .tmj cell into its u32 wire form.\n *\n * @param tileId 1-indexed tile id in [0, 0x0FFFFFFF]; `0` is the empty-cell\n * sentinel that `TileLayer.tiles` carries downstream. `1` is the first real\n * tile entry index into `TilesetAsset.tiles[0]`.\n * @throws RangeError when `tileId` is non-integer, negative, or > 0x0FFFFFFF.\n */\nexport function encodeTileBits(\n tileId: number,\n flipH: boolean,\n flipV: boolean,\n flipDiagonal: boolean,\n flipHex120: boolean,\n): number {\n if (!Number.isInteger(tileId) || tileId < 0 || tileId > TILE_ID_MAX) {\n throw new RangeError(\n `encodeTileBits: tileId must be an integer in [0, ${TILE_ID_MAX}]; got ${tileId}`,\n );\n }\n let packed = tileId >>> 0;\n if (flipH) packed |= FLIP_H_BIT;\n if (flipV) packed |= FLIP_V_BIT;\n if (flipDiagonal) packed |= FLIP_D_BIT;\n if (flipHex120) packed |= FLIP_HEX120_BIT;\n return packed >>> 0;\n}\n\n/**\n * Unpack a Tiled .tmj cell from its u32 wire form into the structured shape\n * consumed by `tilemap-chunk-extract-system.ts:spawnDerivedRenderEntities`.\n */\nexport function decodeTileBits(packed: number): {\n readonly tileId: number;\n readonly flipH: boolean;\n readonly flipV: boolean;\n readonly flipDiagonal: boolean;\n readonly flipHex120: boolean;\n} {\n const u = packed >>> 0;\n return {\n tileId: u & TILE_ID_MAX,\n flipH: (u & FLIP_H_BIT) !== 0,\n flipV: (u & FLIP_V_BIT) !== 0,\n flipDiagonal: (u & FLIP_D_BIT) !== 0,\n flipHex120: (u & FLIP_HEX120_BIT) !== 0,\n };\n}\n","import {\n type AssetDecoderContribution,\n type AssetKind,\n err,\n ok,\n type TilesetAsset,\n} from '@forgeax/engine-types';\n\n/** Tileset validation is owned here; no physics consumer exists yet. */\nexport const tilesetContribution: AssetDecoderContribution<TilesetAsset, 'tileset'> = {\n kind: { kind: 'tileset' } as AssetKind<TilesetAsset, 'tileset'>,\n consumer: 'tilemapChunkExtractSystem (physics consumer: missing evidence)',\n decoder: {\n async decode({ envelope }) {\n const payload = envelope.payload as unknown;\n if (payload !== null && typeof payload === 'object') {\n const source = payload as Record<string, unknown>;\n const rawAtlases = source.atlases;\n const regions = source.regions;\n const tiles = source.tiles;\n const atlases = Array.isArray(rawAtlases)\n ? rawAtlases.map((value) =>\n typeof value === 'number' && Number.isSafeInteger(value)\n ? envelope.refs[value]\n : value,\n )\n : undefined;\n if (\n source.kind === 'tileset' &&\n atlases !== undefined &&\n atlases.length > 0 &&\n atlases.every(\n (atlas): atlas is string => typeof atlas === 'string' && atlas.length > 0,\n ) &&\n Array.isArray(regions) &&\n regions.length > 0 &&\n Array.isArray(tiles) &&\n tiles.every(\n (tile) =>\n tile !== null &&\n typeof tile === 'object' &&\n typeof (tile as { regionIndex?: unknown }).regionIndex === 'number' &&\n (tile as { regionIndex: number }).regionIndex >= 0 &&\n (tile as { regionIndex: number }).regionIndex < regions.length,\n )\n ) {\n return ok({\n ...source,\n kind: 'tileset',\n atlases,\n regions,\n tiles,\n } as unknown as TilesetAsset);\n }\n }\n return err({\n code: 'asset-package-invalid',\n expected: 'a tileset with atlas GUIDs and in-range tile regions',\n hint: 'repair the tileset regions; physics consumption is not installed by this owner',\n detail: { guid: envelope.guid, reason: 'tileset owner validation failed' },\n });\n },\n },\n};\n","// @forgeax/engine-graphics-extras — VideoElementProvider contract + Resource key\n// (feat-20260623-world-space-video-asset M3 / w9).\n//\n// D-1: the channel by which a host HTMLVideoElement reaches the engine is a\n// host-registered `VideoElementProvider` stored as a World Resource. The host\n// implements this interface, owns the `<video>` DOM lifecycle (create / set\n// src / autoplay / mute / dispose) single-sidedly, and registers it via\n// `world.insertResource(VIDEO_ELEMENT_PROVIDER_KEY, provider)`. The engine's\n// per-frame record stage (`render-system-record.ts` `videoTextureView`) reads\n// it back each draw via `world.getResource(VIDEO_ELEMENT_PROVIDER_KEY)` and asks\n// for the element to sample — it NEVER constructs an HTMLVideoElement, sets\n// `.src`, or touches the DOM (requirements constraint: HTMLVideoElement is\n// host-provided). There is no separate ECS \"video player system\" to register.\n//\n// Why a World Resource (not an ECS field): the ECS schema vocab is closed\n// (component.ts:315-333) and admits no opaque/object field type, so an\n// HTMLVideoElement reference cannot live inside a component. A World Resource\n// is the typed singleton channel for host-owned services — the same shape used\n// by animation-domain lookups / TransparentSortConfig (research Finding 5,\n// plan-strategy D-1; plan-decisions F-3 correction: this uses the REAL World\n// Resource API insertResource/getResource, not audio's direct-parameter\n// injection).\n//\n// This module is a pure contract: an interface plus a typed key constant, no\n// runtime behavior. Behavior is exercised by w10/w11 via a mock provider\n// (the host's real implementation lives in the M5 demo, w20).\n\nimport type { EntityHandle } from '@forgeax/engine-ecs';\nimport type { Handle } from '@forgeax/engine-types';\n\n/**\n * Resource key under which the host inserts its {@link VideoElementProvider}.\n *\n * Consumers import this constant rather than the bare string so a typo\n * degrades to an import error rather than a silent missing-resource at runtime\n * (charter P3). Naming mirrors the animation-domain lookup boundary /\n * `TRANSPARENT_SORT_CONFIG_KEY`.\n *\n * @example Host registers its provider once per World:\n * world.insertResource(VIDEO_ELEMENT_PROVIDER_KEY, myProvider);\n * // ...the record stage reads it back each renderer.draw...\n */\nexport const VIDEO_ELEMENT_PROVIDER_KEY = 'VideoElementProvider' as const;\n\n/**\n * Host-implemented bridge from a VideoPlayer entity (+ its `clip` handle) to\n * the host-owned HTMLVideoElement the engine samples each frame.\n *\n * The engine calls {@link getElement} during the video tick; the host returns\n * the element it owns for that clip, or `undefined` when no element is\n * available yet (clip not loaded / metadata pending / host has none). The\n * engine treats `undefined` as \"no source this frame\" and routes through the\n * structured failure / degrade path (AC-10) rather than sampling garbage.\n *\n * The engine NEVER mutates the returned element — it only reads it for the\n * per-frame `copyExternalImageToTexture` upload (M4). DOM lifecycle is the\n * host's sole responsibility (D-1).\n */\nexport interface VideoElementProvider {\n /**\n * Return the host-owned HTMLVideoElement for the given entity + clip, or\n * `undefined` when none is available this frame.\n *\n * @param entity - the VideoPlayer entity requesting its element.\n * @param clipHandle - the entity's `VideoPlayer.clip` handle\n * (`Handle<'VideoAsset','shared'>`).\n */\n getElement(\n entity: EntityHandle,\n clipHandle: Handle<'VideoAsset', 'shared'>,\n ): HTMLVideoElement | undefined;\n}\n","// @forgeax/engine-graphics-extras - video loader (feat-20260623-world-space-video-asset M2 / w4).\n//\n// Descriptor-only loader for the 'video' asset kind. VideoAsset is a pure\n// `{ url }` descriptor (no pixel decode, no import/cook pipeline — OOS-1);\n// the runtime resolves it into an HTMLVideoElement via the host-provided\n// `VideoElementProvider` World Resource (plan-strategy D-1).\n//\n// The loader returns the payload as VideoAsset synchronously — no fetch or\n// decode. Audio differs because its renderer-injected catalog-entry loader\n// fetches and decodes a Web Audio payload before cataloguing it.\n//\n// Registered in wireDefaultLoaders alongside the other 10 default kinds\n// (plan-strategy D-7: engine-own kind goes in the default set so AI users\n// don't have to manually register it).\n\nimport {\n type AssetDecoderContribution,\n type AssetKind,\n err,\n type Loader,\n ok,\n type VideoAsset,\n} from '@forgeax/engine-types';\n\nconst VIDEO_URL_RESOLUTION_BASE = 'https://forgeax.invalid/';\nconst VIDEO_URL_WHITESPACE = /\\s/u;\n\nfunction hasVideoUrlControlCharacter(value: string): boolean {\n for (const character of value) {\n const code = character.charCodeAt(0);\n if (code <= 0x1f || code === 0x7f) return true;\n }\n return false;\n}\n\nfunction isBrowserResolvableVideoUrl(value: unknown): value is string {\n if (\n typeof value !== 'string' ||\n value.length === 0 ||\n value.trim().length === 0 ||\n value !== value.trim() ||\n hasVideoUrlControlCharacter(value) ||\n VIDEO_URL_WHITESPACE.test(value) ||\n value.startsWith('//')\n ) {\n return false;\n }\n try {\n const resolved = new URL(value, VIDEO_URL_RESOLUTION_BASE);\n return resolved.protocol === 'http:' || resolved.protocol === 'https:';\n } catch {\n return false;\n }\n}\n\nexport const videoLoader: Loader<VideoAsset> = {\n kind: 'video',\n load(payload: Record<string, unknown>): VideoAsset | undefined {\n if (!isBrowserResolvableVideoUrl(payload.url)) return undefined;\n return { kind: 'video', url: payload.url };\n },\n};\n\nexport const videoContribution: AssetDecoderContribution<VideoAsset, 'video'> = {\n kind: { kind: 'video' } as AssetKind<VideoAsset, 'video'>,\n consumer: 'VideoElementProvider',\n decoder: {\n async decode({ envelope }) {\n const payload = envelope.payload;\n return payload.kind === 'video' && isBrowserResolvableVideoUrl(payload.url)\n ? ok(payload)\n : err({\n code: 'asset-package-invalid',\n expected: 'a browser-resolvable video URL descriptor',\n hint: 'publish an http(s) video URL and let the host create the video element',\n detail: { guid: envelope.guid, reason: 'video owner validation failed' },\n });\n },\n },\n};\n","// @forgeax/engine-graphics-extras — VideoPlayer ECS component\n// (feat-20260623-world-space-video-asset M3 / w7).\n//\n// Single-component play-state surface for world-space video textures. An\n// entity carries one VideoPlayer referencing a VideoAsset via the `clip`\n// handle; the per-entity playing / loop / currentTime live in independent\n// archetype column slots so multiple entities share one VideoAsset GUID with\n// independent play state (AC-05, research Finding 6).\n//\n// Schema vocab is the CLOSED ECS set (component.ts:315-333): clip uses\n// `shared<VideoAsset>` (a branded u32 handle, NOT a bare GUID string), the\n// three play-state fields use `bool` / `f32`. No opaque / object field type is\n// introduced — the host HTMLVideoElement reference travels through the\n// VideoElementProvider World Resource (plan-strategy D-1 / w9), never inside an\n// ECS field (research Finding 5: schema vocab closed).\n//\n// Decision anchors:\n// - requirements AC-04 (VideoPlayer registers via defineComponent; reference\n// field is a handle type, not a bare GUID; play-state fields playing/loop/\n// currentTime).\n// - plan-strategy D-4 (clip: Handle<'VideoAsset','shared'>, brand string\n// 'VideoAsset' mirrors AudioSource.clip: Handle<'AudioClipAsset','shared'>\n// so AI users carry over the audio naming intuition — charter P4).\n// - charter P1 (progressive disclosure: 4-field minimal surface).\n\nimport { defineComponent } from '@forgeax/engine-ecs';\n\n/**\n * VideoPlayer — attaches video play state to an entity.\n *\n * Fields:\n * - `clip: shared<VideoAsset>` — handle to the VideoAsset describing the\n * source URL (mirrors `AudioSource.clip`). Resolved into an\n * HTMLVideoElement at frame time via the host `VideoElementProvider`\n * (the engine never decodes video bytes — D-1).\n * - `playing: bool` — whether the clip advances this frame (default false).\n * - `loop: bool` — whether the clip restarts at end (default false).\n * - `currentTime: f32` — playback head in seconds (default 0).\n *\n * Multiple entities may reference the same `clip` GUID with distinct\n * play state — each entity's playing / loop / currentTime occupy independent\n * archetype column slots (AC-05).\n */\nexport const VideoPlayer = defineComponent('VideoPlayer', {\n // The host HTMLVideoElement owns the live asset/presentation binding; the\n // portable play controls remain in the simulation projection.\n clip: { type: 'shared<VideoAsset>' },\n playing: { type: 'bool', default: false },\n loop: { type: 'bool', default: false },\n currentTime: { type: 'f32', default: 0, transient: true },\n});\n","// @forgeax/engine-graphics-extras — video high-perf upload capability probe\n// (feat-20260623-world-space-video-asset M4 / w17).\n//\n// The single per-frame video upload path lives in the record stage\n// (`render-system-record.ts` `videoTextureView`): it reads the host-registered\n// VideoElementProvider (World Resource, D-1), uploads the current frame via\n// `DynamicTextureStore.uploadFrame` (copyExternalImageToTexture), and fires the\n// structured `VideoUploadUnsupportedError` on the engine error channel when a\n// VideoPlayer entity can reach NEITHER the general path (no host element) NOR\n// the high-perf path (AC-10 double-miss, charter P3). There is exactly ONE video\n// upload/failure path — this module only contributes the capability probe the\n// record stage consults to decide whether the reserved high-perf branch is\n// available.\n//\n// Decision anchors:\n// - requirements AC-09 (two paths left in place, capability probe explicit).\n// - plan-strategy D-2 (grep-able capability branch, not a TODO).\n\n/**\n * Minimal device shape the high-perf capability probe inspects: the backend\n * kind plus the (currently-absent) `importExternalTexture` method. Declared\n * structurally so the probe stays decoupled from the full RhiDevice surface and\n * unit tests drive it with a small object.\n */\nexport interface VideoCapabilityDevice {\n readonly caps: { readonly backendKind: 'webgpu' | 'wgpu-native' | 'wgpu-webgl2' | 'null' };\n /**\n * The WebGPU zero-copy video import entry point. forgeax exposes NO such RHI\n * method today (research Finding 4 confirmed `importExternalTexture` grep=0),\n * so this is always `undefined` — the probe's presence check is the explicit,\n * grep-able boundary between the general path and the reserved high-perf path\n * (D-2 / AC-09; OOS-5 keeps the upload body unimplemented).\n */\n readonly importExternalTexture?: unknown;\n}\n\n/**\n * AC-09 / D-2 capability probe: decide whether the high-perf zero-copy\n * GPUExternalTexture upload path is available for video this frame. This is the\n * EXPLICIT reserved hook the AC-09 \"two paths left in place\" acceptance is\n * checked against by code review — it is a real, grep-able code branch, not a\n * TODO comment.\n *\n * The high-perf path requires BOTH a WebGPU backend (GPUExternalTexture is a\n * browser-WebGPU feature) AND the RHI exposing an `importExternalTexture` entry\n * point. The latter does not exist in forgeax today (OOS-5: importing the\n * external texture + a `texture_external` MaterialParamType + WGSL external\n * sampling is out of scope), so this probe ALWAYS returns false and the general\n * `copyExternalImageToTexture` path (record stage) is the sole route end-to-end.\n * The day a future feat lands `importExternalTexture`, this probe flips on for\n * WebGPU backends without touching the call sites.\n */\nexport function probeVideoHighPerfUpload(device: VideoCapabilityDevice | undefined): boolean {\n if (device === undefined) return false;\n // GPUExternalTexture is browser-WebGPU only (wgpu-native / wgpu-webgl2 lack it).\n if (device.caps.backendKind !== 'webgpu') return false;\n // Reserved high-perf hook: available only when the RHI exposes the import\n // entry point. It is absent today (OOS-5), so this is the false-returning\n // boundary the AC-09 two-path code review verifies.\n return typeof device.importExternalTexture === 'function';\n}\n"]}
1
+ {"version":3,"sources":["../src/glyph-layout.ts","../src/glyph-mesh-bake.ts","../src/tile-bits.ts","../src/tileset-decoder.ts","../src/video-element-provider.ts","../src/video-loader.ts","../src/video-player.ts","../src/video-player-system.ts"],"names":["PROCEDURAL_FLOATS_PER_VERTEX","ok","err"],"mappings":"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","file":"index.mjs","sourcesContent":["// @forgeax/engine-graphics-extras - glyph layout algorithm\n// (feat-20260531-world-space-msdf-text-rendering M4 / w15).\n//\n// Pure functions: lay out a `GlyphText` string against a `FontAsset`'s glyph\n// metrics into per-glyph quad vertices (position + uv) and indices, plus a\n// conservative bounding-sphere radius for pick (plan-strategy D-5). NO ECS,\n// NO GPU -- the mesh baking (12-float stride fill + register) is the job of\n// `glyph-mesh-bake.ts` (w17); this module produces only the geometry data.\n//\n// Layout model (plan-strategy D-2 / D-4 / D-5):\n// - left-aligned: the pen advances by `metric.advance * fontSize` per glyph.\n// - baseline at local y = 0 on the first line; the local space is Y-up so a\n// glyph quad's top edge sits at `penY - bearingY*s + size.h*s` and its\n// bottom edge at `penY - bearingY*s` (BMFont yoffset measures DOWN from\n// the line top; we negate into Y-up so higher bearingY -> lower top).\n// - `\\n` resets penX to 0 and drops penY by `lineHeight * fontSize`\n// (line-2 baseline = -lineHeight, AC-21).\n// - missing codepoint -> notdef TOFU fallback; the glyph still counts and\n// emits a quad (AC-14). A codepoint with neither a metric nor a notdef\n// emits no quad but still advances by the notdef-or-zero advance.\n// - empty string -> zero vertices / zero indices / radius 0 (the bake\n// helper registers a 0-vertex mesh, which is legal; pick skips it).\n//\n// Vertex layout produced here is the 12-float canonical stride\n// (PROCEDURAL_FLOATS_PER_VERTEX): position(vec3) + normal(vec3) + uv(vec2) +\n// tangent(vec4). This module writes position + uv as real values and leaves\n// normal/tangent as placeholder constants so the buffer is register-ready\n// without a second pass (R-2: 12-float stride is a hard register gate). The\n// per-vertex offsets are exported so the bake helper + tests share one SSOT.\n\nimport { PROCEDURAL_FLOATS_PER_VERTEX } from '@forgeax/engine-geometry';\nimport type { FontAsset, GlyphMetric } from '@forgeax/engine-types';\nimport { TextError } from '@forgeax/engine-types';\n\n/**\n * Canonical 12-float vertex stride (position vec3 + normal vec3 + uv vec2 +\n * tangent vec4) owned by `PROCEDURAL_FLOATS_PER_VERTEX` in\n * `@forgeax/engine-geometry`. R-2: the baked mesh must satisfy this stride or `register`\n * fail-fasts with `mesh-vertex-stride-mismatch`.\n */\n/** Byte-free float offsets within a single 12-float vertex. */\nexport const VERTEX_OFFSET = {\n position: 0, // vec3\n normal: 3, // vec3 (placeholder (0,0,1))\n uv: 6, // vec2\n tangent: 8, // vec4 (placeholder (0,0,0,1))\n} as const;\n\n/** Soft per-frame concurrent-font ceiling (plan-strategy D-8 / AC-20). */\nexport const FONT_CONCURRENCY_LIMIT = 8;\n\n/** Layout output: per-glyph quad geometry + conservative sphere radius. */\nexport interface GlyphLayoutResult {\n /** 12-float-stride interleaved vertices (4 vertices per glyph). */\n readonly vertices: Float32Array;\n /** Triangle indices (6 per glyph: two triangles). */\n readonly indices: Uint16Array;\n /**\n * Conservative bounding-sphere radius from the anchor (local origin) to the\n * farthest glyph quad corner (plan-strategy D-5). The bake helper turns this\n * into a cube AABB (half-side = radius) so pick is orientation-independent.\n */\n readonly radius: number;\n}\n\n// Module-level set tracking distinct FontAsset handle ids active in the\n// current frame. The layout system resets this at the top of each frame\n// (resetFontConcurrency) and calls trackFontConcurrency once per distinct\n// font; the 9th distinct font throws a structured TextError (D-8 rejects\n// silently evicting the oldest font).\nconst activeFontIds = new Set<number>();\n\n/** Reset the per-frame concurrent-font tracker (call once at frame start). */\nexport function resetFontConcurrency(): void {\n activeFontIds.clear();\n}\n\n/**\n * Track one distinct FontAsset handle id as active this frame. Re-tracking an\n * already-active id is a no-op; the (N+1)th distinct id beyond\n * {@link FONT_CONCURRENCY_LIMIT} throws `TextError('font-concurrency-exceeded')`\n * (plan-strategy D-8 / AC-20).\n */\nexport function trackFontConcurrency(fontId: number): void {\n if (activeFontIds.has(fontId)) return;\n if (activeFontIds.size >= FONT_CONCURRENCY_LIMIT) {\n throw new TextError({\n code: 'font-concurrency-exceeded',\n expected: String(FONT_CONCURRENCY_LIMIT),\n hint: 'reuse a shared FontAsset across labels, or split text into fewer distinct fonts per frame',\n detail: { active: activeFontIds.size, limit: FONT_CONCURRENCY_LIMIT, rejected: fontId },\n });\n }\n activeFontIds.add(fontId);\n}\n\nconst NEWLINE = '\\n'.codePointAt(0) as number;\n\n/**\n * Lay out `text` against `font` at `fontSize`, producing per-glyph quad\n * geometry (12-float stride) + indices + the conservative sphere radius.\n *\n * @param font The resolved FontAsset (glyph metrics + common block).\n * @param text The authoring string (`\\n` starts a new line).\n * @param fontSize Uniform scale applied to all metric units.\n */\nexport function layoutGlyphText(\n font: FontAsset,\n text: string,\n fontSize: number,\n): GlyphLayoutResult {\n const s = fontSize;\n const { atlasWidth, atlasHeight, lineHeight } = font.common;\n\n // First pass over code points: collect the renderable glyph quads.\n const quads: Array<{ x0: number; y0: number; x1: number; y1: number; m: GlyphMetric }> = [];\n let penX = 0;\n let penY = 0;\n let maxCornerDist = 0;\n\n // Iterate by code point so surrogate pairs count as one glyph.\n for (const ch of text) {\n const cp = ch.codePointAt(0) as number;\n if (cp === NEWLINE) {\n penX = 0;\n penY -= lineHeight * s;\n continue;\n }\n const metric = font.glyphs[cp] ?? font.notdef;\n if (metric === undefined) {\n // Neither a glyph nor a notdef -> nothing to render; advance by zero so\n // the cursor does not jump (rare: a font with no notdef and missing cp).\n continue;\n }\n // Quad corners in Y-up local space (baseline at penY).\n const x0 = penX + metric.bearingX * s;\n const yTop = penY - metric.bearingY * s + metric.size.h * s;\n const yBot = penY - metric.bearingY * s;\n const x1 = x0 + metric.size.w * s;\n quads.push({ x0, y0: yBot, x1, y1: yTop, m: metric });\n maxCornerDist = Math.max(\n maxCornerDist,\n Math.hypot(x0, yBot),\n Math.hypot(x1, yBot),\n Math.hypot(x0, yTop),\n Math.hypot(x1, yTop),\n );\n penX += metric.advance * s;\n }\n\n const glyphCount = quads.length;\n const vertices = new Float32Array(glyphCount * 4 * PROCEDURAL_FLOATS_PER_VERTEX);\n const indices = new Uint16Array(glyphCount * 6);\n\n for (let g = 0; g < glyphCount; g++) {\n const q = quads[g] as (typeof quads)[number];\n const { region } = q.m;\n // Atlas UV (top-left origin) normalized into [0,1].\n const u0 = region.x / atlasWidth;\n const u1 = (region.x + region.w) / atlasWidth;\n const v0 = region.y / atlasHeight;\n const v1 = (region.y + region.h) / atlasHeight;\n // 4 corners: TL, TR, BR, BL (CCW); position z = 0 (billboard before).\n // uv pairs the top edge (y1) with v0 and the bottom edge (y0) with v1.\n writeVertex(vertices, g * 4 + 0, q.x0, q.y1, u0, v0);\n writeVertex(vertices, g * 4 + 1, q.x1, q.y1, u1, v0);\n writeVertex(vertices, g * 4 + 2, q.x1, q.y0, u1, v1);\n writeVertex(vertices, g * 4 + 3, q.x0, q.y0, u0, v1);\n const vbase = g * 4;\n const ibase = g * 6;\n indices[ibase + 0] = vbase + 0;\n indices[ibase + 1] = vbase + 1;\n indices[ibase + 2] = vbase + 2;\n indices[ibase + 3] = vbase + 0;\n indices[ibase + 4] = vbase + 2;\n indices[ibase + 5] = vbase + 3;\n }\n\n return { vertices, indices, radius: maxCornerDist };\n}\n\n/** Write one 12-float vertex (position + placeholder normal + uv + placeholder tangent). */\nfunction writeVertex(\n out: Float32Array,\n vertexIndex: number,\n x: number,\n y: number,\n u: number,\n v: number,\n): void {\n const o = vertexIndex * PROCEDURAL_FLOATS_PER_VERTEX;\n // position (vec3)\n out[o + VERTEX_OFFSET.position + 0] = x;\n out[o + VERTEX_OFFSET.position + 1] = y;\n out[o + VERTEX_OFFSET.position + 2] = 0;\n // normal placeholder (0,0,1)\n out[o + VERTEX_OFFSET.normal + 0] = 0;\n out[o + VERTEX_OFFSET.normal + 1] = 0;\n out[o + VERTEX_OFFSET.normal + 2] = 1;\n // uv (vec2)\n out[o + VERTEX_OFFSET.uv + 0] = u;\n out[o + VERTEX_OFFSET.uv + 1] = v;\n // tangent placeholder (0,0,0,1)\n out[o + VERTEX_OFFSET.tangent + 0] = 0;\n out[o + VERTEX_OFFSET.tangent + 1] = 0;\n out[o + VERTEX_OFFSET.tangent + 2] = 0;\n out[o + VERTEX_OFFSET.tangent + 3] = 1;\n}\n","// @forgeax/engine-graphics-extras - glyph mesh bake helper\n// (feat-20260531-world-space-msdf-text-rendering M4 / w17).\n//\n// Turns the pure layout output (w15) into a registered `MeshAsset` and a\n// conservative bounding-sphere cube AABB (plan-strategy D-4 / D-5). Called by\n// the `glyphTextLayoutSystem` (w18) -- not a public AI-user API; AI users\n// declare a `GlyphText` component and the system bakes behind the scenes.\n//\n// 12-float stride (R-2 hard gate): the layout already produced interleaved\n// vertices at the canonical `PROCEDURAL_FLOATS_PER_VERTEX` stride (position + uv\n// real, normal (0,0,1) / tangent (0,0,0,1) placeholder). We deinterleave into\n// the `VertexAttributeMap` (position / normal / uv / tangent) so\n// `AssetRegistry.register` can derive the GPU vertex layout + AABB. The\n// register call fail-fasts with `mesh-vertex-stride-mismatch` if the stride is\n// ever wrong -- this module never bypasses that gate.\n//\n// Empty string -> 0-vertex / 0-index mesh; `register` accepts the empty mesh\n// (validateMeshPayload branch (b)) and pick skips it (inverted-infinity AABB).\n//\n// Conservative cube AABB (D-5): pick must be orientation-independent (text may\n// billboard toward the camera at draw time, but `pick.ts` raycasts against the\n// static local AABB x world matrix without the billboard rotation). The baked\n// mesh's `attributes.position` carries the 8 corners of a cube centered at the\n// anchor with half-side = the layout radius R; `AssetRegistry.register`\n// computes the local AABB from that position attribute (`computeAABB`), so the\n// REGISTERED mesh AABB is the conservative cube -- a ray that would hit the\n// text from any in-plane orientation is caught. The GPU vertex buffer is built\n// from the interleaved `vertices` (real glyph quads), which is fully decoupled\n// from `attributes.position` (uploadMeshById reads `mesh.vertices`). `pick.ts`\n// is NOT modified -- the cube is purely a bake-step property of the mesh.\n\nimport type { World } from '@forgeax/engine-ecs';\nimport {\n buildMeshAttributeMapForUvSets,\n PROCEDURAL_FLOATS_PER_VERTEX,\n} from '@forgeax/engine-geometry';\nimport { ok, type Result } from '@forgeax/engine-rhi';\nimport type { AssetError, Handle, MeshAsset } from '@forgeax/engine-types';\n\nimport type { GlyphLayoutResult } from './glyph-layout';\n\n/** Result of baking a glyph layout into a registered mesh. */\nexport interface GlyphMeshBakeResult {\n /** The registered unmanaged mesh handle (feed to `MeshFilter.assetHandle`). */\n readonly handle: Handle<'MeshAsset', 'shared'>;\n /**\n * Conservative bounding-sphere cube AABB in local space: 6 floats\n * [-R,-R,-R, R,R,R] centered at the anchor (plan-strategy D-5). Empty\n * layout -> all-zero box.\n */\n readonly aabb: Float32Array;\n}\n\n/** Build the MeshAsset POD (12-float stride) from a glyph layout. */\nexport function buildGlyphMeshAsset(layout: GlyphLayoutResult): MeshAsset {\n const { vertices, indices, radius } = layout;\n return {\n kind: 'mesh',\n vertices,\n indices,\n // `attributes.position` carries the 8 conservative-cube corners (half-side\n // = radius) so `register` computes the orientation-independent cube AABB\n // (D-5). The GPU vertex buffer is built from the interleaved `vertices`\n // (uploadMeshById reads `mesh.vertices`), fully decoupled from this\n // position attribute -- which exists only to drive `computeAABB`.\n attributes: {\n // Keep the conservative pick/cull position stream and the canonical\n // 12-float upload layout in one geometry-owned projection.\n ...buildMeshAttributeMapForUvSets(1),\n position: cubeCornerAttributes(radius).position,\n },\n submeshes: [\n {\n indexOffset: 0,\n indexCount: indices.length,\n vertexCount: vertices.length / PROCEDURAL_FLOATS_PER_VERTEX,\n topology: 'triangle-list',\n materialSlot: 0,\n },\n ],\n materialSlots: [{ slotName: 'Default' }],\n };\n}\n\n/** Conservative cube AABB centered at the anchor with half-side = layout radius. */\nexport function conservativeCubeAabb(radius: number): Float32Array {\n return Float32Array.of(-radius, -radius, -radius, radius, radius, radius);\n}\n\n/**\n * Bake a glyph layout into a registered mesh + conservative cube AABB.\n *\n * @param assets The AssetRegistry that owns the mesh handle lifecycle.\n * @param layout The pure layout output from `layoutGlyphText` (w15).\n * @returns `Result.ok({ handle, aabb })` or `Result.err(AssetError)` when\n * `register` fail-fasts (e.g. stride mismatch -- should never happen for a\n * layout produced by w15, but the gate is honored, not bypassed).\n */\nexport function bakeGlyphMesh(\n world: World,\n layout: GlyphLayoutResult,\n): Result<GlyphMeshBakeResult, AssetError> {\n const aabb = conservativeCubeAabb(layout.radius);\n // feat-20260614 M8 (D-17/D-19): the baked text mesh is a runtime-minted\n // user-tier asset allocated directly into the world's SharedRefStore. Unlike\n // `AssetRegistry.catalog` (which runs `withMeshAabb` to compute the AABB from\n // `attributes.position`), `allocSharedRef` stores the payload verbatim -- so\n // the mesh POD must carry its own `.aabb` for the cull / pick path to read it.\n const meshAsset: MeshAsset = { ...buildGlyphMeshAsset(layout), aabb };\n const handle = world.allocSharedRef<'MeshAsset', MeshAsset>('MeshAsset', meshAsset);\n return ok({ handle, aabb });\n}\n\n/**\n * The 8 corners of a cube centered at the anchor with half-side = radius,\n * packed as a flat `position` attribute (x,y,z per corner). `computeAABB`\n * reduces this to the conservative cube AABB (D-5). For an empty layout\n * (radius 0) all corners collapse to the origin, yielding a zero-volume box\n * that pick treats as a point miss -- consistent with the empty-string path.\n */\nfunction cubeCornerAttributes(radius: number): { position: Float32Array } {\n const r = radius;\n return {\n position: Float32Array.of(\n -r,\n -r,\n -r,\n r,\n -r,\n -r,\n r,\n r,\n -r,\n -r,\n r,\n -r,\n -r,\n -r,\n r,\n r,\n -r,\n r,\n r,\n r,\n r,\n -r,\n r,\n r,\n ),\n };\n}\n","// @forgeax/engine-graphics-extras - tile-bits (Tiled .tmj wire-format helpers).\n//\n// Tiled .tmj packs each cell as a uint32 where the high 4 bits encode flip /\n// rotation slots and the low 28 bits encode the 1-indexed tile id (id 0 means\n// \"empty cell\"). The wire layout, from MSB to LSB:\n//\n// bit 31 flipHorizontal\n// bit 30 flipVertical\n// bit 29 flipDiagonal (== 90deg CW rotation in Tiled semantics)\n// bit 28 flipHex120 (Tiled hex 120deg flip; preserved for fidelity,\n// unused by the orthogonal renderer in M0)\n// bits 0..27 tileId (0..0x0FFFFFFF; 0 sentinel = empty)\n//\n// Anchors: requirements integration points (engine-runtime tile-bits SSOT);\n// plan-strategy §M0 targetFiles (tile-bits.ts); feat-20260604 D-2 wire\n// compatibility lock.\n//\n// charter mapping: F1 (single-import barrel — encode/decode pair lives at\n// `@forgeax/engine-runtime/tile-bits`), P3 (overflow / negative / non-integer\n// tile id surface as RangeError, never silently clamp), P4 (encode and decode\n// share the same bit layout and are inverse functions over the supported\n// 0..0x0FFFFFFF tile id range).\n\nconst TILE_ID_MAX = 0x0fffffff;\nconst FLIP_H_BIT = 1 << 31;\nconst FLIP_V_BIT = 1 << 30;\nconst FLIP_D_BIT = 1 << 29;\nconst FLIP_HEX120_BIT = 1 << 28;\n\n/**\n * Pack a Tiled .tmj cell into its u32 wire form.\n *\n * @param tileId 1-indexed tile id in [0, 0x0FFFFFFF]; `0` is the empty-cell\n * sentinel that `TileLayer.tiles` carries downstream. `1` is the first real\n * tile entry index into `TilesetAsset.tiles[0]`.\n * @throws RangeError when `tileId` is non-integer, negative, or > 0x0FFFFFFF.\n */\nexport function encodeTileBits(\n tileId: number,\n flipH: boolean,\n flipV: boolean,\n flipDiagonal: boolean,\n flipHex120: boolean,\n): number {\n if (!Number.isInteger(tileId) || tileId < 0 || tileId > TILE_ID_MAX) {\n throw new RangeError(\n `encodeTileBits: tileId must be an integer in [0, ${TILE_ID_MAX}]; got ${tileId}`,\n );\n }\n let packed = tileId >>> 0;\n if (flipH) packed |= FLIP_H_BIT;\n if (flipV) packed |= FLIP_V_BIT;\n if (flipDiagonal) packed |= FLIP_D_BIT;\n if (flipHex120) packed |= FLIP_HEX120_BIT;\n return packed >>> 0;\n}\n\n/**\n * Unpack a Tiled .tmj cell from its u32 wire form into the structured shape\n * consumed by `tilemap-chunk-extract-system.ts:spawnDerivedRenderEntities`.\n */\nexport function decodeTileBits(packed: number): {\n readonly tileId: number;\n readonly flipH: boolean;\n readonly flipV: boolean;\n readonly flipDiagonal: boolean;\n readonly flipHex120: boolean;\n} {\n const u = packed >>> 0;\n return {\n tileId: u & TILE_ID_MAX,\n flipH: (u & FLIP_H_BIT) !== 0,\n flipV: (u & FLIP_V_BIT) !== 0,\n flipDiagonal: (u & FLIP_D_BIT) !== 0,\n flipHex120: (u & FLIP_HEX120_BIT) !== 0,\n };\n}\n","import {\n type AssetDecoderContribution,\n type AssetKind,\n err,\n ok,\n type TilesetAsset,\n} from '@forgeax/engine-types';\n\n/** Tileset validation is owned here; no physics consumer exists yet. */\nexport const tilesetContribution: AssetDecoderContribution<TilesetAsset, 'tileset'> = {\n kind: { kind: 'tileset' } as AssetKind<TilesetAsset, 'tileset'>,\n consumer: 'tilemapChunkExtractSystem (physics consumer: missing evidence)',\n decoder: {\n async decode({ envelope }) {\n const payload = envelope.payload as unknown;\n if (payload !== null && typeof payload === 'object') {\n const source = payload as Record<string, unknown>;\n const rawAtlases = source.atlases;\n const regions = source.regions;\n const tiles = source.tiles;\n const atlases = Array.isArray(rawAtlases)\n ? rawAtlases.map((value) =>\n typeof value === 'number' && Number.isSafeInteger(value)\n ? envelope.refs[value]\n : value,\n )\n : undefined;\n if (\n source.kind === 'tileset' &&\n atlases !== undefined &&\n atlases.length > 0 &&\n atlases.every(\n (atlas): atlas is string => typeof atlas === 'string' && atlas.length > 0,\n ) &&\n Array.isArray(regions) &&\n regions.length > 0 &&\n Array.isArray(tiles) &&\n tiles.every(\n (tile) =>\n tile !== null &&\n typeof tile === 'object' &&\n typeof (tile as { regionIndex?: unknown }).regionIndex === 'number' &&\n (tile as { regionIndex: number }).regionIndex >= 0 &&\n (tile as { regionIndex: number }).regionIndex < regions.length,\n )\n ) {\n return ok({\n ...source,\n kind: 'tileset',\n atlases,\n regions,\n tiles,\n } as unknown as TilesetAsset);\n }\n }\n return err({\n code: 'asset-package-invalid',\n expected: 'a tileset with atlas GUIDs and in-range tile regions',\n hint: 'repair the tileset regions; physics consumption is not installed by this owner',\n detail: { guid: envelope.guid, reason: 'tileset owner validation failed' },\n });\n },\n },\n};\n","// @forgeax/engine-graphics-extras — VideoElementProvider contract + Resource key\n// (feat-20260623-world-space-video-asset M3 / w9).\n//\n// D-1: the channel by which a host HTMLVideoElement reaches the engine is a\n// host-registered `VideoElementProvider` stored as a World Resource. The host\n// implements this interface, owns the `<video>` DOM lifecycle (create / set\n// src / autoplay / mute / dispose) single-sidedly, and registers it via\n// `world.insertResource(VIDEO_ELEMENT_PROVIDER_KEY, provider)`. The engine's\n// per-frame record stage (`render-system-record.ts` `videoTextureView`) reads\n// it back each draw via `world.getResource(VIDEO_ELEMENT_PROVIDER_KEY)` and asks\n// for the element to sample — it NEVER constructs an HTMLVideoElement, sets\n// `.src`, or touches the DOM (requirements constraint: HTMLVideoElement is\n// host-provided). There is no separate ECS \"video player system\" to register.\n//\n// Why a World Resource (not an ECS field): the ECS schema vocab is closed\n// (component.ts:315-333) and admits no opaque/object field type, so an\n// HTMLVideoElement reference cannot live inside a component. A World Resource\n// is the typed singleton channel for host-owned services — the same shape used\n// by animation-domain lookups / TransparentSortConfig (research Finding 5,\n// plan-strategy D-1; plan-decisions F-3 correction: this uses the REAL World\n// Resource API insertResource/getResource, not audio's direct-parameter\n// injection).\n//\n// This module is a pure contract: an interface plus a typed key constant, no\n// runtime behavior. Behavior is exercised by w10/w11 via a mock provider\n// (the host's real implementation lives in the M5 demo, w20).\n\nimport type { EntityHandle } from '@forgeax/engine-ecs';\nimport type { Handle } from '@forgeax/engine-types';\n\n/**\n * Resource key under which the host inserts its {@link VideoElementProvider}.\n *\n * Consumers import this constant rather than the bare string so a typo\n * degrades to an import error rather than a silent missing-resource at runtime\n * (charter P3). Naming mirrors the animation-domain lookup boundary /\n * `TRANSPARENT_SORT_CONFIG_KEY`.\n *\n * @example Host registers its provider once per World:\n * world.insertResource(VIDEO_ELEMENT_PROVIDER_KEY, myProvider);\n * // ...the record stage reads it back each renderer.draw...\n */\nexport const VIDEO_ELEMENT_PROVIDER_KEY = 'VideoElementProvider' as const;\n\n/**\n * Host-implemented bridge from a VideoPlayer entity (+ its `clip` handle) to\n * the host-owned HTMLVideoElement the engine samples each frame.\n *\n * The engine calls {@link getElement} during the video tick; the host returns\n * the element it owns for that clip, or `undefined` when no element is\n * available yet (clip not loaded / metadata pending / host has none). The\n * engine treats `undefined` as \"no source this frame\" and routes through the\n * structured failure / degrade path (AC-10) rather than sampling garbage.\n *\n * The engine NEVER mutates the returned element — it only reads it for the\n * per-frame `copyExternalImageToTexture` upload (M4). DOM lifecycle is the\n * host's sole responsibility (D-1).\n */\nexport interface VideoElementProvider {\n /**\n * Return the host-owned HTMLVideoElement for the given entity + clip, or\n * `undefined` when none is available this frame.\n *\n * @param entity - the VideoPlayer entity requesting its element.\n * @param clipHandle - the entity's `VideoPlayer.clip` handle\n * (`Handle<'VideoAsset','shared'>`).\n */\n getElement(\n entity: EntityHandle,\n clipHandle: Handle<'VideoAsset', 'shared'>,\n ): HTMLVideoElement | undefined;\n}\n","// @forgeax/engine-graphics-extras - video loader (feat-20260623-world-space-video-asset M2 / w4).\n//\n// Descriptor-only loader for the 'video' asset kind. VideoAsset is a pure\n// `{ url }` descriptor (no pixel decode, no import/cook pipeline — OOS-1);\n// the runtime resolves it into an HTMLVideoElement via the host-provided\n// `VideoElementProvider` World Resource (plan-strategy D-1).\n//\n// The loader returns the payload as VideoAsset synchronously — no fetch or\n// decode. Audio differs because its renderer-injected catalog-entry loader\n// fetches and decodes a Web Audio payload before cataloguing it.\n//\n// Registered in wireDefaultLoaders alongside the other 10 default kinds\n// (plan-strategy D-7: engine-own kind goes in the default set so AI users\n// don't have to manually register it).\n\nimport {\n type AssetDecoderContribution,\n type AssetKind,\n err,\n type Loader,\n ok,\n type VideoAsset,\n} from '@forgeax/engine-types';\n\nconst VIDEO_URL_RESOLUTION_BASE = 'https://forgeax.invalid/';\nconst VIDEO_URL_WHITESPACE = /\\s/u;\n\nfunction hasVideoUrlControlCharacter(value: string): boolean {\n for (const character of value) {\n const code = character.charCodeAt(0);\n if (code <= 0x1f || code === 0x7f) return true;\n }\n return false;\n}\n\nfunction isBrowserResolvableVideoUrl(value: unknown): value is string {\n if (\n typeof value !== 'string' ||\n value.length === 0 ||\n value.trim().length === 0 ||\n value !== value.trim() ||\n hasVideoUrlControlCharacter(value) ||\n VIDEO_URL_WHITESPACE.test(value) ||\n value.startsWith('//')\n ) {\n return false;\n }\n try {\n const resolved = new URL(value, VIDEO_URL_RESOLUTION_BASE);\n return resolved.protocol === 'http:' || resolved.protocol === 'https:';\n } catch {\n return false;\n }\n}\n\nexport const videoLoader: Loader<VideoAsset> = {\n kind: 'video',\n load(payload: Record<string, unknown>): VideoAsset | undefined {\n if (!isBrowserResolvableVideoUrl(payload.url)) return undefined;\n return { kind: 'video', url: payload.url };\n },\n};\n\nexport const videoContribution: AssetDecoderContribution<VideoAsset, 'video'> = {\n kind: { kind: 'video' } as AssetKind<VideoAsset, 'video'>,\n consumer: 'VideoElementProvider',\n decoder: {\n async decode({ envelope }) {\n const payload = envelope.payload;\n return payload.kind === 'video' && isBrowserResolvableVideoUrl(payload.url)\n ? ok(payload)\n : err({\n code: 'asset-package-invalid',\n expected: 'a browser-resolvable video URL descriptor',\n hint: 'publish an http(s) video URL and let the host create the video element',\n detail: { guid: envelope.guid, reason: 'video owner validation failed' },\n });\n },\n },\n};\n","// @forgeax/engine-graphics-extras — VideoPlayer ECS component\n// (feat-20260623-world-space-video-asset M3 / w7).\n//\n// Single-component play-state surface for world-space video textures. An\n// entity carries one VideoPlayer referencing a VideoAsset via the `clip`\n// handle; the per-entity playing / loop / currentTime live in independent\n// archetype column slots so multiple entities share one VideoAsset GUID with\n// independent play state (AC-05, research Finding 6).\n//\n// Schema vocab is the CLOSED ECS set (component.ts:315-333): clip uses\n// `shared<VideoAsset>` (a branded u32 handle, NOT a bare GUID string), the\n// three play-state fields use `bool` / `f32`. No opaque / object field type is\n// introduced — the host HTMLVideoElement reference travels through the\n// VideoElementProvider World Resource (plan-strategy D-1 / w9), never inside an\n// ECS field (research Finding 5: schema vocab closed).\n//\n// Decision anchors:\n// - requirements AC-04 (VideoPlayer registers via defineComponent; reference\n// field is a handle type, not a bare GUID; play-state fields playing/loop/\n// currentTime).\n// - plan-strategy D-4 (clip: Handle<'VideoAsset','shared'>, brand string\n// 'VideoAsset' mirrors AudioSource.clip: Handle<'AudioClipAsset','shared'>\n// so AI users carry over the audio naming intuition — charter P4).\n// - charter P1 (progressive disclosure: 4-field minimal surface).\n\nimport { defineComponent } from '@forgeax/engine-ecs';\n\n/**\n * VideoPlayer — attaches video play state to an entity.\n *\n * Fields:\n * - `clip: shared<VideoAsset>` — handle to the VideoAsset describing the\n * source URL (mirrors `AudioSource.clip`). Resolved into an\n * HTMLVideoElement at frame time via the host `VideoElementProvider`\n * (the engine never decodes video bytes — D-1).\n * - `playing: bool` — whether the clip advances this frame (default false).\n * - `loop: bool` — whether the clip restarts at end (default false).\n * - `currentTime: f32` — playback head in seconds (default 0).\n *\n * Multiple entities may reference the same `clip` GUID with distinct\n * play state — each entity's playing / loop / currentTime occupy independent\n * archetype column slots (AC-05).\n */\nexport const VideoPlayer = defineComponent('VideoPlayer', {\n // The host HTMLVideoElement owns the live asset/presentation binding; the\n // portable play controls remain in the simulation projection.\n clip: { type: 'shared<VideoAsset>' },\n playing: { type: 'bool', default: false },\n loop: { type: 'bool', default: false },\n currentTime: { type: 'f32', default: 0, transient: true },\n});\n","// @forgeax/engine-graphics-extras — video high-perf upload capability probe\n// (feat-20260623-world-space-video-asset M4 / w17).\n//\n// The single per-frame video upload path lives in the record stage\n// (`render-system-record.ts` `videoTextureView`): it reads the host-registered\n// VideoElementProvider (World Resource, D-1), uploads the current frame via\n// `DynamicTextureStore.uploadFrame` (copyExternalImageToTexture), and fires the\n// structured `VideoUploadUnsupportedError` on the engine error channel when a\n// VideoPlayer entity can reach NEITHER the general path (no host element) NOR\n// the high-perf path (AC-10 double-miss, charter P3). There is exactly ONE video\n// upload/failure path — this module only contributes the capability probe the\n// record stage consults to decide whether the reserved high-perf branch is\n// available.\n//\n// Decision anchors:\n// - requirements AC-09 (two paths left in place, capability probe explicit).\n// - plan-strategy D-2 (grep-able capability branch, not a TODO).\n\nimport type { RhiCaps } from '@forgeax/engine-rhi';\n\n/**\n * Minimal device shape the high-perf capability probe inspects: the backend\n * kind plus the (currently-absent) `importExternalTexture` method. Declared\n * structurally so the probe stays decoupled from the full RhiDevice surface and\n * unit tests drive it with a small object.\n */\nexport interface VideoCapabilityDevice {\n readonly caps: Pick<RhiCaps, 'backendKind'>;\n /**\n * The WebGPU zero-copy video import entry point. forgeax exposes NO such RHI\n * method today (research Finding 4 confirmed `importExternalTexture` grep=0),\n * so this is always `undefined` — the probe's presence check is the explicit,\n * grep-able boundary between the general path and the reserved high-perf path\n * (D-2 / AC-09; OOS-5 keeps the upload body unimplemented).\n */\n readonly importExternalTexture?: unknown;\n}\n\n/**\n * AC-09 / D-2 capability probe: decide whether the high-perf zero-copy\n * GPUExternalTexture upload path is available for video this frame. This is the\n * EXPLICIT reserved hook the AC-09 \"two paths left in place\" acceptance is\n * checked against by code review — it is a real, grep-able code branch, not a\n * TODO comment.\n *\n * The high-perf path requires BOTH a WebGPU backend (GPUExternalTexture is a\n * browser-WebGPU feature) AND the RHI exposing an `importExternalTexture` entry\n * point. The latter does not exist in forgeax today (OOS-5: importing the\n * external texture + a `texture_external` MaterialParamType + WGSL external\n * sampling is out of scope), so this probe ALWAYS returns false and the general\n * `copyExternalImageToTexture` path (record stage) is the sole route end-to-end.\n * The day a future feat lands `importExternalTexture`, this probe flips on for\n * WebGPU backends without touching the call sites.\n */\nexport function probeVideoHighPerfUpload(device: VideoCapabilityDevice | undefined): boolean {\n if (device === undefined) return false;\n // GPUExternalTexture is browser-WebGPU only (wgpu-native / wgpu-webgl2 lack it).\n if (device.caps.backendKind !== 'webgpu') return false;\n // Reserved high-perf hook: available only when the RHI exposes the import\n // entry point. It is absent today (OOS-5), so this is the false-returning\n // boundary the AC-09 two-path code review verifies.\n return typeof device.importExternalTexture === 'function';\n}\n"]}
@@ -1,3 +1,4 @@
1
+ import type { RhiCaps } from '@forgeax/engine-rhi';
1
2
  /**
2
3
  * Minimal device shape the high-perf capability probe inspects: the backend
3
4
  * kind plus the (currently-absent) `importExternalTexture` method. Declared
@@ -5,9 +6,7 @@
5
6
  * unit tests drive it with a small object.
6
7
  */
7
8
  export interface VideoCapabilityDevice {
8
- readonly caps: {
9
- readonly backendKind: 'webgpu' | 'wgpu-native' | 'wgpu-webgl2' | 'null';
10
- };
9
+ readonly caps: Pick<RhiCaps, 'backendKind'>;
11
10
  /**
12
11
  * The WebGPU zero-copy video import entry point. forgeax exposes NO such RHI
13
12
  * method today (research Finding 4 confirmed `importExternalTexture` grep=0),
@@ -1 +1 @@
1
- {"version":3,"file":"video-player-system.d.ts","sourceRoot":"","sources":["../src/video-player-system.ts"],"names":[],"mappings":"AAkBA;;;;;GAKG;AACH,MAAM,WAAW,qBAAqB;IACpC,QAAQ,CAAC,IAAI,EAAE;QAAE,QAAQ,CAAC,WAAW,EAAE,QAAQ,GAAG,aAAa,GAAG,aAAa,GAAG,MAAM,CAAA;KAAE,CAAC;IAC3F;;;;;;OAMG;IACH,QAAQ,CAAC,qBAAqB,CAAC,EAAE,OAAO,CAAC;CAC1C;AAED;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,wBAAwB,CAAC,MAAM,EAAE,qBAAqB,GAAG,SAAS,GAAG,OAAO,CAQ3F"}
1
+ {"version":3,"file":"video-player-system.d.ts","sourceRoot":"","sources":["../src/video-player-system.ts"],"names":[],"mappings":"AAkBA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAC;AAEnD;;;;;GAKG;AACH,MAAM,WAAW,qBAAqB;IACpC,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAC,OAAO,EAAE,aAAa,CAAC,CAAC;IAC5C;;;;;;OAMG;IACH,QAAQ,CAAC,qBAAqB,CAAC,EAAE,OAAO,CAAC;CAC1C;AAED;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,wBAAwB,CAAC,MAAM,EAAE,qBAAqB,GAAG,SAAS,GAAG,OAAO,CAQ3F"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@forgeax/engine-graphics-extras",
3
- "version": "0.1.4",
3
+ "version": "0.1.7",
4
4
  "private": false,
5
5
  "type": "module",
6
6
  "license": "Apache-2.0",
@@ -22,10 +22,10 @@
22
22
  "LICENSE"
23
23
  ],
24
24
  "dependencies": {
25
- "@forgeax/engine-ecs": "0.1.4",
26
- "@forgeax/engine-geometry": "0.1.4",
27
- "@forgeax/engine-rhi": "0.1.4",
28
- "@forgeax/engine-types": "0.1.4"
25
+ "@forgeax/engine-ecs": "0.1.7",
26
+ "@forgeax/engine-geometry": "0.1.7",
27
+ "@forgeax/engine-rhi": "0.1.7",
28
+ "@forgeax/engine-types": "0.1.7"
29
29
  },
30
30
  "devDependencies": {
31
31
  "@types/node": "^20.14.0"
@@ -0,0 +1,7 @@
1
+ import type { RhiCaps } from '@forgeax/engine-rhi';
2
+ import { expectTypeOf } from 'vitest';
3
+ import type { VideoCapabilityDevice } from '../video-player-system';
4
+
5
+ expectTypeOf<VideoCapabilityDevice['caps']['backendKind']>().toEqualTypeOf<
6
+ RhiCaps['backendKind']
7
+ >();
package/src/index.ts CHANGED
@@ -24,6 +24,7 @@ export {
24
24
  // ─── tile-bits SSOT (feat-20260608-tilemap-object-layer-rendering) ─────────
25
25
  export { decodeTileBits, encodeTileBits } from './tile-bits';
26
26
  export { tilesetContribution } from './tileset-decoder';
27
+
27
28
  // ─── VideoElementProvider host bridge ─────────────────────────────────────
28
29
  export {
29
30
  VIDEO_ELEMENT_PROVIDER_KEY,
@@ -16,6 +16,8 @@
16
16
  // - requirements AC-09 (two paths left in place, capability probe explicit).
17
17
  // - plan-strategy D-2 (grep-able capability branch, not a TODO).
18
18
 
19
+ import type { RhiCaps } from '@forgeax/engine-rhi';
20
+
19
21
  /**
20
22
  * Minimal device shape the high-perf capability probe inspects: the backend
21
23
  * kind plus the (currently-absent) `importExternalTexture` method. Declared
@@ -23,7 +25,7 @@
23
25
  * unit tests drive it with a small object.
24
26
  */
25
27
  export interface VideoCapabilityDevice {
26
- readonly caps: { readonly backendKind: 'webgpu' | 'wgpu-native' | 'wgpu-webgl2' | 'null' };
28
+ readonly caps: Pick<RhiCaps, 'backendKind'>;
27
29
  /**
28
30
  * The WebGPU zero-copy video import entry point. forgeax exposes NO such RHI
29
31
  * method today (research Finding 4 confirmed `importExternalTexture` grep=0),
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=video-loader.unit.test.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"video-loader.unit.test.d.ts","sourceRoot":"","sources":["../../src/__tests__/video-loader.unit.test.ts"],"names":[],"mappings":""}
@@ -1,27 +0,0 @@
1
- import { describe, expect, it } from 'vitest';
2
- import { videoContribution, videoLoader } from '../video-loader';
3
-
4
- describe('video asset owner', () => {
5
- it('exposes the host video consumer contribution', () => {
6
- expect(videoContribution.kind.kind).toBe('video');
7
- expect(videoContribution.consumer).toBe('VideoElementProvider');
8
- });
9
- it('returns the durable descriptor for a browser-resolvable source', () => {
10
- expect(
11
- videoLoader.load(
12
- { kind: 'video', url: 'https://cdn.example/cutscene.webm' },
13
- undefined,
14
- {} as never,
15
- ),
16
- ).toEqual({
17
- kind: 'video',
18
- url: 'https://cdn.example/cutscene.webm',
19
- });
20
- });
21
-
22
- it('returns no payload for a malformed durable source', () => {
23
- expect(
24
- videoLoader.load({ kind: 'video', url: 'javascript:alert(1)' }, undefined, {} as never),
25
- ).toBeUndefined();
26
- });
27
- });