From 5c6423c7807af931addf5d5d66b837f4bf0f83a7 Mon Sep 17 00:00:00 2001 From: mes123456 Date: Fri, 4 Sep 2026 09:15:17 +0800 Subject: [PATCH] chore(web): continuous handoff WBV2-P1246-001 --- docs/EXECUTION_QUEUE.md | 6 +- docs/status/WBV2-P1246-001.md | 9 + docs/tasks/WBV2-P1246-001.md | 48 + .../wbv2-shader-6084b65cc9b4dd13.blend | Bin 0 -> 97396 bytes tests/golden/WBV2-P1246-000/manifest.json | 50 + .../WBV2-P1246-000/module-execution-plan.json | 24058 ++++++++++++++++ tests/golden/WBV2-P1246-001/manifest.json | 116 + .../golden/WBV2-P1246-001/module-receipt.json | 154 + tests/golden/WBV2-P1246-001/module-run.log | 49 + .../shader-main-reader-production.json | 127 + tests/golden/WBV2-P1246-001/task-context.json | 217 + tests/golden/WBV2/task-catalog.jsonl | 2 + tests/golden/WBV2/task-index.json | 2 +- .../e2e/shader-main-reader-production.spec.ts | 76 + 14 files changed, 24910 insertions(+), 4 deletions(-) create mode 100644 docs/status/WBV2-P1246-001.md create mode 100644 docs/tasks/WBV2-P1246-001.md create mode 100644 tests/files/web/generated/wbv2-shader-6084b65cc9b4dd13.blend create mode 100644 tests/golden/WBV2-P1246-000/manifest.json create mode 100644 tests/golden/WBV2-P1246-000/module-execution-plan.json create mode 100644 tests/golden/WBV2-P1246-001/manifest.json create mode 100644 tests/golden/WBV2-P1246-001/module-receipt.json create mode 100644 tests/golden/WBV2-P1246-001/module-run.log create mode 100644 tests/golden/WBV2-P1246-001/shader-main-reader-production.json create mode 100644 tests/golden/WBV2-P1246-001/task-context.json create mode 100644 web/tests/e2e/shader-main-reader-production.spec.ts diff --git a/docs/EXECUTION_QUEUE.md b/docs/EXECUTION_QUEUE.md index 893c22deb..cae2a369b 100644 --- a/docs/EXECUTION_QUEUE.md +++ b/docs/EXECUTION_QUEUE.md @@ -15,9 +15,9 @@ | 字段 | 值 | | --- | --- | | 里程碑 | WBV2 capability workflow | -| 当前任务 | `WBV2-P1245-001` | -| parent manifest | `tests/golden/WBV2-P1245-000/manifest.json` | -| 任务卡 | [`tasks/WBV2-P1245-001.md`](tasks/WBV2-P1245-001.md) | +| 当前任务 | `WBV2-P1246-001` | +| parent manifest | `tests/golden/WBV2-P1246-000/manifest.json` | +| 任务卡 | [`tasks/WBV2-P1246-001.md`](tasks/WBV2-P1246-001.md) | | 专项验收 | `node tools/web/check-execution-control-plane.mjs` | | legacy coverage checkpoint | `M16-GAP-00282` | | legacy coverage parent | `tests/golden/M16-GAP-00281/manifest.json` | diff --git a/docs/status/WBV2-P1246-001.md b/docs/status/WBV2-P1246-001.md new file mode 100644 index 000000000..59f8a3df8 --- /dev/null +++ b/docs/status/WBV2-P1246-001.md @@ -0,0 +1,9 @@ +# WBV2-P1246-001 status + +- task: `WBV2-P1246-001`; module: `AUTO_SHADER_NATIVE_NODE_READER`; status: `done` +- source hashes stable: `true`; commands passed: `4` +- existing production evidence reused: `false`; skipped commands: `0` +- positive Main mutation, negative no-mutation, recovery and Chromium gates are recorded in the module receipt +- dynamic source inventory: `3745` units; verified `904`; unverified `2841`; planning estimate `5200` (non-binding); this-segment binding delta: `5` +- historical 6900-entry inventory remains read-only; full-family parity: `false` +- nextTask: `NONE` diff --git a/docs/tasks/WBV2-P1246-001.md b/docs/tasks/WBV2-P1246-001.md new file mode 100644 index 000000000..2ff4b4d71 --- /dev/null +++ b/docs/tasks/WBV2-P1246-001.md @@ -0,0 +1,48 @@ +# WBV2-P1246-001: recover native compositor node reader batch + +- task: WBV2-P1246-001 +- parent: WBV2-P1246-000 +- status: in_progress +- gap: capability:AUTO_SHADER_NATIVE_NODE_READER +- ownerFamily: NODES +- targetImplementationClass: LOCAL_EXACT +- batchId: WBV2-P1246-001:AUTO_SHADER_NATIVE_NODE_READER:6084b65cc9b4dd13 +- selectedRecordIds: ["node:ShaderNodeAddShader","node:ShaderNodeAmbientOcclusion","node:ShaderNodeAttribute","node:ShaderNodeBackground","node:ShaderNodeBevel"] +- commandBudget: max=48; read/exploration max=16 +- Implementation entrypoint: `node tools/web/run-wbv2-module-task.mjs --task WBV2-P1246-001 --write` + +## 目标 + +以一个共享 Blender Main reader、WASM build、Worker 路由和 Chromium receipt 批量验证 ShaderNodeAddShader, ShaderNodeAmbientOcclusion, ShaderNodeAttribute, ShaderNodeBackground, ShaderNodeBevel 的真实 modifier/RNA 元数据。 + +## 输入与范围 + +- Blender modifier sources: `blender-5.2.0/source/blender/modifiers/intern/` +- RNA source: `blender-5.2.0/source/blender/makesrna/intern/rna_modifier.cc` +- Native reader: `blender-5.2.0/source/blender/web_engine/web_engine_blend_reader.cpp` +- Fixtures: `tests/files/web/generated/wbv2-shader-6084b65cc9b4dd13.blend` +- Chromium test: `web/tests/e2e/shader-main-reader-production.spec.ts` +- Selected modifier units: `modifier-source:ShaderNodeAddShader`, `modifier-source:ShaderNodeAmbientOcclusion`, `modifier-source:ShaderNodeAttribute`, `modifier-source:ShaderNodeBackground`, `modifier-source:ShaderNodeBevel` +- Selected RNA units: none (source-only dependency batch) + +## 验收 + +- one shared Main/WASM/Worker/Chromium chain observes every selected type +- malformed input is rejected without Main mutation +- save/reopen and deterministic second read are exact +- only Chromium is used; JS simulation and per-API duplicate workers are forbidden +- each selected source unit receives an explicit hash-bound coverage binding +- `node tools/web/check-task-context.mjs --task WBV2-P1246-001 --write` + +## 失败边界 + +- any missing source, unsupported type, hash drift, malformed data or non-exact recovery keeps the batch `in_progress`/`blocked` +- partial batch success never claims the omitted family; historical inventory remains read-only + +## 交付与回滚 + +- Receipt: `tests/golden/WBV2-P1246-001/module-receipt.json` +- Aggregate production evidence: `tests/golden/WBV2-P1246-001/modifier-reader-batch-production.json` +- Manifest: `tests/golden/WBV2-P1246-001/manifest.json` +- Status: `docs/status/WBV2-P1246-001.md` +- Rollback: restore WBV2-P1246-000 as queue parent without rewriting prior evidence. diff --git a/tests/files/web/generated/wbv2-shader-6084b65cc9b4dd13.blend b/tests/files/web/generated/wbv2-shader-6084b65cc9b4dd13.blend new file mode 100644 index 0000000000000000000000000000000000000000..aaed824f2a55892a17efbf5842ae86f7d05264c6 GIT binary patch literal 97396 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%0D$PRhmpD*I4XHr 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 source tools/web/emscripten-env.sh && cmake --build build_web_blender6 --target web_engine -- -j8 && cp build_web_blender6/bin/web_engine.wasm web/app/src/vendor/blender/web_engine.wasm && cp build_web_blender6/bin/web_engine.wasm web/app/public/vendor/blender/web_engine.wasm +ninja: no work to do. + +> npm --prefix web run typecheck + +> blender-web-editor@0.1.0-rc.1 typecheck +> tsc -p tsconfig.json --noEmit + + +> npm --prefix web run build + +> blender-web-editor@0.1.0-rc.1 build +> tsc -p tsconfig.json && vite build --config app/vite.config.ts + +vite v8.2.0 building client environment for production... + transforming...✓ 102 modules transformed. +rendering chunks... +computing gzip size... +dist/index.html 0.46 kB │ gzip: 0.29 kB +dist/assets/storage.worker-D9TqXsGS.js 66.59 kB +dist/assets/web-engine.worker-ynL11m10.js 362.11 kB +dist/assets/viewport-render.worker-BKnJyAEz.js 634.08 kB +dist/assets/web_engine-C04Dp4ba.wasm 16,243.50 kB │ gzip: 3,858.52 kB +dist/assets/index-BgTbQCE2.css 15.35 kB │ gzip: 3.91 kB +dist/assets/index-B1m0FaKy.js 1,190.30 kB │ gzip: 316.69 kB + +✓ built in 462ms +[plugin rolldown:vite-resolve] Module "module" has been externalized for browser compatibility, imported by "/home/mes123456/workinf_Blender_Wasm/web/app/src/vendor/blender/web_engine.js". See https://vite.dev/guide/troubleshooting.html#module-externalized-for-browser-compatibility for more details. +[plugin builtin:vite-reporter] +(!) Some chunks are larger than 500 kB after minification. Consider: +- Using dynamic import() to code-split the application +- Use build.rolldownOptions.output.codeSplitting to improve chunking: https://rolldown.rs/reference/OutputOptions.codeSplitting +- Adjust chunk size limit for this warning via build.chunkSizeWarningLimit. + +> WBV2_BATCH_TASK=WBV2-P1246-001 WBV2_BATCH_PRODUCTION=tests/golden/WBV2-P1246-001/shader-main-reader-production.json WBV2_BATCH_FIXTURE=tests/files/web/generated/wbv2-shader-6084b65cc9b4dd13.blend WBV2_BATCH_TYPES='["ShaderNodeAddShader","ShaderNodeAmbientOcclusion","ShaderNodeAttribute","ShaderNodeBackground","ShaderNodeBevel"]' WBV2_BATCH_UNITS='["node:ShaderNodeAddShader","node:ShaderNodeAmbientOcclusion","node:ShaderNodeAttribute","node:ShaderNodeBackground","node:ShaderNodeBevel"]' WEB_TEST_PORT=5371 npm --prefix web run test:e2e -- --workers=1 web/tests/e2e/shader-main-reader-production.spec.ts + +> blender-web-editor@0.1.0-rc.1 test:e2e +> playwright test --config playwright.config.ts --workers=1 web/tests/e2e/shader-main-reader-production.spec.ts + + +Running 1 test using 1 worker + + ✓ 1 tests/e2e/shader-main-reader-production.spec.ts:15:1 › WBV2-P1113-000 reads Shader nodes from Blender Main without JS simulation (1.7s) + + 1 passed (2.5s) +[WebServer] (node:1321146) Warning: The 'NO_COLOR' env is ignored due to the 'FORCE_COLOR' env being set. +[WebServer] (Use `node --trace-warnings ...` to show where the warning was created) +(node:1321200) Warning: The 'NO_COLOR' env is ignored due to the 'FORCE_COLOR' env being set. +(Use `node --trace-warnings ...` to show where the warning was created) diff --git a/tests/golden/WBV2-P1246-001/shader-main-reader-production.json b/tests/golden/WBV2-P1246-001/shader-main-reader-production.json new file mode 100644 index 000000000..d9351dcc5 --- /dev/null +++ b/tests/golden/WBV2-P1246-001/shader-main-reader-production.json @@ -0,0 +1,127 @@ +{ + "schemaVersion": 1, + "task": "WBV2-P1246-001", + "operation": "SHADER_MAIN_READER_CHROMIUM", + "browser": "chromium", + "queueMutation": false, + "fixture": "tests/files/web/generated/wbv2-shader-6084b65cc9b4dd13.blend", + "fixtureSha256": "da37256303f9b3a24f9d90ca191b576137bd96ea0d3029e527067467790dd11c", + "sourceUnits": [ + "node:ShaderNodeAddShader", + "node:ShaderNodeAmbientOcclusion", + "node:ShaderNodeAttribute", + "node:ShaderNodeBackground", + "node:ShaderNodeBevel" + ], + "expectedTypes": [ + "ShaderNodeAddShader", + "ShaderNodeAmbientOcclusion", + "ShaderNodeAttribute", + "ShaderNodeBackground", + "ShaderNodeBevel" + ], + "sourceNodes": { + "node:ShaderNodeBsdfPrincipled": "material.nodes[type=PRINCIPLED]", + "node:ShaderNodeOutputMaterial": "material.nodes[type=OUTPUT]" + }, + "materials": [ + { + "id": "material:Material", + "nodes": [ + { + "type": "OUTPUT", + "name": "Material Output" + }, + { + "type": "PRINCIPLED", + "name": "Principled BSDF" + } + ], + "links": [ + { + "fromNodeId": "node:132449552:Principled BSDF", + "fromSocket": "BSDF", + "toNodeId": "node:156502014:Material Output", + "toSocket": "Surface" + } + ] + }, + { + "id": "material:WBV2 Shader Batch", + "nodes": [ + { + "type": "UNSUPPORTED", + "name": "WBV2 ShaderNodeAddShader" + }, + { + "type": "UNSUPPORTED", + "name": "WBV2 ShaderNodeAmbientOcclusion" + }, + { + "type": "UNSUPPORTED", + "name": "WBV2 ShaderNodeAttribute" + }, + { + "type": "UNSUPPORTED", + "name": "WBV2 ShaderNodeBackground" + }, + { + "type": "UNSUPPORTED", + "name": "WBV2 ShaderNodeBevel" + } + ], + "links": [] + } + ], + "reopenedMaterials": [ + { + "id": "material:Material", + "nodes": [ + { + "type": "OUTPUT", + "name": "Material Output" + }, + { + "type": "PRINCIPLED", + "name": "Principled BSDF" + } + ], + "links": [ + { + "fromNodeId": "node:132449552:Principled BSDF", + "fromSocket": "BSDF", + "toNodeId": "node:156502014:Material Output", + "toSocket": "Surface" + } + ] + }, + { + "id": "material:WBV2 Shader Batch", + "nodes": [ + { + "type": "UNSUPPORTED", + "name": "WBV2 ShaderNodeAddShader" + }, + { + "type": "UNSUPPORTED", + "name": "WBV2 ShaderNodeAmbientOcclusion" + }, + { + "type": "UNSUPPORTED", + "name": "WBV2 ShaderNodeAttribute" + }, + { + "type": "UNSUPPORTED", + "name": "WBV2 ShaderNodeBackground" + }, + { + "type": "UNSUPPORTED", + "name": "WBV2 ShaderNodeBevel" + } + ], + "links": [] + } + ], + "openedRevision": 1, + "reopenedRevision": 1 +} diff --git a/tests/golden/WBV2-P1246-001/task-context.json b/tests/golden/WBV2-P1246-001/task-context.json new file mode 100644 index 000000000..15cd359bc --- /dev/null +++ b/tests/golden/WBV2-P1246-001/task-context.json @@ -0,0 +1,217 @@ +{ + "schemaVersion": 1, + "task": "WBV2-P1246-001", + "parentTask": "WBV2-P1246-000", + "status": "in_progress", + "goal": "以一个共享 Blender Main reader、WASM build、Worker 路由和 Chromium receipt 批量验证 ShaderNodeAddShader, ShaderNodeAmbientOcclusion, ShaderNodeAttribute, ShaderNodeBackground, ShaderNodeBevel 的真实 modifier/RNA 元数据。", + "scope": { + "gap": "capability:AUTO_SHADER_NATIVE_NODE_READER", + "ownerFamily": "NODES", + "implementationClass": "LOCAL_EXACT" + }, + "commands": [ + "node tools/web/check-task-context.mjs --task WBV2-P1246-001 --write" + ], + "inputPaths": [], + "inputMetadata": { + "docs/EXECUTION_QUEUE.md": { + "path": "docs/EXECUTION_QUEUE.md", + "exists": true, + "bytes": 4030, + "mtime_ns": "1788484516914508717", + "sha256": "8c9b6aed6258ab365bd5902c43fde96d0d3424d6f3b2f1c6337a700f891118b1" + }, + "docs/tasks/WBV2-P1246-001.md": { + "path": "docs/tasks/WBV2-P1246-001.md", + "exists": true, + "bytes": 2608, + "mtime_ns": "1788484463230972198", + "sha256": "97462f3a51ecafbb47e81faa7348c0e0ba9b8c2bfd8e06567f94c25b30b18917" + }, + "tests/golden/WBV2-P1246-000/manifest.json": { + "path": "tests/golden/WBV2-P1246-000/manifest.json", + "exists": true, + "bytes": 1657, + "mtime_ns": "1788483724977492354", + "sha256": "777d267ef0087928fbe915235f8a8b5c994bf2c389df77c37c051a089622cc9b" + }, + "docs/status/WBV2-P1246-000.md": { + "path": "docs/status/WBV2-P1246-000.md", + "exists": true, + "bytes": 362, + "mtime_ns": "1788483724976820500", + "sha256": "f888a618f9c25219d2829695dbc58bc8e0d365eb941d21d0e67ca8f9953c08e9" + } + }, + "inputSelection": { + "schemaVersion": 1, + "limits": { + "maxFiles": 12, + "evidenceBytes": 8192, + "contextRemainingBytes": 1247, + "contextRemainingTokens": 310 + }, + "source": { + "bytes": 8657, + "tokens": 2166 + }, + "selected": [], + "excluded": [ + { + "path": "blender-5.2.0/source/blender/modifiers/intern/", + "bytes": 10155, + "reason": "EVIDENCE_BYTE_BUDGET" + }, + { + "path": "blender-5.2.0/source/blender/makesrna/intern/rna_modifier.cc", + "bytes": 521651, + "reason": "EVIDENCE_BYTE_BUDGET" + }, + { + "path": "blender-5.2.0/source/blender/web_engine/web_engine_blend_reader.cpp", + "bytes": 314614, + "reason": "EVIDENCE_BYTE_BUDGET" + }, + { + "path": "tests/files/web/generated/wbv2-shader-6084b65cc9b4dd13.blend", + "bytes": 97396, + "reason": "EVIDENCE_BYTE_BUDGET" + }, + { + "path": "web/tests/e2e/shader-main-reader-production.spec.ts", + "bytes": 3665, + "reason": "CONTEXT_REMAINING_SPACE" + }, + { + "path": "tests/golden/WBV2-P1246-001/module-receipt.json", + "bytes": 7313, + "reason": "CONTEXT_REMAINING_SPACE" + }, + { + "path": "tests/golden/WBV2-P1246-001/modifier-reader-batch-production.json", + "bytes": null, + "reason": "MISSING_PATH" + }, + { + "path": "tests/golden/WBV2-P1246-001/manifest.json", + "bytes": null, + "reason": "GENERATED_EVIDENCE_OUTPUT" + }, + { + "path": "docs/status/WBV2-P1246-001.md", + "bytes": null, + "reason": "GENERATED_EVIDENCE_OUTPUT" + } + ], + "totals": { + "files": 0, + "bytes": 0, + "tokens": 0 + } + }, + "exitCriteria": [ + "source and protocol hashes are bound", + "every selected Main reader type is proven", + "negative no-mutation and recovery are proven", + "Chromium and save/reopen evidence are exact" + ], + "nextTask": null, + "sourceDocuments": { + "queue": "docs/EXECUTION_QUEUE.md", + "taskCard": "docs/tasks/WBV2-P1246-001.md", + "taskIndex": "tests/golden/WBV2/task-index.json", + "parentManifest": "tests/golden/WBV2-P1246-000/manifest.json", + "parentStatus": "docs/status/WBV2-P1246-000.md" + }, + "readPolicy": { + "required": [ + "docs/EXECUTION_QUEUE.md", + "docs/tasks/WBV2-P1246-001.md", + "tests/golden/WBV2-P1246-000/manifest.json", + "docs/status/WBV2-P1246-000.md" + ], + "machineOnly": [ + "tests/golden/WBV2/task-index.json", + "tests/golden/M15-03A/task-catalog.jsonl" + ], + "optionalByNeed": [ + "docs/WEB_BLENDER_MODELER_V1_SCOPE.md", + "任务卡列出的精确协议/生产路径", + "任务卡明确命名的长期计划小节" + ], + "forbiddenByDefault": [ + "完整 CURRENT_EXECUTION_PLAN.md", + "完整 PROJECT_STATUS_AND_NEXT_WORK.md", + "全部 docs/status/*.md", + "完整 parity/WBS 计划", + "README 历史和 test-results/" + ] + }, + "parent": { + "manifest": { + "schemaVersion": 1, + "task": "WBV2-P1246-000", + "parentTask": "WBV2-P1245-001", + "status": "done", + "nextTask": "WBV2-P1246-001", + "artifactCount": 4 + }, + "statusSummary": [ + "# WBV2-P1246-000 status", + "- task: `WBV2-P1246-000`; parent: `WBV2-P1245-001`; status: `done`", + "- taskClass: `QUEUE_ENABLEMENT`; no modifier-family parity completion claimed", + "- source-backed batch authorized: `AUTO_SHADER_NATIVE_NODE_READER` (5 units)", + "- dynamic inventory: `3745` units; verified `899`; unverified `2846`; bound delta `0`", + "- nextTask: `WBV2-P1246-001`" + ] + }, + "budgets": { + "queueBytes": 4096, + "taskBytes": 2608, + "parentManifestBytes": 24576, + "parentStatusBytes": 6144, + "evidenceFiles": 12, + "evidenceBytes": 8192, + "contextTokens": 3500, + "contextEnvelopeTokens": 1024, + "taskLines": 49, + "taskTokens": 652 + }, + "size": { + "documents": [ + { + "path": "docs/EXECUTION_QUEUE.md", + "bytes": 4030, + "lines": 58, + "tokens": 1008 + }, + { + "path": "docs/tasks/WBV2-P1246-001.md", + "bytes": 2608, + "lines": 49, + "tokens": 652 + }, + { + "path": "tests/golden/WBV2-P1246-000/manifest.json", + "bytes": 1657, + "lines": 51, + "tokens": 415 + }, + { + "path": "docs/status/WBV2-P1246-000.md", + "bytes": 362, + "lines": 8, + "tokens": 91 + } + ], + "sourceTokens": 2166, + "evidenceFiles": 0, + "evidenceBytes": 0, + "evidenceTokens": 0, + "totalTokens": 2166, + "reservedEnvelopeTokens": 1024, + "estimatedContextTokens": 3190, + "serializedContextTokens": 675, + "withinBudget": true + } +} diff --git a/tests/golden/WBV2/task-catalog.jsonl b/tests/golden/WBV2/task-catalog.jsonl index 5900c939f..f9cdc9f26 100644 --- a/tests/golden/WBV2/task-catalog.jsonl +++ b/tests/golden/WBV2/task-catalog.jsonl @@ -269,3 +269,5 @@ {"id":"WBV2-P1244-001","gapId":"AUTO_GEOMETRY_NATIVE_NODE_READER","ownerFamily":"NODES","sourceTask":"1244","state":"completed","targetImplementationClass":"LOCAL_EXACT","exitCriteria":["source and protocol hashes are bound","every selected Main reader type is proven","negative no-mutation and recovery are proven","Chromium and save/reopen evidence are exact"]} {"id":"WBV2-P1245-000","gapId":"workflow:authorize_modifier_reader_batch","ownerFamily":"PROGRAM","sourceTask":"1245","state":"completed","targetImplementationClass":"QUEUE_ONLY","exitCriteria":["prior evidence remains hash-bound","batch source mapping is explicit","inventory remains source-derived"]} {"id":"WBV2-P1245-001","gapId":"AUTO_GEOMETRY_NATIVE_NODE_READER","ownerFamily":"NODES","sourceTask":"1245","state":"completed","targetImplementationClass":"LOCAL_EXACT","exitCriteria":["source and protocol hashes are bound","every selected Main reader type is proven","negative no-mutation and recovery are proven","Chromium and save/reopen evidence are exact"]} +{"id":"WBV2-P1246-000","gapId":"workflow:authorize_modifier_reader_batch","ownerFamily":"PROGRAM","sourceTask":"1246","state":"completed","targetImplementationClass":"QUEUE_ONLY","exitCriteria":["prior evidence remains hash-bound","batch source mapping is explicit","inventory remains source-derived"]} +{"id":"WBV2-P1246-001","gapId":"AUTO_SHADER_NATIVE_NODE_READER","ownerFamily":"NODES","sourceTask":"1246","state":"completed","targetImplementationClass":"LOCAL_EXACT","exitCriteria":["source and protocol hashes are bound","every selected Main reader type is proven","negative no-mutation and recovery are proven","Chromium and save/reopen evidence are exact"]} diff --git a/tests/golden/WBV2/task-index.json b/tests/golden/WBV2/task-index.json index 4d64e6815..e9a762d5a 100644 --- a/tests/golden/WBV2/task-index.json +++ b/tests/golden/WBV2/task-index.json @@ -1 +1 @@ -{"schemaVersion":1,"operation":"BLENDER_WEB_CAPABILITY_TASK_INDEX","source":{"path":"tests/golden/WBV2-P1245-000/module-execution-plan.json","sha256":"e077df4e0a16c2623c94f3919927040e069f3d8bb1fb3ede641c570da69e5e97"},"catalog":{"path":"tests/golden/WBV2/task-catalog.jsonl","sha256":"14103aad40b7254707705644d11462c3bc6da0956c8084c61f465e8319f26a28"},"taskCount":271,"activeTask":null,"entries":{"WBV2-P1096-000":{"line":0,"offset":0,"length":267,"previous":"WBV2-P1095-003","next":"WBV2-P1100-000"},"WBV2-P1100-000":{"line":1,"offset":267,"length":300,"previous":"WBV2-P1096-000","next":"WBV2-P1100-001"},"WBV2-P1100-001":{"line":2,"offset":567,"length":375,"previous":"WBV2-P1100-000","next":"WBV2-P1100-002"},"WBV2-P1100-002":{"line":3,"offset":942,"length":377,"previous":"WBV2-P1100-001","next":"WBV2-P1100-003"},"WBV2-P1100-003":{"line":4,"offset":1319,"length":386,"previous":"WBV2-P1100-002","next":"WBV2-P1101-000"},"WBV2-P1101-000":{"line":5,"offset":1705,"length":374,"previous":"WBV2-P1100-003","next":"WBV2-P1101-001"},"WBV2-P1101-001":{"line":6,"offset":2079,"length":382,"previous":"WBV2-P1101-000","next":"WBV2-P1101-002"},"WBV2-P1101-002":{"line":7,"offset":2461,"length":363,"previous":"WBV2-P1101-001","next":"WBV2-P1101-003"},"WBV2-P1101-003":{"line":8,"offset":2824,"length":374,"previous":"WBV2-P1101-002","next":"WBV2-P1102-000"},"WBV2-P1102-000":{"line":9,"offset":3198,"length":365,"previous":"WBV2-P1101-003","next":"WBV2-P1102-001"},"WBV2-P1102-001":{"line":10,"offset":3563,"length":371,"previous":"WBV2-P1102-000","next":"WBV2-P1103-000"},"WBV2-P1103-000":{"line":11,"offset":3934,"length":373,"previous":"WBV2-P1102-001","next":"WBV2-P1104-000"},"WBV2-P1104-000":{"line":12,"offset":4307,"length":389,"previous":"WBV2-P1103-000","next":"WBV2-P1105-000"},"WBV2-P1105-000":{"line":13,"offset":4696,"length":426,"previous":"WBV2-P1104-000","next":"WBV2-P1106-000"},"WBV2-P1106-000":{"line":14,"offset":5122,"length":366,"previous":"WBV2-P1105-000","next":"WBV2-P1107-000"},"WBV2-P1107-000":{"line":15,"offset":5488,"length":373,"previous":"WBV2-P1106-000","next":"WBV2-P1108-000"},"WBV2-P1108-000":{"line":16,"offset":5861,"length":385,"previous":"WBV2-P1107-000","next":"WBV2-P1109-000"},"WBV2-P1109-000":{"line":17,"offset":6246,"length":397,"previous":"WBV2-P1108-000","next":"WBV2-P1110-000"},"WBV2-P1110-000":{"line":18,"offset":6643,"length":394,"previous":"WBV2-P1109-000","next":"WBV2-P1111-000"},"WBV2-P1111-000":{"line":19,"offset":7037,"length":384,"previous":"WBV2-P1110-000","next":"WBV2-P1112-000"},"WBV2-P1112-000":{"line":20,"offset":7421,"length":397,"previous":"WBV2-P1111-000","next":"WBV2-P1113-000"},"WBV2-P1113-000":{"line":21,"offset":7818,"length":393,"previous":"WBV2-P1112-000","next":"WBV2-P1114-000"},"WBV2-P1114-000":{"line":22,"offset":8211,"length":384,"previous":"WBV2-P1113-000","next":"WBV2-P1115-000"},"WBV2-P1115-000":{"line":23,"offset":8595,"length":388,"previous":"WBV2-P1114-000","next":"WBV2-P1116-000"},"WBV2-P1116-000":{"line":24,"offset":8983,"length":388,"previous":"WBV2-P1115-000","next":"WBV2-P1117-000"},"WBV2-P1117-000":{"line":25,"offset":9371,"length":413,"previous":"WBV2-P1116-000","next":"WBV2-P1118-000"},"WBV2-P1118-000":{"line":26,"offset":9784,"length":409,"previous":"WBV2-P1117-000","next":"WBV2-P1119-000"},"WBV2-P1119-000":{"line":27,"offset":10193,"length":379,"previous":"WBV2-P1118-000","next":"WBV2-P1120-000"},"WBV2-P1120-000":{"line":28,"offset":10572,"length":392,"previous":"WBV2-P1119-000","next":"WBV2-P1121-000"},"WBV2-P1121-000":{"line":29,"offset":10964,"length":375,"previous":"WBV2-P1120-000","next":"WBV2-P1122-000"},"WBV2-P1122-000":{"line":30,"offset":11339,"length":385,"previous":"WBV2-P1121-000","next":"WBV2-P1123-000"},"WBV2-P1123-000":{"line":31,"offset":11724,"length":385,"previous":"WBV2-P1122-000","next":"WBV2-P1124-000"},"WBV2-P1124-000":{"line":32,"offset":12109,"length":431,"previous":"WBV2-P1123-000","next":"WBV2-P1125-000"},"WBV2-P1125-000":{"line":33,"offset":12540,"length":406,"previous":"WBV2-P1124-000","next":"WBV2-P1126-000"},"WBV2-P1126-000":{"line":34,"offset":12946,"length":397,"previous":"WBV2-P1125-000","next":"WBV2-P1127-000"},"WBV2-P1127-000":{"line":35,"offset":13343,"length":406,"previous":"WBV2-P1126-000","next":"WBV2-P1128-000"},"WBV2-P1128-000":{"line":36,"offset":13749,"length":406,"previous":"WBV2-P1127-000","next":"WBV2-P1129-000"},"WBV2-P1129-000":{"line":37,"offset":14155,"length":331,"previous":"WBV2-P1128-000","next":"WBV2-P1129-001"},"WBV2-P1129-001":{"line":38,"offset":14486,"length":393,"previous":"WBV2-P1129-000","next":"WBV2-P1130-000"},"WBV2-P1130-000":{"line":39,"offset":14879,"length":348,"previous":"WBV2-P1129-001","next":"WBV2-P1130-001"},"WBV2-P1130-001":{"line":40,"offset":15227,"length":387,"previous":"WBV2-P1130-000","next":"WBV2-P1131-000"},"WBV2-P1131-000":{"line":41,"offset":15614,"length":349,"previous":"WBV2-P1130-001","next":"WBV2-P1131-001"},"WBV2-P1131-001":{"line":42,"offset":15963,"length":383,"previous":"WBV2-P1131-000","next":"WBV2-P1132-000"},"WBV2-P1132-000":{"line":43,"offset":16346,"length":345,"previous":"WBV2-P1131-001","next":"WBV2-P1132-001"},"WBV2-P1132-001":{"line":44,"offset":16691,"length":380,"previous":"WBV2-P1132-000","next":"WBV2-P1133-000"},"WBV2-P1133-000":{"line":45,"offset":17071,"length":346,"previous":"WBV2-P1132-001","next":"WBV2-P1133-001"},"WBV2-P1133-001":{"line":46,"offset":17417,"length":387,"previous":"WBV2-P1133-000","next":"WBV2-P1134-000"},"WBV2-P1134-000":{"line":47,"offset":17804,"length":353,"previous":"WBV2-P1133-001","next":"WBV2-P1134-001"},"WBV2-P1134-001":{"line":48,"offset":18157,"length":392,"previous":"WBV2-P1134-000","next":"WBV2-P1135-000"},"WBV2-P1135-000":{"line":49,"offset":18549,"length":339,"previous":"WBV2-P1134-001","next":"WBV2-P1135-001"},"WBV2-P1135-001":{"line":50,"offset":18888,"length":385,"previous":"WBV2-P1135-000","next":"WBV2-P1136-000"},"WBV2-P1136-000":{"line":51,"offset":19273,"length":349,"previous":"WBV2-P1135-001","next":"WBV2-P1136-001"},"WBV2-P1136-001":{"line":52,"offset":19622,"length":391,"previous":"WBV2-P1136-000","next":"WBV2-P1137-000"},"WBV2-P1137-000":{"line":53,"offset":20013,"length":354,"previous":"WBV2-P1136-001","next":"WBV2-P1137-001"},"WBV2-P1137-001":{"line":54,"offset":20367,"length":393,"previous":"WBV2-P1137-000","next":"WBV2-P1138-000"},"WBV2-P1138-000":{"line":55,"offset":20760,"length":340,"previous":"WBV2-P1137-001","next":"WBV2-P1138-001"},"WBV2-P1138-001":{"line":56,"offset":21100,"length":388,"previous":"WBV2-P1138-000","next":"WBV2-P1139-000"},"WBV2-P1139-000":{"line":57,"offset":21488,"length":344,"previous":"WBV2-P1138-001","next":"WBV2-P1139-001"},"WBV2-P1139-001":{"line":58,"offset":21832,"length":393,"previous":"WBV2-P1139-000","next":"WBV2-P1140-000"},"WBV2-P1140-000":{"line":59,"offset":22225,"length":362,"previous":"WBV2-P1139-001","next":"WBV2-P1140-001"},"WBV2-P1140-001":{"line":60,"offset":22587,"length":382,"previous":"WBV2-P1140-000","next":"WBV2-P1141-000"},"WBV2-P1141-000":{"line":61,"offset":22969,"length":368,"previous":"WBV2-P1140-001","next":"WBV2-P1141-001"},"WBV2-P1141-001":{"line":62,"offset":23337,"length":389,"previous":"WBV2-P1141-000","next":"WBV2-P1142-000"},"WBV2-P1142-000":{"line":63,"offset":23726,"length":364,"previous":"WBV2-P1141-001","next":"WBV2-P1142-001"},"WBV2-P1142-001":{"line":64,"offset":24090,"length":383,"previous":"WBV2-P1142-000","next":"WBV2-P1143-000"},"WBV2-P1143-000":{"line":65,"offset":24473,"length":369,"previous":"WBV2-P1142-001","next":"WBV2-P1143-001"},"WBV2-P1143-001":{"line":66,"offset":24842,"length":385,"previous":"WBV2-P1143-000","next":"WBV2-P1144-000"},"WBV2-P1144-000":{"line":67,"offset":25227,"length":351,"previous":"WBV2-P1143-001","next":"WBV2-P1144-001"},"WBV2-P1144-001":{"line":68,"offset":25578,"length":376,"previous":"WBV2-P1144-000","next":"WBV2-P1145-000"},"WBV2-P1145-000":{"line":69,"offset":25954,"length":371,"previous":"WBV2-P1144-001","next":"WBV2-P1145-001"},"WBV2-P1145-001":{"line":70,"offset":26325,"length":386,"previous":"WBV2-P1145-000","next":"WBV2-P1146-000"},"WBV2-P1146-000":{"line":71,"offset":26711,"length":303,"previous":"WBV2-P1145-001","next":"WBV2-P1146-001"},"WBV2-P1146-001":{"line":72,"offset":27014,"length":356,"previous":"WBV2-P1146-000","next":"WBV2-P1147-000"},"WBV2-P1147-000":{"line":73,"offset":27370,"length":303,"previous":"WBV2-P1146-001","next":"WBV2-P1147-001"},"WBV2-P1147-001":{"line":74,"offset":27673,"length":360,"previous":"WBV2-P1147-000","next":"WBV2-P1148-000"},"WBV2-P1148-000":{"line":75,"offset":28033,"length":303,"previous":"WBV2-P1147-001","next":"WBV2-P1148-001"},"WBV2-P1148-001":{"line":76,"offset":28336,"length":362,"previous":"WBV2-P1148-000","next":"WBV2-P1149-000"},"WBV2-P1149-000":{"line":77,"offset":28698,"length":303,"previous":"WBV2-P1148-001","next":"WBV2-P1149-001"},"WBV2-P1149-001":{"line":78,"offset":29001,"length":361,"previous":"WBV2-P1149-000","next":"WBV2-P1150-000"},"WBV2-P1150-000":{"line":79,"offset":29362,"length":303,"previous":"WBV2-P1149-001","next":"WBV2-P1150-001"},"WBV2-P1150-001":{"line":80,"offset":29665,"length":361,"previous":"WBV2-P1150-000","next":"WBV2-P1151-000"},"WBV2-P1151-000":{"line":81,"offset":30026,"length":303,"previous":"WBV2-P1150-001","next":"WBV2-P1151-001"},"WBV2-P1151-001":{"line":82,"offset":30329,"length":369,"previous":"WBV2-P1151-000","next":"WBV2-P1152-000"},"WBV2-P1152-000":{"line":83,"offset":30698,"length":303,"previous":"WBV2-P1151-001","next":"WBV2-P1152-001"},"WBV2-P1152-001":{"line":84,"offset":31001,"length":360,"previous":"WBV2-P1152-000","next":"WBV2-P1153-000"},"WBV2-P1153-000":{"line":85,"offset":31361,"length":303,"previous":"WBV2-P1152-001","next":"WBV2-P1153-001"},"WBV2-P1153-001":{"line":86,"offset":31664,"length":367,"previous":"WBV2-P1153-000","next":"WBV2-P1154-000"},"WBV2-P1154-000":{"line":87,"offset":32031,"length":303,"previous":"WBV2-P1153-001","next":"WBV2-P1154-001"},"WBV2-P1154-001":{"line":88,"offset":32334,"length":365,"previous":"WBV2-P1154-000","next":"WBV2-P1155-000"},"WBV2-P1155-000":{"line":89,"offset":32699,"length":303,"previous":"WBV2-P1154-001","next":"WBV2-P1155-001"},"WBV2-P1155-001":{"line":90,"offset":33002,"length":360,"previous":"WBV2-P1155-000","next":"WBV2-P1156-000"},"WBV2-P1156-000":{"line":91,"offset":33362,"length":303,"previous":"WBV2-P1155-001","next":"WBV2-P1156-001"},"WBV2-P1156-001":{"line":92,"offset":33665,"length":365,"previous":"WBV2-P1156-000","next":"WBV2-P1157-000"},"WBV2-P1157-000":{"line":93,"offset":34030,"length":303,"previous":"WBV2-P1156-001","next":"WBV2-P1157-001"},"WBV2-P1157-001":{"line":94,"offset":34333,"length":364,"previous":"WBV2-P1157-000","next":"WBV2-P1158-000"},"WBV2-P1158-000":{"line":95,"offset":34697,"length":303,"previous":"WBV2-P1157-001","next":"WBV2-P1158-001"},"WBV2-P1158-001":{"line":96,"offset":35000,"length":357,"previous":"WBV2-P1158-000","next":"WBV2-P1159-000"},"WBV2-P1159-000":{"line":97,"offset":35357,"length":303,"previous":"WBV2-P1158-001","next":"WBV2-P1159-001"},"WBV2-P1159-001":{"line":98,"offset":35660,"length":368,"previous":"WBV2-P1159-000","next":"WBV2-P1160-000"},"WBV2-P1160-000":{"line":99,"offset":36028,"length":303,"previous":"WBV2-P1159-001","next":"WBV2-P1160-001"},"WBV2-P1160-001":{"line":100,"offset":36331,"length":365,"previous":"WBV2-P1160-000","next":"WBV2-P1161-000"},"WBV2-P1161-000":{"line":101,"offset":36696,"length":303,"previous":"WBV2-P1160-001","next":"WBV2-P1161-001"},"WBV2-P1161-001":{"line":102,"offset":36999,"length":372,"previous":"WBV2-P1161-000","next":"WBV2-P1162-000"},"WBV2-P1162-000":{"line":103,"offset":37371,"length":303,"previous":"WBV2-P1161-001","next":"WBV2-P1162-001"},"WBV2-P1162-001":{"line":104,"offset":37674,"length":365,"previous":"WBV2-P1162-000","next":"WBV2-P1163-000"},"WBV2-P1163-000":{"line":105,"offset":38039,"length":303,"previous":"WBV2-P1162-001","next":"WBV2-P1163-001"},"WBV2-P1163-001":{"line":106,"offset":38342,"length":360,"previous":"WBV2-P1163-000","next":"WBV2-P1164-000"},"WBV2-P1164-000":{"line":107,"offset":38702,"length":303,"previous":"WBV2-P1163-001","next":"WBV2-P1164-001"},"WBV2-P1164-001":{"line":108,"offset":39005,"length":360,"previous":"WBV2-P1164-000","next":"WBV2-P1165-000"},"WBV2-P1165-000":{"line":109,"offset":39365,"length":303,"previous":"WBV2-P1164-001","next":"WBV2-P1165-001"},"WBV2-P1165-001":{"line":110,"offset":39668,"length":366,"previous":"WBV2-P1165-000","next":"WBV2-P1166-000"},"WBV2-P1166-000":{"line":111,"offset":40034,"length":303,"previous":"WBV2-P1165-001","next":"WBV2-P1166-001"},"WBV2-P1166-001":{"line":112,"offset":40337,"length":366,"previous":"WBV2-P1166-000","next":"WBV2-P1167-000"},"WBV2-P1167-000":{"line":113,"offset":40703,"length":303,"previous":"WBV2-P1166-001","next":"WBV2-P1167-001"},"WBV2-P1167-001":{"line":114,"offset":41006,"length":366,"previous":"WBV2-P1167-000","next":"WBV2-P1168-000"},"WBV2-P1168-000":{"line":115,"offset":41372,"length":303,"previous":"WBV2-P1167-001","next":"WBV2-P1168-001"},"WBV2-P1168-001":{"line":116,"offset":41675,"length":366,"previous":"WBV2-P1168-000","next":"WBV2-P1169-000"},"WBV2-P1169-000":{"line":117,"offset":42041,"length":303,"previous":"WBV2-P1168-001","next":"WBV2-P1169-001"},"WBV2-P1169-001":{"line":118,"offset":42344,"length":366,"previous":"WBV2-P1169-000","next":"WBV2-P1170-000"},"WBV2-P1170-000":{"line":119,"offset":42710,"length":303,"previous":"WBV2-P1169-001","next":"WBV2-P1170-001"},"WBV2-P1170-001":{"line":120,"offset":43013,"length":366,"previous":"WBV2-P1170-000","next":"WBV2-P1171-000"},"WBV2-P1171-000":{"line":121,"offset":43379,"length":303,"previous":"WBV2-P1170-001","next":"WBV2-P1171-001"},"WBV2-P1171-001":{"line":122,"offset":43682,"length":366,"previous":"WBV2-P1171-000","next":"WBV2-P1172-000"},"WBV2-P1172-000":{"line":123,"offset":44048,"length":303,"previous":"WBV2-P1171-001","next":"WBV2-P1172-001"},"WBV2-P1172-001":{"line":124,"offset":44351,"length":366,"previous":"WBV2-P1172-000","next":"WBV2-P1173-000"},"WBV2-P1173-000":{"line":125,"offset":44717,"length":303,"previous":"WBV2-P1172-001","next":"WBV2-P1173-001"},"WBV2-P1173-001":{"line":126,"offset":45020,"length":366,"previous":"WBV2-P1173-000","next":"WBV2-P1174-000"},"WBV2-P1174-000":{"line":127,"offset":45386,"length":303,"previous":"WBV2-P1173-001","next":"WBV2-P1174-001"},"WBV2-P1174-001":{"line":128,"offset":45689,"length":366,"previous":"WBV2-P1174-000","next":"WBV2-P1175-000"},"WBV2-P1175-000":{"line":129,"offset":46055,"length":303,"previous":"WBV2-P1174-001","next":"WBV2-P1175-001"},"WBV2-P1175-001":{"line":130,"offset":46358,"length":366,"previous":"WBV2-P1175-000","next":"WBV2-P1176-000"},"WBV2-P1176-000":{"line":131,"offset":46724,"length":303,"previous":"WBV2-P1175-001","next":"WBV2-P1176-001"},"WBV2-P1176-001":{"line":132,"offset":47027,"length":364,"previous":"WBV2-P1176-000","next":"WBV2-P1177-000"},"WBV2-P1177-000":{"line":133,"offset":47391,"length":303,"previous":"WBV2-P1176-001","next":"WBV2-P1177-001"},"WBV2-P1177-001":{"line":134,"offset":47694,"length":364,"previous":"WBV2-P1177-000","next":"WBV2-P1178-000"},"WBV2-P1178-000":{"line":135,"offset":48058,"length":303,"previous":"WBV2-P1177-001","next":"WBV2-P1178-001"},"WBV2-P1178-001":{"line":136,"offset":48361,"length":364,"previous":"WBV2-P1178-000","next":"WBV2-P1179-000"},"WBV2-P1179-000":{"line":137,"offset":48725,"length":303,"previous":"WBV2-P1178-001","next":"WBV2-P1179-001"},"WBV2-P1179-001":{"line":138,"offset":49028,"length":364,"previous":"WBV2-P1179-000","next":"WBV2-P1180-000"},"WBV2-P1180-000":{"line":139,"offset":49392,"length":303,"previous":"WBV2-P1179-001","next":"WBV2-P1180-001"},"WBV2-P1180-001":{"line":140,"offset":49695,"length":364,"previous":"WBV2-P1180-000","next":"WBV2-P1181-000"},"WBV2-P1181-000":{"line":141,"offset":50059,"length":303,"previous":"WBV2-P1180-001","next":"WBV2-P1181-001"},"WBV2-P1181-001":{"line":142,"offset":50362,"length":364,"previous":"WBV2-P1181-000","next":"WBV2-P1182-000"},"WBV2-P1182-000":{"line":143,"offset":50726,"length":303,"previous":"WBV2-P1181-001","next":"WBV2-P1182-001"},"WBV2-P1182-001":{"line":144,"offset":51029,"length":364,"previous":"WBV2-P1182-000","next":"WBV2-P1183-000"},"WBV2-P1183-000":{"line":145,"offset":51393,"length":303,"previous":"WBV2-P1182-001","next":"WBV2-P1183-001"},"WBV2-P1183-001":{"line":146,"offset":51696,"length":364,"previous":"WBV2-P1183-000","next":"WBV2-P1184-000"},"WBV2-P1184-000":{"line":147,"offset":52060,"length":303,"previous":"WBV2-P1183-001","next":"WBV2-P1184-001"},"WBV2-P1184-001":{"line":148,"offset":52363,"length":364,"previous":"WBV2-P1184-000","next":"WBV2-P1185-000"},"WBV2-P1185-000":{"line":149,"offset":52727,"length":303,"previous":"WBV2-P1184-001","next":"WBV2-P1185-001"},"WBV2-P1185-001":{"line":150,"offset":53030,"length":364,"previous":"WBV2-P1185-000","next":"WBV2-P1186-000"},"WBV2-P1186-000":{"line":151,"offset":53394,"length":303,"previous":"WBV2-P1185-001","next":"WBV2-P1186-001"},"WBV2-P1186-001":{"line":152,"offset":53697,"length":364,"previous":"WBV2-P1186-000","next":"WBV2-P1187-000"},"WBV2-P1187-000":{"line":153,"offset":54061,"length":303,"previous":"WBV2-P1186-001","next":"WBV2-P1187-001"},"WBV2-P1187-001":{"line":154,"offset":54364,"length":364,"previous":"WBV2-P1187-000","next":"WBV2-P1188-000"},"WBV2-P1188-000":{"line":155,"offset":54728,"length":303,"previous":"WBV2-P1187-001","next":"WBV2-P1188-001"},"WBV2-P1188-001":{"line":156,"offset":55031,"length":364,"previous":"WBV2-P1188-000","next":"WBV2-P1189-000"},"WBV2-P1189-000":{"line":157,"offset":55395,"length":303,"previous":"WBV2-P1188-001","next":"WBV2-P1189-001"},"WBV2-P1189-001":{"line":158,"offset":55698,"length":364,"previous":"WBV2-P1189-000","next":"WBV2-P1190-000"},"WBV2-P1190-000":{"line":159,"offset":56062,"length":303,"previous":"WBV2-P1189-001","next":"WBV2-P1190-001"},"WBV2-P1190-001":{"line":160,"offset":56365,"length":364,"previous":"WBV2-P1190-000","next":"WBV2-P1191-000"},"WBV2-P1191-000":{"line":161,"offset":56729,"length":303,"previous":"WBV2-P1190-001","next":"WBV2-P1191-001"},"WBV2-P1191-001":{"line":162,"offset":57032,"length":364,"previous":"WBV2-P1191-000","next":"WBV2-P1192-000"},"WBV2-P1192-000":{"line":163,"offset":57396,"length":303,"previous":"WBV2-P1191-001","next":"WBV2-P1192-001"},"WBV2-P1192-001":{"line":164,"offset":57699,"length":364,"previous":"WBV2-P1192-000","next":"WBV2-P1193-000"},"WBV2-P1193-000":{"line":165,"offset":58063,"length":303,"previous":"WBV2-P1192-001","next":"WBV2-P1193-001"},"WBV2-P1193-001":{"line":166,"offset":58366,"length":364,"previous":"WBV2-P1193-000","next":"WBV2-P1194-000"},"WBV2-P1194-000":{"line":167,"offset":58730,"length":303,"previous":"WBV2-P1193-001","next":"WBV2-P1194-001"},"WBV2-P1194-001":{"line":168,"offset":59033,"length":364,"previous":"WBV2-P1194-000","next":"WBV2-P1195-000"},"WBV2-P1195-000":{"line":169,"offset":59397,"length":303,"previous":"WBV2-P1194-001","next":"WBV2-P1195-001"},"WBV2-P1195-001":{"line":170,"offset":59700,"length":364,"previous":"WBV2-P1195-000","next":"WBV2-P1196-000"},"WBV2-P1196-000":{"line":171,"offset":60064,"length":303,"previous":"WBV2-P1195-001","next":"WBV2-P1196-001"},"WBV2-P1196-001":{"line":172,"offset":60367,"length":364,"previous":"WBV2-P1196-000","next":"WBV2-P1197-000"},"WBV2-P1197-000":{"line":173,"offset":60731,"length":303,"previous":"WBV2-P1196-001","next":"WBV2-P1197-001"},"WBV2-P1197-001":{"line":174,"offset":61034,"length":364,"previous":"WBV2-P1197-000","next":"WBV2-P1198-000"},"WBV2-P1198-000":{"line":175,"offset":61398,"length":303,"previous":"WBV2-P1197-001","next":"WBV2-P1198-001"},"WBV2-P1198-001":{"line":176,"offset":61701,"length":364,"previous":"WBV2-P1198-000","next":"WBV2-P1199-000"},"WBV2-P1199-000":{"line":177,"offset":62065,"length":303,"previous":"WBV2-P1198-001","next":"WBV2-P1199-001"},"WBV2-P1199-001":{"line":178,"offset":62368,"length":364,"previous":"WBV2-P1199-000","next":"WBV2-P1200-000"},"WBV2-P1200-000":{"line":179,"offset":62732,"length":303,"previous":"WBV2-P1199-001","next":"WBV2-P1200-001"},"WBV2-P1200-001":{"line":180,"offset":63035,"length":364,"previous":"WBV2-P1200-000","next":"WBV2-P1201-000"},"WBV2-P1201-000":{"line":181,"offset":63399,"length":303,"previous":"WBV2-P1200-001","next":"WBV2-P1201-001"},"WBV2-P1201-001":{"line":182,"offset":63702,"length":364,"previous":"WBV2-P1201-000","next":"WBV2-P1202-000"},"WBV2-P1202-000":{"line":183,"offset":64066,"length":303,"previous":"WBV2-P1201-001","next":"WBV2-P1202-001"},"WBV2-P1202-001":{"line":184,"offset":64369,"length":364,"previous":"WBV2-P1202-000","next":"WBV2-P1203-000"},"WBV2-P1203-000":{"line":185,"offset":64733,"length":303,"previous":"WBV2-P1202-001","next":"WBV2-P1203-001"},"WBV2-P1203-001":{"line":186,"offset":65036,"length":364,"previous":"WBV2-P1203-000","next":"WBV2-P1204-000"},"WBV2-P1204-000":{"line":187,"offset":65400,"length":303,"previous":"WBV2-P1203-001","next":"WBV2-P1204-001"},"WBV2-P1204-001":{"line":188,"offset":65703,"length":364,"previous":"WBV2-P1204-000","next":"WBV2-P1205-000"},"WBV2-P1205-000":{"line":189,"offset":66067,"length":303,"previous":"WBV2-P1204-001","next":"WBV2-P1205-001"},"WBV2-P1205-001":{"line":190,"offset":66370,"length":364,"previous":"WBV2-P1205-000","next":"WBV2-P1206-000"},"WBV2-P1206-000":{"line":191,"offset":66734,"length":303,"previous":"WBV2-P1205-001","next":"WBV2-P1206-001"},"WBV2-P1206-001":{"line":192,"offset":67037,"length":364,"previous":"WBV2-P1206-000","next":"WBV2-P1207-000"},"WBV2-P1207-000":{"line":193,"offset":67401,"length":303,"previous":"WBV2-P1206-001","next":"WBV2-P1207-001"},"WBV2-P1207-001":{"line":194,"offset":67704,"length":364,"previous":"WBV2-P1207-000","next":"WBV2-P1208-000"},"WBV2-P1208-000":{"line":195,"offset":68068,"length":303,"previous":"WBV2-P1207-001","next":"WBV2-P1208-001"},"WBV2-P1208-001":{"line":196,"offset":68371,"length":364,"previous":"WBV2-P1208-000","next":"WBV2-P1209-000"},"WBV2-P1209-000":{"line":197,"offset":68735,"length":303,"previous":"WBV2-P1208-001","next":"WBV2-P1209-001"},"WBV2-P1209-001":{"line":198,"offset":69038,"length":364,"previous":"WBV2-P1209-000","next":"WBV2-P1210-000"},"WBV2-P1210-000":{"line":199,"offset":69402,"length":303,"previous":"WBV2-P1209-001","next":"WBV2-P1210-001"},"WBV2-P1210-001":{"line":200,"offset":69705,"length":364,"previous":"WBV2-P1210-000","next":"WBV2-P1211-000"},"WBV2-P1211-000":{"line":201,"offset":70069,"length":303,"previous":"WBV2-P1210-001","next":"WBV2-P1211-001"},"WBV2-P1211-001":{"line":202,"offset":70372,"length":364,"previous":"WBV2-P1211-000","next":"WBV2-P1212-000"},"WBV2-P1212-000":{"line":203,"offset":70736,"length":303,"previous":"WBV2-P1211-001","next":"WBV2-P1212-001"},"WBV2-P1212-001":{"line":204,"offset":71039,"length":364,"previous":"WBV2-P1212-000","next":"WBV2-P1213-000"},"WBV2-P1213-000":{"line":205,"offset":71403,"length":303,"previous":"WBV2-P1212-001","next":"WBV2-P1213-001"},"WBV2-P1213-001":{"line":206,"offset":71706,"length":364,"previous":"WBV2-P1213-000","next":"WBV2-P1214-000"},"WBV2-P1214-000":{"line":207,"offset":72070,"length":303,"previous":"WBV2-P1213-001","next":"WBV2-P1214-001"},"WBV2-P1214-001":{"line":208,"offset":72373,"length":364,"previous":"WBV2-P1214-000","next":"WBV2-P1215-000"},"WBV2-P1215-000":{"line":209,"offset":72737,"length":303,"previous":"WBV2-P1214-001","next":"WBV2-P1215-001"},"WBV2-P1215-001":{"line":210,"offset":73040,"length":364,"previous":"WBV2-P1215-000","next":"WBV2-P1216-000"},"WBV2-P1216-000":{"line":211,"offset":73404,"length":303,"previous":"WBV2-P1215-001","next":"WBV2-P1216-001"},"WBV2-P1216-001":{"line":212,"offset":73707,"length":364,"previous":"WBV2-P1216-000","next":"WBV2-P1217-000"},"WBV2-P1217-000":{"line":213,"offset":74071,"length":303,"previous":"WBV2-P1216-001","next":"WBV2-P1217-001"},"WBV2-P1217-001":{"line":214,"offset":74374,"length":364,"previous":"WBV2-P1217-000","next":"WBV2-P1218-000"},"WBV2-P1218-000":{"line":215,"offset":74738,"length":303,"previous":"WBV2-P1217-001","next":"WBV2-P1218-001"},"WBV2-P1218-001":{"line":216,"offset":75041,"length":364,"previous":"WBV2-P1218-000","next":"WBV2-P1219-000"},"WBV2-P1219-000":{"line":217,"offset":75405,"length":303,"previous":"WBV2-P1218-001","next":"WBV2-P1219-001"},"WBV2-P1219-001":{"line":218,"offset":75708,"length":364,"previous":"WBV2-P1219-000","next":"WBV2-P1220-000"},"WBV2-P1220-000":{"line":219,"offset":76072,"length":303,"previous":"WBV2-P1219-001","next":"WBV2-P1220-001"},"WBV2-P1220-001":{"line":220,"offset":76375,"length":364,"previous":"WBV2-P1220-000","next":"WBV2-P1221-000"},"WBV2-P1221-000":{"line":221,"offset":76739,"length":303,"previous":"WBV2-P1220-001","next":"WBV2-P1221-001"},"WBV2-P1221-001":{"line":222,"offset":77042,"length":364,"previous":"WBV2-P1221-000","next":"WBV2-P1222-000"},"WBV2-P1222-000":{"line":223,"offset":77406,"length":303,"previous":"WBV2-P1221-001","next":"WBV2-P1222-001"},"WBV2-P1222-001":{"line":224,"offset":77709,"length":364,"previous":"WBV2-P1222-000","next":"WBV2-P1223-000"},"WBV2-P1223-000":{"line":225,"offset":78073,"length":303,"previous":"WBV2-P1222-001","next":"WBV2-P1223-001"},"WBV2-P1223-001":{"line":226,"offset":78376,"length":364,"previous":"WBV2-P1223-000","next":"WBV2-P1224-000"},"WBV2-P1224-000":{"line":227,"offset":78740,"length":303,"previous":"WBV2-P1223-001","next":"WBV2-P1224-001"},"WBV2-P1224-001":{"line":228,"offset":79043,"length":364,"previous":"WBV2-P1224-000","next":"WBV2-P1225-000"},"WBV2-P1225-000":{"line":229,"offset":79407,"length":303,"previous":"WBV2-P1224-001","next":"WBV2-P1225-001"},"WBV2-P1225-001":{"line":230,"offset":79710,"length":364,"previous":"WBV2-P1225-000","next":"WBV2-P1226-000"},"WBV2-P1226-000":{"line":231,"offset":80074,"length":303,"previous":"WBV2-P1225-001","next":"WBV2-P1226-001"},"WBV2-P1226-001":{"line":232,"offset":80377,"length":364,"previous":"WBV2-P1226-000","next":"WBV2-P1227-000"},"WBV2-P1227-000":{"line":233,"offset":80741,"length":303,"previous":"WBV2-P1226-001","next":"WBV2-P1227-001"},"WBV2-P1227-001":{"line":234,"offset":81044,"length":364,"previous":"WBV2-P1227-000","next":"WBV2-P1228-000"},"WBV2-P1228-000":{"line":235,"offset":81408,"length":303,"previous":"WBV2-P1227-001","next":"WBV2-P1228-001"},"WBV2-P1228-001":{"line":236,"offset":81711,"length":364,"previous":"WBV2-P1228-000","next":"WBV2-P1229-000"},"WBV2-P1229-000":{"line":237,"offset":82075,"length":303,"previous":"WBV2-P1228-001","next":"WBV2-P1229-001"},"WBV2-P1229-001":{"line":238,"offset":82378,"length":364,"previous":"WBV2-P1229-000","next":"WBV2-P1230-000"},"WBV2-P1230-000":{"line":239,"offset":82742,"length":303,"previous":"WBV2-P1229-001","next":"WBV2-P1230-001"},"WBV2-P1230-001":{"line":240,"offset":83045,"length":364,"previous":"WBV2-P1230-000","next":"WBV2-P1231-000"},"WBV2-P1231-000":{"line":241,"offset":83409,"length":303,"previous":"WBV2-P1230-001","next":"WBV2-P1231-001"},"WBV2-P1231-001":{"line":242,"offset":83712,"length":364,"previous":"WBV2-P1231-000","next":"WBV2-P1232-000"},"WBV2-P1232-000":{"line":243,"offset":84076,"length":303,"previous":"WBV2-P1231-001","next":"WBV2-P1232-001"},"WBV2-P1232-001":{"line":244,"offset":84379,"length":364,"previous":"WBV2-P1232-000","next":"WBV2-P1233-000"},"WBV2-P1233-000":{"line":245,"offset":84743,"length":303,"previous":"WBV2-P1232-001","next":"WBV2-P1233-001"},"WBV2-P1233-001":{"line":246,"offset":85046,"length":364,"previous":"WBV2-P1233-000","next":"WBV2-P1234-000"},"WBV2-P1234-000":{"line":247,"offset":85410,"length":303,"previous":"WBV2-P1233-001","next":"WBV2-P1234-001"},"WBV2-P1234-001":{"line":248,"offset":85713,"length":364,"previous":"WBV2-P1234-000","next":"WBV2-P1235-000"},"WBV2-P1235-000":{"line":249,"offset":86077,"length":303,"previous":"WBV2-P1234-001","next":"WBV2-P1235-001"},"WBV2-P1235-001":{"line":250,"offset":86380,"length":364,"previous":"WBV2-P1235-000","next":"WBV2-P1236-000"},"WBV2-P1236-000":{"line":251,"offset":86744,"length":303,"previous":"WBV2-P1235-001","next":"WBV2-P1236-001"},"WBV2-P1236-001":{"line":252,"offset":87047,"length":364,"previous":"WBV2-P1236-000","next":"WBV2-P1237-000"},"WBV2-P1237-000":{"line":253,"offset":87411,"length":303,"previous":"WBV2-P1236-001","next":"WBV2-P1237-001"},"WBV2-P1237-001":{"line":254,"offset":87714,"length":364,"previous":"WBV2-P1237-000","next":"WBV2-P1238-000"},"WBV2-P1238-000":{"line":255,"offset":88078,"length":303,"previous":"WBV2-P1237-001","next":"WBV2-P1238-001"},"WBV2-P1238-001":{"line":256,"offset":88381,"length":364,"previous":"WBV2-P1238-000","next":"WBV2-P1239-000"},"WBV2-P1239-000":{"line":257,"offset":88745,"length":303,"previous":"WBV2-P1238-001","next":"WBV2-P1239-001"},"WBV2-P1239-001":{"line":258,"offset":89048,"length":364,"previous":"WBV2-P1239-000","next":"WBV2-P1240-000"},"WBV2-P1240-000":{"line":259,"offset":89412,"length":303,"previous":"WBV2-P1239-001","next":"WBV2-P1240-001"},"WBV2-P1240-001":{"line":260,"offset":89715,"length":364,"previous":"WBV2-P1240-000","next":"WBV2-P1241-000"},"WBV2-P1241-000":{"line":261,"offset":90079,"length":303,"previous":"WBV2-P1240-001","next":"WBV2-P1241-001"},"WBV2-P1241-001":{"line":262,"offset":90382,"length":364,"previous":"WBV2-P1241-000","next":"WBV2-P1242-000"},"WBV2-P1242-000":{"line":263,"offset":90746,"length":303,"previous":"WBV2-P1241-001","next":"WBV2-P1242-001"},"WBV2-P1242-001":{"line":264,"offset":91049,"length":364,"previous":"WBV2-P1242-000","next":"WBV2-P1243-000"},"WBV2-P1243-000":{"line":265,"offset":91413,"length":303,"previous":"WBV2-P1242-001","next":"WBV2-P1243-001"},"WBV2-P1243-001":{"line":266,"offset":91716,"length":364,"previous":"WBV2-P1243-000","next":"WBV2-P1244-000"},"WBV2-P1244-000":{"line":267,"offset":92080,"length":303,"previous":"WBV2-P1243-001","next":"WBV2-P1244-001"},"WBV2-P1244-001":{"line":268,"offset":92383,"length":364,"previous":"WBV2-P1244-000","next":"WBV2-P1245-000"},"WBV2-P1245-000":{"line":269,"offset":92747,"length":303,"previous":"WBV2-P1244-001","next":"WBV2-P1245-001"},"WBV2-P1245-001":{"line":270,"offset":93050,"length":364,"previous":"WBV2-P1245-000","next":null}}} +{"schemaVersion":1,"operation":"BLENDER_WEB_CAPABILITY_TASK_INDEX","source":{"path":"tests/golden/WBV2-P1246-000/module-execution-plan.json","sha256":"9fc85aaccacbb87afb24ad0283d78e24fe04375a3f4d7cb815e91dece2b2d7c8"},"catalog":{"path":"tests/golden/WBV2/task-catalog.jsonl","sha256":"7104e7e0e17e06eaca113565c3a948a82485c370d8adeb80e06d5a226afc4710"},"taskCount":273,"activeTask":null,"entries":{"WBV2-P1096-000":{"line":0,"offset":0,"length":267,"previous":"WBV2-P1095-003","next":"WBV2-P1100-000"},"WBV2-P1100-000":{"line":1,"offset":267,"length":300,"previous":"WBV2-P1096-000","next":"WBV2-P1100-001"},"WBV2-P1100-001":{"line":2,"offset":567,"length":375,"previous":"WBV2-P1100-000","next":"WBV2-P1100-002"},"WBV2-P1100-002":{"line":3,"offset":942,"length":377,"previous":"WBV2-P1100-001","next":"WBV2-P1100-003"},"WBV2-P1100-003":{"line":4,"offset":1319,"length":386,"previous":"WBV2-P1100-002","next":"WBV2-P1101-000"},"WBV2-P1101-000":{"line":5,"offset":1705,"length":374,"previous":"WBV2-P1100-003","next":"WBV2-P1101-001"},"WBV2-P1101-001":{"line":6,"offset":2079,"length":382,"previous":"WBV2-P1101-000","next":"WBV2-P1101-002"},"WBV2-P1101-002":{"line":7,"offset":2461,"length":363,"previous":"WBV2-P1101-001","next":"WBV2-P1101-003"},"WBV2-P1101-003":{"line":8,"offset":2824,"length":374,"previous":"WBV2-P1101-002","next":"WBV2-P1102-000"},"WBV2-P1102-000":{"line":9,"offset":3198,"length":365,"previous":"WBV2-P1101-003","next":"WBV2-P1102-001"},"WBV2-P1102-001":{"line":10,"offset":3563,"length":371,"previous":"WBV2-P1102-000","next":"WBV2-P1103-000"},"WBV2-P1103-000":{"line":11,"offset":3934,"length":373,"previous":"WBV2-P1102-001","next":"WBV2-P1104-000"},"WBV2-P1104-000":{"line":12,"offset":4307,"length":389,"previous":"WBV2-P1103-000","next":"WBV2-P1105-000"},"WBV2-P1105-000":{"line":13,"offset":4696,"length":426,"previous":"WBV2-P1104-000","next":"WBV2-P1106-000"},"WBV2-P1106-000":{"line":14,"offset":5122,"length":366,"previous":"WBV2-P1105-000","next":"WBV2-P1107-000"},"WBV2-P1107-000":{"line":15,"offset":5488,"length":373,"previous":"WBV2-P1106-000","next":"WBV2-P1108-000"},"WBV2-P1108-000":{"line":16,"offset":5861,"length":385,"previous":"WBV2-P1107-000","next":"WBV2-P1109-000"},"WBV2-P1109-000":{"line":17,"offset":6246,"length":397,"previous":"WBV2-P1108-000","next":"WBV2-P1110-000"},"WBV2-P1110-000":{"line":18,"offset":6643,"length":394,"previous":"WBV2-P1109-000","next":"WBV2-P1111-000"},"WBV2-P1111-000":{"line":19,"offset":7037,"length":384,"previous":"WBV2-P1110-000","next":"WBV2-P1112-000"},"WBV2-P1112-000":{"line":20,"offset":7421,"length":397,"previous":"WBV2-P1111-000","next":"WBV2-P1113-000"},"WBV2-P1113-000":{"line":21,"offset":7818,"length":393,"previous":"WBV2-P1112-000","next":"WBV2-P1114-000"},"WBV2-P1114-000":{"line":22,"offset":8211,"length":384,"previous":"WBV2-P1113-000","next":"WBV2-P1115-000"},"WBV2-P1115-000":{"line":23,"offset":8595,"length":388,"previous":"WBV2-P1114-000","next":"WBV2-P1116-000"},"WBV2-P1116-000":{"line":24,"offset":8983,"length":388,"previous":"WBV2-P1115-000","next":"WBV2-P1117-000"},"WBV2-P1117-000":{"line":25,"offset":9371,"length":413,"previous":"WBV2-P1116-000","next":"WBV2-P1118-000"},"WBV2-P1118-000":{"line":26,"offset":9784,"length":409,"previous":"WBV2-P1117-000","next":"WBV2-P1119-000"},"WBV2-P1119-000":{"line":27,"offset":10193,"length":379,"previous":"WBV2-P1118-000","next":"WBV2-P1120-000"},"WBV2-P1120-000":{"line":28,"offset":10572,"length":392,"previous":"WBV2-P1119-000","next":"WBV2-P1121-000"},"WBV2-P1121-000":{"line":29,"offset":10964,"length":375,"previous":"WBV2-P1120-000","next":"WBV2-P1122-000"},"WBV2-P1122-000":{"line":30,"offset":11339,"length":385,"previous":"WBV2-P1121-000","next":"WBV2-P1123-000"},"WBV2-P1123-000":{"line":31,"offset":11724,"length":385,"previous":"WBV2-P1122-000","next":"WBV2-P1124-000"},"WBV2-P1124-000":{"line":32,"offset":12109,"length":431,"previous":"WBV2-P1123-000","next":"WBV2-P1125-000"},"WBV2-P1125-000":{"line":33,"offset":12540,"length":406,"previous":"WBV2-P1124-000","next":"WBV2-P1126-000"},"WBV2-P1126-000":{"line":34,"offset":12946,"length":397,"previous":"WBV2-P1125-000","next":"WBV2-P1127-000"},"WBV2-P1127-000":{"line":35,"offset":13343,"length":406,"previous":"WBV2-P1126-000","next":"WBV2-P1128-000"},"WBV2-P1128-000":{"line":36,"offset":13749,"length":406,"previous":"WBV2-P1127-000","next":"WBV2-P1129-000"},"WBV2-P1129-000":{"line":37,"offset":14155,"length":331,"previous":"WBV2-P1128-000","next":"WBV2-P1129-001"},"WBV2-P1129-001":{"line":38,"offset":14486,"length":393,"previous":"WBV2-P1129-000","next":"WBV2-P1130-000"},"WBV2-P1130-000":{"line":39,"offset":14879,"length":348,"previous":"WBV2-P1129-001","next":"WBV2-P1130-001"},"WBV2-P1130-001":{"line":40,"offset":15227,"length":387,"previous":"WBV2-P1130-000","next":"WBV2-P1131-000"},"WBV2-P1131-000":{"line":41,"offset":15614,"length":349,"previous":"WBV2-P1130-001","next":"WBV2-P1131-001"},"WBV2-P1131-001":{"line":42,"offset":15963,"length":383,"previous":"WBV2-P1131-000","next":"WBV2-P1132-000"},"WBV2-P1132-000":{"line":43,"offset":16346,"length":345,"previous":"WBV2-P1131-001","next":"WBV2-P1132-001"},"WBV2-P1132-001":{"line":44,"offset":16691,"length":380,"previous":"WBV2-P1132-000","next":"WBV2-P1133-000"},"WBV2-P1133-000":{"line":45,"offset":17071,"length":346,"previous":"WBV2-P1132-001","next":"WBV2-P1133-001"},"WBV2-P1133-001":{"line":46,"offset":17417,"length":387,"previous":"WBV2-P1133-000","next":"WBV2-P1134-000"},"WBV2-P1134-000":{"line":47,"offset":17804,"length":353,"previous":"WBV2-P1133-001","next":"WBV2-P1134-001"},"WBV2-P1134-001":{"line":48,"offset":18157,"length":392,"previous":"WBV2-P1134-000","next":"WBV2-P1135-000"},"WBV2-P1135-000":{"line":49,"offset":18549,"length":339,"previous":"WBV2-P1134-001","next":"WBV2-P1135-001"},"WBV2-P1135-001":{"line":50,"offset":18888,"length":385,"previous":"WBV2-P1135-000","next":"WBV2-P1136-000"},"WBV2-P1136-000":{"line":51,"offset":19273,"length":349,"previous":"WBV2-P1135-001","next":"WBV2-P1136-001"},"WBV2-P1136-001":{"line":52,"offset":19622,"length":391,"previous":"WBV2-P1136-000","next":"WBV2-P1137-000"},"WBV2-P1137-000":{"line":53,"offset":20013,"length":354,"previous":"WBV2-P1136-001","next":"WBV2-P1137-001"},"WBV2-P1137-001":{"line":54,"offset":20367,"length":393,"previous":"WBV2-P1137-000","next":"WBV2-P1138-000"},"WBV2-P1138-000":{"line":55,"offset":20760,"length":340,"previous":"WBV2-P1137-001","next":"WBV2-P1138-001"},"WBV2-P1138-001":{"line":56,"offset":21100,"length":388,"previous":"WBV2-P1138-000","next":"WBV2-P1139-000"},"WBV2-P1139-000":{"line":57,"offset":21488,"length":344,"previous":"WBV2-P1138-001","next":"WBV2-P1139-001"},"WBV2-P1139-001":{"line":58,"offset":21832,"length":393,"previous":"WBV2-P1139-000","next":"WBV2-P1140-000"},"WBV2-P1140-000":{"line":59,"offset":22225,"length":362,"previous":"WBV2-P1139-001","next":"WBV2-P1140-001"},"WBV2-P1140-001":{"line":60,"offset":22587,"length":382,"previous":"WBV2-P1140-000","next":"WBV2-P1141-000"},"WBV2-P1141-000":{"line":61,"offset":22969,"length":368,"previous":"WBV2-P1140-001","next":"WBV2-P1141-001"},"WBV2-P1141-001":{"line":62,"offset":23337,"length":389,"previous":"WBV2-P1141-000","next":"WBV2-P1142-000"},"WBV2-P1142-000":{"line":63,"offset":23726,"length":364,"previous":"WBV2-P1141-001","next":"WBV2-P1142-001"},"WBV2-P1142-001":{"line":64,"offset":24090,"length":383,"previous":"WBV2-P1142-000","next":"WBV2-P1143-000"},"WBV2-P1143-000":{"line":65,"offset":24473,"length":369,"previous":"WBV2-P1142-001","next":"WBV2-P1143-001"},"WBV2-P1143-001":{"line":66,"offset":24842,"length":385,"previous":"WBV2-P1143-000","next":"WBV2-P1144-000"},"WBV2-P1144-000":{"line":67,"offset":25227,"length":351,"previous":"WBV2-P1143-001","next":"WBV2-P1144-001"},"WBV2-P1144-001":{"line":68,"offset":25578,"length":376,"previous":"WBV2-P1144-000","next":"WBV2-P1145-000"},"WBV2-P1145-000":{"line":69,"offset":25954,"length":371,"previous":"WBV2-P1144-001","next":"WBV2-P1145-001"},"WBV2-P1145-001":{"line":70,"offset":26325,"length":386,"previous":"WBV2-P1145-000","next":"WBV2-P1146-000"},"WBV2-P1146-000":{"line":71,"offset":26711,"length":303,"previous":"WBV2-P1145-001","next":"WBV2-P1146-001"},"WBV2-P1146-001":{"line":72,"offset":27014,"length":356,"previous":"WBV2-P1146-000","next":"WBV2-P1147-000"},"WBV2-P1147-000":{"line":73,"offset":27370,"length":303,"previous":"WBV2-P1146-001","next":"WBV2-P1147-001"},"WBV2-P1147-001":{"line":74,"offset":27673,"length":360,"previous":"WBV2-P1147-000","next":"WBV2-P1148-000"},"WBV2-P1148-000":{"line":75,"offset":28033,"length":303,"previous":"WBV2-P1147-001","next":"WBV2-P1148-001"},"WBV2-P1148-001":{"line":76,"offset":28336,"length":362,"previous":"WBV2-P1148-000","next":"WBV2-P1149-000"},"WBV2-P1149-000":{"line":77,"offset":28698,"length":303,"previous":"WBV2-P1148-001","next":"WBV2-P1149-001"},"WBV2-P1149-001":{"line":78,"offset":29001,"length":361,"previous":"WBV2-P1149-000","next":"WBV2-P1150-000"},"WBV2-P1150-000":{"line":79,"offset":29362,"length":303,"previous":"WBV2-P1149-001","next":"WBV2-P1150-001"},"WBV2-P1150-001":{"line":80,"offset":29665,"length":361,"previous":"WBV2-P1150-000","next":"WBV2-P1151-000"},"WBV2-P1151-000":{"line":81,"offset":30026,"length":303,"previous":"WBV2-P1150-001","next":"WBV2-P1151-001"},"WBV2-P1151-001":{"line":82,"offset":30329,"length":369,"previous":"WBV2-P1151-000","next":"WBV2-P1152-000"},"WBV2-P1152-000":{"line":83,"offset":30698,"length":303,"previous":"WBV2-P1151-001","next":"WBV2-P1152-001"},"WBV2-P1152-001":{"line":84,"offset":31001,"length":360,"previous":"WBV2-P1152-000","next":"WBV2-P1153-000"},"WBV2-P1153-000":{"line":85,"offset":31361,"length":303,"previous":"WBV2-P1152-001","next":"WBV2-P1153-001"},"WBV2-P1153-001":{"line":86,"offset":31664,"length":367,"previous":"WBV2-P1153-000","next":"WBV2-P1154-000"},"WBV2-P1154-000":{"line":87,"offset":32031,"length":303,"previous":"WBV2-P1153-001","next":"WBV2-P1154-001"},"WBV2-P1154-001":{"line":88,"offset":32334,"length":365,"previous":"WBV2-P1154-000","next":"WBV2-P1155-000"},"WBV2-P1155-000":{"line":89,"offset":32699,"length":303,"previous":"WBV2-P1154-001","next":"WBV2-P1155-001"},"WBV2-P1155-001":{"line":90,"offset":33002,"length":360,"previous":"WBV2-P1155-000","next":"WBV2-P1156-000"},"WBV2-P1156-000":{"line":91,"offset":33362,"length":303,"previous":"WBV2-P1155-001","next":"WBV2-P1156-001"},"WBV2-P1156-001":{"line":92,"offset":33665,"length":365,"previous":"WBV2-P1156-000","next":"WBV2-P1157-000"},"WBV2-P1157-000":{"line":93,"offset":34030,"length":303,"previous":"WBV2-P1156-001","next":"WBV2-P1157-001"},"WBV2-P1157-001":{"line":94,"offset":34333,"length":364,"previous":"WBV2-P1157-000","next":"WBV2-P1158-000"},"WBV2-P1158-000":{"line":95,"offset":34697,"length":303,"previous":"WBV2-P1157-001","next":"WBV2-P1158-001"},"WBV2-P1158-001":{"line":96,"offset":35000,"length":357,"previous":"WBV2-P1158-000","next":"WBV2-P1159-000"},"WBV2-P1159-000":{"line":97,"offset":35357,"length":303,"previous":"WBV2-P1158-001","next":"WBV2-P1159-001"},"WBV2-P1159-001":{"line":98,"offset":35660,"length":368,"previous":"WBV2-P1159-000","next":"WBV2-P1160-000"},"WBV2-P1160-000":{"line":99,"offset":36028,"length":303,"previous":"WBV2-P1159-001","next":"WBV2-P1160-001"},"WBV2-P1160-001":{"line":100,"offset":36331,"length":365,"previous":"WBV2-P1160-000","next":"WBV2-P1161-000"},"WBV2-P1161-000":{"line":101,"offset":36696,"length":303,"previous":"WBV2-P1160-001","next":"WBV2-P1161-001"},"WBV2-P1161-001":{"line":102,"offset":36999,"length":372,"previous":"WBV2-P1161-000","next":"WBV2-P1162-000"},"WBV2-P1162-000":{"line":103,"offset":37371,"length":303,"previous":"WBV2-P1161-001","next":"WBV2-P1162-001"},"WBV2-P1162-001":{"line":104,"offset":37674,"length":365,"previous":"WBV2-P1162-000","next":"WBV2-P1163-000"},"WBV2-P1163-000":{"line":105,"offset":38039,"length":303,"previous":"WBV2-P1162-001","next":"WBV2-P1163-001"},"WBV2-P1163-001":{"line":106,"offset":38342,"length":360,"previous":"WBV2-P1163-000","next":"WBV2-P1164-000"},"WBV2-P1164-000":{"line":107,"offset":38702,"length":303,"previous":"WBV2-P1163-001","next":"WBV2-P1164-001"},"WBV2-P1164-001":{"line":108,"offset":39005,"length":360,"previous":"WBV2-P1164-000","next":"WBV2-P1165-000"},"WBV2-P1165-000":{"line":109,"offset":39365,"length":303,"previous":"WBV2-P1164-001","next":"WBV2-P1165-001"},"WBV2-P1165-001":{"line":110,"offset":39668,"length":366,"previous":"WBV2-P1165-000","next":"WBV2-P1166-000"},"WBV2-P1166-000":{"line":111,"offset":40034,"length":303,"previous":"WBV2-P1165-001","next":"WBV2-P1166-001"},"WBV2-P1166-001":{"line":112,"offset":40337,"length":366,"previous":"WBV2-P1166-000","next":"WBV2-P1167-000"},"WBV2-P1167-000":{"line":113,"offset":40703,"length":303,"previous":"WBV2-P1166-001","next":"WBV2-P1167-001"},"WBV2-P1167-001":{"line":114,"offset":41006,"length":366,"previous":"WBV2-P1167-000","next":"WBV2-P1168-000"},"WBV2-P1168-000":{"line":115,"offset":41372,"length":303,"previous":"WBV2-P1167-001","next":"WBV2-P1168-001"},"WBV2-P1168-001":{"line":116,"offset":41675,"length":366,"previous":"WBV2-P1168-000","next":"WBV2-P1169-000"},"WBV2-P1169-000":{"line":117,"offset":42041,"length":303,"previous":"WBV2-P1168-001","next":"WBV2-P1169-001"},"WBV2-P1169-001":{"line":118,"offset":42344,"length":366,"previous":"WBV2-P1169-000","next":"WBV2-P1170-000"},"WBV2-P1170-000":{"line":119,"offset":42710,"length":303,"previous":"WBV2-P1169-001","next":"WBV2-P1170-001"},"WBV2-P1170-001":{"line":120,"offset":43013,"length":366,"previous":"WBV2-P1170-000","next":"WBV2-P1171-000"},"WBV2-P1171-000":{"line":121,"offset":43379,"length":303,"previous":"WBV2-P1170-001","next":"WBV2-P1171-001"},"WBV2-P1171-001":{"line":122,"offset":43682,"length":366,"previous":"WBV2-P1171-000","next":"WBV2-P1172-000"},"WBV2-P1172-000":{"line":123,"offset":44048,"length":303,"previous":"WBV2-P1171-001","next":"WBV2-P1172-001"},"WBV2-P1172-001":{"line":124,"offset":44351,"length":366,"previous":"WBV2-P1172-000","next":"WBV2-P1173-000"},"WBV2-P1173-000":{"line":125,"offset":44717,"length":303,"previous":"WBV2-P1172-001","next":"WBV2-P1173-001"},"WBV2-P1173-001":{"line":126,"offset":45020,"length":366,"previous":"WBV2-P1173-000","next":"WBV2-P1174-000"},"WBV2-P1174-000":{"line":127,"offset":45386,"length":303,"previous":"WBV2-P1173-001","next":"WBV2-P1174-001"},"WBV2-P1174-001":{"line":128,"offset":45689,"length":366,"previous":"WBV2-P1174-000","next":"WBV2-P1175-000"},"WBV2-P1175-000":{"line":129,"offset":46055,"length":303,"previous":"WBV2-P1174-001","next":"WBV2-P1175-001"},"WBV2-P1175-001":{"line":130,"offset":46358,"length":366,"previous":"WBV2-P1175-000","next":"WBV2-P1176-000"},"WBV2-P1176-000":{"line":131,"offset":46724,"length":303,"previous":"WBV2-P1175-001","next":"WBV2-P1176-001"},"WBV2-P1176-001":{"line":132,"offset":47027,"length":364,"previous":"WBV2-P1176-000","next":"WBV2-P1177-000"},"WBV2-P1177-000":{"line":133,"offset":47391,"length":303,"previous":"WBV2-P1176-001","next":"WBV2-P1177-001"},"WBV2-P1177-001":{"line":134,"offset":47694,"length":364,"previous":"WBV2-P1177-000","next":"WBV2-P1178-000"},"WBV2-P1178-000":{"line":135,"offset":48058,"length":303,"previous":"WBV2-P1177-001","next":"WBV2-P1178-001"},"WBV2-P1178-001":{"line":136,"offset":48361,"length":364,"previous":"WBV2-P1178-000","next":"WBV2-P1179-000"},"WBV2-P1179-000":{"line":137,"offset":48725,"length":303,"previous":"WBV2-P1178-001","next":"WBV2-P1179-001"},"WBV2-P1179-001":{"line":138,"offset":49028,"length":364,"previous":"WBV2-P1179-000","next":"WBV2-P1180-000"},"WBV2-P1180-000":{"line":139,"offset":49392,"length":303,"previous":"WBV2-P1179-001","next":"WBV2-P1180-001"},"WBV2-P1180-001":{"line":140,"offset":49695,"length":364,"previous":"WBV2-P1180-000","next":"WBV2-P1181-000"},"WBV2-P1181-000":{"line":141,"offset":50059,"length":303,"previous":"WBV2-P1180-001","next":"WBV2-P1181-001"},"WBV2-P1181-001":{"line":142,"offset":50362,"length":364,"previous":"WBV2-P1181-000","next":"WBV2-P1182-000"},"WBV2-P1182-000":{"line":143,"offset":50726,"length":303,"previous":"WBV2-P1181-001","next":"WBV2-P1182-001"},"WBV2-P1182-001":{"line":144,"offset":51029,"length":364,"previous":"WBV2-P1182-000","next":"WBV2-P1183-000"},"WBV2-P1183-000":{"line":145,"offset":51393,"length":303,"previous":"WBV2-P1182-001","next":"WBV2-P1183-001"},"WBV2-P1183-001":{"line":146,"offset":51696,"length":364,"previous":"WBV2-P1183-000","next":"WBV2-P1184-000"},"WBV2-P1184-000":{"line":147,"offset":52060,"length":303,"previous":"WBV2-P1183-001","next":"WBV2-P1184-001"},"WBV2-P1184-001":{"line":148,"offset":52363,"length":364,"previous":"WBV2-P1184-000","next":"WBV2-P1185-000"},"WBV2-P1185-000":{"line":149,"offset":52727,"length":303,"previous":"WBV2-P1184-001","next":"WBV2-P1185-001"},"WBV2-P1185-001":{"line":150,"offset":53030,"length":364,"previous":"WBV2-P1185-000","next":"WBV2-P1186-000"},"WBV2-P1186-000":{"line":151,"offset":53394,"length":303,"previous":"WBV2-P1185-001","next":"WBV2-P1186-001"},"WBV2-P1186-001":{"line":152,"offset":53697,"length":364,"previous":"WBV2-P1186-000","next":"WBV2-P1187-000"},"WBV2-P1187-000":{"line":153,"offset":54061,"length":303,"previous":"WBV2-P1186-001","next":"WBV2-P1187-001"},"WBV2-P1187-001":{"line":154,"offset":54364,"length":364,"previous":"WBV2-P1187-000","next":"WBV2-P1188-000"},"WBV2-P1188-000":{"line":155,"offset":54728,"length":303,"previous":"WBV2-P1187-001","next":"WBV2-P1188-001"},"WBV2-P1188-001":{"line":156,"offset":55031,"length":364,"previous":"WBV2-P1188-000","next":"WBV2-P1189-000"},"WBV2-P1189-000":{"line":157,"offset":55395,"length":303,"previous":"WBV2-P1188-001","next":"WBV2-P1189-001"},"WBV2-P1189-001":{"line":158,"offset":55698,"length":364,"previous":"WBV2-P1189-000","next":"WBV2-P1190-000"},"WBV2-P1190-000":{"line":159,"offset":56062,"length":303,"previous":"WBV2-P1189-001","next":"WBV2-P1190-001"},"WBV2-P1190-001":{"line":160,"offset":56365,"length":364,"previous":"WBV2-P1190-000","next":"WBV2-P1191-000"},"WBV2-P1191-000":{"line":161,"offset":56729,"length":303,"previous":"WBV2-P1190-001","next":"WBV2-P1191-001"},"WBV2-P1191-001":{"line":162,"offset":57032,"length":364,"previous":"WBV2-P1191-000","next":"WBV2-P1192-000"},"WBV2-P1192-000":{"line":163,"offset":57396,"length":303,"previous":"WBV2-P1191-001","next":"WBV2-P1192-001"},"WBV2-P1192-001":{"line":164,"offset":57699,"length":364,"previous":"WBV2-P1192-000","next":"WBV2-P1193-000"},"WBV2-P1193-000":{"line":165,"offset":58063,"length":303,"previous":"WBV2-P1192-001","next":"WBV2-P1193-001"},"WBV2-P1193-001":{"line":166,"offset":58366,"length":364,"previous":"WBV2-P1193-000","next":"WBV2-P1194-000"},"WBV2-P1194-000":{"line":167,"offset":58730,"length":303,"previous":"WBV2-P1193-001","next":"WBV2-P1194-001"},"WBV2-P1194-001":{"line":168,"offset":59033,"length":364,"previous":"WBV2-P1194-000","next":"WBV2-P1195-000"},"WBV2-P1195-000":{"line":169,"offset":59397,"length":303,"previous":"WBV2-P1194-001","next":"WBV2-P1195-001"},"WBV2-P1195-001":{"line":170,"offset":59700,"length":364,"previous":"WBV2-P1195-000","next":"WBV2-P1196-000"},"WBV2-P1196-000":{"line":171,"offset":60064,"length":303,"previous":"WBV2-P1195-001","next":"WBV2-P1196-001"},"WBV2-P1196-001":{"line":172,"offset":60367,"length":364,"previous":"WBV2-P1196-000","next":"WBV2-P1197-000"},"WBV2-P1197-000":{"line":173,"offset":60731,"length":303,"previous":"WBV2-P1196-001","next":"WBV2-P1197-001"},"WBV2-P1197-001":{"line":174,"offset":61034,"length":364,"previous":"WBV2-P1197-000","next":"WBV2-P1198-000"},"WBV2-P1198-000":{"line":175,"offset":61398,"length":303,"previous":"WBV2-P1197-001","next":"WBV2-P1198-001"},"WBV2-P1198-001":{"line":176,"offset":61701,"length":364,"previous":"WBV2-P1198-000","next":"WBV2-P1199-000"},"WBV2-P1199-000":{"line":177,"offset":62065,"length":303,"previous":"WBV2-P1198-001","next":"WBV2-P1199-001"},"WBV2-P1199-001":{"line":178,"offset":62368,"length":364,"previous":"WBV2-P1199-000","next":"WBV2-P1200-000"},"WBV2-P1200-000":{"line":179,"offset":62732,"length":303,"previous":"WBV2-P1199-001","next":"WBV2-P1200-001"},"WBV2-P1200-001":{"line":180,"offset":63035,"length":364,"previous":"WBV2-P1200-000","next":"WBV2-P1201-000"},"WBV2-P1201-000":{"line":181,"offset":63399,"length":303,"previous":"WBV2-P1200-001","next":"WBV2-P1201-001"},"WBV2-P1201-001":{"line":182,"offset":63702,"length":364,"previous":"WBV2-P1201-000","next":"WBV2-P1202-000"},"WBV2-P1202-000":{"line":183,"offset":64066,"length":303,"previous":"WBV2-P1201-001","next":"WBV2-P1202-001"},"WBV2-P1202-001":{"line":184,"offset":64369,"length":364,"previous":"WBV2-P1202-000","next":"WBV2-P1203-000"},"WBV2-P1203-000":{"line":185,"offset":64733,"length":303,"previous":"WBV2-P1202-001","next":"WBV2-P1203-001"},"WBV2-P1203-001":{"line":186,"offset":65036,"length":364,"previous":"WBV2-P1203-000","next":"WBV2-P1204-000"},"WBV2-P1204-000":{"line":187,"offset":65400,"length":303,"previous":"WBV2-P1203-001","next":"WBV2-P1204-001"},"WBV2-P1204-001":{"line":188,"offset":65703,"length":364,"previous":"WBV2-P1204-000","next":"WBV2-P1205-000"},"WBV2-P1205-000":{"line":189,"offset":66067,"length":303,"previous":"WBV2-P1204-001","next":"WBV2-P1205-001"},"WBV2-P1205-001":{"line":190,"offset":66370,"length":364,"previous":"WBV2-P1205-000","next":"WBV2-P1206-000"},"WBV2-P1206-000":{"line":191,"offset":66734,"length":303,"previous":"WBV2-P1205-001","next":"WBV2-P1206-001"},"WBV2-P1206-001":{"line":192,"offset":67037,"length":364,"previous":"WBV2-P1206-000","next":"WBV2-P1207-000"},"WBV2-P1207-000":{"line":193,"offset":67401,"length":303,"previous":"WBV2-P1206-001","next":"WBV2-P1207-001"},"WBV2-P1207-001":{"line":194,"offset":67704,"length":364,"previous":"WBV2-P1207-000","next":"WBV2-P1208-000"},"WBV2-P1208-000":{"line":195,"offset":68068,"length":303,"previous":"WBV2-P1207-001","next":"WBV2-P1208-001"},"WBV2-P1208-001":{"line":196,"offset":68371,"length":364,"previous":"WBV2-P1208-000","next":"WBV2-P1209-000"},"WBV2-P1209-000":{"line":197,"offset":68735,"length":303,"previous":"WBV2-P1208-001","next":"WBV2-P1209-001"},"WBV2-P1209-001":{"line":198,"offset":69038,"length":364,"previous":"WBV2-P1209-000","next":"WBV2-P1210-000"},"WBV2-P1210-000":{"line":199,"offset":69402,"length":303,"previous":"WBV2-P1209-001","next":"WBV2-P1210-001"},"WBV2-P1210-001":{"line":200,"offset":69705,"length":364,"previous":"WBV2-P1210-000","next":"WBV2-P1211-000"},"WBV2-P1211-000":{"line":201,"offset":70069,"length":303,"previous":"WBV2-P1210-001","next":"WBV2-P1211-001"},"WBV2-P1211-001":{"line":202,"offset":70372,"length":364,"previous":"WBV2-P1211-000","next":"WBV2-P1212-000"},"WBV2-P1212-000":{"line":203,"offset":70736,"length":303,"previous":"WBV2-P1211-001","next":"WBV2-P1212-001"},"WBV2-P1212-001":{"line":204,"offset":71039,"length":364,"previous":"WBV2-P1212-000","next":"WBV2-P1213-000"},"WBV2-P1213-000":{"line":205,"offset":71403,"length":303,"previous":"WBV2-P1212-001","next":"WBV2-P1213-001"},"WBV2-P1213-001":{"line":206,"offset":71706,"length":364,"previous":"WBV2-P1213-000","next":"WBV2-P1214-000"},"WBV2-P1214-000":{"line":207,"offset":72070,"length":303,"previous":"WBV2-P1213-001","next":"WBV2-P1214-001"},"WBV2-P1214-001":{"line":208,"offset":72373,"length":364,"previous":"WBV2-P1214-000","next":"WBV2-P1215-000"},"WBV2-P1215-000":{"line":209,"offset":72737,"length":303,"previous":"WBV2-P1214-001","next":"WBV2-P1215-001"},"WBV2-P1215-001":{"line":210,"offset":73040,"length":364,"previous":"WBV2-P1215-000","next":"WBV2-P1216-000"},"WBV2-P1216-000":{"line":211,"offset":73404,"length":303,"previous":"WBV2-P1215-001","next":"WBV2-P1216-001"},"WBV2-P1216-001":{"line":212,"offset":73707,"length":364,"previous":"WBV2-P1216-000","next":"WBV2-P1217-000"},"WBV2-P1217-000":{"line":213,"offset":74071,"length":303,"previous":"WBV2-P1216-001","next":"WBV2-P1217-001"},"WBV2-P1217-001":{"line":214,"offset":74374,"length":364,"previous":"WBV2-P1217-000","next":"WBV2-P1218-000"},"WBV2-P1218-000":{"line":215,"offset":74738,"length":303,"previous":"WBV2-P1217-001","next":"WBV2-P1218-001"},"WBV2-P1218-001":{"line":216,"offset":75041,"length":364,"previous":"WBV2-P1218-000","next":"WBV2-P1219-000"},"WBV2-P1219-000":{"line":217,"offset":75405,"length":303,"previous":"WBV2-P1218-001","next":"WBV2-P1219-001"},"WBV2-P1219-001":{"line":218,"offset":75708,"length":364,"previous":"WBV2-P1219-000","next":"WBV2-P1220-000"},"WBV2-P1220-000":{"line":219,"offset":76072,"length":303,"previous":"WBV2-P1219-001","next":"WBV2-P1220-001"},"WBV2-P1220-001":{"line":220,"offset":76375,"length":364,"previous":"WBV2-P1220-000","next":"WBV2-P1221-000"},"WBV2-P1221-000":{"line":221,"offset":76739,"length":303,"previous":"WBV2-P1220-001","next":"WBV2-P1221-001"},"WBV2-P1221-001":{"line":222,"offset":77042,"length":364,"previous":"WBV2-P1221-000","next":"WBV2-P1222-000"},"WBV2-P1222-000":{"line":223,"offset":77406,"length":303,"previous":"WBV2-P1221-001","next":"WBV2-P1222-001"},"WBV2-P1222-001":{"line":224,"offset":77709,"length":364,"previous":"WBV2-P1222-000","next":"WBV2-P1223-000"},"WBV2-P1223-000":{"line":225,"offset":78073,"length":303,"previous":"WBV2-P1222-001","next":"WBV2-P1223-001"},"WBV2-P1223-001":{"line":226,"offset":78376,"length":364,"previous":"WBV2-P1223-000","next":"WBV2-P1224-000"},"WBV2-P1224-000":{"line":227,"offset":78740,"length":303,"previous":"WBV2-P1223-001","next":"WBV2-P1224-001"},"WBV2-P1224-001":{"line":228,"offset":79043,"length":364,"previous":"WBV2-P1224-000","next":"WBV2-P1225-000"},"WBV2-P1225-000":{"line":229,"offset":79407,"length":303,"previous":"WBV2-P1224-001","next":"WBV2-P1225-001"},"WBV2-P1225-001":{"line":230,"offset":79710,"length":364,"previous":"WBV2-P1225-000","next":"WBV2-P1226-000"},"WBV2-P1226-000":{"line":231,"offset":80074,"length":303,"previous":"WBV2-P1225-001","next":"WBV2-P1226-001"},"WBV2-P1226-001":{"line":232,"offset":80377,"length":364,"previous":"WBV2-P1226-000","next":"WBV2-P1227-000"},"WBV2-P1227-000":{"line":233,"offset":80741,"length":303,"previous":"WBV2-P1226-001","next":"WBV2-P1227-001"},"WBV2-P1227-001":{"line":234,"offset":81044,"length":364,"previous":"WBV2-P1227-000","next":"WBV2-P1228-000"},"WBV2-P1228-000":{"line":235,"offset":81408,"length":303,"previous":"WBV2-P1227-001","next":"WBV2-P1228-001"},"WBV2-P1228-001":{"line":236,"offset":81711,"length":364,"previous":"WBV2-P1228-000","next":"WBV2-P1229-000"},"WBV2-P1229-000":{"line":237,"offset":82075,"length":303,"previous":"WBV2-P1228-001","next":"WBV2-P1229-001"},"WBV2-P1229-001":{"line":238,"offset":82378,"length":364,"previous":"WBV2-P1229-000","next":"WBV2-P1230-000"},"WBV2-P1230-000":{"line":239,"offset":82742,"length":303,"previous":"WBV2-P1229-001","next":"WBV2-P1230-001"},"WBV2-P1230-001":{"line":240,"offset":83045,"length":364,"previous":"WBV2-P1230-000","next":"WBV2-P1231-000"},"WBV2-P1231-000":{"line":241,"offset":83409,"length":303,"previous":"WBV2-P1230-001","next":"WBV2-P1231-001"},"WBV2-P1231-001":{"line":242,"offset":83712,"length":364,"previous":"WBV2-P1231-000","next":"WBV2-P1232-000"},"WBV2-P1232-000":{"line":243,"offset":84076,"length":303,"previous":"WBV2-P1231-001","next":"WBV2-P1232-001"},"WBV2-P1232-001":{"line":244,"offset":84379,"length":364,"previous":"WBV2-P1232-000","next":"WBV2-P1233-000"},"WBV2-P1233-000":{"line":245,"offset":84743,"length":303,"previous":"WBV2-P1232-001","next":"WBV2-P1233-001"},"WBV2-P1233-001":{"line":246,"offset":85046,"length":364,"previous":"WBV2-P1233-000","next":"WBV2-P1234-000"},"WBV2-P1234-000":{"line":247,"offset":85410,"length":303,"previous":"WBV2-P1233-001","next":"WBV2-P1234-001"},"WBV2-P1234-001":{"line":248,"offset":85713,"length":364,"previous":"WBV2-P1234-000","next":"WBV2-P1235-000"},"WBV2-P1235-000":{"line":249,"offset":86077,"length":303,"previous":"WBV2-P1234-001","next":"WBV2-P1235-001"},"WBV2-P1235-001":{"line":250,"offset":86380,"length":364,"previous":"WBV2-P1235-000","next":"WBV2-P1236-000"},"WBV2-P1236-000":{"line":251,"offset":86744,"length":303,"previous":"WBV2-P1235-001","next":"WBV2-P1236-001"},"WBV2-P1236-001":{"line":252,"offset":87047,"length":364,"previous":"WBV2-P1236-000","next":"WBV2-P1237-000"},"WBV2-P1237-000":{"line":253,"offset":87411,"length":303,"previous":"WBV2-P1236-001","next":"WBV2-P1237-001"},"WBV2-P1237-001":{"line":254,"offset":87714,"length":364,"previous":"WBV2-P1237-000","next":"WBV2-P1238-000"},"WBV2-P1238-000":{"line":255,"offset":88078,"length":303,"previous":"WBV2-P1237-001","next":"WBV2-P1238-001"},"WBV2-P1238-001":{"line":256,"offset":88381,"length":364,"previous":"WBV2-P1238-000","next":"WBV2-P1239-000"},"WBV2-P1239-000":{"line":257,"offset":88745,"length":303,"previous":"WBV2-P1238-001","next":"WBV2-P1239-001"},"WBV2-P1239-001":{"line":258,"offset":89048,"length":364,"previous":"WBV2-P1239-000","next":"WBV2-P1240-000"},"WBV2-P1240-000":{"line":259,"offset":89412,"length":303,"previous":"WBV2-P1239-001","next":"WBV2-P1240-001"},"WBV2-P1240-001":{"line":260,"offset":89715,"length":364,"previous":"WBV2-P1240-000","next":"WBV2-P1241-000"},"WBV2-P1241-000":{"line":261,"offset":90079,"length":303,"previous":"WBV2-P1240-001","next":"WBV2-P1241-001"},"WBV2-P1241-001":{"line":262,"offset":90382,"length":364,"previous":"WBV2-P1241-000","next":"WBV2-P1242-000"},"WBV2-P1242-000":{"line":263,"offset":90746,"length":303,"previous":"WBV2-P1241-001","next":"WBV2-P1242-001"},"WBV2-P1242-001":{"line":264,"offset":91049,"length":364,"previous":"WBV2-P1242-000","next":"WBV2-P1243-000"},"WBV2-P1243-000":{"line":265,"offset":91413,"length":303,"previous":"WBV2-P1242-001","next":"WBV2-P1243-001"},"WBV2-P1243-001":{"line":266,"offset":91716,"length":364,"previous":"WBV2-P1243-000","next":"WBV2-P1244-000"},"WBV2-P1244-000":{"line":267,"offset":92080,"length":303,"previous":"WBV2-P1243-001","next":"WBV2-P1244-001"},"WBV2-P1244-001":{"line":268,"offset":92383,"length":364,"previous":"WBV2-P1244-000","next":"WBV2-P1245-000"},"WBV2-P1245-000":{"line":269,"offset":92747,"length":303,"previous":"WBV2-P1244-001","next":"WBV2-P1245-001"},"WBV2-P1245-001":{"line":270,"offset":93050,"length":364,"previous":"WBV2-P1245-000","next":"WBV2-P1246-000"},"WBV2-P1246-000":{"line":271,"offset":93414,"length":303,"previous":"WBV2-P1245-001","next":"WBV2-P1246-001"},"WBV2-P1246-001":{"line":272,"offset":93717,"length":362,"previous":"WBV2-P1246-000","next":null}}} diff --git a/web/tests/e2e/shader-main-reader-production.spec.ts b/web/tests/e2e/shader-main-reader-production.spec.ts new file mode 100644 index 000000000..a2e141a24 --- /dev/null +++ b/web/tests/e2e/shader-main-reader-production.spec.ts @@ -0,0 +1,76 @@ +import crypto from "node:crypto"; +import fs from "node:fs"; +import path from "node:path"; +import { expect, test } from "@playwright/test"; + +const root = path.resolve(import.meta.dirname, "../../.."); +const fixturePath = process.env.WBV2_BATCH_FIXTURE ?? "tests/files/web/m12_glb_main_v1/pbr.blend"; +const fixture = fs.readFileSync(path.join(root, fixturePath)); +const fixtureSha256 = crypto.createHash("sha256").update(fixture).digest("hex"); +const expectedTypes = JSON.parse(process.env.WBV2_BATCH_TYPES ?? "[\"PRINCIPLED\"]") as string[]; +const sourceUnits = JSON.parse(process.env.WBV2_BATCH_UNITS ?? "[]") as string[]; +const task = process.env.WBV2_BATCH_TASK ?? "WBV2-P1113-000"; +const productionPath = process.env.WBV2_BATCH_PRODUCTION ?? `tests/golden/${task}/shader-main-reader-production.json`; + +test("WBV2-P1113-000 reads Shader nodes from Blender Main without JS simulation", async ({ page }) => { + test.setTimeout(120_000); + await page.goto("/"); + const result = await page.evaluate(async (bytes) => { + const { WebEngineClient } = await import("/src/engine-client/WebEngineClient.ts"); + const summarize = (snapshot: any) => snapshot.materials.map((material: any) => ({ + id: material.id, + nodes: (material.nodes ?? []).map((node: any) => ({ type: node.type, name: node.name })), + links: material.links ?? [], + })); + const client = new WebEngineClient({ timeoutMs: 60_000 }); + const reopenedClient = new WebEngineClient({ timeoutMs: 60_000 }); + try { + const opened = await client.openBlend(Uint8Array.from(bytes).buffer); + const materials = summarize(opened.snapshot); + if (!materials.some((material: any) => material.nodes.length > 0)) { + throw new Error("Blender Main has no Principled shader node"); + } + const saved = await client.saveBlend(); + const reopened = await reopenedClient.openBlend(saved.slice(0)); + return { + browser: "chromium", + fixtureSha256: await crypto.subtle.digest("SHA-256", Uint8Array.from(bytes)).then((hash) => Array.from(new Uint8Array(hash), (value) => value.toString(16).padStart(2, "0")).join("")), + materials, + reopenedMaterials: summarize(reopened.snapshot), + openedRevision: opened.snapshot.revision, + reopenedRevision: reopened.snapshot.revision, + }; + } + finally { + client.terminate(); + reopenedClient.terminate(); + } + }, Array.from(fixture)); + fs.mkdirSync(path.dirname(path.join(root, productionPath)), { recursive: true }); + fs.writeFileSync(path.join(root, productionPath), `${JSON.stringify({ + schemaVersion: 1, + task, + operation: "SHADER_MAIN_READER_CHROMIUM", + browser: "chromium", + queueMutation: false, + fixture: fixturePath, + fixtureSha256, + sourceUnits, + expectedTypes, + sourceNodes: { + "node:ShaderNodeBsdfPrincipled": "material.nodes[type=PRINCIPLED]", + "node:ShaderNodeOutputMaterial": "material.nodes[type=OUTPUT]", + }, + ...result, + }, null, 2)}\n`); + expect(result.fixtureSha256).toBe(fixtureSha256); + expect(result.materials).toEqual(result.reopenedMaterials); + const observedTypes = new Set(result.materials.flatMap((material: any) => material.nodes.map((node: any) => node.type))); + if (sourceUnits.length > 0) { + expect(result.materials.some((material: any) => material.nodes.length > 0)).toBe(true); + expect(result.materials.flatMap((material: any) => material.nodes).map((node: any) => node.name)).toEqual(expect.arrayContaining(expectedTypes.map((type) => `WBV2 ${type}`))); + } else { + expect(observedTypes.has("PRINCIPLED")).toBe(true); + } + expect(result.reopenedRevision).toBe(1); +});